diff --git a/README.md b/README.md index 4dec57812..32df80785 100644 --- a/README.md +++ b/README.md @@ -350,14 +350,7 @@ You can read all about the philosophy behind Lazer [here](http://phaser.io/news/ * Camera.fade is a new function that makes the camera fade to the color given, over the course of the duration specified. This is great for things like transitioning from one State to another. You can listen for the Camera.onFadeComplete Signal. * Camera.resetFX resets any active FX, such as a fade or flash and immediately clears it. Useful for calling after a fade in order to remove the fade from the Stage. * Phaser.Camera.ENABLE_FX is a const that controls if the Camera FX are available or not. It's `true` by default, but if you set it to `false` before boot then it won't create the Graphics object required to process the effects. - -### New Arcade Physics Features - -* Body.setCircle allows you to define a Body as using a circle to collide with instead of a rectangle. You can set the radius of the collision circle and an offset. -* Body.render now renders both circle and rectangle body shapes to the Debug canvas. -* World.intersects has been updated to support both circle and rectangle body shapes, and supports quick-paths for circle vs. circle and rect vs. rect checks. -* World.circleBodyIntersects is a new method that checks for intersection between a Body that has been defined as a circle, and a normal rectangle based Body. This is used internally by World.intersects, but exposed for direct calls as well. -* Body has two new properties: `left` and `top`. These are the same as `Body.x` and `Body.y` but allow you to pass the Body to geometry level functions such as Circle.contains. +* The Arcade Physics Body has two new properties: `left` and `top`. These are the same as `Body.x` and `Body.y` but allow you to pass the Body to geometry level functions such as Circle.contains. * World.separate has been optimized to cut down on the number of calls to `intersect` from 3 calls per Game Object collision check, to 2. So if you were colliding 50 sprites it will reduce the call count from 150 to 100 per frame. It also reduces the calls made to `seperateX` and `seperateY` by the same factor. * Two immovable bodies would never set their overlap data, even if an overlap only check was being made. As this is useful data to have this has been changed. Two immovable bodies will still never separate from each other, but they _will_ have their `overlapX` and `overlapY` properties calculated now. diff --git a/build/custom/p2.min.js b/build/custom/p2.min.js index 0612d05fd..78281de04 100644 --- a/build/custom/p2.min.js +++ b/build/custom/p2.min.js @@ -1,4 +1,4 @@ -/* Phaser v2.4.6 P2.JS Build - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.7 P2.JS Build - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */ !function(a){if("object"==typeof exports)module.exports=a();else if("function"==typeof define,1){var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.p2=a()}else define(a)}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":4}],2:[function(a,b,c){function d(){}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){return d.area(a,b,c)>0},d.leftOn=function(a,b,c){return d.area(a,b,c)>=0},d.right=function(a,b,c){return d.area(a,b,c)<0},d.rightOn=function(a,b,c){return d.area(a,b,c)<=0};var e=[],f=[];d.collinear=function(a,b,c,g){if(g){var h=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];var j=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));return g>m}return 0==d.area(a,b,c)},d.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],3:[function(a,b,c){function d(){this.vertices=[]}function e(a,b,c,d,e){e=e||0;var f=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;return h.eq(m,0,e)?[0,0]:[(k*i-g*l)/m,(f*l-j*i)/m]}var f=a("./Line"),g=a("./Point"),h=a("./Scalar");b.exports=d,d.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},d.prototype.first=function(){return this.vertices[0]},d.prototype.last=function(){return this.vertices[this.vertices.length-1]},d.prototype.clear=function(){this.vertices.length=0},d.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},d.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);g.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},d.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},d.prototype.isReflex=function(a){return g.right(this.at(a-1),this.at(a),this.at(a+1))};var i=[],j=[];d.prototype.canSee=function(a,b){var c,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(var k=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)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},d.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(f.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),g.left(v.at(x+1),v.at(x),v.at(y+1))&&g.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=e(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),g.left(v.at(x-1),v.at(x),l)&&(o=g.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,c.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)g.leftOn(v.at(x-1),v.at(x),v.at(y))&&g.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=g.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)g.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(a,b,c){function d(){}b.exports=d,d.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{}],7:[function(a,b,c){function d(a){this.lowerBound=e.create(),a&&a.lowerBound&&e.copy(this.lowerBound,a.lowerBound),this.upperBound=e.create(),a&&a.upperBound&&e.copy(this.upperBound,a.upperBound)}var e=a("../math/vec2");a("../utils/Utils");b.exports=d;var f=e.create();d.prototype.setFromPoints=function(a,b,c,d){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?e.rotate(g,a[0],c):e.copy(g,a[0]),e.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;ko;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]i?-1:h>i?-1:h}},{"../math/vec2":30,"../utils/Utils":57}],8:[function(a,b,c){function d(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=d.AABB}var e=a("../math/vec2"),f=a("../objects/Body");b.exports=d,d.AABB=1,d.BOUNDING_CIRCLE=2,d.prototype.setWorld=function(a){this.world=a},d.prototype.getCollisionPairs=function(a){};var g=e.create();d.boundingRadiusCheck=function(a,b){e.sub(g,a.position,b.position);var c=e.squaredLength(g),d=a.boundingRadius+b.boundingRadius;return d*d>=c},d.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},d.prototype.boundingVolumeCheck=function(a,b){var c;switch(this.boundingVolumeType){case d.BOUNDING_CIRCLE:c=d.boundingRadiusCheck(a,b);break;case d.AABB:c=d.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return c},d.canCollide=function(a,b){var c=f.KINEMATIC,d=f.STATIC;return a.type===d&&b.type===d?!1:a.type===c&&b.type===d||a.type===d&&b.type===c?!1:a.type===c&&b.type===c?!1:a.sleepState===f.SLEEPING&&b.sleepState===f.SLEEPING?!1:a.sleepState===f.SLEEPING&&b.type===d||b.sleepState===f.SLEEPING&&a.type===d?!1:!0},d.NAIVE=1,d.SAP=2},{"../math/vec2":30,"../objects/Body":31}],9:[function(a,b,c){function d(){e.call(this,e.NAIVE)}var e=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var d=0,f=b.length;d!==f;d++)for(var g=b[d],h=0;d>h;h++){var i=b[h];e.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c},d.prototype.aabbQuery=function(a,b,c){c=c||[];for(var d=a.bodies,e=0;e=r*n)return!1;n=r}return!0}var g=a("../math/vec2"),h=g.sub,i=g.add,j=g.dot,k=(a("../utils/Utils"),a("../utils/ContactEquationPool")),l=a("../utils/FrictionEquationPool"),m=a("../utils/TupleDictionary"),n=a("../equations/Equation"),o=(a("../equations/ContactEquation"),a("../equations/FrictionEquation"),a("../shapes/Circle")),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Box"));b.exports=d;var s=g.fromValues(0,1),t=g.fromValues(0,0),u=g.fromValues(0,0),v=g.fromValues(0,0),w=g.fromValues(0,0),x=g.fromValues(0,0),y=g.fromValues(0,0),z=g.fromValues(0,0),A=g.fromValues(0,0),B=g.fromValues(0,0),C=g.fromValues(0,0),D=g.fromValues(0,0),E=g.fromValues(0,0),F=g.fromValues(0,0),G=g.fromValues(0,0),H=g.fromValues(0,0),I=g.fromValues(0,0),J=g.fromValues(0,0),K=g.fromValues(0,0),L=[],M=g.create(),N=g.create();d.prototype.bodiesOverlap=function(a,b){for(var c=M,d=N,e=0,f=a.shapes.length;e!==f;e++){var g=a.shapes[e];a.toWorldFrame(c,g.position);for(var h=0,i=b.shapes.length;h!==i;h++){var j=b.shapes[h];if(b.toWorldFrame(d,j.position),this[g.type|j.type](a,g,c,g.angle+a.angle,b,j,d,j.angle+b.angle,!0))return!0}}return!1},d.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},d.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}for(var f=this.contactEquations,g=this.frictionEquations,h=0;hp;p++){g.set(m,(0===p?-1:1)*b.length/2,0),g.rotate(m,m,d),g.add(m,m,c);for(var q=0;2>q;q++){g.set(n,(0===q?-1:1)*h.length/2,0),g.rotate(n,n,j),g.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,d,f,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=S;e(s,b);var t=this.convexCapsule(a,s,c,d,f,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}e(s,h);var u=this.convexCapsule(f,s,i,j,a,b,c,d,k);return this.enableFrictionReduction&&(this.enableFriction=l),k&&u?!0:(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},d.prototype[q.LINE|q.LINE]=d.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},d.prototype[q.PLANE|q.LINE]=d.prototype.planeLine=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L,H=0;g.set(n,-f.length/2,0),g.set(o,f.length/2,0),g.rotate(p,n,l),g.rotate(q,o,l),i(p,p,k),i(q,q,k),g.copy(n,p),g.copy(o,q),h(r,o,n),g.normalize(C,r),g.rotate90cw(F,C),g.rotate(E,s,d),G[0]=n,G[1]=o;for(var I=0;IK){if(m)return!0;var M=this.createContactEquation(a,e,b,f);H++,g.copy(M.normalA,E),g.normalize(M.normalA,M.normalA),g.scale(D,E,K),h(M.contactPointA,J,D),h(M.contactPointA,M.contactPointA,a.position),h(M.contactPointB,J,k),i(M.contactPointB,M.contactPointB,k),h(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return m?!1:(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},d.prototype[q.PARTICLE|q.CAPSULE]=d.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},d.prototype[q.CIRCLE|q.LINE]=d.prototype.circleLine=function(a,b,c,d,e,f,k,l,m,n,o){var n=n||0,o="undefined"!=typeof o?o:b.radius,p=t,q=u,r=v,s=w,H=x,I=y,J=z,K=A,M=B,N=C,O=D,P=E,Q=F,R=G,S=L;g.set(K,-f.length/2,0),g.set(M,f.length/2,0),g.rotate(N,K,l),g.rotate(O,M,l),i(N,N,k),i(O,O,k),g.copy(K,N),g.copy(M,O),h(I,M,K),g.normalize(J,I),g.rotate90cw(H,J),h(P,c,K);var T=j(P,H);h(s,K,k),h(Q,c,k);var U=o+n;if(Math.abs(T)W&&X>V){if(m)return!0;var Y=this.createContactEquation(a,e,b,f);return g.scale(Y.normalA,p,-1),g.normalize(Y.normalA,Y.normalA),g.scale(Y.contactPointA,Y.normalA,o),i(Y.contactPointA,Y.contactPointA,c),h(Y.contactPointA,Y.contactPointA,a.position),h(Y.contactPointB,r,k),i(Y.contactPointB,Y.contactPointB,k),h(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=K,S[1]=M;for(var Z=0;ZQ&&(g.copy(J,B),L=Q,g.scale(A,s,Q),g.add(A,A,B),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,e,b,j);return g.sub(R.normalA,J,c),g.normalize(R.normalA,R.normalA),g.scale(R.contactPointA,R.normalA,n),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,A,k),i(R.contactPointB,R.contactPointB,k),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;NQ&&(I=Q,g.scale(E,s,Q),g.add(E,E,c),g.copy(H,s),L=!0)}if(L){var R=this.createContactEquation(a,e,b,k);return g.scale(R.normalA,H,-1),g.normalize(R.normalA,R.normalA),g.set(R.contactPointA,0,0),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,E,l),i(R.contactPointB,R.contactPointB,l),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},d.prototype[q.CIRCLE]=d.prototype.circleCircle=function(a,b,c,d,e,f,j,k,l,m,n){var o=t,m=m||b.radius,n=n||f.radius;h(o,c,j);var p=m+n;if(g.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,f);return h(q.normalA,j,c),g.normalize(q.normalA,q.normalA),g.scale(q.contactPointA,q.normalA,m),g.scale(q.contactPointB,q.normalA,-n),i(q.contactPointA,q.contactPointA,c),h(q.contactPointA,q.contactPointA,a.position),i(q.contactPointB,q.contactPointB,j),h(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},d.prototype[q.PLANE|q.CONVEX]=d.prototype[q.PLANE|q.BOX]=d.prototype.planeConvex=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=0;g.rotate(o,s,d);for(var r=0;r!==f.vertices.length;r++){var w=f.vertices[r];if(g.rotate(n,w,l),i(n,n,k),h(p,n,c),j(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,f);h(p,n,c),g.copy(x.normalA,o);var y=j(p,x.normalA);g.scale(p,x.normalA,y),h(x.contactPointB,n,e.position),h(x.contactPointA,n,p),h(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},d.prototype[q.PARTICLE|q.PLANE]=d.prototype.particlePlane=function(a,b,c,d,e,f,i,k,l){var m=t,n=u;k=k||0,h(m,c,i),g.rotate(n,s,k);var o=j(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,f,b);return g.copy(p.normalA,n),g.scale(m,p.normalA,o),h(p.contactPointA,c,m),h(p.contactPointA,p.contactPointA,e.position),h(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},d.prototype[q.CIRCLE|q.PARTICLE]=d.prototype.circleParticle=function(a,b,c,d,e,f,j,k,l){var m=t;if(h(m,j,c),g.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,f);return g.copy(n.normalA,m),g.normalize(n.normalA,n.normalA),g.scale(n.contactPointA,n.normalA,b.radius),i(n.contactPointA,n.contactPointA,c),h(n.contactPointA,n.contactPointA,a.position),h(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};var X=new o({radius:1}),Y=g.create(),Z=g.create();g.create();d.prototype[q.PLANE|q.CAPSULE]=d.prototype.planeCapsule=function(a,b,c,d,e,f,h,j,k){var l=Y,m=Z,n=X;g.set(l,-f.length/2,0),g.rotate(l,l,j),i(l,l,h),g.set(m,f.length/2,0),g.rotate(m,m,j),i(m,m,h),n.radius=f.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},d.prototype[q.CIRCLE|q.PLANE]=d.prototype.circlePlane=function(a,b,c,d,e,f,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;h(x,p,r),g.rotate(y,s,w);var A=j(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,f,b);return g.copy(B.normalA,y),g.scale(B.contactPointB,B.normalA,-o.radius),i(B.contactPointB,B.contactPointB,p),h(B.contactPointB,B.contactPointB,n.position),g.scale(z,B.normalA,A),h(B.contactPointA,x,z),i(B.contactPointA,B.contactPointA,r),h(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},d.prototype[q.CONVEX]=d.prototype[q.CONVEX|q.BOX]=d.prototype[q.BOX]=d.prototype.convexConvex=function(a,b,c,e,f,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0,G=d.findSeparatingAxis(b,c,e,k,l,m,p);if(!G)return 0;h(D,l,c),j(p,D)>0&&g.scale(p,p,-1);var H=d.getClosestEdge(b,e,p,!0),I=d.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=c,P=l,Q=e,R=m,S=a,T=f;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];g.rotate(q,W,R),i(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];g.rotate(r,Z,Q),g.rotate(s,$,Q),i(r,r,O),i(s,s,O),h(y,s,r),g.rotate90cw(E,y),g.normalize(E,E),h(D,q,r);var _=j(E,D);(Y===K&&o>=_||Y!==K&&0>=_)&&X++}if(X>=3){if(n)return!0;var aa=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];g.rotate(r,Z,Q),g.rotate(s,$,Q),i(r,r,O),i(s,s,O),h(y,s,r),g.rotate90cw(aa.normalA,y),g.normalize(aa.normalA,aa.normalA),h(D,q,r);var _=j(aa.normalA,D);g.scale(C,aa.normalA,_),h(aa.contactPointA,q,O),h(aa.contactPointA,aa.contactPointA,C),i(aa.contactPointA,aa.contactPointA,O),h(aa.contactPointA,aa.contactPointA,S.position),h(aa.contactPointB,q,P),i(aa.contactPointB,aa.contactPointB,P),h(aa.contactPointB,aa.contactPointB,T.position),this.contactEquations.push(aa),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(aa))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var $=g.fromValues(0,0);d.projectConvexOntoAxis=function(a,b,c,d,e){var f,h,i=null,k=null,l=$;g.rotate(l,d,-c);for(var m=0;mi)&&(i=h),(null===k||k>h)&&(k=h);if(k>i){var n=k;k=i,i=n}var o=j(b,d);g.set(e,k+o,i+o)};var _=g.fromValues(0,0),aa=g.fromValues(0,0),ba=g.fromValues(0,0),ca=g.fromValues(0,0),da=g.fromValues(0,0),ea=g.fromValues(0,0);d.findSeparatingAxis=function(a,b,c,e,f,i,j){var k=null,l=!1,m=!1,n=_,o=aa,p=ba,q=ca,s=da,t=ea;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?g.set(q,0,1):1===x&&g.set(q,1,0),0!==w&&g.rotate(q,q,w),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(g.copy(j,q),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){g.rotate(o,v.vertices[x],w),g.rotate(p,v.vertices[(x+1)%v.vertices.length],w),h(n,p,o),g.rotate90cw(q,n),g.normalize(q,q),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(g.copy(j,q),k=B,m=l)}}return m};var fa=g.fromValues(0,0),ga=g.fromValues(0,0),ha=g.fromValues(0,0);d.getClosestEdge=function(a,b,c,d){var e=fa,f=ga,i=ha;g.rotate(e,c,-b),d&&g.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){h(f,a.vertices[(n+1)%l],a.vertices[n%l]),g.rotate90cw(i,f),g.normalize(i,i);var o=j(i,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var ia=g.create(),ja=g.create(),ka=g.create(),la=g.create(),ma=g.create(),na=g.create(),oa=g.create();d.prototype[q.CIRCLE|q.HEIGHTFIELD]=d.prototype.circleHeightfield=function(a,b,c,d,e,f,j,k,l,m){var n=f.heights,m=m||b.radius,o=f.elementWidth,p=ja,q=ia,r=ma,s=oa,t=na,u=ka,v=la,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;for(var B=!1,A=w;x>A;A++){g.set(u,A*o,n[A]),g.set(v,(A+1)*o,n[A+1]),g.add(u,u,j),g.add(v,v,j),g.sub(t,v,u),g.rotate(t,t,Math.PI/2),g.normalize(t,t),g.scale(q,t,-m),g.add(q,q,c),g.sub(p,q,u);var C=g.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,g.scale(p,t,-C),g.add(r,q,p),g.copy(s,t);var D=this.createContactEquation(e,a,f,b);g.copy(D.normalA,s),g.scale(D.contactPointB,D.normalA,-m),i(D.contactPointB,D.contactPointB,c),h(D.contactPointB,D.contactPointB,a.position),g.copy(D.contactPointA,r),g.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(g.set(u,A*o,n[A]),g.add(u,u,j),g.sub(p,c,u),g.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){g.set(m,u*l,k[u]),g.set(n,(u+1)*l,k[u+1]),g.add(m,m,h),g.add(n,n,h);var w=100;g.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),g.sub(p.vertices[0],n,o),g.sub(p.vertices[1],m,o),g.copy(p.vertices[2],p.vertices[1]),g.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Box":37,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Shape":45,"../utils/ContactEquationPool":48,"../utils/FrictionEquationPool":49,"../utils/TupleDictionary":56,"../utils/Utils":57}],11:[function(a,b,c){function d(a){a=a||{},this.from=a.from?f.fromValues(a.from[0],a.from[1]):f.create(),this.to=a.to?f.fromValues(a.to[0],a.to[1]):f.create(),this.checkCollisionResponse=void 0!==a.checkCollisionResponse?a.checkCollisionResponse:!0,this.skipBackfaces=!!a.skipBackfaces,this.collisionMask=void 0!==a.collisionMask?a.collisionMask:-1,this.collisionGroup=void 0!==a.collisionGroup?a.collisionGroup:-1,this.mode=void 0!==a.mode?a.mode:d.ANY,this.callback=a.callback||function(a){},this.direction=f.create(),this.length=1,this.update()}function e(a,b,c){f.sub(h,c,a);var d=f.dot(h,b);return f.scale(i,b,d),f.add(i,i,a),f.squaredDistance(c,i)}b.exports=d;var f=a("../math/vec2");a("../collision/RaycastResult"),a("../shapes/Shape"),a("../collision/AABB");d.prototype.constructor=d,d.CLOSEST=1,d.ANY=2,d.ALL=4,d.prototype.update=function(){var a=this.direction;f.sub(a,this.to,this.from),this.length=f.length(a),f.normalize(a,a)},d.prototype.intersectBodies=function(a,b){for(var c=0,d=b.length;!a.shouldStop(this)&&d>c;c++){var e=b[c],f=e.getAABB();(f.overlapsRay(this)>=0||f.containsPoint(this.from))&&this.intersectBody(a,e)}};var g=f.create();d.prototype.intersectBody=function(a,b){var c=this.checkCollisionResponse;if(!c||b.collisionResponse)for(var d=g,e=0,h=b.shapes.length;h>e;e++){var i=b.shapes[e];if((!c||i.collisionResponse)&&0!==(this.collisionGroup&i.collisionMask)&&0!==(i.collisionGroup&this.collisionMask)){f.rotate(d,i.position,b.angle),f.add(d,d,b.position);var j=i.angle+b.angle;if(this.intersectShape(a,i,j,d,b),a.shouldStop(this))break}}},d.prototype.intersectShape=function(a,b,c,d,f){var g=this.from,h=e(g,this.direction,d);h>b.boundingRadius*b.boundingRadius||(this._currentBody=f,this._currentShape=b,b.raycast(a,this,d,c),this._currentBody=this._currentShape=null)},d.prototype.getAABB=function(a){var b=this.to,c=this.from;f.set(a.lowerBound,Math.min(b[0],c[0]),Math.min(b[1],c[1])),f.set(a.upperBound,Math.max(b[0],c[0]),Math.max(b[1],c[1]))};f.create();d.prototype.reportIntersection=function(a,b,c,e){var g=(this.from,this.to,this._currentShape),h=this._currentBody;if(!(this.skipBackfaces&&f.dot(c,this.direction)>0))switch(this.mode){case d.ALL:a.set(c,g,h,b,e),this.callback(a);break;case d.CLOSEST:(bc;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},d.prototype.sortList=function(){var a=this.axisList,b=this.axisIndex;d.sortAxisList(a,b)},d.prototype.getCollisionPairs=function(a){var b=this.axisList,c=this.result,d=this.axisIndex;c.length=0;for(var e=b.length;e--;){var g=b[e];g.aabbNeedsUpdate&&g.updateAABB()}this.sortList();for(var h=0,i=0|b.length;h!==i;h++)for(var j=b[h],k=h+1;i>k;k++){var l=b[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;f.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&c.push(j,l)}return c},d.prototype.aabbQuery=function(a,b,c){c=c||[],this.sortList();var d=this.axisIndex,e="x";1===d&&(e="y"),2===d&&(e="z");for(var f=this.axisList,g=(b.lowerBound[e],b.upperBound[e],0);gthis.upperLimit&&(f.maxForce=0,f.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)h.scale(e.normalA,j,-1),h.sub(e.contactPointA,k,g.position),h.sub(e.contactPointB,l,i.position),h.scale(o,j,c),h.add(e.contactPointA,e.contactPointA,o),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)h.scale(f.normalA,j,1),h.sub(f.contactPointA,k,g.position),h.sub(f.contactPointB,l,i.position),h.scale(o,j,d),h.sub(f.contactPointB,f.contactPointB,o),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},d.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},d.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},d.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,e.REVOLUTE,c);var d=this.maxForce="undefined"!=typeof c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=i.create(),this.pivotB=i.create(),c.worldPivot?(i.sub(this.pivotA,c.worldPivot,a.position),i.sub(this.pivotB,c.worldPivot,b.position),i.rotate(this.pivotA,this.pivotA,-a.angle),i.rotate(this.pivotB,this.pivotB,-b.angle)):(i.copy(this.pivotA,c.localPivotA),i.copy(this.pivotB,c.localPivotB));var o=this.equations=[new f(a,b,-d,d),new f(a,b,-d,d)],p=o[0],q=o[1],r=this;p.computeGq=function(){return i.rotate(j,r.pivotA,a.angle),i.rotate(k,r.pivotB,b.angle),i.add(n,b.position,k),i.sub(n,n,a.position),i.sub(n,n,j),i.dot(n,l)},q.computeGq=function(){return i.rotate(j,r.pivotA,a.angle),i.rotate(k,r.pivotB,b.angle),i.add(n,b.position,k),i.sub(n,n,a.position),i.sub(n,n,j),i.dot(n,m)},q.minForce=p.minForce=-d,q.maxForce=p.maxForce=d,this.motorEquation=new g(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new h(a,b),this.lowerLimitEquation=new h(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var e=a("./Constraint"),f=a("../equations/Equation"),g=a("../equations/RotationalVelocityEquation"),h=a("../equations/RotationalLockEquation"),i=a("../math/vec2");b.exports=d;var j=i.create(),k=i.create(),l=i.fromValues(1,0),m=i.fromValues(0,1),n=i.create();d.prototype=new e,d.prototype.constructor=d,d.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},d.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],h=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>h)o.angle=h,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}i.rotate(j,c,a.angle),i.rotate(k,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-i.crossLength(j,l),f.G[3]=1,f.G[4]=0,f.G[5]=i.crossLength(k,l),g.G[0]=0,g.G[1]=-1,g.G[2]=-i.crossLength(j,m),g.G[3]=0,g.G[4]=1,g.G[5]=i.crossLength(k,m)},d.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},d.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},d.prototype.motorIsEnabled=function(){return!!this.motorEnabled},d.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},d.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}var e=a("./Equation");a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},d.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},d.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b,c){function d(a,b){e.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=f.create(),this.penetrationVec=f.create(),this.contactPointB=f.create(),this.normalA=f.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var e=a("./Equation"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeB=function(a,b,c){var d=this.bodyA,e=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=e.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=f.crossLength(g,l),o=f.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,f.add(k,j,h),f.sub(k,k,i),f.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=f.dot(l,k)+this.offset,p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b,c){function d(a,b,c,e){this.minForce="undefined"==typeof c?-Number.MAX_VALUE:c,this.maxForce="undefined"==typeof e?Number.MAX_VALUE:e,this.bodyA=a,this.bodyB=b,this.stiffness=d.DEFAULT_STIFFNESS,this.relaxation=d.DEFAULT_RELAXATION,this.G=new f.ARRAY_TYPE(6);for(var g=0;6>g;g++)this.G[g]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}b.exports=d;var e=a("../math/vec2"),f=a("../utils/Utils");a("../objects/Body");d.prototype.constructor=d,d.DEFAULT_STIFFNESS=1e6,d.DEFAULT_RELAXATION=4,d.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},d.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},d.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var g=e.create(),h=e.create();d.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,g,d,h,e)+this.offset},d.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity},d.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var i=e.create(),j=e.create();d.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,d=a.angularForce,f=b.force,g=b.angularForce,h=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return e.scale(i,c,h),e.multiply(i,a.massMultiplier,i),e.scale(j,f,k),e.multiply(j,b.massMultiplier,j),this.gmult(n,i,d*l,j,g*m)},d.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c*a.massMultiplier[0]+g[1]*g[1]*c*a.massMultiplier[1]+g[2]*g[2]*e+g[3]*g[3]*d*b.massMultiplier[0]+g[4]*g[4]*d*b.massMultiplier[1]+g[5]*g[5]*f};var k=e.create(),l=e.create(),m=e.create();e.create(),e.create(),e.create();d.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,d=k,f=l,g=m,h=b.invMassSolve,i=c.invMassSolve,j=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],e.scale(d,f,h*a),e.multiply(d,d,b.massMultiplier),e.add(b.vlambda,b.vlambda,d),b.wlambda+=j*o[2]*a,e.scale(d,g,i*a),e.multiply(d,d,c.massMultiplier),e.add(c.vlambda,c.vlambda,d),c.wlambda+=n*o[5]*a},d.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],23:[function(a,b,c){function d(a,b,c){f.call(this,a,b,-c,c),this.contactPointA=e.create(),this.contactPointB=e.create(),this.t=e.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}var e=a("../math/vec2"),f=a("./Equation");a("../utils/Utils");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},d.prototype.getSlipForce=function(){return this.maxForce},d.prototype.computeB=function(a,b,c){var d=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-e.crossLength(d,g),h[3]=g[0],h[4]=g[1],h[5]=e.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":30,"../utils/Utils":57,"./Equation":22}],24:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var d=this.G;d[2]=1,d[5]=-1}var e=a("./Equation"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d;var g=f.create(),h=f.create(),i=f.fromValues(1,0),j=f.fromValues(0,1);d.prototype.computeGq=function(){return f.rotate(g,i,this.bodyA.angle+this.angle),f.rotate(h,j,this.bodyB.angle),f.dot(g,h)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b,c){function d(a,b){e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}var e=a("./Equation");a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b,c){var d=function(){};b.exports=d,d.prototype={constructor:d,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b,c){function d(a,b,c){if(c=c||{},!(a instanceof e&&b instanceof e))throw new Error("First two arguments must be Material instances.");this.id=d.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof c.friction?Number(c.friction):.3,this.restitution="undefined"!=typeof c.restitution?Number(c.restitution):0,this.stiffness="undefined"!=typeof c.stiffness?Number(c.stiffness):f.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof c.relaxation?Number(c.relaxation):f.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof c.frictionStiffness?Number(c.frictionStiffness):f.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof c.frictionRelaxation?Number(c.frictionRelaxation):f.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof c.surfaceVelocity?Number(c.surfaceVelocity):0,this.contactSkinSize=.005}var e=a("./Material"),f=a("../equations/Equation");b.exports=d,d.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b,c){function d(a){this.id=a||d.idCounter++}b.exports=d,d.idCounter=0},{}],29:[function(a,b,c){var d={};d.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},d.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var c=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(d._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&d._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)c.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return c.push(e[0],e[1],e[2]),c},d._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},d._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=d},{}],30:[function(a,b,c){var d=b.exports={},e=a("../utils/Utils");d.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},d.crossVZ=function(a,b,c){return d.rotate(a,b,-Math.PI/2),d.scale(a,a,c),a},d.crossZV=function(a,b,c){return d.rotate(a,c,Math.PI/2),d.scale(a,a,b),a},d.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},d.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},d.toLocalFrame=function(a,b,c,e){d.copy(a,b),d.sub(a,a,c),d.rotate(a,a,-e)},d.toGlobalFrame=function(a,b,c,e){d.copy(a,b),d.rotate(a,a,e),d.add(a,a,c)},d.vectorToLocalFrame=function(a,b,c){d.rotate(a,b,-c)},d.vectorToGlobalFrame=function(a,b,c){d.rotate(a,b,c)},d.centroid=function(a,b,c,e){return d.add(a,b,c),d.add(a,a,e),d.scale(a,a,1/3),a},d.create=function(){var a=new e.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},d.clone=function(a){var b=new e.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},d.fromValues=function(a,b){var c=new e.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},d.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},d.set=function(a,b,c){return a[0]=b,a[1]=c,a},d.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},d.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},d.sub=d.subtract,d.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},d.mul=d.multiply,d.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},d.div=d.divide,d.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},d.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},d.dist=d.distance,d.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},d.sqrDist=d.squaredDistance,d.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},d.len=d.length,d.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},d.sqrLen=d.squaredLength,d.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},d.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},d.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},d.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},d.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},d.reflect=function(a,b,c){var d=b[0]*c[0]+b[1]*c[1];a[0]=b[0]-2*c[0]*d,a[1]=b[1]-2*c[1]*d},d.getLineSegmentsIntersection=function(a,b,c,e,f){var g=d.getLineSegmentsIntersectionFraction(b,c,e,f);return 0>g?!1:(a[0]=b[0]+g*(c[0]-b[0]),a[1]=b[1]+g*(c[1]-b[1]),!0)},d.getLineSegmentsIntersectionFraction=function(a,b,c,d){var e,f,g=b[0]-a[0],h=b[1]-a[1],i=d[0]-c[0],j=d[1]-c[1];return e=(-h*(a[0]-c[0])+g*(a[1]-c[1]))/(-i*h+g*j),f=(i*(a[1]-c[1])-j*(a[0]-c[0]))/(-i*h+g*j),e>=0&&1>=e&&f>=0&&1>=f?f:-1}},{"../utils/Utils":57}],31:[function(a,b,c){function d(a){a=a||{},k.call(this),this.id=a.id||++d._idCounter,this.world=null,this.shapes=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.fixedX=!!a.fixedX,this.fixedY=!!a.fixedY,this.massMultiplier=e.create(),this.position=e.fromValues(0,0),a.position&&e.copy(this.position,a.position),this.interpolatedPosition=e.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=e.fromValues(0,0),this.previousAngle=0,this.velocity=e.fromValues(0,0),a.velocity&&e.copy(this.velocity,a.velocity),this.vlambda=e.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=e.create(),a.force&&e.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=d.STATIC,"undefined"!=typeof a.type?this.type=a.type:a.mass?this.type=d.DYNAMIC:this.type=d.STATIC,this.boundingRadius=0,this.aabb=new j,this.aabbNeedsUpdate=!0, diff --git a/build/custom/phaser-arcade-physics.js b/build/custom/phaser-arcade-physics.js index e65448093..30f61a9bd 100644 --- a/build/custom/phaser-arcade-physics.js +++ b/build/custom/phaser-arcade-physics.js @@ -1,13 +1,13 @@ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} * * @overview * * Phaser - http://phaser.io * -* v2.4.6 "Baerlon" - Built: Thu Feb 18 2016 14:40:00 +* v2.4.7 "Hinderstap" - Built: Thu Apr 14 2016 13:21:31 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -1227,9 +1227,10 @@ PIXI.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform = PI */ PIXI.DisplayObjectContainer.prototype.getBounds = function() { - if(this.children.length === 0)return PIXI.EmptyRectangle; - - // TODO the bounds have already been calculated this render session so return what we have + if (this.children.length === 0) + { + return PIXI.EmptyRectangle; + } var minX = Infinity; var minY = Infinity; @@ -1243,11 +1244,14 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() var childVisible = false; - for(var i=0,j=this.children.length; i childMaxY ? maxY : childMaxY; } - if(!childVisible) + if (!childVisible) + { return PIXI.EmptyRectangle; + } var bounds = this._bounds; @@ -1273,9 +1279,6 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() bounds.width = maxX - minX; bounds.height = maxY - minY; - // TODO: store a reference so that if this function gets called again in the render cycle we do not have to recalculate - //this._currentBounds = bounds; - return bounds; }; @@ -1291,7 +1294,7 @@ PIXI.DisplayObjectContainer.prototype.getLocalBounds = function() this.worldTransform = PIXI.identityMatrix; - for(var i=0,j=this.children.length; i -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -6581,10 +6598,6 @@ PIXI.CanvasRenderer = function (game) { */ this.refresh = true; - // This is already done in the Game.setUpRenderer method. - // this.view.width = this.width * this.resolution; - // this.view.height = this.height * this.resolution; - /** * Internal var. * @@ -6673,8 +6686,8 @@ PIXI.CanvasRenderer.prototype.render = function (stage) { * @method destroy * @param [removeView=true] {boolean} Removes the Canvas element from the DOM. */ -PIXI.CanvasRenderer.prototype.destroy = function(removeView) -{ +PIXI.CanvasRenderer.prototype.destroy = function (removeView) { + if (removeView === undefined) { removeView = true; } if (removeView && this.view.parent) @@ -6696,8 +6709,8 @@ PIXI.CanvasRenderer.prototype.destroy = function(removeView) * @param width {Number} the new width of the canvas view * @param height {Number} the new height of the canvas view */ -PIXI.CanvasRenderer.prototype.resize = function(width, height) -{ +PIXI.CanvasRenderer.prototype.resize = function (width, height) { + this.width = width * this.resolution; this.height = height * this.resolution; @@ -6709,6 +6722,12 @@ PIXI.CanvasRenderer.prototype.resize = function(width, height) this.view.style.width = this.width / this.resolution + "px"; this.view.style.height = this.height / this.resolution + "px"; } + + if (this.renderSession.smoothProperty) + { + this.context[this.renderSession.smoothProperty] = (this.renderSession.scaleMode === PIXI.scaleModes.LINEAR); + } + }; /** @@ -8871,10 +8890,8 @@ PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo, re var texture = this.texture; var frame = texture.frame; - console.log('generateTilingTexture', texture, frame); - - var targetWidth = this._frame.sourceSizeW; - var targetHeight = this._frame.sourceSizeH; + var targetWidth = this._frame.sourceSizeW || this._frame.width; + var targetHeight = this._frame.sourceSizeH || this._frame.height; var dx = 0; var dy = 0; @@ -9096,7 +9113,7 @@ Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { }).call(this); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -9107,7 +9124,7 @@ Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -9121,7 +9138,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.6', + VERSION: '2.4.7 RC1', /** * An array of Phaser game instances. @@ -9472,7 +9489,7 @@ var Phaser = Phaser || { }; /** -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -9627,7 +9644,7 @@ if (!window.console) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10034,7 +10051,7 @@ Phaser.Utils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10609,7 +10626,7 @@ PIXI.Circle = Phaser.Circle; /** * @author Richard Davey * @author Chad Engler -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10935,7 +10952,7 @@ PIXI.Ellipse = Phaser.Ellipse; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -11580,7 +11597,7 @@ Phaser.Line.reflect = function (a, b) { /** * @author Mat Groves http://matgroves.com/ @Doormat23 * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -11969,7 +11986,7 @@ PIXI.identityMatrix = Phaser.identityMatrix; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -12877,7 +12894,7 @@ PIXI.Point = Phaser.Point; /** * @author Richard Davey * @author Adrien Brault -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -13039,6 +13056,7 @@ Phaser.Polygon.prototype = { * - An array of Point objects: `[new Phaser.Point(x1, y1), ...]` * - An array of objects with public x/y properties: `[obj1, obj2, ...]` * - An array of paired numbers that represent point coordinates: `[x1,y1, x2,y2, ...]` + * - An array of arrays with two elements representing x/y coordinates: `[[x1, y1], [x2, y2], ...]` * - As separate Point arguments: `setTo(new Phaser.Point(x1, y1), ...)` * - As separate objects with public x/y properties arguments: `setTo(obj1, obj2, ...)` * - As separate arguments representing point coordinates: `setTo(x1,y1, x2,y2, ...)` @@ -13072,6 +13090,10 @@ Phaser.Polygon.prototype = { var p = new PIXI.Point(points[i], points[i + 1]); i++; } + else if (Array.isArray(points[i])) + { + var p = new PIXI.Point(points[i][0], points[i][1]); + } else { var p = new PIXI.Point(points[i].x, points[i].y); @@ -13170,7 +13192,7 @@ PIXI.Polygon = Phaser.Polygon; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14178,7 +14200,7 @@ PIXI.EmptyRectangle = new Phaser.Rectangle(0, 0, 0, 0); /** * @author Mat Groves http://matgroves.com/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14289,7 +14311,7 @@ PIXI.RoundedRectangle = Phaser.RoundedRectangle; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14371,12 +14393,12 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.target = null; /** - * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot + * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot. */ this.displayObject = null; /** - * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot + * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot. */ this.scale = null; @@ -14387,7 +14409,44 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.totalInView = 0; /** - * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position + * The linear interpolation value to use when following a target. + * The default values of 1 means the camera will instantly snap to the target coordinates. + * A lower value, such as 0.1 means the camera will more slowly track the target, giving + * a smooth transition. You can set the horizontal and vertical values independently, and also + * adjust this value in real-time during your game. + * @property {Phaser.Point} lerp + * @default + */ + this.lerp = new Phaser.Point(1, 1); + + /** + * @property {Phaser.Signal} onShakeComplete - This signal is dispatched when the camera shake effect completes. + */ + this.onShakeComplete = new Phaser.Signal(); + + /** + * @property {Phaser.Signal} onFlashComplete - This signal is dispatched when the camera flash effect completes. + */ + this.onFlashComplete = new Phaser.Signal(); + + /** + * This signal is dispatched when the camera fade effect completes. + * When the fade effect completes you will be left with the screen black (or whatever + * color you faded to). In order to reset this call `Camera.resetFX`. This is called + * automatically when you change State. + * @property {Phaser.Signal} onFadeComplete + */ + this.onFadeComplete = new Phaser.Signal(); + + /** + * The Graphics object used to handle camera fx such as fade and flash. + * @property {Phaser.Graphics} fx + * @protected + */ + this.fx = null; + + /** + * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position. * @private */ this._targetPosition = new Phaser.Point(); @@ -14406,6 +14465,32 @@ Phaser.Camera = function (game, id, x, y, width, height) { */ this._position = new Phaser.Point(); + /** + * @property {Object} _shake - The shake effect container. + * @private + */ + this._shake = { + intensity: 0, + duration: 0, + horizontal: false, + vertical: false, + shakeBounds: true, + x: 0, + y: 0 + }; + + /** + * @property {number} _fxDuration - FX duration timer. + * @private + */ + this._fxDuration = 0; + + /** + * @property {number} _fxType - The FX type running. + * @private + */ + this._fxType = 0; + }; /** @@ -14432,8 +14517,55 @@ Phaser.Camera.FOLLOW_TOPDOWN = 2; */ Phaser.Camera.FOLLOW_TOPDOWN_TIGHT = 3; +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_BOTH = 4; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_HORIZONTAL = 5; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_VERTICAL = 6; + +/** +* @constant +* @type {boolean} +*/ +Phaser.Camera.ENABLE_FX = true; + Phaser.Camera.prototype = { + /** + * Called automatically by Phaser.World. + * + * @method Phaser.Camera#boot + * @private + */ + boot: function () { + + this.displayObject = this.game.world; + + this.scale = this.game.world.scale; + + this.game.camera = this; + + if (Phaser.Graphics && Phaser.Camera.ENABLE_FX) + { + this.fx = new Phaser.Graphics(this.game); + + this.game.stage.addChild(this.fx); + } + + }, + /** * Camera preUpdate. Sets the total view counter to zero. * @@ -14447,6 +14579,9 @@ Phaser.Camera.prototype = { /** * Tell the camera which sprite to follow. + * + * You can set the follow type and a linear interpolation value. + * Use low lerp values (such as 0.1) to automatically smooth the camera motion. * * If you find you're getting a slight "jitter" effect when following a Sprite it's probably to do with sub-pixel rendering of the Sprite position. * This can be disabled by setting `game.renderer.renderSession.roundPixels = true` to force full pixel rendering. @@ -14454,12 +14589,17 @@ Phaser.Camera.prototype = { * @method Phaser.Camera#follow * @param {Phaser.Sprite|Phaser.Image|Phaser.Text} target - The object you want the camera to track. Set to null to not follow anything. * @param {number} [style] - Leverage one of the existing "deadzone" presets. If you use a custom deadzone, ignore this parameter and manually specify the deadzone after calling follow(). + * @param {float} [lerpX=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when horizontally tracking the target. The closer the value to 1, the faster the camera will track. + * @param {float} [lerpY=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when vertically tracking the target. The closer the value to 1, the faster the camera will track. */ - follow: function (target, style) { + follow: function (target, style, lerpX, lerpY) { if (style === undefined) { style = Phaser.Camera.FOLLOW_LOCKON; } + if (lerpX === undefined) { lerpX = 1; } + if (lerpY === undefined) { lerpY = 1; } this.target = target; + this.lerp.set(lerpX, lerpY); var helper; @@ -14527,16 +14667,156 @@ Phaser.Camera.prototype = { }, /** - * Update focusing and scrolling. + * This creates a camera shake effect. It works by applying a random amount of additional + * spacing on the x and y axis each frame. You can control the intensity and duration + * of the effect, and if it should effect both axis or just one. + * + * When the shake effect ends the signal Camera.onShakeComplete is dispatched. + * + * @method Phaser.Camera#shake + * @param {float} [intensity=0.05] - The intensity of the camera shake. Given as a percentage of the camera size representing the maximum distance that the camera can move while shaking. + * @param {number} [duration=500] - The duration of the shake effect in milliseconds. + * @param {boolean} [force=true] - If a camera shake effect is already running and force is true it will replace the previous effect, resetting the duration. + * @param {number} [direction=Phaser.Camera.SHAKE_BOTH] - The directions in which the camera can shake. Either Phaser.Camera.SHAKE_BOTH, Phaser.Camera.SHAKE_HORIZONTAL or Phaser.Camera.SHAKE_VERTICAL. + * @param {boolean} [shakeBounds=true] - Is the effect allowed to shake the camera beyond its bounds (if set?). + * @return {boolean} True if the shake effect was started, otherwise false. + */ + shake: function (intensity, duration, force, direction, shakeBounds) { + + if (intensity === undefined) { intensity = 0.05; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = true; } + if (direction === undefined) { direction = Phaser.Camera.SHAKE_BOTH; } + if (shakeBounds === undefined) { shakeBounds = true; } + + if (!force && this._shake.duration > 0) + { + // Can't reset an already running shake + return false; + } + + this._shake.intensity = intensity; + this._shake.duration = duration; + this._shake.shakeBounds = shakeBounds; + + this._shake.x = 0; + this._shake.y = 0; + + this._shake.horizontal = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_HORIZONTAL); + this._shake.vertical = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_VERTICAL); + + return true; + + }, + + /** + * This creates a camera flash effect. It works by filling the game with the solid fill + * color specified, and then fading it away to alpha 0 over the duration given. + * + * You can use this for things such as hit feedback effects. + * + * When the effect ends the signal Camera.onFlashComplete is dispatched. + * + * @method Phaser.Camera#flash + * @param {numer} [color=0xffffff] - The color of the flash effect. I.e. 0xffffff for white, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the flash effect in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + flash: function (color, duration, force) { + + if (color === undefined) { color = 0xffffff; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 1; + + this._fxDuration = duration; + this._fxType = 0; + + return true; + + }, + + /** + * This creates a camera fade effect. It works by filling the game with the + * color specified, over the duration given, ending with a solid fill. + * + * You can use this for things such as transitioning to a new scene. + * + * The game will be left 'filled' at the end of this effect, likely obscuring + * everything. In order to reset it you can call `Camera.resetFX` and it will clear the + * fade. Or you can call `Camera.flash` with the same color as the fade, and it will + * reverse the process, bringing the game back into view again. + * + * When the effect ends the signal Camera.onFadeComplete is dispatched. + * + * @method Phaser.Camera#fade + * @param {numer} [color=0x000000] - The color the game will fade to. I.e. 0x000000 for black, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the fade in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + fade: function (color, duration, force) { + + if (color === undefined) { color = 0x000000; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 0; + + this._fxDuration = duration; + this._fxType = 1; + + return true; + + }, + + /** + * The camera update loop. This is called automatically by the core game loop. + * * @method Phaser.Camera#update + * @protected */ update: function () { + if (this._fxDuration > 0) + { + this.updateFX(); + } + if (this.target) { this.updateTarget(); } + if (this._shake.duration > 0) + { + this.updateShake(); + } + if (this.bounds) { this.checkBounds(); @@ -14545,26 +14825,90 @@ Phaser.Camera.prototype = { if (this.roundPx) { this.view.floor(); + this._shake.x = Math.floor(this._shake.x); + this._shake.y = Math.floor(this._shake.y); } - this.displayObject.position.x = -this.view.x; - this.displayObject.position.y = -this.view.y; + this.displayObject.position.x = -(this.view.x + this._shake.x); + this.displayObject.position.y = -(this.view.y + this._shake.y); }, /** - * Internal method + * Update the camera flash and fade effects. + * + * @method Phaser.Camera#updateFX + * @private + */ + updateFX: function () { + + if (this._fxType === 0) + { + // flash + this.fx.alpha -= this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha <= 0) + { + this._fxDuration = 0; + this.fx.alpha = 0; + this.onFlashComplete.dispatch(); + } + } + else + { + // fade + this.fx.alpha += this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha >= 1) + { + this._fxDuration = 0; + this.fx.alpha = 1; + this.onFadeComplete.dispatch(); + } + } + + }, + + /** + * Update the camera shake effect. + * + * @method Phaser.Camera#updateShake + * @private + */ + updateShake: function () { + + this._shake.duration -= this.game.time.elapsedMS; + + if (this._shake.duration <= 0) + { + this.onShakeComplete.dispatch(); + this._shake.x = 0; + this._shake.y = 0; + } + else + { + if (this._shake.horizontal) + { + this._shake.x = this.game.rnd.frac() * this._shake.intensity * this.view.width * 2 - this._shake.intensity * this.view.width; + } + + if (this._shake.vertical) + { + this._shake.y = this.game.rnd.frac() * this._shake.intensity * this.view.height * 2 - this._shake.intensity * this.view.height; + } + } + + }, + + /** + * Internal method that handles tracking a sprite. + * * @method Phaser.Camera#updateTarget * @private */ updateTarget: function () { - this._targetPosition.copyFrom(this.target); - - if (this.target.parent) - { - this._targetPosition.multiply(this.target.parent.worldTransform.a, this.target.parent.worldTransform.d); - } + this._targetPosition.copyFrom(this.target.world); if (this.deadzone) { @@ -14572,34 +14916,35 @@ Phaser.Camera.prototype = { if (this._edge < this.deadzone.left) { - this.view.x = this._targetPosition.x - this.deadzone.left; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.left, this.lerp.x); } else if (this._edge > this.deadzone.right) { - this.view.x = this._targetPosition.x - this.deadzone.right; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.right, this.lerp.x); } this._edge = this._targetPosition.y - this.view.y; if (this._edge < this.deadzone.top) { - this.view.y = this._targetPosition.y - this.deadzone.top; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.top, this.lerp.y); } else if (this._edge > this.deadzone.bottom) { - this.view.y = this._targetPosition.y - this.deadzone.bottom; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.bottom, this.lerp.y); } } else { - this.view.x = this._targetPosition.x - this.view.halfWidth; - this.view.y = this._targetPosition.y - this.view.halfHeight; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.view.halfWidth, this.lerp.x); + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.view.halfHeight, this.lerp.y); } }, /** * Update the Camera bounds to match the game world. + * * @method Phaser.Camera#setBoundsToWorld */ setBoundsToWorld: function () { @@ -14613,36 +14958,68 @@ Phaser.Camera.prototype = { /** * Method called to ensure the camera doesn't venture outside of the game world. + * Called automatically by Camera.update. + * * @method Phaser.Camera#checkBounds + * @protected */ checkBounds: function () { this.atLimit.x = false; this.atLimit.y = false; + var vx = this.view.x + this._shake.x; + var vw = this.view.right + this._shake.x; + var vy = this.view.y + this._shake.y; + var vh = this.view.bottom + this._shake.y; + // Make sure we didn't go outside the cameras bounds - if (this.view.x <= this.bounds.x * this.scale.x) + if (vx <= this.bounds.x * this.scale.x) { this.atLimit.x = true; this.view.x = this.bounds.x * this.scale.x; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.right >= this.bounds.right * this.scale.x) + if (vw >= this.bounds.right * this.scale.x) { this.atLimit.x = true; this.view.x = (this.bounds.right * this.scale.x) - this.width; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.y <= this.bounds.top * this.scale.y) + if (vy <= this.bounds.top * this.scale.y) { this.atLimit.y = true; this.view.y = this.bounds.top * this.scale.y; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } - if (this.view.bottom >= this.bounds.bottom * this.scale.y) + if (vh >= this.bounds.bottom * this.scale.y) { this.atLimit.y = true; this.view.y = (this.bounds.bottom * this.scale.y) - this.height; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } }, @@ -14683,15 +15060,38 @@ Phaser.Camera.prototype = { /** * Resets the camera back to 0,0 and un-follows any object it may have been tracking. + * Also immediately resets any camera effects that may have been running such as + * shake, flash or fade. * * @method Phaser.Camera#reset */ reset: function () { this.target = null; + this.view.x = 0; this.view.y = 0; + this._shake.duration = 0; + + this.resetFX(); + + }, + + /** + * Resets any active FX, such as a fade or flash and immediately clears it. + * Useful to calling after a fade in order to remove the fade from the Stage. + * + * @method Phaser.Camera#resetFX + */ + resetFX: function () { + + this.fx.clear(); + + this.fx.alpha = 0; + + this._fxDuration = 0; + } }; @@ -14706,7 +15106,9 @@ Phaser.Camera.prototype.constructor = Phaser.Camera; Object.defineProperty(Phaser.Camera.prototype, "x", { get: function () { + return this.view.x; + }, set: function (value) { @@ -14729,7 +15131,9 @@ Object.defineProperty(Phaser.Camera.prototype, "x", { Object.defineProperty(Phaser.Camera.prototype, "y", { get: function () { + return this.view.y; + }, set: function (value) { @@ -14752,8 +15156,11 @@ Object.defineProperty(Phaser.Camera.prototype, "y", { Object.defineProperty(Phaser.Camera.prototype, "position", { get: function () { - this._position.set(this.view.centerX, this.view.centerY); + + this._position.set(this.view.x, this.view.y); + return this._position; + }, set: function (value) { @@ -14777,11 +15184,15 @@ Object.defineProperty(Phaser.Camera.prototype, "position", { Object.defineProperty(Phaser.Camera.prototype, "width", { get: function () { + return this.view.width; + }, set: function (value) { + this.view.width = value; + } }); @@ -14794,18 +15205,22 @@ Object.defineProperty(Phaser.Camera.prototype, "width", { Object.defineProperty(Phaser.Camera.prototype, "height", { get: function () { + return this.view.height; + }, set: function (value) { + this.view.height = value; + } }); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -15034,7 +15449,7 @@ Phaser.State.prototype.constructor = Phaser.State; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -15825,20 +16240,63 @@ Object.defineProperty(Phaser.StateManager.prototype, "created", { /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** -* A Signal is an event dispatch mechanism that supports broadcasting to multiple listeners. +* Signals are what Phaser uses to handle events and event dispatching. +* You can listen for a Signal by binding a callback / function to it. +* This is done by using either `Signal.add` or `Signal.addOnce`. * -* Event listeners are uniquely identified by the listener/callback function and the context. +* For example you can listen for a touch or click event from the Input Manager +* by using its `onDown` Signal: +* +* `game.input.onDown.add(function() { ... });` +* +* Rather than inline your function, you can pass a reference: +* +* `game.input.onDown.add(clicked, this);` +* `function clicked () { ... }` +* +* In this case the second argument (`this`) is the context in which your function should be called. +* +* Now every time the InputManager dispatches the `onDown` signal (or event), your function +* will be called. +* +* Very often a Signal will send arguments to your function. +* This is specific to the Signal itself. +* If you're unsure then check the documentation, or failing that simply do: +* +* `Signal.add(function() { console.log(arguments); })` +* +* and it will log all of the arguments your function received from the Signal. +* +* Sprites have lots of default signals you can listen to in their Events class, such as: +* +* `sprite.events.onKilled` * +* Which is called automatically whenever the Sprite is killed. +* There are lots of other events, see the Events component for a list. +* +* As well as listening to pre-defined Signals you can also create your own: +* +* `var mySignal = new Phaser.Signal();` +* +* This creates a new Signal. You can bind a callback to it: +* +* `mySignal.add(myCallback, this);` +* +* and then finally when ready you can dispatch the Signal: +* +* `mySignal.dispatch(your arguments);` +* +* And your callback will be invoked. See the dispatch method for more details. +* * @class Phaser.Signal * @constructor */ -Phaser.Signal = function () { -}; +Phaser.Signal = function () {}; Phaser.Signal.prototype = { @@ -15884,7 +16342,7 @@ Phaser.Signal.prototype = { * @property {function} _boundDispatch - The bound dispatch function, if any. * @private */ - _boundDispatch: true, + _boundDispatch: false, /** * @method Phaser.Signal#validateListener @@ -16288,7 +16746,7 @@ Phaser.Signal.prototype.constructor = Phaser.Signal; /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16487,7 +16945,7 @@ Phaser.SignalBinding.prototype.constructor = Phaser.SignalBinding; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16735,7 +17193,7 @@ Object.defineProperty(Phaser.Filter.prototype, 'height', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16860,7 +17318,7 @@ Phaser.Plugin.prototype.constructor = Phaser.Plugin; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -17146,7 +17604,7 @@ Phaser.PluginManager.prototype.constructor = Phaser.PluginManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -17567,7 +18025,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -17856,7 +18314,7 @@ Phaser.Group.prototype.add = function (child, silent) { if (child.parent !== this) { - if (child.body && child.parent) + if (child.body && child.parent && child.parent.hash) { child.parent.removeFromHash(child); } @@ -18366,6 +18824,29 @@ Phaser.Group.prototype.getIndex = function (child) { }; +/** +* Searches the Group for the first instance of a child with the `name` +* property matching the given argument. Should more than one child have +* the same name only the first instance is returned. +* +* @method Phaser.Group#getByName +* @param {string} name - The name to search for. +* @return {any} The first child with a matching name, or null if none were found. +*/ +Phaser.Group.prototype.getByName = function (name) { + + for (var i = 0; i < this.children.length; i++) + { + if (this.children[i].name === name) + { + return this.children[i]; + } + } + + return null; + +}; + /** * Replaces a child of this group with the given newChild. The newChild cannot be a member of this group. * @@ -19887,7 +20368,7 @@ Object.defineProperty(Phaser.Group.prototype, "angle", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -19954,14 +20435,10 @@ Phaser.World.prototype.boot = function () { this.camera = new Phaser.Camera(this.game, 0, 0, 0, this.game.width, this.game.height); - this.camera.displayObject = this; - - this.camera.scale = this.scale; - - this.game.camera = this.camera; - this.game.stage.addChild(this); + this.camera.boot(); + }; /** @@ -20063,6 +20540,9 @@ Phaser.World.prototype.shutdown = function () { * If they do it will reposition the object to the opposite side of the world, creating a wrap-around effect. * If sprite has a P2 body then the body (sprite.body) should be passed as first parameter to the function. * +* Please understand there are limitations to this method. For example if you have scaled the World +* then objects won't always be re-positioned correctly, and you'll need to employ your own wrapping function. +* * @method Phaser.World#wrap * @param {Phaser.Sprite|Phaser.Image|Phaser.TileSprite|Phaser.Text} sprite - The object you wish to wrap around the world bounds. * @param {number} [padding=0] - Extra padding added equally to the sprite.x and y coordinates before checking if within the world bounds. Ignored if useBounds is true. @@ -20186,7 +20666,7 @@ Object.defineProperty(Phaser.World.prototype, "height", { Object.defineProperty(Phaser.World.prototype, "centerX", { get: function () { - return this.bounds.halfWidth; + return this.bounds.halfWidth + this.bounds.x; } }); @@ -20199,7 +20679,7 @@ Object.defineProperty(Phaser.World.prototype, "centerX", { Object.defineProperty(Phaser.World.prototype, "centerY", { get: function () { - return this.bounds.halfHeight; + return this.bounds.halfHeight + this.bounds.y; } }); @@ -20250,7 +20730,7 @@ Object.defineProperty(Phaser.World.prototype, "randomY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -20627,7 +21107,7 @@ Phaser.Game = function (width, height, renderer, parent, state, transparent, ant /** * @property {boolean} forceSingleUpdate - Should the game loop force a logic update, regardless of the delta timer? Set to true if you know you need this. You can toggle it on the fly. */ - this.forceSingleUpdate = false; + this.forceSingleUpdate = true; /** * @property {number} _nextNotification - The soonest game.time.time value that the next fpsProblemNotifier can be dispatched. @@ -20931,7 +21411,14 @@ Phaser.Game.prototype = { */ setUpRenderer: function () { - this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + if (this.config['canvas']) + { + this.canvas = this.config['canvas']; + } + else + { + this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + } if (this.config['canvasStyle']) { @@ -21253,23 +21740,29 @@ Phaser.Game.prototype = { this.state.destroy(); this.sound.destroy(); - this.scale.destroy(); this.stage.destroy(); this.input.destroy(); this.physics.destroy(); + this.plugins.destroy(); this.state = null; - this.cache = null; - this.input = null; - this.load = null; this.sound = null; + this.scale = null; this.stage = null; + this.input = null; + this.physics = null; + this.plugins = null; + + this.cache = null; + this.load = null; this.time = null; this.world = null; + this.isBooted = false; this.renderer.destroy(false); + Phaser.Canvas.removeFromDOM(this.canvas); Phaser.GAMES[this.id] = null; @@ -21289,8 +21782,14 @@ Phaser.Game.prototype = { if (!this._paused) { this._paused = true; + this.time.gamePaused(); - this.sound.setMute(); + + if (this.sound.muteOnPause) + { + this.sound.setMute(); + } + this.onPause.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -21315,9 +21814,16 @@ Phaser.Game.prototype = { if (this._paused && !this._codePaused) { this._paused = false; + this.time.gameResumed(); + this.input.reset(); - this.sound.unsetMute(); + + if (this.sound.muteOnPause) + { + this.sound.unsetMute(); + } + this.onResume.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -21421,7 +21927,7 @@ Object.defineProperty(Phaser.Game.prototype, "paused", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22509,7 +23015,7 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22517,10 +23023,10 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { * The Mouse class is responsible for handling all aspects of mouse interaction with the browser. * * It captures and processes mouse events that happen on the game canvas object. -* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released +* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released * when not over the game. * -* You should not normally access this class directly, but instead use a Phaser.Pointer object +* You should not normally access this class directly, but instead use a Phaser.Pointer object * which normalises all game input for you, including accurate button handling. * * @class Phaser.Mouse @@ -22894,7 +23400,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse up event from the window. - * + * * @method Phaser.Mouse#onMouseUpGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -22916,7 +23422,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse out event from the window. - * + * * @method Phaser.Mouse#onMouseOutGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -22941,7 +23447,7 @@ Phaser.Mouse.prototype = { // the browser opening a context-menu or similar. // On OS X Chrome especially this is bad news, as it blocks // us then getting a mouseup event, so we need to force that through. - // + // // No matter what, we must cancel the left and right buttons this.input.mousePointer.stop(event); @@ -23070,7 +23576,7 @@ Phaser.Mouse.prototype = { /** * Internal pointerLockChange handler. - * + * * @method Phaser.Mouse#pointerLockChange * @param {Event} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -23131,6 +23637,7 @@ Phaser.Mouse.prototype = { } window.removeEventListener('mouseup', this._onMouseUpGlobal, true); + window.removeEventListener('mouseout', this._onMouseOutGlobal, true); document.removeEventListener('pointerlockchange', this._pointerLockChange, true); document.removeEventListener('mozpointerlockchange', this._pointerLockChange, true); @@ -23228,7 +23735,7 @@ Object.defineProperties(WheelEventProxy.prototype, { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -23680,7 +24187,7 @@ Phaser.MSPointer.prototype.constructor = Phaser.MSPointer; /** * @author Richard Davey * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -24001,7 +24508,7 @@ Object.defineProperty(Phaser.DeviceButton.prototype, "duration", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25237,7 +25744,7 @@ Phaser.PointerMode = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25701,7 +26208,7 @@ Phaser.Touch.prototype.constructor = Phaser.Touch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26655,13 +27162,19 @@ Phaser.InputHandler.prototype = { data.isUp = false; data.timeDown = this.game.time.time; + // It's possible the onInputDown event creates a new Sprite that is on-top of this one, so we ought to force a Pointer update + pointer.dirty = true; + if (this.sprite && this.sprite.events) { this.sprite.events.onInputDown$dispatch(this.sprite, pointer); + // The onInputDown event might have destroyed this sprite. + if (this.sprite === null) + { + return; + } } - // It's possible the onInputDown event created a new Sprite that is on-top of this one, so we ought to force a Pointer update - pointer.dirty = true; // Start drag if (this.draggable && this.isDragged === false) @@ -27019,13 +27532,13 @@ Phaser.InputHandler.prototype = { { if (this.dragFromCenter) { - this.sprite.centerOn(pointer.x, pointer.y); - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); - } - else - { - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); + var bounds = this.sprite.getBounds(); + + this.sprite.cameraOffset.x = this.globalToLocalX(pointer.x) + (this.sprite.cameraOffset.x - bounds.centerX); + this.sprite.cameraOffset.y = this.globalToLocalY(pointer.y) + (this.sprite.cameraOffset.y - bounds.centerY); } + + this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); } else { @@ -27307,7 +27820,7 @@ Phaser.InputHandler.prototype.constructor = Phaser.InputHandler; /** * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27970,7 +28483,7 @@ Phaser.Gamepad.PS3XC_STICK_RIGHT_Y = 3; // analog stick, range -1..1 /** * @author @karlmacklin * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28525,7 +29038,7 @@ Phaser.SinglePad.prototype.constructor = Phaser.SinglePad; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28890,7 +29403,7 @@ Phaser.Key.prototype.constructor = Phaser.Key; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28900,6 +29413,10 @@ Phaser.Key.prototype.constructor = Phaser.Key; * _Note_: many keyboards are unable to process certain combinations of keys due to hardware limitations known as ghosting. * See http://www.html5gamedevs.com/topic/4876-impossible-to-use-more-than-2-keyboard-input-buttons-at-the-same-time/ for more details. * +* Also please be aware that certain browser extensions can disable or override Phaser keyboard handling. +* For example the Chrome extension vimium is known to disable Phaser from using the D key. And there are others. +* So please check your extensions before opening Phaser issues. +* * @class Phaser.Keyboard * @constructor * @param {Phaser.Game} game - A reference to the currently running game. @@ -29704,7 +30221,7 @@ for (var key in Phaser.KeyCode) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29712,7 +30229,7 @@ Phaser.Component = function () {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29758,7 +30275,7 @@ Phaser.Component.Angle.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29799,7 +30316,7 @@ Phaser.Component.Animation.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29854,7 +30371,7 @@ Phaser.Component.AutoCull.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29975,7 +30492,7 @@ Phaser.Component.Bounds.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30072,7 +30589,7 @@ Phaser.Component.BringToTop.prototype.moveDown = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30428,7 +30945,7 @@ Phaser.Component.Core.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30546,7 +31063,7 @@ Phaser.Component.Crop.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30615,7 +31132,7 @@ Phaser.Component.Delta.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30695,6 +31212,8 @@ Phaser.Component.Destroy.prototype = { this.events.destroy(); } + this.game.tweens.removeFrom(this); + var i = this.children.length; if (destroyChildren) @@ -30776,7 +31295,7 @@ Phaser.Component.Destroy.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30970,7 +31489,7 @@ for (var prop in Phaser.Events.prototype) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31059,7 +31578,7 @@ Phaser.Component.FixedToCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31166,7 +31685,7 @@ Phaser.Component.Health.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31203,7 +31722,7 @@ Phaser.Component.InCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31276,7 +31795,7 @@ Phaser.Component.InputEnabled.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31316,6 +31835,12 @@ Phaser.Component.InWorld.preUpdate = function () { else { this.renderable = false; + + if (this.outOfCameraBoundsKill) + { + this.kill(); + return false; + } } } @@ -31375,6 +31900,15 @@ Phaser.Component.InWorld.prototype = { */ outOfBoundsKill: false, + /** + * If this and the `autoCull` property are both set to `true`, then the `kill` method + * is called as soon as the Game Object leaves the camera bounds. + * + * @property {boolean} outOfCameraBoundsKill + * @default + */ + outOfCameraBoundsKill: false, + /** * @property {boolean} _outOfBoundsFired - Internal state var. * @private @@ -31401,7 +31935,7 @@ Phaser.Component.InWorld.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31530,7 +32064,7 @@ Phaser.Component.LifeSpan.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31571,6 +32105,8 @@ Phaser.Component.LoadTexture.prototype = { * to use a Texture Atlas later in development by simply searching your code for 'PENDING_ATLAS' * and swapping it to be the key of the atlas data. * + * Note: You cannot use a RenderTexture as a texture for a TileSprite. + * * @method * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache Image entry, or an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. * @param {string|number} [frame] - If this Sprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. @@ -31615,6 +32151,10 @@ Phaser.Component.LoadTexture.prototype = { { setFrame = !this.animations.loadFrameData(cache.getFrameData(key.key, Phaser.Cache.BITMAPDATA), frame); } + else + { + setFrame = !this.animations.loadFrameData(key.frameData, 0); + } } else if (Phaser.Video && key instanceof Phaser.Video) { @@ -31627,6 +32167,12 @@ Phaser.Component.LoadTexture.prototype = { key.onChangeSource.add(this.resizeFrame, this); this.texture.valid = valid; } + else if (Phaser.Tilemap && key instanceof Phaser.TilemapLayer) + { + // this.customRender = true; + + this.setTexture(PIXI.Texture.fromCanvas(key.canvas)); + } else if (key instanceof PIXI.Texture) { this.setTexture(key); @@ -31810,7 +32356,7 @@ Phaser.Component.LoadTexture.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31846,7 +32392,7 @@ Phaser.Component.Overlap.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31992,7 +32538,7 @@ Phaser.Component.PhysicsBody.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32056,7 +32602,7 @@ Phaser.Component.Reset.prototype.reset = function (x, y, health) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32224,7 +32770,7 @@ Phaser.Component.ScaleMinMax.prototype = { }; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32278,7 +32824,7 @@ Phaser.Component.Smoothed.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32528,7 +33074,7 @@ Phaser.GameObjectFactory.prototype = { * @param {number} y - The y coordinate of the TileSprite. The coordinate is relative to any parent container this TileSprite may be in. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - The image used as a texture by this display object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} [frame] - If a Texture Atlas or Sprite Sheet is used this allows you to specify the frame to be used. Use either an integer for a Frame ID or a string for a frame name. * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. * @return {Phaser.TileSprite} The newly created TileSprite object. @@ -32841,7 +33387,7 @@ Phaser.GameObjectFactory.prototype.constructor = Phaser.GameObjectFactory; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33009,7 +33555,7 @@ Phaser.GameObjectCreator.prototype = { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. * @return {Phaser.TileSprite} The newly created tileSprite object. */ @@ -33271,7 +33817,7 @@ Phaser.GameObjectCreator.prototype.constructor = Phaser.GameObjectCreator; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33388,7 +33934,7 @@ Phaser.Sprite.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33481,7 +34027,7 @@ Phaser.Image.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34077,7 +34623,7 @@ Phaser.Button.prototype.onInputUpHandler = function (sprite, pointer, isOver) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34119,7 +34665,7 @@ Phaser.SpriteBatch.prototype.constructor = Phaser.SpriteBatch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34241,11 +34787,16 @@ Phaser.BitmapData = function (game, key, width, height) { */ this.texture = new PIXI.Texture(this.baseTexture); + /** + * @property {Phaser.FrameData} frameData - The FrameData container this BitmapData uses for rendering. + */ + this.frameData = new Phaser.FrameData(); + /** * @property {Phaser.Frame} textureFrame - The Frame this BitmapData uses for rendering. * @default */ - this.textureFrame = new Phaser.Frame(0, 0, 0, width, height, 'bitmapData'); + this.textureFrame = this.frameData.addFrame(new Phaser.Frame(0, 0, 0, width, height, 'bitmapData')); this.texture.frame = this.textureFrame; @@ -35374,6 +35925,7 @@ Phaser.BitmapData.prototype = { } this._image = source.tintedTexture; + this._pos.set(0); } } else @@ -35976,6 +36528,8 @@ Phaser.BitmapData.prototype = { */ destroy: function () { + this.frameData.destroy(); + this.texture.destroy(true); PIXI.CanvasPool.remove(this); @@ -39748,7 +40302,7 @@ PIXI.CanvasGraphics.updateGraphicsTint = function(graphics) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -39790,6 +40344,12 @@ Phaser.Graphics = function (game, x, y) { */ this.physicsType = Phaser.SPRITE; + /** + * @property {Phaser.Point} anchor - Required for a Graphics shape to work as a Physics body, do not modify this value. + * @private + */ + this.anchor = new Phaser.Point(); + PIXI.Graphics.call(this); Phaser.Component.Core.init.call(this, game, x, y, '', null); @@ -39958,7 +40518,7 @@ Phaser.Graphics.prototype.drawTriangles = function(vertices, indices, cull) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -40112,7 +40672,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -40146,6 +40706,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) * @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke). * @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used. * @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap. +* @param {number} [style.maxLines=0] - The maximum number of lines to be shown for wrapped text. * @param {number} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop. */ Phaser.Text = function (game, x, y, text, style) { @@ -40396,6 +40957,7 @@ Phaser.Text.prototype.setShadow = function (x, y, color, blur, shadowStroke, sha * @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke). * @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used. * @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap. +* @param {number} [style.maxLines=0] - The maximum number of lines to be shown for wrapped text. * @param {number|array} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop. * @return {Phaser.Text} This Text instance. */ @@ -40412,6 +40974,7 @@ Phaser.Text.prototype.setStyle = function (style) { style.strokeThickness = style.strokeThickness || 0; style.wordWrap = style.wordWrap || false; style.wordWrapWidth = style.wordWrapWidth || 100; + style.maxLines = style.maxLines || 0; style.shadowOffsetX = style.shadowOffsetX || 0; style.shadowOffsetY = style.shadowOffsetY || 0; style.shadowColor = style.shadowColor || 'rgba(0,0,0,0)'; @@ -40448,6 +41011,7 @@ Phaser.Text.prototype.setStyle = function (style) { this._fontComponents = components; style.font = this.componentsToFont(this._fontComponents); + this.style = style; this.dirty = true; @@ -40483,7 +41047,14 @@ Phaser.Text.prototype.updateText = function () { var maxLineWidth = 0; var fontProperties = this.determineFontProperties(this.style.font); - for (var i = 0; i < lines.length; i++) + var drawnLines = lines.length; + + if (this.style.maxLines > 0 && this.style.maxLines < lines.length) + { + drawnLines = this.style.maxLines; + } + + for (var i = 0; i < drawnLines; i++) { if (tabs === 0) { @@ -40540,7 +41111,7 @@ Phaser.Text.prototype.updateText = function () { // Calculate text height var lineHeight = fontProperties.fontSize + this.style.strokeThickness + this.padding.y; - var height = lineHeight * lines.length; + var height = lineHeight * drawnLines; var lineSpacing = this._lineSpacing; if (lineSpacing < 0 && Math.abs(lineSpacing) > lineHeight) @@ -40551,7 +41122,7 @@ Phaser.Text.prototype.updateText = function () { // Adjust for line spacing if (lineSpacing !== 0) { - height += lineSpacing * lines.length; + height += (lineSpacing > 0) ? lineSpacing * lines.length : lineSpacing * (lines.length - 1); } this.canvas.height = height * this._res; @@ -40584,7 +41155,7 @@ Phaser.Text.prototype.updateText = function () { this._charCount = 0; // Draw text line by line - for (i = 0; i < lines.length; i++) + for (i = 0; i < drawnLines; i++) { // Split the line by @@ -41189,18 +41760,27 @@ Phaser.Text.prototype.fontToComponents = function (font) { if (m) { + var family = m[5].trim(); + + // If it looks like the value should be quoted, but isn't, then quote it. + if (!/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(family) && !/['",]/.exec(family)) + { + family = "'" + family + "'"; + } + return { font: font, fontStyle: m[1] || 'normal', fontVariant: m[2] || 'normal', fontWeight: m[3] || 'normal', fontSize: m[4] || 'medium', - fontFamily: m[5] + fontFamily: family }; } else { console.warn("Phaser.Text - unparsable CSS font: " + font); + return { font: font }; @@ -42273,7 +42853,7 @@ Phaser.Text.fontPropertiesContext = Phaser.Text.fontPropertiesCanvas.getContext( /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -42386,7 +42966,7 @@ Phaser.BitmapText = function (game, x, y, font, text, size, align) { * @property {string} _text - Internal cache var. * @private */ - this._text = text; + this._text = text.toString() || ''; /** * @property {string} _data - Internal cache var. @@ -42981,7 +43561,7 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'smoothed', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43586,7 +44166,7 @@ Object.defineProperty(Phaser.RetroFont.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd, Richard Davey +* @copyright 2016 Photon Storm Ltd, Richard Davey * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43796,7 +44376,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43849,7 +44429,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. -* @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a RenderTexture, PIXI.Texture or BitmapData. +* @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. */ Phaser.TileSprite = function (game, x, y, width, height, key, frame) { @@ -44011,7 +44591,7 @@ Phaser.TileSprite.prototype.reset = function(x, y) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45388,7 +45968,7 @@ Phaser.Device.isAndroidStockBrowser = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45696,7 +46276,7 @@ Phaser.Canvas = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45865,7 +46445,7 @@ Phaser.RequestAnimationFrame.prototype.constructor = Phaser.RequestAnimationFram /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46761,16 +47341,29 @@ Phaser.Math = { }, /** - * Force a value within the boundaries by clamping `x` to the range `[a, b]`. + * Force a value within the boundaries by clamping it to the range `min`, `max`. * * @method Phaser.Math#clamp - * @param {number} x - * @param {number} a - * @param {number} b - * @return {number} + * @param {float} v - The value to be clamped. + * @param {float} min - The minimum bounds. + * @param {float} max - The maximum bounds. + * @return {number} The clamped value. */ - clamp: function (x, a, b) { - return ( x < a ) ? a : ( ( x > b ) ? b : x ); + clamp: function (v, min, max) { + + if (v < min) + { + return min; + } + else if (max < v) + { + return max; + } + else + { + return v; + } + }, /** @@ -46819,24 +47412,29 @@ Phaser.Math = { * Smoothstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smoothstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smoothstep: function (x, min, max) { + + // Scale, bias and saturate x to 0..1 range x = Math.max(0, Math.min(1, (x - min) / (max - min))); + + // Evaluate polynomial return x * x * (3 - 2 * x); + }, /** * Smootherstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smootherstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smootherstep: function (x, min, max) { x = Math.max(0, Math.min(1, (x - min) / (max - min))); @@ -46901,7 +47499,7 @@ Phaser.Math.degToRad = function degToRad (degrees) { }; /** -* Convert degrees to radians. +* Convert radians to degrees. * * @method Phaser.Math#radToDeg * @param {number} radians - Angle in radians. @@ -46915,7 +47513,7 @@ Phaser.Math.radToDeg = function radToDeg (radians) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47272,7 +47870,7 @@ Phaser.RandomDataGenerator.prototype.constructor = Phaser.RandomDataGenerator; /** * @author Timo Hausmann * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47624,7 +48222,7 @@ Phaser.QuadTree.prototype.constructor = Phaser.QuadTree; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47774,8 +48372,8 @@ Phaser.Net.prototype = { }, /** - * Returns the Query String as an object. - * If you specify a parameter it will return just the value of that parameter, should it exist. + * Takes a Uniform Resource Identifier (URI) component (previously created by encodeURIComponent or by a similar routine) and + * decodes it, replacing \ with spaces in the return. Used internally by the Net classes. * * @method Phaser.Net#decodeURI * @param {string} value - The URI component to be decoded. @@ -47791,7 +48389,7 @@ Phaser.Net.prototype.constructor = Phaser.Net; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -48152,7 +48750,7 @@ Phaser.TweenManager.prototype.constructor = Phaser.TweenManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -48229,8 +48827,9 @@ Phaser.Tween = function (target, game, manager) { this.onStart = new Phaser.Signal(); /** - * The onLoop event is fired if the Tween or any child tween loops. + * The onLoop event is fired if the Tween, or any child tweens loop. * It will be sent 2 parameters: the target object and this tween. + * * @property {Phaser.Signal} onLoop */ this.onLoop = new Phaser.Signal(); @@ -48699,10 +49298,9 @@ Phaser.Tween.prototype = { /** * Set how many times this tween and all of its children will repeat. * A tween (A) with 3 children (B,C,D) with a `repeatAll` value of 2 would play as: ABCDABCD before completing. - * When all child tweens have completed Tween.onLoop will be dispatched. * - * @method Phaser.Tween#repeat - * @param {number} total - How many times this tween and all children should repeat before completing. Set to zero to remove an active repeat. Set to -1 to repeat forever. + * @method Phaser.Tween#repeatAll + * @param {number} [total=0] - How many times this tween and all children should repeat before completing. Set to zero to remove an active repeat. Set to -1 to repeat forever. * @return {Phaser.Tween} This tween. Useful for method chaining. */ repeatAll: function (total) { @@ -48750,7 +49348,8 @@ Phaser.Tween.prototype = { }, /** - * Enables the looping of this tween and all child tweens. If this tween has no children this setting has no effect. + * Enables the looping of this tween. The tween will loop forever, and onComplete will never fire. + * * If `value` is `true` then this is the same as setting `Tween.repeatAll(-1)`. * If `value` is `false` it is the same as setting `Tween.repeatAll(0)` and will reset the `repeatCounter` to zero. * @@ -48761,21 +49360,14 @@ Phaser.Tween.prototype = { * .to({ y: 0 }, 1000, Phaser.Easing.Linear.None) * .loop(); * @method Phaser.Tween#loop - * @param {boolean} [value=true] - If `true` this tween and any child tweens will loop once they reach the end. Set to `false` to remove an active loop. + * @param {boolean} [value=true] - If `true` this tween will loop once it reaches the end. Set to `false` to remove an active loop. * @return {Phaser.Tween} This tween. Useful for method chaining. */ loop: function (value) { if (value === undefined) { value = true; } - if (value) - { - this.repeatAll(-1); - } - else - { - this.repeatCounter = 0; - } + this.repeatCounter = (value) ? -1 : 0; return this; @@ -48881,7 +49473,7 @@ Phaser.Tween.prototype = { */ update: function (time) { - if (this.pendingDelete) + if (this.pendingDelete || !this.target) { return false; } @@ -48915,7 +49507,7 @@ Phaser.Tween.prototype = { } else if (status === Phaser.TweenData.LOOPED) { - if (this.repeatCounter === -1) + if (this.timeline[this.current].repeatCounter === -1) { this.onLoop.dispatch(this.target, this); } @@ -48923,6 +49515,7 @@ Phaser.Tween.prototype = { { this.onRepeat.dispatch(this.target, this); } + return true; } else if (status === Phaser.TweenData.COMPLETE) @@ -49012,13 +49605,8 @@ Phaser.Tween.prototype = { return null; } - if (frameRate === undefined) { - frameRate = 60; - } - - if (data === undefined) { - data = []; - } + if (frameRate === undefined) { frameRate = 60; } + if (data === undefined) { data = []; } // Populate the tween data for (var i = 0; i < this.timeline.length; i++) @@ -49077,7 +49665,7 @@ Phaser.Tween.prototype.constructor = Phaser.Tween; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -49154,6 +49742,12 @@ Phaser.TweenData = function (parent) { */ this.repeatDelay = 0; + /** + * @property {number} repeatTotal - The total number of times this Tween will repeat. + * @readonly + */ + this.repeatTotal = 0; + /** * @property {boolean} interpolate - True if the Tween will use interpolation (i.e. is an Array to Array tween) * @default @@ -49270,7 +49864,7 @@ Phaser.TweenData.prototype = { this.duration = duration; this.easingFunction = ease; this.delay = delay; - this.repeatCounter = repeat; + this.repeatTotal = repeat; this.yoyo = yoyo; this.isFrom = false; @@ -49298,7 +49892,7 @@ Phaser.TweenData.prototype = { this.duration = duration; this.easingFunction = ease; this.delay = delay; - this.repeatCounter = repeat; + this.repeatTotal = repeat; this.yoyo = yoyo; this.isFrom = true; @@ -49348,6 +49942,7 @@ Phaser.TweenData.prototype = { this.value = 0; this.yoyoCounter = 0; + this.repeatCounter = this.repeatTotal; return this; @@ -49651,7 +50246,7 @@ Phaser.TweenData.prototype.constructor = Phaser.TweenData; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -50226,7 +50821,7 @@ Phaser.Easing.Power4 = Phaser.Easing.Quintic.Out; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -50855,7 +51450,7 @@ Phaser.Time.prototype.constructor = Phaser.Time; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -51612,7 +52207,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -51622,7 +52217,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; * It consists of a delay, which is a value in milliseconds after which the event will fire. * When the event fires it calls a specific callback with the specified arguments. * -* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#add}, or {@link Phaser.Timer#add} methods to create a new event. +* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#repeat}, or {@link Phaser.Timer#loop} methods to create a new event. * * @class Phaser.TimerEvent * @constructor @@ -51691,7 +52286,7 @@ Phaser.TimerEvent.prototype.constructor = Phaser.TimerEvent; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -52260,7 +52855,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frameName', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53082,7 +53677,7 @@ Phaser.Animation.generateFrameNames = function (prefix, start, stop, suffix, zer /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53313,7 +53908,7 @@ Phaser.Frame.prototype.constructor = Phaser.Frame; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53559,6 +54154,18 @@ Phaser.FrameData.prototype = { return output; + }, + + /** + * Destroys this FrameData collection by nulling the _frames and _frameNames arrays. + * + * @method Phaser.FrameData#destroy + */ + destroy: function () { + + this._frames = null; + this._frameNames = null; + } }; @@ -53580,7 +54187,7 @@ Object.defineProperty(Phaser.FrameData.prototype, "total", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53908,7 +54515,7 @@ Phaser.AnimationParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -55931,7 +56538,7 @@ Phaser.Cache.prototype.constructor = Phaser.Cache; /* jshint wsh:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -58968,7 +59575,7 @@ Phaser.Loader.prototype.constructor = Phaser.Loader; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59137,7 +59744,7 @@ Phaser.LoaderParser = { /** * @author Jeremy Dowell * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59267,7 +59874,7 @@ Phaser.AudioSprite.prototype.constructor = Phaser.AudioSprite; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59856,7 +60463,7 @@ Phaser.Sound.prototype = { if (volume === undefined) { volume = this._volume; } if (loop === undefined) { loop = this.loop; } - this.position = position; + this.position = Math.max(0, position); this.volume = volume; this.loop = loop; this.duration = 0; @@ -59962,7 +60569,7 @@ Phaser.Sound.prototype = { this._sound.currentTime = this.position; this._sound.muted = this._muted; - if (this._muted) + if (this._muted || this.game.sound.mute) { this._sound.volume = 0; } @@ -60037,7 +60644,7 @@ Phaser.Sound.prototype = { { if (this.usingWebAudio) { - var p = this.position + (this.pausedPosition / 1000); + var p = Math.max(0, this.position + (this.pausedPosition / 1000)); this._sound = this.context.createBufferSource(); this._sound.buffer = this._buffer; @@ -60168,17 +60775,17 @@ Phaser.Sound.prototype = { }, /** - * Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. - * Then increases the volume from 0 to 1 over the duration specified. - * - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (1) as the second parameter. - * - * @method Phaser.Sound#fadeIn - * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade in. - * @param {boolean} [loop=false] - Should the Sound be set to loop? Note that this doesn't cause the fade to repeat. - * @param {string} [marker=(current marker)] - The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of `''`. - */ + * Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. + * Then increases the volume from 0 to 1 over the duration specified. + * + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (1) as the second parameter. + * + * @method Phaser.Sound#fadeIn + * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade in. + * @param {boolean} [loop=false] - Should the Sound be set to loop? Note that this doesn't cause the fade to repeat. + * @param {string} [marker=(current marker)] - The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of `''`. + */ fadeIn: function (duration, loop, marker) { if (loop === undefined) { loop = false; } @@ -60196,13 +60803,13 @@ Phaser.Sound.prototype = { }, /** - * Decreases the volume of this Sound from its current value to 0 over the duration specified. - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (0) as the second parameter. - * - * @method Phaser.Sound#fadeOut - * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade out. - */ + * Decreases the volume of this Sound from its current value to 0 over the duration specified. + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (0) as the second parameter. + * + * @method Phaser.Sound#fadeOut + * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade out. + */ fadeOut: function (duration) { this.fadeTo(duration, 0); @@ -60210,14 +60817,14 @@ Phaser.Sound.prototype = { }, /** - * Fades the volume of this Sound from its current value to the given volume over the duration specified. - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (volume) as the second parameter. - * - * @method Phaser.Sound#fadeTo - * @param {number} [duration=1000] - The time in milliseconds during which the Sound should fade out. - * @param {number} [volume] - The volume which the Sound should fade to. This is a value between 0 and 1. - */ + * Fades the volume of this Sound from its current value to the given volume over the duration specified. + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (volume) as the second parameter. + * + * @method Phaser.Sound#fadeTo + * @param {number} [duration=1000] - The time in milliseconds during which the Sound should fade out. + * @param {number} [volume] - The volume which the Sound should fade to. This is a value between 0 and 1. + */ fadeTo: function (duration, volume) { if (!this.isPlaying || this.paused || volume === this.volume) @@ -60240,11 +60847,11 @@ Phaser.Sound.prototype = { }, /** - * Internal handler for Sound.fadeIn, Sound.fadeOut and Sound.fadeTo. - * - * @method Phaser.Sound#fadeComplete - * @private - */ + * Internal handler for Sound.fadeIn, Sound.fadeOut and Sound.fadeTo. + * + * @method Phaser.Sound#fadeComplete + * @private + */ fadeComplete: function () { this.onFadeComplete.dispatch(this, this.volume); @@ -60256,6 +60863,28 @@ Phaser.Sound.prototype = { }, + /** + * Called automatically by SoundManager.volume. + * + * Sets the volume of AudioTag Sounds as a percentage of the Global Volume. + * + * You should not normally call this directly. + * + * @method Phaser.Sound#updateGlobalVolume + * @protected + * @param {float} globalVolume - The global SoundManager volume. + */ + updateGlobalVolume: function (globalVolume) { + + // this._volume is the % of the global volume this sound should be played at + + if (this.usingAudioTag && this._sound) + { + this._sound.volume = globalVolume * this._volume; + } + + }, + /** * Destroys this sound and all associated events and removes it from the SoundManager. * @@ -60418,7 +61047,7 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -60434,7 +61063,8 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { * * Mobile warning: There are some mobile devices (certain iPad 2 and iPad Mini revisions) that cannot play 48000 Hz audio. * When they try to play the audio becomes extremely distorted and buzzes, eventually crashing the sound system. -* The solution is to use a lower encoding rate such as 44100 Hz. +* The solution is to use a lower encoding rate such as 44100 Hz. Sometimes the audio context will +* be created with a sampleRate of 48000. If this happens and audio distorts you should re-create the context. * * @class Phaser.SoundManager * @constructor @@ -60512,6 +61142,15 @@ Phaser.SoundManager = function (game) { */ this.channels = 32; + /** + * Set to true to have all sound muted when the Phaser game pauses (such as on loss of focus), + * or set to false to keep audio playing, regardless of the game pause state. You may need to + * do this should you wish to control audio muting via external DOM buttons or similar. + * @property {boolean} muteOnPause + * @default + */ + this.muteOnPause = true; + /** * @property {boolean} _codeMuted - Internal mute tracking var. * @private @@ -60678,7 +61317,7 @@ Phaser.SoundManager.prototype = { /** * Sets the Input Manager touch callback to be SoundManager.unlock. * Required for iOS audio device unlocking. Mostly just used internally. - * + * * @method Phaser.SoundManager#setTouchLock */ setTouchLock: function () { @@ -60703,7 +61342,7 @@ Phaser.SoundManager.prototype = { /** * Enables the audio, usually after the first touch. - * + * * @method Phaser.SoundManager#unlock * @return {boolean} True if the callback should be removed, otherwise false. */ @@ -61148,12 +61787,20 @@ Phaser.SoundManager.prototype = { this.onSoundDecode.dispose(); - this.context.close(); - - if (this.context && window['PhaserGlobal']) + if (this.context) { - // Store this in the PhaserGlobal window var, if set, to allow for re-use if the game is created again without the page refreshing - window['PhaserGlobal'].audioContext = this.context; + if (window['PhaserGlobal']) + { + // Store this in the PhaserGlobal window var, if set, to allow for re-use if the game is created again without the page refreshing + window['PhaserGlobal'].audioContext = this.context; + } + else + { + if (this.context.close) + { + this.context.close(); + } + } } } @@ -61240,7 +61887,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { { if (this._sounds[i].usingAudioTag) { - this._sounds[i].volume = this._sounds[i].volume * value; + this._sounds[i].updateGlobalVolume(value); } } } @@ -61255,7 +61902,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -63631,7 +64278,7 @@ Object.defineProperty(Phaser.ScaleManager.prototype, "isGameLandscape", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -63739,16 +64386,38 @@ Phaser.Utils.Debug.prototype = { this.sprite = this.game.make.image(0, 0, this.bmd); this.game.stage.addChild(this.sprite); + this.game.scale.onSizeChange.add(this.resize, this); + this.canvas = PIXI.CanvasPool.create(this, this.game.width, this.game.height); this.context = this.canvas.getContext('2d'); } }, + /** + * Internal method that resizes the BitmapData and Canvas. + * Called by ScaleManager.onSizeChange only in WebGL mode. + * + * @method Phaser.Utils.Debug#resize + * @protected + * @param {Phaser.ScaleManager} scaleManager - The Phaser ScaleManager. + * @param {number} width - The new width of the game. + * @param {number} height - The new height of the game. + */ + resize: function (scaleManager, width, height) { + + this.bmd.resize(width, height); + + this.canvas.width = width; + this.canvas.height = height; + + }, + /** * Internal method that clears the canvas (if a Sprite) ready for a new debug session. * * @method Phaser.Utils.Debug#preUpdate + * @protected */ preUpdate: function () { @@ -64462,7 +65131,7 @@ Phaser.Utils.Debug.prototype.constructor = Phaser.Utils.Debug; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -64895,7 +65564,7 @@ Phaser.Device.whenReady(function (device) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65177,7 +65846,7 @@ Phaser.ArraySet.prototype.constructor = Phaser.ArraySet; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65470,7 +66139,7 @@ Phaser.ArrayUtils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65659,7 +66328,7 @@ Phaser.LinkedList.prototype.constructor = Phaser.LinkedList; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65864,7 +66533,7 @@ Phaser.Create.prototype.constructor = Phaser.Create; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -66192,7 +66861,7 @@ Phaser.FlexGrid.prototype.constructor = Phaser.FlexGrid; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -66308,7 +66977,7 @@ Phaser.FlexLayer.prototype.debug = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67648,7 +68317,7 @@ Phaser.Color = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67898,6 +68567,10 @@ Phaser.Physics.prototype = { { this.matter.enable(object); } + else + { + console.warn(object.key + ' is attempting to enable a physics body using an unknown physics system.'); + } }, @@ -68076,7 +68749,7 @@ Phaser.Physics.prototype.constructor = Phaser.Physics; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -69023,29 +69696,32 @@ Phaser.Physics.Arcade.prototype = { return false; } + var resultX = false; + var resultY = false; + // Do we separate on x or y first? - - var result = false; - - // If we weren't having to carry around so much legacy baggage with us, we could do this properly. But alas ... if (this.forceX || Math.abs(this.gravity.y + body1.gravity.y) < Math.abs(this.gravity.x + body1.gravity.x)) { - result = (this.separateX(body1, body2, overlapOnly) || this.separateY(body1, body2, overlapOnly)); + resultX = this.separateX(body1, body2, overlapOnly); + + // Are they still intersecting? Let's do the other axis then + if (this.intersects(body1, body2)) + { + resultY = this.separateY(body1, body2, overlapOnly); + } } else { - result = (this.separateY(body1, body2, overlapOnly) || this.separateX(body1, body2, overlapOnly)); + resultY = this.separateY(body1, body2, overlapOnly); + + // Are they still intersecting? Let's do the other axis then + if (this.intersects(body1, body2)) + { + resultX = this.separateX(body1, body2, overlapOnly); + } } - if (overlapOnly) - { - // We already know they intersect from the check above, but by this point we know they've now had their overlapX/Y values populated - return true; - } - else - { - return result; - } + return (resultX || resultY); }, @@ -69059,156 +69735,248 @@ Phaser.Physics.Arcade.prototype = { */ intersects: function (body1, body2) { - if (body1.right <= body2.position.x) + if (body1.isCircle) { - return false; - } - - if (body1.bottom <= body2.position.y) - { - return false; - } - - if (body1.position.x >= body2.right) - { - return false; - } - - if (body1.position.y >= body2.bottom) - { - return false; - } - - return true; - - }, - - /** - * The core separation function to separate two physics bodies on the x axis. - * - * @private - * @method Phaser.Physics.Arcade#separateX - * @param {Phaser.Physics.Arcade.Body} body1 - The Body object to separate. - * @param {Phaser.Physics.Arcade.Body} body2 - The Body object to separate. - * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. - * @return {boolean} Returns true if the bodies were separated, otherwise false. - */ - separateX: function (body1, body2, overlapOnly) { - - // Can't separate two immovable bodies - if (body1.immovable && body2.immovable) - { - return false; - } - - var overlap = 0; - - // Check if the hulls actually overlap - if (this.intersects(body1, body2)) - { - var maxOverlap = body1.deltaAbsX() + body2.deltaAbsX() + this.OVERLAP_BIAS; - - if (body1.deltaX() === 0 && body2.deltaX() === 0) + if (body2.isCircle) { - // They overlap but neither of them are moving - body1.embedded = true; - body2.embedded = true; + // Circle vs. Circle + return Phaser.Math.distance(body1.center.x, body1.center.y, body2.center.x, body2.center.y) <= (body1.radius + body2.radius); } - else if (body1.deltaX() > body2.deltaX()) + else { - // Body1 is moving right and/or Body2 is moving left - overlap = body1.right - body2.x; - - if ((overlap > maxOverlap) || body1.checkCollision.right === false || body2.checkCollision.left === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.right = true; - body2.touching.none = false; - body2.touching.left = true; - } + // Circle vs. Rect + return this.circleBodyIntersects(body1, body2); } - else if (body1.deltaX() < body2.deltaX()) + } + else + { + if (body2.isCircle) { - // Body1 is moving left and/or Body2 is moving right - overlap = body1.x - body2.width - body2.x; - - if ((-overlap > maxOverlap) || body1.checkCollision.left === false || body2.checkCollision.right === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.left = true; - body2.touching.none = false; - body2.touching.right = true; - } + // Rect vs. Circle + return this.circleBodyIntersects(body2, body1); } - - // Resets the overlapX to zero if there is no overlap, or to the actual pixel value if there is - body1.overlapX = overlap; - body2.overlapX = overlap; - - // Then adjust their positions and velocities accordingly (if there was any overlap) - if (overlap !== 0) + else { - if (overlapOnly || body1.customSeparateX || body2.customSeparateX) + // Rect vs. Rect + if (body1.right <= body2.position.x) { - return true; + return false; } - var v1 = body1.velocity.x; - var v2 = body2.velocity.x; - - if (!body1.immovable && !body2.immovable) + if (body1.bottom <= body2.position.y) { - overlap *= 0.5; - - body1.x = body1.x - overlap; - body2.x += overlap; - - var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); - var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); - var avg = (nv1 + nv2) * 0.5; - - nv1 -= avg; - nv2 -= avg; - - body1.velocity.x = avg + nv1 * body1.bounce.x; - body2.velocity.x = avg + nv2 * body2.bounce.x; + return false; } - else if (!body1.immovable) - { - body1.x = body1.x - overlap; - body1.velocity.x = v2 - v1 * body1.bounce.x; - // This is special case code that handles things like vertically moving platforms you can ride - if (body2.moves) - { - body1.y += (body2.y - body2.prev.y) * body2.friction.y; - } + if (body1.position.x >= body2.right) + { + return false; } - else if (!body2.immovable) - { - body2.x += overlap; - body2.velocity.x = v1 - v2 * body2.bounce.x; - // This is special case code that handles things like vertically moving platforms you can ride - if (body1.moves) - { - body2.y += (body1.y - body1.prev.y) * body1.friction.y; - } + if (body1.position.y >= body2.bottom) + { + return false; } return true; } } - return false; + }, + + /** + * Calculates the horizontal overlap between two Bodies and sets their properties accordingly, including: + * `touching.left`, `touching.right` and `overlapX`. + * + * @method Phaser.Physics.Arcade#getOverlapX + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @return {float} Returns the amount of horizontal overlap between the two bodies. + */ + getOverlapX: function (body1, body2) { + + var overlap = 0; + var maxOverlap = body1.deltaAbsX() + body2.deltaAbsX() + this.OVERLAP_BIAS; + + if (body1.deltaX() === 0 && body2.deltaX() === 0) + { + // They overlap but neither of them are moving + body1.embedded = true; + body2.embedded = true; + } + else if (body1.deltaX() > body2.deltaX()) + { + // Body1 is moving right and / or Body2 is moving left + overlap = body1.right - body2.x; + + if ((overlap > maxOverlap) || body1.checkCollision.right === false || body2.checkCollision.left === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.right = true; + body2.touching.none = false; + body2.touching.left = true; + } + } + else if (body1.deltaX() < body2.deltaX()) + { + // Body1 is moving left and/or Body2 is moving right + overlap = body1.x - body2.width - body2.x; + + if ((-overlap > maxOverlap) || body1.checkCollision.left === false || body2.checkCollision.right === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.left = true; + body2.touching.none = false; + body2.touching.right = true; + } + } + + // Resets the overlapX to zero if there is no overlap, or to the actual pixel value if there is + body1.overlapX = overlap; + body2.overlapX = overlap; + + return overlap; + + }, + + /** + * Calculates the vertical overlap between two Bodies and sets their properties accordingly, including: + * `touching.up`, `touching.down` and `overlapY`. + * + * @method Phaser.Physics.Arcade#getOverlapY + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @return {float} Returns the amount of vertical overlap between the two bodies. + */ + getOverlapY: function (body1, body2) { + + var overlap = 0; + var maxOverlap = body1.deltaAbsY() + body2.deltaAbsY() + this.OVERLAP_BIAS; + + if (body1.deltaY() === 0 && body2.deltaY() === 0) + { + // They overlap but neither of them are moving + body1.embedded = true; + body2.embedded = true; + } + else if (body1.deltaY() > body2.deltaY()) + { + // Body1 is moving down and/or Body2 is moving up + overlap = body1.bottom - body2.y; + + if ((overlap > maxOverlap) || body1.checkCollision.down === false || body2.checkCollision.up === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.down = true; + body2.touching.none = false; + body2.touching.up = true; + } + } + else if (body1.deltaY() < body2.deltaY()) + { + // Body1 is moving up and/or Body2 is moving down + overlap = body1.y - body2.bottom; + + if ((-overlap > maxOverlap) || body1.checkCollision.up === false || body2.checkCollision.down === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.up = true; + body2.touching.none = false; + body2.touching.down = true; + } + } + + // Resets the overlapY to zero if there is no overlap, or to the actual pixel value if there is + body1.overlapY = overlap; + body2.overlapY = overlap; + + return overlap; + + }, + + /** + * The core separation function to separate two physics bodies on the x axis. + * + * @method Phaser.Physics.Arcade#separateX + * @private + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. + * @return {boolean} Returns true if the bodies were separated or overlap, otherwise false. + */ + separateX: function (body1, body2, overlapOnly) { + + var overlap = this.getOverlapX(body1, body2); + + // Can't separate two immovable bodies, or a body with its own custom separation logic + if (overlapOnly || overlap === 0 || (body1.immovable && body2.immovable) || body1.customSeparateX || body2.customSeparateX) + { + // return true if there was some overlap, otherwise false + return (overlap !== 0); + } + + // Adjust their positions and velocities accordingly (if there was any overlap) + var v1 = body1.velocity.x; + var v2 = body2.velocity.x; + + if (!body1.immovable && !body2.immovable) + { + overlap *= 0.5; + + body1.x -= overlap; + body2.x += overlap; + + var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); + var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); + var avg = (nv1 + nv2) * 0.5; + + nv1 -= avg; + nv2 -= avg; + + body1.velocity.x = avg + nv1 * body1.bounce.x; + body2.velocity.x = avg + nv2 * body2.bounce.x; + } + else if (!body1.immovable) + { + body1.x -= overlap; + body1.velocity.x = v2 - v1 * body1.bounce.x; + + // This is special case code that handles things like vertically moving platforms you can ride + if (body2.moves) + { + body1.y += (body2.y - body2.prev.y) * body2.friction.y; + } + } + else + { + body2.x += overlap; + body2.velocity.x = v1 - v2 * body2.bounce.x; + + // This is special case code that handles things like vertically moving platforms you can ride + if (body1.moves) + { + body2.y += (body1.y - body1.prev.y) * body1.friction.y; + } + } + + // If we got this far then there WAS overlap, and separation is complete, so return true + return true; }, @@ -69217,128 +69985,68 @@ Phaser.Physics.Arcade.prototype = { * * @private * @method Phaser.Physics.Arcade#separateY - * @param {Phaser.Physics.Arcade.Body} body1 - The Body object to separate. - * @param {Phaser.Physics.Arcade.Body} body2 - The Body object to separate. + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. - * @return {boolean} Returns true if the bodies were separated, otherwise false. + * @return {boolean} Returns true if the bodies were separated or overlap, otherwise false. */ separateY: function (body1, body2, overlapOnly) { - // Can't separate two immovable or non-existing bodies - if (body1.immovable && body2.immovable) + var overlap = this.getOverlapY(body1, body2); + + // Can't separate two immovable bodies, or a body with its own custom separation logic + if (overlapOnly || overlap === 0 || (body1.immovable && body2.immovable) || body1.customSeparateY || body2.customSeparateY) { - return false; + // return true if there was some overlap, otherwise false + return (overlap !== 0); } - var overlap = 0; + // Adjust their positions and velocities accordingly (if there was any overlap) + var v1 = body1.velocity.y; + var v2 = body2.velocity.y; - // Check if the hulls actually overlap - if (this.intersects(body1, body2)) + if (!body1.immovable && !body2.immovable) { - var maxOverlap = body1.deltaAbsY() + body2.deltaAbsY() + this.OVERLAP_BIAS; + overlap *= 0.5; - if (body1.deltaY() === 0 && body2.deltaY() === 0) + body1.y -= overlap; + body2.y += overlap; + + var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); + var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); + var avg = (nv1 + nv2) * 0.5; + + nv1 -= avg; + nv2 -= avg; + + body1.velocity.y = avg + nv1 * body1.bounce.y; + body2.velocity.y = avg + nv2 * body2.bounce.y; + } + else if (!body1.immovable) + { + body1.y -= overlap; + body1.velocity.y = v2 - v1 * body1.bounce.y; + + // This is special case code that handles things like horizontal moving platforms you can ride + if (body2.moves) { - // They overlap but neither of them are moving - body1.embedded = true; - body2.embedded = true; + body1.x += (body2.x - body2.prev.x) * body2.friction.x; } - else if (body1.deltaY() > body2.deltaY()) + } + else + { + body2.y += overlap; + body2.velocity.y = v1 - v2 * body2.bounce.y; + + // This is special case code that handles things like horizontal moving platforms you can ride + if (body1.moves) { - // Body1 is moving down and/or Body2 is moving up - overlap = body1.bottom - body2.y; - - if ((overlap > maxOverlap) || body1.checkCollision.down === false || body2.checkCollision.up === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.down = true; - body2.touching.none = false; - body2.touching.up = true; - } + body2.x += (body1.x - body1.prev.x) * body1.friction.x; } - else if (body1.deltaY() < body2.deltaY()) - { - // Body1 is moving up and/or Body2 is moving down - overlap = body1.y - body2.bottom; - - if ((-overlap > maxOverlap) || body1.checkCollision.up === false || body2.checkCollision.down === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.up = true; - body2.touching.none = false; - body2.touching.down = true; - } - } - - // Resets the overlapY to zero if there is no overlap, or to the actual pixel value if there is - body1.overlapY = overlap; - body2.overlapY = overlap; - - // Then adjust their positions and velocities accordingly (if there was any overlap) - if (overlap !== 0) - { - if (overlapOnly || body1.customSeparateY || body2.customSeparateY) - { - return true; - } - - var v1 = body1.velocity.y; - var v2 = body2.velocity.y; - - if (!body1.immovable && !body2.immovable) - { - overlap *= 0.5; - - body1.y = body1.y - overlap; - body2.y += overlap; - - var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); - var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); - var avg = (nv1 + nv2) * 0.5; - - nv1 -= avg; - nv2 -= avg; - - body1.velocity.y = avg + nv1 * body1.bounce.y; - body2.velocity.y = avg + nv2 * body2.bounce.y; - } - else if (!body1.immovable) - { - body1.y = body1.y - overlap; - body1.velocity.y = v2 - v1 * body1.bounce.y; - - // This is special case code that handles things like horizontal moving platforms you can ride - if (body2.moves) - { - body1.x += (body2.x - body2.prev.x) * body2.friction.x; - } - } - else if (!body2.immovable) - { - body2.y += overlap; - body2.velocity.y = v1 - v2 * body2.bounce.y; - - // This is special case code that handles things like horizontal moving platforms you can ride - if (body1.moves) - { - body2.x += (body1.x - body1.prev.x) * body1.friction.x; - } - } - - return true; - } - } - return false; + // If we got this far then there WAS overlap, and separation is complete, so return true + return true; }, @@ -69798,7 +70506,7 @@ Phaser.Physics.Arcade.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -70265,10 +70973,11 @@ Phaser.Physics.Arcade.Body.prototype = { if (this.position.x !== this.prev.x || this.position.y !== this.prev.y) { - this.speed = Math.sqrt(this.velocity.x * this.velocity.x + this.velocity.y * this.velocity.y); this.angle = Math.atan2(this.velocity.y, this.velocity.x); } + this.speed = Math.sqrt(this.velocity.x * this.velocity.x + this.velocity.y * this.velocity.y); + // Now the State update will throw collision checks at the Body // And finally we'll integrate the new position back to the Sprite in postUpdate @@ -70365,23 +71074,6 @@ Phaser.Physics.Arcade.Body.prototype = { }, - /** - * Removes this bodys reference to its parent sprite, freeing it up for gc. - * - * @method Phaser.Physics.Arcade.Body#destroy - */ - destroy: function () { - - if (this.sprite.parent && this.sprite.parent instanceof Phaser.Group) - { - this.sprite.parent.removeFromHash(this.sprite); - } - - this.sprite.body = null; - this.sprite = null; - - }, - /** * Internal method. * @@ -70427,6 +71119,9 @@ Phaser.Physics.Arcade.Body.prototype = { * So it could be smaller or larger than the parent Sprite. You can also control the x and y offset, which * is the position of the Body relative to the top-left of the Sprite. * + * Calling `setSize` will have no effect if you have previously used `Body.setCircle`. To change a collision + * circle use `setCircle` instead. + * * @method Phaser.Physics.Arcade.Body#setSize * @param {number} width - The width of the Body. * @param {number} height - The height of the Body. @@ -70435,6 +71130,11 @@ Phaser.Physics.Arcade.Body.prototype = { */ setSize: function (width, height, offsetX, offsetY) { + if (this.isCircle) + { + return; + } + if (offsetX === undefined) { offsetX = this.offset.x; } if (offsetY === undefined) { offsetY = this.offset.y; } @@ -70450,6 +71150,47 @@ Phaser.Physics.Arcade.Body.prototype = { }, + /** + * Sets this Body as using a circle, of the given radius, for all collision detection instead of a rectangle. + * The radius is given in pixels and is the distance from the center of the circle to the edge. + * + * You can also control the x and y offset, which is the position of the Body relative to the top-left of the Sprite. + * + * @method Phaser.Physics.Arcade.Body#setCircle + * @param {number} [radius] - The radius of the Body in pixels. Pass a value of zero / undefined, to stop the Body using a circle for collision. + * @param {number} [offsetX] - The X offset of the Body from the Sprite position. + * @param {number} [offsetY] - The Y offset of the Body from the Sprite position. + */ + setCircle: function (radius, offsetX, offsetY) { + + if (offsetX === undefined) { offsetX = this.offset.x; } + if (offsetY === undefined) { offsetY = this.offset.y; } + + if (radius > 0) + { + this.isCircle = true; + this.radius = radius; + + this.sourceWidth = radius * 2; + this.sourceHeight = radius * 2; + + this.width = this.sourceWidth * this._sx; + this.height = this.sourceHeight * this._sy; + + this.halfWidth = Math.floor(this.width / 2); + this.halfHeight = Math.floor(this.height / 2); + + this.offset.setTo(offsetX, offsetY); + + this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight); + } + else + { + this.isCircle = false; + } + + }, + /** * Resets all Body values (velocity, acceleration, rotation, etc) * @@ -70491,7 +71232,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if the given coordinates are inside this Body, otherwise false. */ hitTest: function (x, y) { - return Phaser.Rectangle.contains(this, x, y); + + return (this.isCircle) ? Phaser.Circle.contains(this, x, y) : Phaser.Rectangle.contains(this, x, y); + }, /** @@ -70501,7 +71244,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onFloor: function () { + return this.blocked.down; + }, /** @@ -70511,7 +71256,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onCeiling: function(){ + return this.blocked.up; + }, /** @@ -70521,7 +71268,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onWall: function () { + return (this.blocked.left || this.blocked.right); + }, /** @@ -70531,7 +71280,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The absolute delta value. */ deltaAbsX: function () { + return (this.deltaX() > 0 ? this.deltaX() : -this.deltaX()); + }, /** @@ -70541,7 +71292,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The absolute delta value. */ deltaAbsY: function () { + return (this.deltaY() > 0 ? this.deltaY() : -this.deltaY()); + }, /** @@ -70551,7 +71304,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was to the right, negative if to the left. */ deltaX: function () { + return this.position.x - this.prev.x; + }, /** @@ -70561,7 +71316,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was downwards, negative if upwards. */ deltaY: function () { + return this.position.y - this.prev.y; + }, /** @@ -70571,20 +71328,43 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was clockwise, negative if anti-clockwise. */ deltaZ: function () { + return this.rotation - this.preRotation; + + }, + + /** + * Destroys this Body. + * + * First it calls Group.removeFromHash if the Game Object this Body belongs to is part of a Group. + * Then it nulls the Game Objects body reference, and nulls this Body.sprite reference. + * + * @method Phaser.Physics.Arcade.Body#destroy + */ + destroy: function () { + + if (this.sprite.parent && this.sprite.parent instanceof Phaser.Group) + { + this.sprite.parent.removeFromHash(this.sprite); + } + + this.sprite.body = null; + this.sprite = null; + } }; /** -* @name Phaser.Physics.Arcade.Body#bottom -* @property {number} bottom - The bottom value of this Body (same as Body.y + Body.height) -* @readonly +* @name Phaser.Physics.Arcade.Body#left +* @property {number} left - The x position of the Body. The same as `Body.x`. */ -Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "left", { get: function () { - return this.position.y + this.height; + + return this.position.x; + } }); @@ -70597,7 +71377,38 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "right", { get: function () { + return this.position.x + this.width; + + } + +}); + +/** +* @name Phaser.Physics.Arcade.Body#top +* @property {number} top - The y position of the Body. The same as `Body.y`. +*/ +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "top", { + + get: function () { + + return this.position.y; + + } + +}); + +/** +* @name Phaser.Physics.Arcade.Body#bottom +* @property {number} bottom - The bottom value of this Body (same as Body.y + Body.height) +* @readonly +*/ +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { + + get: function () { + + return this.position.y + this.height; + } }); @@ -70609,7 +71420,9 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "right", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "x", { get: function () { + return this.position.x; + }, set: function (value) { @@ -70626,7 +71439,9 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "x", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "y", { get: function () { + return this.position.y; + }, set: function (value) { @@ -70689,7 +71504,7 @@ Phaser.Physics.Arcade.Body.prototype.constructor = Phaser.Physics.Arcade.Body; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -71097,7 +71912,7 @@ Phaser.Utils.mixinPrototype(Phaser.Physics.Arcade.prototype, Phaser.Physics.Arca /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -71228,7 +72043,7 @@ Phaser.ImageCollection.prototype.constructor = Phaser.ImageCollection; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -71636,7 +72451,7 @@ Object.defineProperty(Phaser.Tile.prototype, "bottom", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -73558,7 +74373,7 @@ Object.defineProperty(Phaser.Tilemap.prototype, "layer", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -74846,7 +75661,7 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -74859,7 +75674,7 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", { Phaser.TilemapParser = { /** - * When scanning the Tiled map data the TilemapParser can either insert a null value (true) or + * When scanning the Tiled map data the TilemapParser can either insert a null value (true) or * a Phaser.Tile instance with an index of -1 (false, the default). Depending on your game type * depends how this should be configured. If you've a large sparsely populated map and the tile * data doesn't need to change then setting this value to `true` will help with memory consumption. @@ -75079,15 +75894,15 @@ Phaser.TilemapParser = { } var curl = json.layers[i]; - + // Base64 decode data if necessary - // NOTE: uncompressed base64 only. + // NOTE: uncompressed base64 only. if (!curl.compression && curl.encoding && curl.encoding === "base64") { var binaryString = window.atob(curl.data); var len = binaryString.length; var bytes = new Array( len ); // Interpret binaryString as an array of bytes representing - // little-endian encoded uint32 values. + // little-endian encoded uint32 values. for (var j = 0; j < len; j+=4) { bytes[j/4] = (binaryString.charCodeAt(j) | binaryString.charCodeAt(j+1) << 8 | @@ -75095,6 +75910,11 @@ Phaser.TilemapParser = { binaryString.charCodeAt(j+3) << 24) >>> 0; } curl.data = bytes; + delete curl.encoding; + } + else if(curl.compression){ + console.warn('TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer \'' + curl.name + '\''); + continue; } @@ -75138,7 +75958,7 @@ Phaser.TilemapParser = { flipped = false; gid = curl.data[t]; - // If true the current tile is flipped or rotated (Tiled TMX format) + // If true the current tile is flipped or rotated (Tiled TMX format) if (gid > 0x20000000) { flippedVal = 0; @@ -75163,7 +75983,7 @@ Phaser.TilemapParser = { gid -= 0x20000000; flippedVal += 1; } - + switch (flippedVal) { case 5: @@ -75292,7 +76112,7 @@ Phaser.TilemapParser = { else { var newCollection = new Phaser.ImageCollection(set.name, set.firstgid, set.tilewidth, set.tileheight, set.margin, set.spacing, set.properties); - + for (var ti in set.tiles) { var image = set.tiles[ti].image; @@ -75531,7 +76351,7 @@ Phaser.TilemapParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -75749,7 +76569,7 @@ Phaser.Tileset.prototype = { if (rowCount % 1 !== 0 || colCount % 1 !== 0) { - console.warn("Phaser.Tileset - image tile area is not an even multiple of tile size"); + console.warn("Phaser.Tileset - " + this.name + " image tile area is not an even multiple of tile size"); } // In Tiled a tileset image that is not an even multiple of the tile dimensions @@ -75792,7 +76612,7 @@ Phaser.Tileset.prototype.constructor = Phaser.Tileset; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -75958,7 +76778,7 @@ Phaser.Particle.prototype.reset = function(x, y, health) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -76039,7 +76859,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -76051,7 +76871,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; Phaser.Particles.Arcade = {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -76592,7 +77412,7 @@ Phaser.Particles.Arcade.Emitter.prototype.start = function (explode, lifespan, f else { this.on = true; - this._quantity += quantity; + this._quantity = quantity; this._counter = 0; this._timer = this.game.time.time + frequency * this.game.time.slowMotion; } @@ -77053,21 +77873,21 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** * A Video object that takes a previously loaded Video from the Phaser Cache and handles playback of it. -* +* * Alternatively it takes a getUserMedia feed from an active webcam and streams the contents of that to * the Video instead (see `startMediaStream` method) -* +* * The video can then be applied to a Sprite as a texture. If multiple Sprites share the same Video texture and playback * changes (i.e. you pause the video, or seek to a new time) then this change will be seen across all Sprites simultaneously. * * Due to a bug in IE11 you cannot play a video texture to a Sprite in WebGL. For IE11 force Canvas mode. -* +* * If you need each Sprite to be able to play a video fully independently then you will need one Video object per Sprite. * Please understand the obvious performance implications of doing this, and the memory required to hold videos in RAM. * @@ -77076,7 +77896,7 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", { * it's worth noting that every single Video needs to be touch unlocked, not just the first one. You can use the `changeSource` * method to try and work around this limitation, but see the method help for details. * -* Small screen devices, especially iPod and iPhone will launch the video in its own native video player, +* Small screen devices, especially iPod and iPhone will launch the video in its own native video player, * outside of the Safari browser. There is no way to avoid this, it's a device imposed limitation. * * @class Phaser.Video @@ -77331,7 +78151,7 @@ Phaser.Video = function (game, key, url) { * A snapshot grabbed from the video. This is initially black. Populate it by calling Video.grab(). * When called the BitmapData is updated with a grab taken from the current video playing or active video stream. * If Phaser has been compiled without BitmapData support this property will always be `null`. - * + * * @property {Phaser.BitmapData} snapshot * @readOnly */ @@ -77771,11 +78591,11 @@ Phaser.Video.prototype = { /** * Stops the video playing. - * + * * This removes all locally set signals. - * + * * If you only wish to pause playback of the video, to resume at a later time, use `Video.paused = true` instead. - * If the video hasn't finished downloading calling `Video.stop` will not abort the download. To do that you need to + * If the video hasn't finished downloading calling `Video.stop` will not abort the download. To do that you need to * call `Video.destroy` instead. * * If you are using a video stream from a webcam then calling Stop will disconnect the MediaStream session and disable the webcam. @@ -77813,7 +78633,17 @@ Phaser.Video.prototype = { } else { - this.videoStream.stop(); + if (this.videoStream.getTracks) + { + this.videoStream.getTracks().forEach(function (track) { + track.stop(); + }); + } + else + { + this.videoStream.stop(); + } + } } @@ -77993,7 +78823,7 @@ Phaser.Video.prototype = { * On some mobile browsers you cannot play a video until the user has explicitly touched the video to allow it. * Phaser handles this via the `setTouchLock` method. However if you have 3 different videos, maybe an "Intro", "Start" and "Game Over" * split into three different Video objects, then you will need the user to touch-unlock every single one of them. - * + * * You can avoid this by using just one Video object and simply changing the video source. Once a Video element is unlocked it remains * unlocked, even if the source changes. So you can use this to your benefit to avoid forcing the user to 'touch' the video yet again. * @@ -78040,7 +78870,7 @@ Phaser.Video.prototype = { /** * Internal callback that monitors the download progress of a video after changing its source. - * + * * @method Phaser.Video#checkVideoProgress * @private */ @@ -78071,7 +78901,7 @@ Phaser.Video.prototype = { /** * Sets the Input Manager touch callback to be Video.unlock. * Required for mobile video unlocking. Mostly just used internally. - * + * * @method Phaser.Video#setTouchLock */ setTouchLock: function () { @@ -78085,7 +78915,7 @@ Phaser.Video.prototype = { * Enables the video on mobile devices, usually after the first touch. * If the SoundManager hasn't been unlocked then this will automatically unlock that as well. * Only one video can be pending unlock at any one time. - * + * * @method Phaser.Video#unlock */ unlock: function () { @@ -78149,7 +78979,7 @@ Phaser.Video.prototype = { /** * Removes the Video element from the DOM by calling parentNode.removeChild on itself. * Also removes the autoplay and src attributes and nulls the reference. - * + * * @method Phaser.Video#removeVideoElement */ removeVideoElement: function () { @@ -78295,7 +79125,7 @@ Object.defineProperty(Phaser.Video.prototype, "mute", { /** * Gets or sets the paused state of the Video. * If the video is still touch locked (such as on iOS devices) this call has no effect. -* +* * @name Phaser.Video#paused * @property {boolean} paused */ @@ -78399,7 +79229,7 @@ Object.defineProperty(Phaser.Video.prototype, "playbackRate", { * Gets or sets if the Video is set to loop. * Please note that at present some browsers (i.e. Chrome) do not support *seamless* video looping. * If the video isn't yet set this will always return false. -* +* * @name Phaser.Video#loop * @property {boolean} loop */ @@ -78446,7 +79276,7 @@ Phaser.Video.prototype.constructor = Phaser.Video; /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -78490,7 +79320,7 @@ PIXI.TextureSilentFail = true; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ diff --git a/build/custom/phaser-arcade-physics.map b/build/custom/phaser-arcade-physics.map index a2d5932b0..abf6d421a 100644 --- a/build/custom/phaser-arcade-physics.map +++ b/build/custom/phaser-arcade-physics.map @@ -1 +1 @@ -{"version":3,"file":"phaser-arcade-physics.min.js","sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","transformCallback","call","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","reset","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","addToHash","events","onAddedToGroup$dispatch","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","Graphics","graphicsData","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","duration","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","rect","updateCrop","resetFrame","Delta","Destroy","destroyTexture","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","ctx","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","direction","scan","newWidth","newHeight","op","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","fillColor","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","elapsedMS","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","entity","palettes",1,2,3,4,5,6,7,8,9,"PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","TilemapLayer","indexes","bodies","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","ti","curo","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser-arcade-physics.min.js","sources":["phaser-arcade-physics.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","transformCallback","call","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","lerp","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","_shake","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","camera","Graphics","follow","lerpX","lerpY","helper","unfollow","focusOn","setPosition","focusOnXY","shake","force","direction","flash","beginFill","drawRect","endFill","fade","update","updateFX","updateTarget","updateShake","checkBounds","time","elapsedMS","dispatch","rnd","frac","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","reset","resetFX","State","make","cache","input","load","sound","tweens","particles","physics","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","addToHash","events","onAddedToGroup$dispatch","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","getByName","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","graphicsData","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","rect","updateCrop","resetFrame","Delta","Destroy","destroyTexture","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","Tilemap","TilemapLayer","img","base","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","ctx","imageData","FrameData","textureFrame","addFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","newWidth","newHeight","op","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","fillColor","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","maxLines","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","drawnLines","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","family","exec","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","repeatTotal","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","mute","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","updateGlobalVolume","globalVolume","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","scaleManager","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","entity","palettes",1,2,3,4,5,6,7,8,9,"PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","resultX","resultY","separateX","separateY","isCircle","circleBodyIntersects","getOverlapX","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","getOverlapY","deltaAbsY","overlapY","immovable","customSeparateX","bounce","moves","friction","nv1","mass","nv2","avg","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","setCircle","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","collides","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","collision","currentLayer","debugMap","_results","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","getLayer","customClass","lw","lh","createLayer","getLayerIndex","indexes","bodies","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","getTileRight","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","map","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","ti","curo","polyline","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","Particle","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","on","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","getTracks","track","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-arcade-physics.min.js b/build/custom/phaser-arcade-physics.min.js index e41337baf..046df8968 100644 --- a/build/custom/phaser-arcade-physics.min.js +++ b/build/custom/phaser-arcade-physics.min.js @@ -1,22 +1,22 @@ -/* Phaser v2.4.6 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.7 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */ -(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gj;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a;for(var b=0;bi){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e, -this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x),this.view.right>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width),this.view.y<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y),this.view.bottom>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game); -},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if(void 0===e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this), -this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0); -}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){ -return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e){(void 0===d||0===d)&&(d=256),(void 0===e||0===e)&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=PIXI.CanvasPool.create(this,d,e),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData"),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if((void 0===a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if((void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.type===c.EMITTER||a.type===c.BITMAPTEXT)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h); -return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kp&&Math.abs(p)>n&&(p=-n),0!==p&&(o+=p*b.length),this.canvas.height=o*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var q,r;for(this._charCount=0,g=0;g0&&(r+=p*g),"right"===this.style.align?q+=e-d[g]:"center"===this.style.align&&(q+=(e-d[g])/2),this.autoRound&&(q=Math.round(q),r=Math.round(r)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[g],q,r):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],q,r):this.renderTabLine(b[g],q,r,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],q,r):this.renderTabLine(b[g],q,r,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2), -"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=PIXI.CanvasPool.create(c.Text.fontPropertiesCanvas),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=(m.xAdvance+o)*b,i.push(d+(m.xOffset+o)*b),d+=(m.xAdvance+o)*b,g=l}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b, -a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),(void 0===d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"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(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=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=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.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(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1, -this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b); -}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=this.game.make.bitmapData(this.game.width,this.game.height),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)},worldAngleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.world.x,d=b.worldY-a.world.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rl;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0, -j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;i>t;t++){if(m=0,n=!1,p=g.data[t],p>536870912)switch(o=0,p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}p>0?(r.push(new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight)),r[r.length-1].rotation=m,r[r.length-1].flipped=n):c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight)),q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var u=[],f=0;fG;G++)if(F.objects[G].gid){var H={gid:F.objects[G].gid,name:F.objects[G].name,type:F.objects[G].hasOwnProperty("type")?F.objects[G].type:"",x:F.objects[G].x,y:F.objects[G].y,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),D[F.name].push(H)}else if(F.objects[G].polyline){var H={name:F.objects[G].name,type:F.objects[G].type,x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),H.polyline=[];for(var I=0;I=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1, -f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),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.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",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(var b=0;b0?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){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.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(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._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(){return this._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.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); +(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gc?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var l=this._bounds;return l.x=e,l.y=f,l.width=g-e,l.height=h-f,l},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0;ci){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.7 RC1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0; +var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else if(Array.isArray(a[c]))var e=new PIXI.Point(a[c][0],a[c][1]);else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!d&&this._shake.duration>0?!1:(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this.target&&this.updateTarget(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-(this.view.x+this._shake.x),this.displayObject.position.y=-(this.view.y+this._shake.y)},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.copyFrom(this.target.world),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y))},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx.clear(),this.fx.alpha=0,this._fxDuration=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete(); +}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){ +this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.config.canvas?this.canvas=this.config.canvas:this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}), +c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera){if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.cameraOffset.x=this.globalToLocalX(a.x)+(this.sprite.cameraOffset.x-d.centerX),this.sprite.cameraOffset.y=this.globalToLocalY(a.y)+(this.sprite.cameraOffset.y-d.centerY)}this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)}else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f)); +},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e){(void 0===d||0===d)&&(d=256),(void 0===e||0===e)&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=PIXI.CanvasPool.create(this,d,e),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.frameData=new c.FrameData,this.textureFrame=this.frameData.addFrame(new c.Frame(0,0,0,d,e,"bitmapData")),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if((void 0===a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0));else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if((void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.type===c.EMITTER||a.type===c.BITMAPTEXT)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.frameData.destroy(),this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b, +d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,this.anchor=new c.Point,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&this.style.maxLinesh;h++){if(0===c){var i=this.context.measureText(b[h]).width+this.style.strokeThickness+this.padding.x;this.style.wordWrap&&(i-=this.context.measureText(" ").width)}else{var j=b[h].split(/(?:\t)/),i=this.padding.x+this.style.strokeThickness;if(Array.isArray(c))for(var k=0,l=0;l0&&(k+=c[l-1]),i=k+m}else for(var l=0;lq&&Math.abs(q)>o&&(q=-o),0!==q&&(p+=q>0?q*b.length:q*(b.length-1)),this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,h=0;g>h;h++)r=this.style.strokeThickness/2,s=this.style.strokeThickness/2+h*o+f.ascent,h>0&&(s+=q*h),"right"===this.style.align?r+=e-d[h]:"center"===this.style.align&&(r+=(e-d[h])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[h],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[h],r,s):this.renderTabLine(b[h],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[h],r,s):this.renderTabLine(b[h],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]), +this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=PIXI.CanvasPool.create(c.Text.fontPropertiesCanvas),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f.toString()||"",this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=(m.xAdvance+o)*b,i.push(d+(m.xOffset+o)*b),d+=(m.xAdvance+o)*b,g=l}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),(void 0===d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"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(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=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=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.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(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),this.repeatCounter=a?-1:0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this.repeatCounter=this.repeatTotal,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1); +}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=Math.max(0,b),this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted||this.game.sound.mute?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=Math.max(0,this.position+this.pausedPosition/1e3);this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},updateGlobalVolume:function(a){this.usingAudioTag&&this._sound&&(this._sound.volume=a*this._volume)},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this.muteOnPause=!0,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0)); +}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=this.game.make.bitmapData(this.game.width,this.game.height),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.game.scale.onSizeChange.add(this.resize,this),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},resize:function(a,b,c){this.bmd.resize(b,c),this.canvas.width=b,this.canvas.height=c},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)), +this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},getOverlapX:function(a,b){var c=0,d=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;return 0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(c=a.right-b.x,c>d||a.checkCollision.right===!1||b.checkCollision.left===!1?c=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()d||a.checkCollision.left===!1||b.checkCollision.right===!1?c=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=c,b.overlapX=c,c},getOverlapY:function(a,b){var c=0,d=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;return 0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(c=a.bottom-b.y,c>d||a.checkCollision.down===!1||b.checkCollision.up===!1?c=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()d||a.checkCollision.up===!1||b.checkCollision.down===!1?c=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=c,b.overlapY=c,c},separateX:function(a,b,c){var d=this.getOverlapX(a,b);if(c||0===d||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==d;var e=a.velocity.x,f=b.velocity.x;if(a.immovable||b.immovable)a.immovable?(b.x+=d,b.velocity.x=e-f*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x-=d,a.velocity.x=f-e*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x-=d,b.x+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.x=i+g*a.bounce.x,b.velocity.x=i+h*b.bounce.x}return!0},separateY:function(a,b,c){var d=this.getOverlapY(a,b);if(c||0===d||a.immovable&&b.immovable||a.customSeparateY||b.customSeparateY)return 0!==d;var e=a.velocity.y,f=b.velocity.y;if(a.immovable||b.immovable)a.immovable?(b.y+=d,b.velocity.y=e-f*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y-=d,a.velocity.y=f-e*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y-=d,b.y+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.y=i+g*a.bounce.y,b.velocity.y=i+h*b.bounce.y}return!0},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)},worldAngleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.world.x,d=b.worldY-a.world.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){this.isCircle||(void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},setCircle:function(a,b,c){void 0===b&&(b=this.offset.x),void 0===c&&(c=this.offset.y),a>0?(this.isCircle=!0,this.radius=a,this.sourceWidth=2*a,this.sourceHeight=2*a,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(b,c),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)):this.isCircle=!1},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return this.isCircle?c.Circle.contains(this,a,b):c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"left",{get:function(){return this.position.x}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"top",{get:function(){return this.position.y}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'), +null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rl;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j,delete g.encoding}else if(g.compression){console.warn("TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer '"+g.name+"'");continue}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;i>t;t++){if(m=0,n=!1,p=g.data[t],p>536870912)switch(o=0,p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}p>0?(r.push(new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight)),r[r.length-1].rotation=m,r[r.length-1].flipped=n):c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight)),q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var u=[],f=0;fG;G++)if(F.objects[G].gid){var H={gid:F.objects[G].gid,name:F.objects[G].name,type:F.objects[G].hasOwnProperty("type")?F.objects[G].type:"",x:F.objects[G].x,y:F.objects[G].y,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),D[F.name].push(H)}else if(F.objects[G].polyline){var H={name:F.objects[G].name,type:F.objects[G].type,x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),H.polyline=[];for(var I=0;I=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),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("playing",this._playCallback,!0),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?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){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.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(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._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(){return this._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.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); //# sourceMappingURL=phaser-arcade-physics.map \ No newline at end of file diff --git a/build/custom/phaser-minimum.js b/build/custom/phaser-minimum.js index 93beb598e..42153c502 100644 --- a/build/custom/phaser-minimum.js +++ b/build/custom/phaser-minimum.js @@ -1,13 +1,13 @@ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} * * @overview * * Phaser - http://phaser.io * -* v2.4.6 "Baerlon" - Built: Thu Feb 18 2016 14:40:18 +* v2.4.7 "Hinderstap" - Built: Thu Apr 14 2016 13:21:49 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -1227,9 +1227,10 @@ PIXI.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform = PI */ PIXI.DisplayObjectContainer.prototype.getBounds = function() { - if(this.children.length === 0)return PIXI.EmptyRectangle; - - // TODO the bounds have already been calculated this render session so return what we have + if (this.children.length === 0) + { + return PIXI.EmptyRectangle; + } var minX = Infinity; var minY = Infinity; @@ -1243,11 +1244,14 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() var childVisible = false; - for(var i=0,j=this.children.length; i childMaxY ? maxY : childMaxY; } - if(!childVisible) + if (!childVisible) + { return PIXI.EmptyRectangle; + } var bounds = this._bounds; @@ -1273,9 +1279,6 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() bounds.width = maxX - minX; bounds.height = maxY - minY; - // TODO: store a reference so that if this function gets called again in the render cycle we do not have to recalculate - //this._currentBounds = bounds; - return bounds; }; @@ -1291,7 +1294,7 @@ PIXI.DisplayObjectContainer.prototype.getLocalBounds = function() this.worldTransform = PIXI.identityMatrix; - for(var i=0,j=this.children.length; i -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -6581,10 +6598,6 @@ PIXI.CanvasRenderer = function (game) { */ this.refresh = true; - // This is already done in the Game.setUpRenderer method. - // this.view.width = this.width * this.resolution; - // this.view.height = this.height * this.resolution; - /** * Internal var. * @@ -6673,8 +6686,8 @@ PIXI.CanvasRenderer.prototype.render = function (stage) { * @method destroy * @param [removeView=true] {boolean} Removes the Canvas element from the DOM. */ -PIXI.CanvasRenderer.prototype.destroy = function(removeView) -{ +PIXI.CanvasRenderer.prototype.destroy = function (removeView) { + if (removeView === undefined) { removeView = true; } if (removeView && this.view.parent) @@ -6696,8 +6709,8 @@ PIXI.CanvasRenderer.prototype.destroy = function(removeView) * @param width {Number} the new width of the canvas view * @param height {Number} the new height of the canvas view */ -PIXI.CanvasRenderer.prototype.resize = function(width, height) -{ +PIXI.CanvasRenderer.prototype.resize = function (width, height) { + this.width = width * this.resolution; this.height = height * this.resolution; @@ -6709,6 +6722,12 @@ PIXI.CanvasRenderer.prototype.resize = function(width, height) this.view.style.width = this.width / this.resolution + "px"; this.view.style.height = this.height / this.resolution + "px"; } + + if (this.renderSession.smoothProperty) + { + this.context[this.renderSession.smoothProperty] = (this.renderSession.scaleMode === PIXI.scaleModes.LINEAR); + } + }; /** @@ -7899,7 +7918,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) }).call(this); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -7910,7 +7929,7 @@ PIXI.AbstractFilter.prototype.apply = function(frameBuffer) /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -7924,7 +7943,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.6', + VERSION: '2.4.7 RC1', /** * An array of Phaser game instances. @@ -8275,7 +8294,7 @@ var Phaser = Phaser || { }; /** -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -8430,7 +8449,7 @@ if (!window.console) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -8837,7 +8856,7 @@ Phaser.Utils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -9412,7 +9431,7 @@ PIXI.Circle = Phaser.Circle; /** * @author Richard Davey * @author Chad Engler -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -9738,7 +9757,7 @@ PIXI.Ellipse = Phaser.Ellipse; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10383,7 +10402,7 @@ Phaser.Line.reflect = function (a, b) { /** * @author Mat Groves http://matgroves.com/ @Doormat23 * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10772,7 +10791,7 @@ PIXI.identityMatrix = Phaser.identityMatrix; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -11680,7 +11699,7 @@ PIXI.Point = Phaser.Point; /** * @author Richard Davey * @author Adrien Brault -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -11842,6 +11861,7 @@ Phaser.Polygon.prototype = { * - An array of Point objects: `[new Phaser.Point(x1, y1), ...]` * - An array of objects with public x/y properties: `[obj1, obj2, ...]` * - An array of paired numbers that represent point coordinates: `[x1,y1, x2,y2, ...]` + * - An array of arrays with two elements representing x/y coordinates: `[[x1, y1], [x2, y2], ...]` * - As separate Point arguments: `setTo(new Phaser.Point(x1, y1), ...)` * - As separate objects with public x/y properties arguments: `setTo(obj1, obj2, ...)` * - As separate arguments representing point coordinates: `setTo(x1,y1, x2,y2, ...)` @@ -11875,6 +11895,10 @@ Phaser.Polygon.prototype = { var p = new PIXI.Point(points[i], points[i + 1]); i++; } + else if (Array.isArray(points[i])) + { + var p = new PIXI.Point(points[i][0], points[i][1]); + } else { var p = new PIXI.Point(points[i].x, points[i].y); @@ -11973,7 +11997,7 @@ PIXI.Polygon = Phaser.Polygon; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -12981,7 +13005,7 @@ PIXI.EmptyRectangle = new Phaser.Rectangle(0, 0, 0, 0); /** * @author Mat Groves http://matgroves.com/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -13092,7 +13116,7 @@ PIXI.RoundedRectangle = Phaser.RoundedRectangle; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -13174,12 +13198,12 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.target = null; /** - * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot + * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot. */ this.displayObject = null; /** - * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot + * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot. */ this.scale = null; @@ -13190,7 +13214,44 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.totalInView = 0; /** - * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position + * The linear interpolation value to use when following a target. + * The default values of 1 means the camera will instantly snap to the target coordinates. + * A lower value, such as 0.1 means the camera will more slowly track the target, giving + * a smooth transition. You can set the horizontal and vertical values independently, and also + * adjust this value in real-time during your game. + * @property {Phaser.Point} lerp + * @default + */ + this.lerp = new Phaser.Point(1, 1); + + /** + * @property {Phaser.Signal} onShakeComplete - This signal is dispatched when the camera shake effect completes. + */ + this.onShakeComplete = new Phaser.Signal(); + + /** + * @property {Phaser.Signal} onFlashComplete - This signal is dispatched when the camera flash effect completes. + */ + this.onFlashComplete = new Phaser.Signal(); + + /** + * This signal is dispatched when the camera fade effect completes. + * When the fade effect completes you will be left with the screen black (or whatever + * color you faded to). In order to reset this call `Camera.resetFX`. This is called + * automatically when you change State. + * @property {Phaser.Signal} onFadeComplete + */ + this.onFadeComplete = new Phaser.Signal(); + + /** + * The Graphics object used to handle camera fx such as fade and flash. + * @property {Phaser.Graphics} fx + * @protected + */ + this.fx = null; + + /** + * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position. * @private */ this._targetPosition = new Phaser.Point(); @@ -13209,6 +13270,32 @@ Phaser.Camera = function (game, id, x, y, width, height) { */ this._position = new Phaser.Point(); + /** + * @property {Object} _shake - The shake effect container. + * @private + */ + this._shake = { + intensity: 0, + duration: 0, + horizontal: false, + vertical: false, + shakeBounds: true, + x: 0, + y: 0 + }; + + /** + * @property {number} _fxDuration - FX duration timer. + * @private + */ + this._fxDuration = 0; + + /** + * @property {number} _fxType - The FX type running. + * @private + */ + this._fxType = 0; + }; /** @@ -13235,8 +13322,55 @@ Phaser.Camera.FOLLOW_TOPDOWN = 2; */ Phaser.Camera.FOLLOW_TOPDOWN_TIGHT = 3; +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_BOTH = 4; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_HORIZONTAL = 5; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_VERTICAL = 6; + +/** +* @constant +* @type {boolean} +*/ +Phaser.Camera.ENABLE_FX = true; + Phaser.Camera.prototype = { + /** + * Called automatically by Phaser.World. + * + * @method Phaser.Camera#boot + * @private + */ + boot: function () { + + this.displayObject = this.game.world; + + this.scale = this.game.world.scale; + + this.game.camera = this; + + if (Phaser.Graphics && Phaser.Camera.ENABLE_FX) + { + this.fx = new Phaser.Graphics(this.game); + + this.game.stage.addChild(this.fx); + } + + }, + /** * Camera preUpdate. Sets the total view counter to zero. * @@ -13250,6 +13384,9 @@ Phaser.Camera.prototype = { /** * Tell the camera which sprite to follow. + * + * You can set the follow type and a linear interpolation value. + * Use low lerp values (such as 0.1) to automatically smooth the camera motion. * * If you find you're getting a slight "jitter" effect when following a Sprite it's probably to do with sub-pixel rendering of the Sprite position. * This can be disabled by setting `game.renderer.renderSession.roundPixels = true` to force full pixel rendering. @@ -13257,12 +13394,17 @@ Phaser.Camera.prototype = { * @method Phaser.Camera#follow * @param {Phaser.Sprite|Phaser.Image|Phaser.Text} target - The object you want the camera to track. Set to null to not follow anything. * @param {number} [style] - Leverage one of the existing "deadzone" presets. If you use a custom deadzone, ignore this parameter and manually specify the deadzone after calling follow(). + * @param {float} [lerpX=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when horizontally tracking the target. The closer the value to 1, the faster the camera will track. + * @param {float} [lerpY=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when vertically tracking the target. The closer the value to 1, the faster the camera will track. */ - follow: function (target, style) { + follow: function (target, style, lerpX, lerpY) { if (style === undefined) { style = Phaser.Camera.FOLLOW_LOCKON; } + if (lerpX === undefined) { lerpX = 1; } + if (lerpY === undefined) { lerpY = 1; } this.target = target; + this.lerp.set(lerpX, lerpY); var helper; @@ -13330,16 +13472,156 @@ Phaser.Camera.prototype = { }, /** - * Update focusing and scrolling. + * This creates a camera shake effect. It works by applying a random amount of additional + * spacing on the x and y axis each frame. You can control the intensity and duration + * of the effect, and if it should effect both axis or just one. + * + * When the shake effect ends the signal Camera.onShakeComplete is dispatched. + * + * @method Phaser.Camera#shake + * @param {float} [intensity=0.05] - The intensity of the camera shake. Given as a percentage of the camera size representing the maximum distance that the camera can move while shaking. + * @param {number} [duration=500] - The duration of the shake effect in milliseconds. + * @param {boolean} [force=true] - If a camera shake effect is already running and force is true it will replace the previous effect, resetting the duration. + * @param {number} [direction=Phaser.Camera.SHAKE_BOTH] - The directions in which the camera can shake. Either Phaser.Camera.SHAKE_BOTH, Phaser.Camera.SHAKE_HORIZONTAL or Phaser.Camera.SHAKE_VERTICAL. + * @param {boolean} [shakeBounds=true] - Is the effect allowed to shake the camera beyond its bounds (if set?). + * @return {boolean} True if the shake effect was started, otherwise false. + */ + shake: function (intensity, duration, force, direction, shakeBounds) { + + if (intensity === undefined) { intensity = 0.05; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = true; } + if (direction === undefined) { direction = Phaser.Camera.SHAKE_BOTH; } + if (shakeBounds === undefined) { shakeBounds = true; } + + if (!force && this._shake.duration > 0) + { + // Can't reset an already running shake + return false; + } + + this._shake.intensity = intensity; + this._shake.duration = duration; + this._shake.shakeBounds = shakeBounds; + + this._shake.x = 0; + this._shake.y = 0; + + this._shake.horizontal = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_HORIZONTAL); + this._shake.vertical = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_VERTICAL); + + return true; + + }, + + /** + * This creates a camera flash effect. It works by filling the game with the solid fill + * color specified, and then fading it away to alpha 0 over the duration given. + * + * You can use this for things such as hit feedback effects. + * + * When the effect ends the signal Camera.onFlashComplete is dispatched. + * + * @method Phaser.Camera#flash + * @param {numer} [color=0xffffff] - The color of the flash effect. I.e. 0xffffff for white, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the flash effect in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + flash: function (color, duration, force) { + + if (color === undefined) { color = 0xffffff; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 1; + + this._fxDuration = duration; + this._fxType = 0; + + return true; + + }, + + /** + * This creates a camera fade effect. It works by filling the game with the + * color specified, over the duration given, ending with a solid fill. + * + * You can use this for things such as transitioning to a new scene. + * + * The game will be left 'filled' at the end of this effect, likely obscuring + * everything. In order to reset it you can call `Camera.resetFX` and it will clear the + * fade. Or you can call `Camera.flash` with the same color as the fade, and it will + * reverse the process, bringing the game back into view again. + * + * When the effect ends the signal Camera.onFadeComplete is dispatched. + * + * @method Phaser.Camera#fade + * @param {numer} [color=0x000000] - The color the game will fade to. I.e. 0x000000 for black, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the fade in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + fade: function (color, duration, force) { + + if (color === undefined) { color = 0x000000; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 0; + + this._fxDuration = duration; + this._fxType = 1; + + return true; + + }, + + /** + * The camera update loop. This is called automatically by the core game loop. + * * @method Phaser.Camera#update + * @protected */ update: function () { + if (this._fxDuration > 0) + { + this.updateFX(); + } + if (this.target) { this.updateTarget(); } + if (this._shake.duration > 0) + { + this.updateShake(); + } + if (this.bounds) { this.checkBounds(); @@ -13348,26 +13630,90 @@ Phaser.Camera.prototype = { if (this.roundPx) { this.view.floor(); + this._shake.x = Math.floor(this._shake.x); + this._shake.y = Math.floor(this._shake.y); } - this.displayObject.position.x = -this.view.x; - this.displayObject.position.y = -this.view.y; + this.displayObject.position.x = -(this.view.x + this._shake.x); + this.displayObject.position.y = -(this.view.y + this._shake.y); }, /** - * Internal method + * Update the camera flash and fade effects. + * + * @method Phaser.Camera#updateFX + * @private + */ + updateFX: function () { + + if (this._fxType === 0) + { + // flash + this.fx.alpha -= this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha <= 0) + { + this._fxDuration = 0; + this.fx.alpha = 0; + this.onFlashComplete.dispatch(); + } + } + else + { + // fade + this.fx.alpha += this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha >= 1) + { + this._fxDuration = 0; + this.fx.alpha = 1; + this.onFadeComplete.dispatch(); + } + } + + }, + + /** + * Update the camera shake effect. + * + * @method Phaser.Camera#updateShake + * @private + */ + updateShake: function () { + + this._shake.duration -= this.game.time.elapsedMS; + + if (this._shake.duration <= 0) + { + this.onShakeComplete.dispatch(); + this._shake.x = 0; + this._shake.y = 0; + } + else + { + if (this._shake.horizontal) + { + this._shake.x = this.game.rnd.frac() * this._shake.intensity * this.view.width * 2 - this._shake.intensity * this.view.width; + } + + if (this._shake.vertical) + { + this._shake.y = this.game.rnd.frac() * this._shake.intensity * this.view.height * 2 - this._shake.intensity * this.view.height; + } + } + + }, + + /** + * Internal method that handles tracking a sprite. + * * @method Phaser.Camera#updateTarget * @private */ updateTarget: function () { - this._targetPosition.copyFrom(this.target); - - if (this.target.parent) - { - this._targetPosition.multiply(this.target.parent.worldTransform.a, this.target.parent.worldTransform.d); - } + this._targetPosition.copyFrom(this.target.world); if (this.deadzone) { @@ -13375,34 +13721,35 @@ Phaser.Camera.prototype = { if (this._edge < this.deadzone.left) { - this.view.x = this._targetPosition.x - this.deadzone.left; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.left, this.lerp.x); } else if (this._edge > this.deadzone.right) { - this.view.x = this._targetPosition.x - this.deadzone.right; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.right, this.lerp.x); } this._edge = this._targetPosition.y - this.view.y; if (this._edge < this.deadzone.top) { - this.view.y = this._targetPosition.y - this.deadzone.top; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.top, this.lerp.y); } else if (this._edge > this.deadzone.bottom) { - this.view.y = this._targetPosition.y - this.deadzone.bottom; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.bottom, this.lerp.y); } } else { - this.view.x = this._targetPosition.x - this.view.halfWidth; - this.view.y = this._targetPosition.y - this.view.halfHeight; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.view.halfWidth, this.lerp.x); + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.view.halfHeight, this.lerp.y); } }, /** * Update the Camera bounds to match the game world. + * * @method Phaser.Camera#setBoundsToWorld */ setBoundsToWorld: function () { @@ -13416,36 +13763,68 @@ Phaser.Camera.prototype = { /** * Method called to ensure the camera doesn't venture outside of the game world. + * Called automatically by Camera.update. + * * @method Phaser.Camera#checkBounds + * @protected */ checkBounds: function () { this.atLimit.x = false; this.atLimit.y = false; + var vx = this.view.x + this._shake.x; + var vw = this.view.right + this._shake.x; + var vy = this.view.y + this._shake.y; + var vh = this.view.bottom + this._shake.y; + // Make sure we didn't go outside the cameras bounds - if (this.view.x <= this.bounds.x * this.scale.x) + if (vx <= this.bounds.x * this.scale.x) { this.atLimit.x = true; this.view.x = this.bounds.x * this.scale.x; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.right >= this.bounds.right * this.scale.x) + if (vw >= this.bounds.right * this.scale.x) { this.atLimit.x = true; this.view.x = (this.bounds.right * this.scale.x) - this.width; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.y <= this.bounds.top * this.scale.y) + if (vy <= this.bounds.top * this.scale.y) { this.atLimit.y = true; this.view.y = this.bounds.top * this.scale.y; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } - if (this.view.bottom >= this.bounds.bottom * this.scale.y) + if (vh >= this.bounds.bottom * this.scale.y) { this.atLimit.y = true; this.view.y = (this.bounds.bottom * this.scale.y) - this.height; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } }, @@ -13486,15 +13865,38 @@ Phaser.Camera.prototype = { /** * Resets the camera back to 0,0 and un-follows any object it may have been tracking. + * Also immediately resets any camera effects that may have been running such as + * shake, flash or fade. * * @method Phaser.Camera#reset */ reset: function () { this.target = null; + this.view.x = 0; this.view.y = 0; + this._shake.duration = 0; + + this.resetFX(); + + }, + + /** + * Resets any active FX, such as a fade or flash and immediately clears it. + * Useful to calling after a fade in order to remove the fade from the Stage. + * + * @method Phaser.Camera#resetFX + */ + resetFX: function () { + + this.fx.clear(); + + this.fx.alpha = 0; + + this._fxDuration = 0; + } }; @@ -13509,7 +13911,9 @@ Phaser.Camera.prototype.constructor = Phaser.Camera; Object.defineProperty(Phaser.Camera.prototype, "x", { get: function () { + return this.view.x; + }, set: function (value) { @@ -13532,7 +13936,9 @@ Object.defineProperty(Phaser.Camera.prototype, "x", { Object.defineProperty(Phaser.Camera.prototype, "y", { get: function () { + return this.view.y; + }, set: function (value) { @@ -13555,8 +13961,11 @@ Object.defineProperty(Phaser.Camera.prototype, "y", { Object.defineProperty(Phaser.Camera.prototype, "position", { get: function () { - this._position.set(this.view.centerX, this.view.centerY); + + this._position.set(this.view.x, this.view.y); + return this._position; + }, set: function (value) { @@ -13580,11 +13989,15 @@ Object.defineProperty(Phaser.Camera.prototype, "position", { Object.defineProperty(Phaser.Camera.prototype, "width", { get: function () { + return this.view.width; + }, set: function (value) { + this.view.width = value; + } }); @@ -13597,18 +14010,22 @@ Object.defineProperty(Phaser.Camera.prototype, "width", { Object.defineProperty(Phaser.Camera.prototype, "height", { get: function () { + return this.view.height; + }, set: function (value) { + this.view.height = value; + } }); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -13837,7 +14254,7 @@ Phaser.State.prototype.constructor = Phaser.State; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14628,20 +15045,63 @@ Object.defineProperty(Phaser.StateManager.prototype, "created", { /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** -* A Signal is an event dispatch mechanism that supports broadcasting to multiple listeners. +* Signals are what Phaser uses to handle events and event dispatching. +* You can listen for a Signal by binding a callback / function to it. +* This is done by using either `Signal.add` or `Signal.addOnce`. * -* Event listeners are uniquely identified by the listener/callback function and the context. +* For example you can listen for a touch or click event from the Input Manager +* by using its `onDown` Signal: +* +* `game.input.onDown.add(function() { ... });` +* +* Rather than inline your function, you can pass a reference: +* +* `game.input.onDown.add(clicked, this);` +* `function clicked () { ... }` +* +* In this case the second argument (`this`) is the context in which your function should be called. +* +* Now every time the InputManager dispatches the `onDown` signal (or event), your function +* will be called. +* +* Very often a Signal will send arguments to your function. +* This is specific to the Signal itself. +* If you're unsure then check the documentation, or failing that simply do: +* +* `Signal.add(function() { console.log(arguments); })` +* +* and it will log all of the arguments your function received from the Signal. +* +* Sprites have lots of default signals you can listen to in their Events class, such as: +* +* `sprite.events.onKilled` * +* Which is called automatically whenever the Sprite is killed. +* There are lots of other events, see the Events component for a list. +* +* As well as listening to pre-defined Signals you can also create your own: +* +* `var mySignal = new Phaser.Signal();` +* +* This creates a new Signal. You can bind a callback to it: +* +* `mySignal.add(myCallback, this);` +* +* and then finally when ready you can dispatch the Signal: +* +* `mySignal.dispatch(your arguments);` +* +* And your callback will be invoked. See the dispatch method for more details. +* * @class Phaser.Signal * @constructor */ -Phaser.Signal = function () { -}; +Phaser.Signal = function () {}; Phaser.Signal.prototype = { @@ -14687,7 +15147,7 @@ Phaser.Signal.prototype = { * @property {function} _boundDispatch - The bound dispatch function, if any. * @private */ - _boundDispatch: true, + _boundDispatch: false, /** * @method Phaser.Signal#validateListener @@ -15091,7 +15551,7 @@ Phaser.Signal.prototype.constructor = Phaser.Signal; /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -15290,7 +15750,7 @@ Phaser.SignalBinding.prototype.constructor = Phaser.SignalBinding; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -15538,7 +15998,7 @@ Object.defineProperty(Phaser.Filter.prototype, 'height', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -15663,7 +16123,7 @@ Phaser.Plugin.prototype.constructor = Phaser.Plugin; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -15949,7 +16409,7 @@ Phaser.PluginManager.prototype.constructor = Phaser.PluginManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16370,7 +16830,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16659,7 +17119,7 @@ Phaser.Group.prototype.add = function (child, silent) { if (child.parent !== this) { - if (child.body && child.parent) + if (child.body && child.parent && child.parent.hash) { child.parent.removeFromHash(child); } @@ -17169,6 +17629,29 @@ Phaser.Group.prototype.getIndex = function (child) { }; +/** +* Searches the Group for the first instance of a child with the `name` +* property matching the given argument. Should more than one child have +* the same name only the first instance is returned. +* +* @method Phaser.Group#getByName +* @param {string} name - The name to search for. +* @return {any} The first child with a matching name, or null if none were found. +*/ +Phaser.Group.prototype.getByName = function (name) { + + for (var i = 0; i < this.children.length; i++) + { + if (this.children[i].name === name) + { + return this.children[i]; + } + } + + return null; + +}; + /** * Replaces a child of this group with the given newChild. The newChild cannot be a member of this group. * @@ -18690,7 +19173,7 @@ Object.defineProperty(Phaser.Group.prototype, "angle", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -18757,14 +19240,10 @@ Phaser.World.prototype.boot = function () { this.camera = new Phaser.Camera(this.game, 0, 0, 0, this.game.width, this.game.height); - this.camera.displayObject = this; - - this.camera.scale = this.scale; - - this.game.camera = this.camera; - this.game.stage.addChild(this); + this.camera.boot(); + }; /** @@ -18866,6 +19345,9 @@ Phaser.World.prototype.shutdown = function () { * If they do it will reposition the object to the opposite side of the world, creating a wrap-around effect. * If sprite has a P2 body then the body (sprite.body) should be passed as first parameter to the function. * +* Please understand there are limitations to this method. For example if you have scaled the World +* then objects won't always be re-positioned correctly, and you'll need to employ your own wrapping function. +* * @method Phaser.World#wrap * @param {Phaser.Sprite|Phaser.Image|Phaser.TileSprite|Phaser.Text} sprite - The object you wish to wrap around the world bounds. * @param {number} [padding=0] - Extra padding added equally to the sprite.x and y coordinates before checking if within the world bounds. Ignored if useBounds is true. @@ -18989,7 +19471,7 @@ Object.defineProperty(Phaser.World.prototype, "height", { Object.defineProperty(Phaser.World.prototype, "centerX", { get: function () { - return this.bounds.halfWidth; + return this.bounds.halfWidth + this.bounds.x; } }); @@ -19002,7 +19484,7 @@ Object.defineProperty(Phaser.World.prototype, "centerX", { Object.defineProperty(Phaser.World.prototype, "centerY", { get: function () { - return this.bounds.halfHeight; + return this.bounds.halfHeight + this.bounds.y; } }); @@ -19053,7 +19535,7 @@ Object.defineProperty(Phaser.World.prototype, "randomY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -19430,7 +19912,7 @@ Phaser.Game = function (width, height, renderer, parent, state, transparent, ant /** * @property {boolean} forceSingleUpdate - Should the game loop force a logic update, regardless of the delta timer? Set to true if you know you need this. You can toggle it on the fly. */ - this.forceSingleUpdate = false; + this.forceSingleUpdate = true; /** * @property {number} _nextNotification - The soonest game.time.time value that the next fpsProblemNotifier can be dispatched. @@ -19734,7 +20216,14 @@ Phaser.Game.prototype = { */ setUpRenderer: function () { - this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + if (this.config['canvas']) + { + this.canvas = this.config['canvas']; + } + else + { + this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + } if (this.config['canvasStyle']) { @@ -20056,23 +20545,29 @@ Phaser.Game.prototype = { this.state.destroy(); this.sound.destroy(); - this.scale.destroy(); this.stage.destroy(); this.input.destroy(); this.physics.destroy(); + this.plugins.destroy(); this.state = null; - this.cache = null; - this.input = null; - this.load = null; this.sound = null; + this.scale = null; this.stage = null; + this.input = null; + this.physics = null; + this.plugins = null; + + this.cache = null; + this.load = null; this.time = null; this.world = null; + this.isBooted = false; this.renderer.destroy(false); + Phaser.Canvas.removeFromDOM(this.canvas); Phaser.GAMES[this.id] = null; @@ -20092,8 +20587,14 @@ Phaser.Game.prototype = { if (!this._paused) { this._paused = true; + this.time.gamePaused(); - this.sound.setMute(); + + if (this.sound.muteOnPause) + { + this.sound.setMute(); + } + this.onPause.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -20118,9 +20619,16 @@ Phaser.Game.prototype = { if (this._paused && !this._codePaused) { this._paused = false; + this.time.gameResumed(); + this.input.reset(); - this.sound.unsetMute(); + + if (this.sound.muteOnPause) + { + this.sound.unsetMute(); + } + this.onResume.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -20224,7 +20732,7 @@ Object.defineProperty(Phaser.Game.prototype, "paused", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21312,7 +21820,7 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21320,10 +21828,10 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { * The Mouse class is responsible for handling all aspects of mouse interaction with the browser. * * It captures and processes mouse events that happen on the game canvas object. -* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released +* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released * when not over the game. * -* You should not normally access this class directly, but instead use a Phaser.Pointer object +* You should not normally access this class directly, but instead use a Phaser.Pointer object * which normalises all game input for you, including accurate button handling. * * @class Phaser.Mouse @@ -21697,7 +22205,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse up event from the window. - * + * * @method Phaser.Mouse#onMouseUpGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -21719,7 +22227,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse out event from the window. - * + * * @method Phaser.Mouse#onMouseOutGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -21744,7 +22252,7 @@ Phaser.Mouse.prototype = { // the browser opening a context-menu or similar. // On OS X Chrome especially this is bad news, as it blocks // us then getting a mouseup event, so we need to force that through. - // + // // No matter what, we must cancel the left and right buttons this.input.mousePointer.stop(event); @@ -21873,7 +22381,7 @@ Phaser.Mouse.prototype = { /** * Internal pointerLockChange handler. - * + * * @method Phaser.Mouse#pointerLockChange * @param {Event} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -21934,6 +22442,7 @@ Phaser.Mouse.prototype = { } window.removeEventListener('mouseup', this._onMouseUpGlobal, true); + window.removeEventListener('mouseout', this._onMouseOutGlobal, true); document.removeEventListener('pointerlockchange', this._pointerLockChange, true); document.removeEventListener('mozpointerlockchange', this._pointerLockChange, true); @@ -22031,7 +22540,7 @@ Object.defineProperties(WheelEventProxy.prototype, { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22483,7 +22992,7 @@ Phaser.MSPointer.prototype.constructor = Phaser.MSPointer; /** * @author Richard Davey * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22804,7 +23313,7 @@ Object.defineProperty(Phaser.DeviceButton.prototype, "duration", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -24040,7 +24549,7 @@ Phaser.PointerMode = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -24504,7 +25013,7 @@ Phaser.Touch.prototype.constructor = Phaser.Touch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25458,13 +25967,19 @@ Phaser.InputHandler.prototype = { data.isUp = false; data.timeDown = this.game.time.time; + // It's possible the onInputDown event creates a new Sprite that is on-top of this one, so we ought to force a Pointer update + pointer.dirty = true; + if (this.sprite && this.sprite.events) { this.sprite.events.onInputDown$dispatch(this.sprite, pointer); + // The onInputDown event might have destroyed this sprite. + if (this.sprite === null) + { + return; + } } - // It's possible the onInputDown event created a new Sprite that is on-top of this one, so we ought to force a Pointer update - pointer.dirty = true; // Start drag if (this.draggable && this.isDragged === false) @@ -25822,13 +26337,13 @@ Phaser.InputHandler.prototype = { { if (this.dragFromCenter) { - this.sprite.centerOn(pointer.x, pointer.y); - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); - } - else - { - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); + var bounds = this.sprite.getBounds(); + + this.sprite.cameraOffset.x = this.globalToLocalX(pointer.x) + (this.sprite.cameraOffset.x - bounds.centerX); + this.sprite.cameraOffset.y = this.globalToLocalY(pointer.y) + (this.sprite.cameraOffset.y - bounds.centerY); } + + this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); } else { @@ -26110,7 +26625,7 @@ Phaser.InputHandler.prototype.constructor = Phaser.InputHandler; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26118,7 +26633,7 @@ Phaser.Component = function () {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26164,7 +26679,7 @@ Phaser.Component.Angle.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26205,7 +26720,7 @@ Phaser.Component.Animation.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26260,7 +26775,7 @@ Phaser.Component.AutoCull.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26381,7 +26896,7 @@ Phaser.Component.Bounds.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26478,7 +26993,7 @@ Phaser.Component.BringToTop.prototype.moveDown = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26834,7 +27349,7 @@ Phaser.Component.Core.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26952,7 +27467,7 @@ Phaser.Component.Crop.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27021,7 +27536,7 @@ Phaser.Component.Delta.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27101,6 +27616,8 @@ Phaser.Component.Destroy.prototype = { this.events.destroy(); } + this.game.tweens.removeFrom(this); + var i = this.children.length; if (destroyChildren) @@ -27182,7 +27699,7 @@ Phaser.Component.Destroy.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27376,7 +27893,7 @@ for (var prop in Phaser.Events.prototype) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27465,7 +27982,7 @@ Phaser.Component.FixedToCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27572,7 +28089,7 @@ Phaser.Component.Health.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27609,7 +28126,7 @@ Phaser.Component.InCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27682,7 +28199,7 @@ Phaser.Component.InputEnabled.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27722,6 +28239,12 @@ Phaser.Component.InWorld.preUpdate = function () { else { this.renderable = false; + + if (this.outOfCameraBoundsKill) + { + this.kill(); + return false; + } } } @@ -27781,6 +28304,15 @@ Phaser.Component.InWorld.prototype = { */ outOfBoundsKill: false, + /** + * If this and the `autoCull` property are both set to `true`, then the `kill` method + * is called as soon as the Game Object leaves the camera bounds. + * + * @property {boolean} outOfCameraBoundsKill + * @default + */ + outOfCameraBoundsKill: false, + /** * @property {boolean} _outOfBoundsFired - Internal state var. * @private @@ -27807,7 +28339,7 @@ Phaser.Component.InWorld.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27936,7 +28468,7 @@ Phaser.Component.LifeSpan.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27977,6 +28509,8 @@ Phaser.Component.LoadTexture.prototype = { * to use a Texture Atlas later in development by simply searching your code for 'PENDING_ATLAS' * and swapping it to be the key of the atlas data. * + * Note: You cannot use a RenderTexture as a texture for a TileSprite. + * * @method * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache Image entry, or an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. * @param {string|number} [frame] - If this Sprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. @@ -28021,6 +28555,10 @@ Phaser.Component.LoadTexture.prototype = { { setFrame = !this.animations.loadFrameData(cache.getFrameData(key.key, Phaser.Cache.BITMAPDATA), frame); } + else + { + setFrame = !this.animations.loadFrameData(key.frameData, 0); + } } else if (Phaser.Video && key instanceof Phaser.Video) { @@ -28033,6 +28571,12 @@ Phaser.Component.LoadTexture.prototype = { key.onChangeSource.add(this.resizeFrame, this); this.texture.valid = valid; } + else if (Phaser.Tilemap && key instanceof Phaser.TilemapLayer) + { + // this.customRender = true; + + this.setTexture(PIXI.Texture.fromCanvas(key.canvas)); + } else if (key instanceof PIXI.Texture) { this.setTexture(key); @@ -28216,7 +28760,7 @@ Phaser.Component.LoadTexture.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28252,7 +28796,7 @@ Phaser.Component.Overlap.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28398,7 +28942,7 @@ Phaser.Component.PhysicsBody.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28462,7 +29006,7 @@ Phaser.Component.Reset.prototype.reset = function (x, y, health) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28630,7 +29174,7 @@ Phaser.Component.ScaleMinMax.prototype = { }; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28684,7 +29228,7 @@ Phaser.Component.Smoothed.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28934,7 +29478,7 @@ Phaser.GameObjectFactory.prototype = { * @param {number} y - The y coordinate of the TileSprite. The coordinate is relative to any parent container this TileSprite may be in. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - The image used as a texture by this display object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} [frame] - If a Texture Atlas or Sprite Sheet is used this allows you to specify the frame to be used. Use either an integer for a Frame ID or a string for a frame name. * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. * @return {Phaser.TileSprite} The newly created TileSprite object. @@ -29247,7 +29791,7 @@ Phaser.GameObjectFactory.prototype.constructor = Phaser.GameObjectFactory; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29415,7 +29959,7 @@ Phaser.GameObjectCreator.prototype = { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. * @return {Phaser.TileSprite} The newly created tileSprite object. */ @@ -29677,7 +30221,7 @@ Phaser.GameObjectCreator.prototype.constructor = Phaser.GameObjectCreator; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29794,7 +30338,7 @@ Phaser.Sprite.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29887,7 +30431,7 @@ Phaser.Image.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30483,7 +31027,7 @@ Phaser.Button.prototype.onInputUpHandler = function (sprite, pointer, isOver) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30526,7 +31070,7 @@ Phaser.SpriteBatch.prototype.constructor = Phaser.SpriteBatch; Phaser.TileSprite = function () {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31903,7 +32447,7 @@ Phaser.Device.isAndroidStockBrowser = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32211,7 +32755,7 @@ Phaser.Canvas = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32380,7 +32924,7 @@ Phaser.RequestAnimationFrame.prototype.constructor = Phaser.RequestAnimationFram /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33276,16 +33820,29 @@ Phaser.Math = { }, /** - * Force a value within the boundaries by clamping `x` to the range `[a, b]`. + * Force a value within the boundaries by clamping it to the range `min`, `max`. * * @method Phaser.Math#clamp - * @param {number} x - * @param {number} a - * @param {number} b - * @return {number} + * @param {float} v - The value to be clamped. + * @param {float} min - The minimum bounds. + * @param {float} max - The maximum bounds. + * @return {number} The clamped value. */ - clamp: function (x, a, b) { - return ( x < a ) ? a : ( ( x > b ) ? b : x ); + clamp: function (v, min, max) { + + if (v < min) + { + return min; + } + else if (max < v) + { + return max; + } + else + { + return v; + } + }, /** @@ -33334,24 +33891,29 @@ Phaser.Math = { * Smoothstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smoothstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smoothstep: function (x, min, max) { + + // Scale, bias and saturate x to 0..1 range x = Math.max(0, Math.min(1, (x - min) / (max - min))); + + // Evaluate polynomial return x * x * (3 - 2 * x); + }, /** * Smootherstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smootherstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smootherstep: function (x, min, max) { x = Math.max(0, Math.min(1, (x - min) / (max - min))); @@ -33416,7 +33978,7 @@ Phaser.Math.degToRad = function degToRad (degrees) { }; /** -* Convert degrees to radians. +* Convert radians to degrees. * * @method Phaser.Math#radToDeg * @param {number} radians - Angle in radians. @@ -33430,7 +33992,7 @@ Phaser.Math.radToDeg = function radToDeg (radians) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33787,7 +34349,7 @@ Phaser.RandomDataGenerator.prototype.constructor = Phaser.RandomDataGenerator; /** * @author Timo Hausmann * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34139,7 +34701,7 @@ Phaser.QuadTree.prototype.constructor = Phaser.QuadTree; /** * @author Steven Rogers -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34166,7 +34728,7 @@ Phaser.Net.prototype.constructor = Phaser.Net; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34179,12 +34741,13 @@ Phaser.TweenManager = function () {}; Phaser.TweenManager.prototype.update = function () {}; Phaser.TweenManager.prototype.removeAll = function () {}; +Phaser.TweenManager.prototype.removeFrom = function () {}; Phaser.TweenManager.prototype.constructor = Phaser.TweenManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34813,7 +35376,7 @@ Phaser.Time.prototype.constructor = Phaser.Time; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -35570,7 +36133,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -35580,7 +36143,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; * It consists of a delay, which is a value in milliseconds after which the event will fire. * When the event fires it calls a specific callback with the specified arguments. * -* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#add}, or {@link Phaser.Timer#add} methods to create a new event. +* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#repeat}, or {@link Phaser.Timer#loop} methods to create a new event. * * @class Phaser.TimerEvent * @constructor @@ -35649,7 +36212,7 @@ Phaser.TimerEvent.prototype.constructor = Phaser.TimerEvent; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -36218,7 +36781,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frameName', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -37040,7 +37603,7 @@ Phaser.Animation.generateFrameNames = function (prefix, start, stop, suffix, zer /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -37271,7 +37834,7 @@ Phaser.Frame.prototype.constructor = Phaser.Frame; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -37517,6 +38080,18 @@ Phaser.FrameData.prototype = { return output; + }, + + /** + * Destroys this FrameData collection by nulling the _frames and _frameNames arrays. + * + * @method Phaser.FrameData#destroy + */ + destroy: function () { + + this._frames = null; + this._frameNames = null; + } }; @@ -37538,7 +38113,7 @@ Object.defineProperty(Phaser.FrameData.prototype, "total", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -37866,7 +38441,7 @@ Phaser.AnimationParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -39889,7 +40464,7 @@ Phaser.Cache.prototype.constructor = Phaser.Cache; /* jshint wsh:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -42926,7 +43501,7 @@ Phaser.Loader.prototype.constructor = Phaser.Loader; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43094,7 +43669,7 @@ Phaser.LoaderParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43103,7 +43678,9 @@ Phaser.LoaderParser = { * It allows you to exclude the default Sound Manager from your build, without making Game crash. */ -Phaser.SoundManager = function () {}; +Phaser.SoundManager = function () { + this.muteOnPause = false; +}; Phaser.SoundManager.prototype.boot = function () {}; Phaser.SoundManager.prototype.update = function () {}; @@ -43115,7 +43692,7 @@ Phaser.SoundManager.prototype.constructor = Phaser.SoundManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45491,7 +46068,7 @@ Object.defineProperty(Phaser.ScaleManager.prototype, "isGameLandscape", { /** * @author Steven Rogers -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45540,7 +46117,7 @@ Phaser.Utils.Debug.prototype.constructor = Phaser.Utils.Debug; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45973,7 +46550,7 @@ Phaser.Device.whenReady(function (device) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46255,7 +46832,7 @@ Phaser.ArraySet.prototype.constructor = Phaser.ArraySet; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46548,7 +47125,7 @@ Phaser.ArrayUtils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46737,7 +47314,7 @@ Phaser.LinkedList.prototype.constructor = Phaser.LinkedList; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46942,7 +47519,7 @@ Phaser.Create.prototype.constructor = Phaser.Create; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47270,7 +47847,7 @@ Phaser.FlexGrid.prototype.constructor = Phaser.FlexGrid; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47386,7 +47963,7 @@ Phaser.FlexLayer.prototype.debug = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -48726,7 +49303,7 @@ Phaser.Color = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -48976,6 +49553,10 @@ Phaser.Physics.prototype = { { this.matter.enable(object); } + else + { + console.warn(object.key + ' is attempting to enable a physics body using an unknown physics system.'); + } }, @@ -49154,7 +49735,7 @@ Phaser.Physics.prototype.constructor = Phaser.Physics; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -49236,7 +49817,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -49280,7 +49861,7 @@ PIXI.TextureSilentFail = true; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ diff --git a/build/custom/phaser-minimum.map b/build/custom/phaser-minimum.map index 3aa3f6443..0d24a63fb 100644 --- a/build/custom/phaser-minimum.map +++ b/build/custom/phaser-minimum.map @@ -1 +1 @@ -{"version":3,"file":"phaser-minimum.min.js","sources":["phaser-minimum.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","transformCallback","call","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","points","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","reset","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","n","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","addToHash","events","onAddedToGroup$dispatch","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","Graphics","graphicsData","fill","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","duration","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","rect","updateCrop","resetFrame","_frame","Delta","Destroy","destroyTexture","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","connect","audioSprite","addSprite","tileSprite","rope","Rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","LITTLE_ENDIAN","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","userAgent","test","vita","kindle","match","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","ctx","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","backgroundColor","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","translateX","translateY","skewX","skewY","setSmoothingEnabled","vendor","prefix","getSmoothingEnabled","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","snapToCeil","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","point1","point2","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","diff","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","k","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","v0","v1","t2","t3","difference","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","sign","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","charCodeAt","integer","frac","real","integerInRange","realInRange","normal","pick","ary","weightedPick","timestamp","parseFloat","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","netNoop","isDisabled","getHostName","checkDomainName","updateQueryString","getQueryString","decodeURI","prevTime","elapsedMS","physicsElapsed","_desiredFps","suggestedFps","advancedTiming","frames","fps","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","_pause","_resume","elapsedSince","since","elapsedSecondsSince","running","expired","onComplete","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","pendingDelete","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","updateFrameData","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","isPaused","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onStart","onUpdate","onLoop","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","Frame","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","FrameData","_frameNames","addFrame","getFrameRange","getFrames","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","addImage","checkImageKey","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","textureFrame","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getBitmapFont","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","path","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","direction","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","properties","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","status","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","lineHeight","letters","charCode","xAdvance","kerning","kernings","second","finalizeBitmapFont","_face","_size","_lineHeight","letter","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","debugNoop","soundInfo","cameraInfo","spriteInputInfo","inputInfo","spriteBounds","ropeSegments","spriteInfo","spriteCoords","lineInfo","pixel","geom","rectangle","quadTree","bodyInfo","box2dWorld","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","list","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","prev","entity","bmd","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","manager","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","packPixel","unpackPixel","hsl","hsv","createColor","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","HSLtoRGB","q","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","red","green","blue","interpolateColorWithRGB","or","og","ob","interpolateRGB","r1","g1","r2","g2","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendLighten","blendDarken","blendMultiply","blendAverage","blendAdd","blendSubtract","blendDifference","blendNegation","blendScreen","blendExclusion","blendOverlay","blendSoftLight","blendHardLight","blendColorDodge","blendColorBurn","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","box2d","chipmunk","matter","NINJA","BOX2D","CHIPMUNK","MATTERJS","Ninja","P2","Matter","startSystem","system","Box2D","enableAABB","emitters","ID","POLY","RECT","CIRC","ELIP","RREC"],"mappings":";;CAkCA,WAEI,GAAIA,GAAOC,KAoBXC,EAAOA,KAiqPP,OA1pPJA,GAAKC,KAAO,KAOZD,EAAKE,eAAiB,EAOtBF,EAAKG,gBAAkB,EAOvBH,EAAKI,QAAU,SAGfJ,EAAKK,KAAO,EAEgB,mBAAlB,eAENL,EAAKM,aAAeA,aACpBN,EAAKO,YAAcA,YAOnBP,EAAKQ,YAAcA,YACnBR,EAAKS,YAAcA,cAInBT,EAAKM,aAAeI,MACpBV,EAAKO,YAAcG,OAOvBV,EAAKW,KAAiB,EAAVC,KAAKC,GAMjBb,EAAKc,WAAa,IAAMF,KAAKC,GAM7Bb,EAAKe,WAAaH,KAAKC,GAAK,IAO5Bb,EAAKgB,cAAgB,MAqCrBhB,EAAKiB,cAAgB,WAQjBlB,KAAKmB,SAAW,GAAIlB,GAAKmB,MAAM,EAAG,GAQlCpB,KAAKqB,MAAQ,GAAIpB,GAAKmB,MAAM,EAAG,GAQ/BpB,KAAKsB,MAAQ,GAAIrB,GAAKmB,MAAM,EAAG,GAQ/BpB,KAAKuB,SAAW,EAQhBvB,KAAKwB,MAAQ,EAQbxB,KAAKyB,SAAU,EASfzB,KAAK0B,QAAU,KAQf1B,KAAK2B,YAAa,EASlB3B,KAAK4B,OAAS,KASd5B,KAAK6B,MAAQ,KASb7B,KAAK8B,WAAa,EAUlB9B,KAAK+B,eAAiB,GAAI9B,GAAK+B,OAU/BhC,KAAKiC,cAAgB,GAAIhC,GAAKmB,MAAM,EAAG,GAUvCpB,KAAKkC,WAAa,GAAIjC,GAAKmB,MAAM,EAAG,GAUpCpB,KAAKmC,cAAgB,EASrBnC,KAAKoC,IAAM,EASXpC,KAAKqC,IAAM,EASXrC,KAAKsC,WAAa,KASlBtC,KAAKuC,QAAU,GAAItC,GAAKuC,UAAU,EAAG,EAAG,EAAG,GAS3CxC,KAAKyC,eAAiB,KAStBzC,KAAK0C,MAAQ,KASb1C,KAAK2C,gBAAiB,EAStB3C,KAAK4C,eAAgB,GAKzB3C,EAAKiB,cAAc2B,UAAUC,YAAc7C,EAAKiB,cAQhDjB,EAAKiB,cAAc2B,UAAUE,QAAU,WAEnC,GAAI/C,KAAKgD,SACT,CAGI,IAFA,GAAIC,GAAIjD,KAAKgD,SAASE,OAEfD,KAEHjD,KAAKgD,SAASC,GAAGF,SAGrB/C,MAAKgD,YAGThD,KAAK0B,QAAU,KACf1B,KAAK4B,OAAS,KACd5B,KAAK6B,MAAQ,KACb7B,KAAK+B,eAAiB,KACtB/B,KAAKsC,WAAa,KAClBtC,KAAKuC,QAAU,KACfvC,KAAKyC,eAAiB,KACtBzC,KAAK0C,MAAQ,KAGb1C,KAAK2B,YAAa,EAElB3B,KAAKmD,wBASTC,OAAOC,eAAepD,EAAKiB,cAAc2B,UAAW,gBAEhDS,IAAK,WAED,GAAIC,GAAOvD,IAEX,GACA,CACI,IAAKuD,EAAK9B,QAAS,OAAO,CAC1B8B,GAAOA,EAAK3B,aAEV2B,EAEN,QAAO,KAafH,OAAOC,eAAepD,EAAKiB,cAAc2B,UAAW,QAEhDS,IAAK,WACD,MAAOtD,MAAK0C,OAGhBc,IAAK,SAASC,GAENzD,KAAK0C,QAAO1C,KAAK0C,MAAMgB,QAAS,GAEpC1D,KAAK0C,MAAQe,EAETzD,KAAK0C,QAAO1C,KAAK0C,MAAMgB,QAAS,MAiB5CN,OAAOC,eAAepD,EAAKiB,cAAc2B,UAAW,WAEhDS,IAAK,WACD,MAAOtD,MAAK2D,UAGhBH,IAAK,SAASC,GAEV,GAAIA,EACJ,CAII,IAAK,GAFDG,MAEKX,EAAI,EAAGA,EAAIQ,EAAMP,OAAQD,IAI9B,IAAK,GAFDY,GAAeJ,EAAMR,GAAGW,OAEnBE,EAAI,EAAGA,EAAID,EAAaX,OAAQY,IAErCF,EAAOG,KAAKF,EAAaC,GAKjC9D,MAAKgE,cAAiBC,OAAQjE,KAAM6D,aAAcD,GAGtD5D,KAAK2D,SAAWF,EAEZzD,KAAKkE,WAAalE,KAAKkE,YAAcjE,EAAKkE,WAAWC,WAErDpE,KAAKkE,UAAYjE,EAAKkE,WAAWE,WAY7CjB,OAAOC,eAAepD,EAAKiB,cAAc2B,UAAW,iBAEhDS,IAAK,WACD,MAAQtD,MAAK2C,gBAGjBa,IAAK,SAASC,GAENzD,KAAK2C,iBAAmBc,IAKxBA,EAEAzD,KAAKsE,wBAILtE,KAAKmD,uBAGTnD,KAAK2C,eAAiBc,MAiB9BxD,EAAKiB,cAAc2B,UAAU0B,gBAAkB,SAAS3C,GAEpD,GAAKA,GAAW5B,KAAK4B,QAAW5B,KAAKE,KAArC,CAKA,GAAIsE,GAAIxE,KAAK4B,MAETA,GAEA4C,EAAI5C,EAEE5B,KAAK4B,SAEX4C,EAAIxE,KAAKE,KAAKuE,MAIlB,IAIIC,GAAGC,EAAGC,EAAGC,EAAGC,EAAIC,EAJhBC,EAAKR,EAAEzC,eACPkD,EAAKjF,KAAK+B,cAMV/B,MAAKuB,SAAWtB,EAAKW,MAGjBZ,KAAKuB,WAAavB,KAAKkF,gBAEvBlF,KAAKkF,cAAgBlF,KAAKuB,SAC1BvB,KAAKoC,IAAMvB,KAAKsE,IAAInF,KAAKuB,UACzBvB,KAAKqC,IAAMxB,KAAKuE,IAAIpF,KAAKuB,WAI7BmD,EAAM1E,KAAKqC,IAAMrC,KAAKqB,MAAMgE,EAC5BV,EAAM3E,KAAKoC,IAAMpC,KAAKqB,MAAMgE,EAC5BT,GAAM5E,KAAKoC,IAAMpC,KAAKqB,MAAMiE,EAC5BT,EAAM7E,KAAKqC,IAAMrC,KAAKqB,MAAMiE,EAC5BR,EAAM9E,KAAKmB,SAASkE,EACpBN,EAAM/E,KAAKmB,SAASmE,GAGhBtF,KAAKsB,MAAM+D,GAAKrF,KAAKsB,MAAMgE,KAE3BR,GAAM9E,KAAKsB,MAAM+D,EAAIX,EAAI1E,KAAKsB,MAAMgE,EAAIV,EACxCG,GAAM/E,KAAKsB,MAAM+D,EAAIV,EAAI3E,KAAKsB,MAAMgE,EAAIT,GAI5CI,EAAGP,EAAKA,EAAKM,EAAGN,EAAIC,EAAKK,EAAGJ,EAC5BK,EAAGN,EAAKD,EAAKM,EAAGL,EAAIA,EAAKK,EAAGH,EAC5BI,EAAGL,EAAKA,EAAKI,EAAGN,EAAIG,EAAKG,EAAGJ,EAC5BK,EAAGJ,EAAKD,EAAKI,EAAGL,EAAIE,EAAKG,EAAGH,EAC5BI,EAAGH,GAAKA,EAAKE,EAAGN,EAAIK,EAAKC,EAAGJ,EAAII,EAAGF,GACnCG,EAAGF,GAAKD,EAAKE,EAAGL,EAAII,EAAKC,EAAGH,EAAIG,EAAGD,KAKnCL,EAAK1E,KAAKqB,MAAMgE,EAChBR,EAAK7E,KAAKqB,MAAMiE,EAEhBR,EAAK9E,KAAKmB,SAASkE,EAAIrF,KAAKsB,MAAM+D,EAAIX,EACtCK,EAAK/E,KAAKmB,SAASmE,EAAItF,KAAKsB,MAAMgE,EAAIT,EAEtCI,EAAGP,EAAKA,EAAKM,EAAGN,EAChBO,EAAGN,EAAKD,EAAKM,EAAGL,EAChBM,EAAGL,EAAKC,EAAKG,EAAGJ,EAChBK,EAAGJ,EAAKA,EAAKG,EAAGH,EAChBI,EAAGH,GAAKA,EAAKE,EAAGN,EAAIK,EAAKC,EAAGJ,EAAII,EAAGF,GACnCG,EAAGF,GAAKD,EAAKE,EAAGL,EAAII,EAAKC,EAAGH,EAAIG,EAAGD,IAIvC/E,KAAK8B,WAAa9B,KAAKwB,MAAQgD,EAAE1C,WAEjC9B,KAAKiC,cAAcuB,IAAIyB,EAAGH,GAAIG,EAAGF,IACjC/E,KAAKkC,WAAWsB,IAAI3C,KAAK0E,KAAKN,EAAGP,EAAIO,EAAGP,EAAIO,EAAGN,EAAIM,EAAGN,GAAI9D,KAAK0E,KAAKN,EAAGL,EAAIK,EAAGL,EAAIK,EAAGJ,EAAII,EAAGJ,IAC5F7E,KAAKmC,cAAgBtB,KAAK2E,OAAOP,EAAGL,EAAGK,EAAGJ,GAG1C7E,KAAKyC,eAAiB,KAGlBzC,KAAKyF,mBAELzF,KAAKyF,kBAAkBC,KAAK1F,KAAK2F,yBAA0BV,EAAID,KAMvE/E,EAAKiB,cAAc2B,UAAU+C,6BAA+B3F,EAAKiB,cAAc2B,UAAU0B,gBASzFtE,EAAKiB,cAAc2B,UAAUgD,UAAY,SAASC,GAG9C,MADAA,GAASA,EACF7F,EAAK8F,gBAShB9F,EAAKiB,cAAc2B,UAAUmD,eAAiB,WAE1C,MAAOhG,MAAK6F,UAAU5F,EAAKgG,iBAS/BhG,EAAKiB,cAAc2B,UAAUqD,kBAAoB,SAASrE,GAEtD7B,KAAK6B,MAAQA,GAQjB5B,EAAKiB,cAAc2B,UAAUsD,UAAY,aAczClG,EAAKiB,cAAc2B,UAAUuD,gBAAkB,SAASC,EAAYC,EAAWC,GAE3E,GAAIC,GAASxG,KAAKgG,iBAEdS,EAAgB,GAAIxG,GAAKyG,cAA6B,EAAfF,EAAOG,MAA2B,EAAhBH,EAAOI,OAAYL,EAAUD,EAAWD,EAOrG,OALApG,GAAKiB,cAAc2F,YAAY/B,IAAM0B,EAAOnB,EAC5CpF,EAAKiB,cAAc2F,YAAY9B,IAAMyB,EAAOlB,EAE5CmB,EAAcK,OAAO9G,KAAMC,EAAKiB,cAAc2F,aAEvCJ,GAQXxG,EAAKiB,cAAc2B,UAAUkE,YAAc,WAEvC/G,KAAKsE,yBAUTrE,EAAKiB,cAAc2B,UAAUmE,SAAW,SAAS7F,GAI7C,MADAnB,MAAK4F,+BACE5F,KAAK+B,eAAekF,MAAM9F,IAWrClB,EAAKiB,cAAc2B,UAAUqE,QAAU,SAAS/F,EAAUgG,GAUtD,MARIA,KAEAhG,EAAWgG,EAAKH,SAAS7F,IAI7BnB,KAAK4F,+BAEE5F,KAAK+B,eAAeqF,aAAajG,IAU5ClB,EAAKiB,cAAc2B,UAAUwE,oBAAsB,SAASC,GAExDtH,KAAKuH,cAAczF,WAAa9B,KAAK8B,WAEjCwF,EAAcE,GAEdvH,EAAKwH,OAAO5E,UAAU6E,aAAahC,KAAK1F,KAAKuH,cAAeD,GAI5DrH,EAAKwH,OAAO5E,UAAU8E,cAAcjC,KAAK1F,KAAKuH,cAAeD,IAUrErH,EAAKiB,cAAc2B,UAAUyB,sBAAwB,WAEjDtE,KAAK2C,gBAAiB,CAEtB,IAAI6D,GAASxG,KAAKgG,gBAQlB,IALAQ,EAAOG,MAAQ9F,KAAK+G,IAAI,EAAG/G,KAAKgH,KAAKrB,EAAOG,QAC5CH,EAAOI,OAAS/F,KAAK+G,IAAI,EAAG/G,KAAKgH,KAAKrB,EAAOI,SAE7C5G,KAAKuE,kBAEAvE,KAAKuH,cAQNvH,KAAKuH,cAAcO,QAAQC,OAAOvB,EAAOG,MAAOH,EAAOI,YAP3D,CACI,GAAIH,GAAgB,GAAIxG,GAAKyG,cAAcF,EAAOG,MAAOH,EAAOI,OAChE5G,MAAKuH,cAAgB,GAAItH,GAAKwH,OAAOhB,GACrCzG,KAAKuH,cAAcxF,eAAiB/B,KAAK+B,eAQ7C,GAAIiG,GAAchI,KAAK2D,QACvB3D,MAAK2D,SAAW,KAChB3D,KAAKuH,cAAcU,QAAUD,EAG7B/H,EAAKiB,cAAc2F,YAAY/B,IAAM0B,EAAOnB,EAC5CpF,EAAKiB,cAAc2F,YAAY9B,IAAMyB,EAAOlB,EAE5CtF,KAAKuH,cAAcO,QAAQhB,OAAO9G,KAAMC,EAAKiB,cAAc2F,aAAa,GACxE7G,KAAKuH,cAAcW,OAAO7C,IAAMmB,EAAOnB,EAAImB,EAAOG,OAClD3G,KAAKuH,cAAcW,OAAO5C,IAAMkB,EAAOlB,EAAIkB,EAAOI,QAElD5G,KAAK2D,SAAWqE,EAEhBhI,KAAK2C,gBAAiB,GAS1B1C,EAAKiB,cAAc2B,UAAUM,qBAAuB,WAE3CnD,KAAKuH,gBAEVvH,KAAKuH,cAAcO,QAAQ/E,SAAQ,GAGnC/C,KAAKuH,cAAgB,OAUzBtH,EAAKiB,cAAc2B,UAAU6E,aAAe,SAASJ,GAIjDA,EAAgBA,GAUpBrH,EAAKiB,cAAc2B,UAAU8E,cAAgB,SAASL,GAIlDA,EAAgBA,GASpBlE,OAAOC,eAAepD,EAAKiB,cAAc2B,UAAW,KAEhDS,IAAK,WACD,MAAQtD,MAAKmB,SAASkE,GAG1B7B,IAAK,SAASC,GACVzD,KAAKmB,SAASkE,EAAI5B,KAW1BL,OAAOC,eAAepD,EAAKiB,cAAc2B,UAAW,KAEhDS,IAAK,WACD,MAAQtD,MAAKmB,SAASmE,GAG1B9B,IAAK,SAASC,GACVzD,KAAKmB,SAASmE,EAAI7B,KAiB1BxD,EAAKkI,uBAAyB,WAE1BlI,EAAKiB,cAAcwE,KAAK1F,MASxBA,KAAKgD,aAKT/C,EAAKkI,uBAAuBtF,UAAYO,OAAOgF,OAAQnI,EAAKiB,cAAc2B,WAC1E5C,EAAKkI,uBAAuBtF,UAAUC,YAAc7C,EAAKkI,uBAQzD/E,OAAOC,eAAepD,EAAKkI,uBAAuBtF,UAAW,SAEzDS,IAAK,WACD,MAAOtD,MAAKqB,MAAMgE,EAAIrF,KAAKgG,iBAAiBW,OAGhDnD,IAAK,SAASC,GAEV,GAAIkD,GAAQ3G,KAAKgG,iBAAiBW,KAEpB,KAAVA,EAEA3G,KAAKqB,MAAMgE,EAAI5B,EAAQkD,EAIvB3G,KAAKqB,MAAMgE,EAAI,EAGnBrF,KAAKqI,OAAS5E,KAUtBL,OAAOC,eAAepD,EAAKkI,uBAAuBtF,UAAW,UAEzDS,IAAK,WACD,MAAQtD,MAAKqB,MAAMiE,EAAItF,KAAKgG,iBAAiBY,QAGjDpD,IAAK,SAASC,GAEV,GAAImD,GAAS5G,KAAKgG,iBAAiBY,MAEpB,KAAXA,EAEA5G,KAAKqB,MAAMiE,EAAI7B,EAAQmD,EAIvB5G,KAAKqB,MAAMiE,EAAI,EAGnBtF,KAAKsI,QAAU7E,KAYvBxD,EAAKkI,uBAAuBtF,UAAU0F,SAAW,SAASC,GAEtD,MAAOxI,MAAKyI,WAAWD,EAAOxI,KAAKgD,SAASE,SAWhDjD,EAAKkI,uBAAuBtF,UAAU4F,WAAa,SAASD,EAAOE,GAE/D,GAAGA,GAAS,GAAKA,GAAS1I,KAAKgD,SAASE,OAapC,MAXGsF,GAAM5G,QAEL4G,EAAM5G,OAAO+G,YAAYH,GAG7BA,EAAM5G,OAAS5B,KAEfA,KAAKgD,SAAS4F,OAAOF,EAAO,EAAGF,GAE5BxI,KAAK6B,OAAM2G,EAAMtC,kBAAkBlG,KAAK6B,OAEpC2G,CAIP,MAAM,IAAIK,OAAML,EAAQ,yBAA0BE,EAAO,8BAAgC1I,KAAKgD,SAASE,SAW/GjD,EAAKkI,uBAAuBtF,UAAUiG,aAAe,SAASN,EAAOO,GAEjE,GAAGP,IAAUO,EAAb,CAIA,GAAIC,GAAShJ,KAAKiJ,cAAcT,GAC5BU,EAASlJ,KAAKiJ,cAAcF,EAEhC,IAAY,EAATC,GAAuB,EAATE,EACb,KAAM,IAAIL,OAAM,gFAGpB7I,MAAKgD,SAASgG,GAAUD,EACxB/I,KAAKgD,SAASkG,GAAUV,IAW5BvI,EAAKkI,uBAAuBtF,UAAUoG,cAAgB,SAAST,GAE3D,GAAIE,GAAQ1I,KAAKgD,SAASmG,QAAQX,EAClC,IAAc,KAAVE,EAEA,KAAM,IAAIG,OAAM,2DAEpB,OAAOH,IAUXzI,EAAKkI,uBAAuBtF,UAAUuG,cAAgB,SAASZ,EAAOE,GAElE,GAAY,EAARA,GAAaA,GAAS1I,KAAKgD,SAASE,OAEpC,KAAM,IAAI2F,OAAM,sCAEpB,IAAIQ,GAAerJ,KAAKiJ,cAAcT,EACtCxI,MAAKgD,SAAS4F,OAAOS,EAAc,GACnCrJ,KAAKgD,SAAS4F,OAAOF,EAAO,EAAGF,IAUnCvI,EAAKkI,uBAAuBtF,UAAUyG,WAAa,SAASZ,GAExD,GAAY,EAARA,GAAaA,GAAS1I,KAAKgD,SAASE,OAEpC,KAAM,IAAI2F,OAAM,8BAA+BH,EAAO,iGAE1D,OAAO1I,MAAKgD,SAAS0F,IAWzBzI,EAAKkI,uBAAuBtF,UAAU8F,YAAc,SAASH,GAEzD,GAAIE,GAAQ1I,KAAKgD,SAASmG,QAASX,EACnC,IAAa,KAAVE,EAEH,MAAO1I,MAAKuJ,cAAeb,IAU/BzI,EAAKkI,uBAAuBtF,UAAU0G,cAAgB,SAASb,GAE3D,GAAIF,GAAQxI,KAAKsJ,WAAYZ,EAM7B,OALG1I,MAAK6B,OACJ2G,EAAMgB,uBAEVhB,EAAM5G,OAAS6H,OACfzJ,KAAKgD,SAAS4F,OAAQF,EAAO,GACtBF,GAUXvI,EAAKkI,uBAAuBtF,UAAU6G,eAAiB,SAASC,EAAYC,GAExE,GAAIC,GAAQF,GAAc,EACtBG,EAA0B,gBAAbF,GAAwBA,EAAW5J,KAAKgD,SAASE,OAC9D6G,EAAQD,EAAMD,CAElB,IAAIE,EAAQ,GAAcD,GAATC,EACjB,CAEI,IAAK,GADDC,GAAUhK,KAAKgD,SAAS4F,OAAOiB,EAAOE,GACjC9G,EAAI,EAAGA,EAAI+G,EAAQ9G,OAAQD,IAAK,CACrC,GAAIuF,GAAQwB,EAAQ/G,EACjBjD,MAAK6B,OACJ2G,EAAMgB,uBACVhB,EAAM5G,OAAS6H,OAEnB,MAAOO,GAEN,GAAc,IAAVD,GAAwC,IAAzB/J,KAAKgD,SAASE,OAElC,QAIA,MAAM,IAAI2F,OAAO,iFAUzB5I,EAAKkI,uBAAuBtF,UAAU0B,gBAAkB,WAEpD,GAAKvE,KAAKyB,UAKVzB,KAAK4F,gCAED5F,KAAK2C,gBAKT,IAAK,GAAIM,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAGsB,mBAKzBtE,EAAKkI,uBAAuBtF,UAAUoH,sCAAwChK,EAAKkI,uBAAuBtF,UAAU0B,gBAQpHtE,EAAKkI,uBAAuBtF,UAAUgD,UAAY,WAE9C,GAA4B,IAAzB7F,KAAKgD,SAASE,OAAa,MAAOjD,GAAK8F,cAgB1C,KAAI,GANAmE,GACAC,EACAC,EARAC,EAAOC,EAAAA,EACPC,EAAOD,EAAAA,EAEPE,IAAQF,EAAAA,GACRG,IAAQH,EAAAA,GAMRI,GAAe,EAEXzH,EAAE,EAAEa,EAAE9D,KAAKgD,SAASE,OAAUY,EAAFb,EAAKA,IACzC,CACI,GAAIuF,GAAQxI,KAAKgD,SAASC,EAEtBuF,GAAM/G,UAEViJ,GAAe,EAEfR,EAAclK,KAAKgD,SAASC,GAAG4C,YAE/BwE,EAAOA,EAAOH,EAAY7E,EAAIgF,EAAOH,EAAY7E,EACjDkF,EAAOA,EAAOL,EAAY5E,EAAIiF,EAAOL,EAAY5E,EAEjD6E,EAAYD,EAAYvD,MAAQuD,EAAY7E,EAC5C+E,EAAYF,EAAYtD,OAASsD,EAAY5E,EAE7CkF,EAAOA,EAAOL,EAAYK,EAAOL,EACjCM,EAAOA,EAAOL,EAAYK,EAAOL,GAGrC,IAAIM,EACA,MAAOzK,GAAK8F,cAEhB,IAAIS,GAASxG,KAAKuC,OAUlB,OARAiE,GAAOnB,EAAIgF,EACX7D,EAAOlB,EAAIiF,EACX/D,EAAOG,MAAQ6D,EAAOH,EACtB7D,EAAOI,OAAS6D,EAAOF,EAKhB/D,GASXvG,EAAKkI,uBAAuBtF,UAAUmD,eAAiB,WAEnD,GAAI2E,GAAc3K,KAAK+B,cAEvB/B,MAAK+B,eAAiB9B,EAAKgG,cAE3B,KAAI,GAAIhD,GAAE,EAAEa,EAAE9D,KAAKgD,SAASE,OAAUY,EAAFb,EAAKA,IAErCjD,KAAKgD,SAASC,GAAGsB,iBAGrB,IAAIiC,GAASxG,KAAK6F,WAIlB,OAFA7F,MAAK+B,eAAiB4I,EAEfnE,GASXvG,EAAKkI,uBAAuBtF,UAAUqD,kBAAoB,SAASrE,GAE/D7B,KAAK6B,MAAQA,CAEb,KAAK,GAAIoB,GAAE,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEpCjD,KAAKgD,SAASC,GAAGiD,kBAAkBrE,IAS3C5B,EAAKkI,uBAAuBtF,UAAU2G,qBAAuB,WAEzD,IAAK,GAAIvG,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAGuG,sBAGrBxJ,MAAK6B,MAAQ,MAUjB5B,EAAKkI,uBAAuBtF,UAAU6E,aAAe,SAASJ,GAE1D,GAAKtH,KAAKyB,WAAWzB,KAAKwB,OAAS,GAAnC,CAEA,GAAIxB,KAAK2C,eAGL,WADA3C,MAAKqH,oBAAoBC,EAI7B,IAAIrE,EAEJ,IAAIjD,KAAK0C,OAAS1C,KAAK2D,SACvB,CAgBI,IAdI3D,KAAK2D,WAEL2D,EAAcsD,YAAYC,QAC1BvD,EAAcwD,cAAcC,WAAW/K,KAAKgE,eAG5ChE,KAAK0C,QAEL4E,EAAcsD,YAAYI,OAC1B1D,EAAc2D,YAAYC,SAASlL,KAAKmL,KAAM7D,GAC9CA,EAAcsD,YAAYQ,SAIzBnI,EAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAElCjD,KAAKgD,SAASC,GAAGyE,aAAaJ,EAGlCA,GAAcsD,YAAYI,OAEtBhL,KAAK0C,OAAO4E,EAAc2D,YAAYI,QAAQrL,KAAK0C,MAAO4E,GAC1DtH,KAAK2D,UAAU2D,EAAcwD,cAAcQ,YAE/ChE,EAAcsD,YAAYQ,YAK1B,KAAKnI,EAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAElCjD,KAAKgD,SAASC,GAAGyE,aAAaJ,KAY1CrH,EAAKkI,uBAAuBtF,UAAU8E,cAAgB,SAASL,GAE3D,GAAItH,KAAKyB,WAAY,GAAwB,IAAfzB,KAAKwB,MAAnC,CAEA,GAAIxB,KAAK2C,eAGL,WADA3C,MAAKqH,oBAAoBC,EAIzBtH,MAAK0C,OAEL4E,EAAc2D,YAAYC,SAASlL,KAAK0C,MAAO4E,EAGnD,KAAK,GAAIrE,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAG0E,cAAcL,EAG/BtH,MAAK0C,OAEL4E,EAAc2D,YAAYI,QAAQ/D,KAsB1CrH,EAAKwH,OAAS,SAASK,GAEnB7H,EAAKkI,uBAAuBzC,KAAK1F,MAWjCA,KAAKkI,OAAS,GAAIjI,GAAKmB,MAQvBpB,KAAK8H,QAAUA,GAAW7H,EAAKsL,QAAQC,aASvCxL,KAAKqI,OAAS,EASdrI,KAAKsI,QAAU,EASftI,KAAKyL,KAAO,SAUZzL,KAAK0L,WAAa,GASlB1L,KAAK2L,cAAgB,KAWrB3L,KAAKkE,UAAYjE,EAAKkE,WAAWE,OASjCrE,KAAK4L,OAAS,KAEV5L,KAAK8H,QAAQ+D,YAAYC,WAEzB9L,KAAK+L,kBAGT/L,KAAK2B,YAAa,GAKtB1B,EAAKwH,OAAO5E,UAAYO,OAAOgF,OAAOnI,EAAKkI,uBAAuBtF,WAClE5C,EAAKwH,OAAO5E,UAAUC,YAAc7C,EAAKwH,OAQzCrE,OAAOC,eAAepD,EAAKwH,OAAO5E,UAAW,SAEzCS,IAAK,WACD,MAAOtD,MAAKqB,MAAMgE,EAAIrF,KAAK8H,QAAQkE,MAAMrF,OAG7CnD,IAAK,SAASC,GACVzD,KAAKqB,MAAMgE,EAAI5B,EAAQzD,KAAK8H,QAAQkE,MAAMrF,MAC1C3G,KAAKqI,OAAS5E,KAWtBL,OAAOC,eAAepD,EAAKwH,OAAO5E,UAAW,UAEzCS,IAAK,WACD,MAAQtD,MAAKqB,MAAMiE,EAAItF,KAAK8H,QAAQkE,MAAMpF,QAG9CpD,IAAK,SAASC,GACVzD,KAAKqB,MAAMiE,EAAI7B,EAAQzD,KAAK8H,QAAQkE,MAAMpF,OAC1C5G,KAAKsI,QAAU7E,KAavBxD,EAAKwH,OAAO5E,UAAUoJ,WAAa,SAASnE,EAASoE,GAE7BzC,SAAhByC,GAEAlM,KAAK8H,QAAQ+D,YAAY9I,UAI7B/C,KAAK8H,QAAQ+D,YAAYM,YAAa,EACtCnM,KAAK8H,QAAUA,EACf9H,KAAK8H,QAAQsE,OAAQ,GAUzBnM,EAAKwH,OAAO5E,UAAUkJ,gBAAkB,WAGhC/L,KAAKqI,SAAQrI,KAAKqB,MAAMgE,EAAIrF,KAAKqI,OAASrI,KAAK8H,QAAQkE,MAAMrF,OAC7D3G,KAAKsI,UAAStI,KAAKqB,MAAMiE,EAAItF,KAAKsI,QAAUtI,KAAK8H,QAAQkE,MAAMpF,SAUvE3G,EAAKwH,OAAO5E,UAAUgD,UAAY,SAASC,GAEvC,GAAIa,GAAQ3G,KAAK8H,QAAQkE,MAAMrF,MAC3BC,EAAS5G,KAAK8H,QAAQkE,MAAMpF,OAE5ByF,EAAK1F,GAAS,EAAE3G,KAAKkI,OAAO7C,GAC5BiH,EAAK3F,GAAS3G,KAAKkI,OAAO7C,EAE1BkH,EAAK3F,GAAU,EAAE5G,KAAKkI,OAAO5C,GAC7BkH,EAAK5F,GAAU5G,KAAKkI,OAAO5C,EAE3BvD,EAAiB+D,GAAU9F,KAAK+B,eAEhC2C,EAAI3C,EAAe2C,EACnBC,EAAI5C,EAAe4C,EACnBC,EAAI7C,EAAe6C,EACnBC,EAAI9C,EAAe8C,EACnBC,EAAK/C,EAAe+C,GACpBC,EAAKhD,EAAegD,GAEpByF,IAAQF,EAAAA,GACRG,IAAQH,EAAAA,GAERD,EAAOC,EAAAA,EACPC,EAAOD,EAAAA,CAEX,IAAU,IAAN3F,GAAiB,IAANC,EACf,CAEI,GAAQ,EAAJF,EACJ,CACIA,GAAK,EACL,IAAI+H,GAAOJ,CACXA,IAAMC,EACNA,GAAMG,EAGV,GAAQ,EAAJ5H,EACJ,CACIA,GAAK,EACL,IAAI4H,GAAOF,CACXA,IAAMC,EACNA,GAAMC,EAKVpC,EAAO3F,EAAI4H,EAAKxH,EAChB0F,EAAO9F,EAAI2H,EAAKvH,EAChByF,EAAO1F,EAAI2H,EAAKzH,EAChB0F,EAAO5F,EAAI0H,EAAKxH,MAGpB,CACI,GAAI2H,GAAKhI,EAAI4H,EAAK1H,EAAI4H,EAAK1H,EACvB6H,EAAK9H,EAAI2H,EAAK7H,EAAI2H,EAAKvH,EAEvB6H,EAAKlI,EAAI2H,EAAKzH,EAAI4H,EAAK1H,EACvB+H,EAAKhI,EAAI2H,EAAK7H,EAAI0H,EAAKtH,EAEvB+H,EAAKpI,EAAI2H,EAAKzH,EAAI2H,EAAKzH,EACvBiI,EAAKlI,EAAI0H,EAAK5H,EAAI0H,EAAKtH,EAEvBiI,EAAMtI,EAAI4H,EAAK1H,EAAI2H,EAAKzH,EACxBmI,EAAMpI,EAAI0H,EAAK5H,EAAI2H,EAAKvH,CAE5BsF,GAAYA,EAALqC,EAAYA,EAAKrC,EACxBA,EAAYA,EAALuC,EAAYA,EAAKvC,EACxBA,EAAYA,EAALyC,EAAYA,EAAKzC,EACxBA,EAAYA,EAAL2C,EAAYA,EAAK3C,EAExBE,EAAYA,EAALoC,EAAYA,EAAKpC,EACxBA,EAAYA,EAALsC,EAAYA,EAAKtC,EACxBA,EAAYA,EAALwC,EAAYA,EAAKxC,EACxBA,EAAYA,EAAL0C,EAAYA,EAAK1C,EAExBC,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EACxBA,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAExBC,EAAOkC,EAAKlC,EAAOkC,EAAKlC,EACxBA,EAAOoC,EAAKpC,EAAOoC,EAAKpC,EACxBA,EAAOsC,EAAKtC,EAAOsC,EAAKtC,EACxBA,EAAOwC,EAAKxC,EAAOwC,EAAKxC,EAG5B,GAAIjE,GAASxG,KAAKuC,OAWlB,OATAiE,GAAOnB,EAAIgF,EACX7D,EAAOG,MAAQ6D,EAAOH,EAEtB7D,EAAOlB,EAAIiF,EACX/D,EAAOI,OAAS6D,EAAOF,EAGvBvK,KAAKyC,eAAiB+D,EAEfA,GAWXvG,EAAKwH,OAAO5E,UAAU6E,aAAe,SAASJ,EAAexB,GAGzD,GAAK9F,KAAKyB,WAAWzB,KAAKwB,OAAS,IAAMxB,KAAK2B,WAA9C,CAGA,GAAIsD,GAAKjF,KAAK+B,cAQd,IANI+D,IAEAb,EAAKa,GAIL9F,KAAK0C,OAAS1C,KAAK2D,SACvB,CACI,GAAIiH,GAActD,EAAcsD,WAG5B5K,MAAK2D,WAELiH,EAAYC,QACZvD,EAAcwD,cAAcC,WAAW/K,KAAKgE,eAG5ChE,KAAK0C,QAELkI,EAAYI,OACZ1D,EAAc2D,YAAYC,SAASlL,KAAKmL,KAAM7D,GAC9CsD,EAAYQ,SAIhBR,EAAY9D,OAAO9G,KAGnB,KAAK,GAAIiD,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAGyE,aAAaJ,EAIlCsD,GAAYI,OAERhL,KAAK0C,OAAO4E,EAAc2D,YAAYI,QAAQrL,KAAK0C,MAAO4E,GAC1DtH,KAAK2D,UAAU2D,EAAcwD,cAAcQ,YAE/CV,EAAYQ,YAGhB,CACI9D,EAAcsD,YAAY9D,OAAO9G,KAGjC,KAAK,GAAIiD,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAGyE,aAAaJ,EAAerC,MAczDhF,EAAKwH,OAAO5E,UAAU8E,cAAgB,SAASL,EAAexB,GAG1D,MAAK9F,KAAKyB,SAA0B,IAAfzB,KAAKwB,QAAgBxB,KAAK2B,YAAc3B,KAAK8H,QAAQoF,KAAKvG,OAAS,GAAK3G,KAAK8H,QAAQoF,KAAKtG,QAAU,GAAzH,CAKA,GAAI3B,GAAKjF,KAAK+B,cAoBd,IAjBI+D,IAEAb,EAAKa,GAGL9F,KAAKkE,YAAcoD,EAAc6F,mBAEjC7F,EAAc6F,iBAAmBnN,KAAKkE,UACtCoD,EAAc8F,QAAQC,yBAA2BpN,EAAKqN,iBAAiBhG,EAAc6F,mBAGrFnN,KAAK0C,OAEL4E,EAAc2D,YAAYC,SAASlL,KAAK0C,MAAO4E,GAI/CtH,KAAK8H,QAAQsE,MACjB,CACI,GAAI/F,GAAarG,KAAK8H,QAAQ+D,YAAYxF,WAAaiB,EAAcjB,UAErEiB,GAAc8F,QAAQG,YAAcvN,KAAK8B,WAGrCwF,EAAckG,gBAAkBlG,EAAchB,YAActG,KAAK8H,QAAQ+D,YAAYvF,YAErFgB,EAAchB,UAAYtG,KAAK8H,QAAQ+D,YAAYvF,UACnDgB,EAAc8F,QAAQ9F,EAAckG,gBAAmBlG,EAAchB,YAAcrG,EAAKwN,WAAWC,OAIvG,IAAIC,GAAM3N,KAAK8H,QAAY,KAAI9H,KAAK8H,QAAQ8F,KAAKvI,EAAIrF,KAAKkI,OAAO7C,EAAIrF,KAAK8H,QAAQ8F,KAAKjH,MAAQ3G,KAAKkI,OAAO7C,GAAKrF,KAAK8H,QAAQkE,MAAMrF,MAC/HkH,EAAM7N,KAAK8H,QAAY,KAAI9H,KAAK8H,QAAQ8F,KAAKtI,EAAItF,KAAKkI,OAAO5C,EAAItF,KAAK8H,QAAQ8F,KAAKhH,OAAS5G,KAAKkI,OAAO5C,GAAKtF,KAAK8H,QAAQkE,MAAMpF,MAGhIU,GAAcwG,aAEdxG,EAAc8F,QAAQW,aAAa9I,EAAGP,EAAGO,EAAGN,EAAGM,EAAGL,EAAGK,EAAGJ,EAAII,EAAGH,GAAKwC,EAAcjB,WAAc,EAAIpB,EAAGF,GAAKuC,EAAcjB,WAAc,GACxIsH,GAAM,EACNE,GAAM,GAINvG,EAAc8F,QAAQW,aAAa9I,EAAGP,EAAGO,EAAGN,EAAGM,EAAGL,EAAGK,EAAGJ,EAAGI,EAAGH,GAAKwC,EAAcjB,WAAYpB,EAAGF,GAAKuC,EAAcjB,WAGvH,IAAI2H,GAAKhO,KAAK8H,QAAQoF,KAAKvG,MACvBsH,EAAKjO,KAAK8H,QAAQoF,KAAKtG,MAK3B,IAHA+G,GAAMtH,EACNwH,GAAMxH,EAEY,WAAdrG,KAAKyL,MAEDzL,KAAK8H,QAAQoG,gBAAkBlO,KAAK0L,aAAe1L,KAAKyL,QAExDzL,KAAK2L,cAAgB1L,EAAKkO,aAAaC,iBAAiBpO,KAAMA,KAAKyL,MAEnEzL,KAAK0L,WAAa1L,KAAKyL,MAG3BnE,EAAc8F,QAAQiB,UAAUrO,KAAK2L,cAAe,EAAG,EAAGqC,EAAIC,EAAIN,EAAIE,EAAIG,EAAK3H,EAAY4H,EAAK5H,OAGpG,CACI,GAAIiI,GAAKtO,KAAK8H,QAAQoF,KAAK7H,EACvBkJ,EAAKvO,KAAK8H,QAAQoF,KAAK5H,CAC3BgC,GAAc8F,QAAQiB,UAAUrO,KAAK8H,QAAQ+D,YAAY2C,OAAQF,EAAIC,EAAIP,EAAIC,EAAIN,EAAIE,EAAIG,EAAK3H,EAAY4H,EAAK5H,IAIvH,IAAK,GAAIpD,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAG0E,cAAcL,EAG/BtH,MAAK0C,OAEL4E,EAAc2D,YAAYI,QAAQ/D,KAiB1CrH,EAAKwH,OAAOgH,UAAY,SAASC,GAE7B,GAAI5G,GAAU7H,EAAK0O,aAAaD,EAEhC,KAAK5G,EAAS,KAAM,IAAIe,OAAM,gBAAkB6F,EAAU,wCAA0C1O,KAEpG,OAAO,IAAIC,GAAKwH,OAAOK,IAa3B7H,EAAKwH,OAAOmH,UAAY,SAASC,EAASC,EAAaxI,GAEnD,GAAIwB,GAAU7H,EAAKsL,QAAQqD,UAAUC,EAASC,EAAaxI,EAE3D,OAAO,IAAIrG,GAAKwH,OAAOK,IA2B3B7H,EAAK8O,YAAc,SAASjH,GAExB7H,EAAKkI,uBAAuBzC,KAAM1F,MAElCA,KAAKgP,aAAelH,EAEpB9H,KAAKiP,OAAQ,GAGjBhP,EAAK8O,YAAYlM,UAAYO,OAAOgF,OAAOnI,EAAKkI,uBAAuBtF,WACvE5C,EAAK8O,YAAYlM,UAAUC,YAAc7C,EAAK8O,YAQ9C9O,EAAK8O,YAAYlM,UAAUqM,UAAY,SAAS1H,GAG5CxH,KAAKmP,gBAAkB,GAAIlP,GAAKmP,qBAAqB5H,GAErDxH,KAAKiP,OAAQ,GASjBhP,EAAK8O,YAAYlM,UAAU0B,gBAAkB,WAGzCvE,KAAK4F,gCAWT3F,EAAK8O,YAAYlM,UAAU6E,aAAe,SAASJ,IAE1CtH,KAAKyB,SAAWzB,KAAKwB,OAAS,IAAMxB,KAAKgD,SAASE,SAElDlD,KAAKiP,OAENjP,KAAKkP,UAAU5H,EAAcE,IAG7BxH,KAAKmP,gBAAgB3H,KAAOF,EAAcE,IAE1CxH,KAAKmP,gBAAgBE,WAAW/H,EAAcE,IAGlDF,EAAcsD,YAAYI,OAE1B1D,EAAcgI,cAAcC,UAAUjI,EAAcgI,cAAcE,YAElExP,KAAKmP,gBAAgBtF,MAAM7J,KAAMsH,GACjCtH,KAAKmP,gBAAgBrI,OAAO9G,MAE5BsH,EAAcsD,YAAYQ,UAW9BnL,EAAK8O,YAAYlM,UAAU8E,cAAgB,SAASL,GAEhD,GAAKtH,KAAKyB,WAAWzB,KAAKwB,OAAS,IAAMxB,KAAKgD,SAASE,OAAvD,CAEA,GAAIkK,GAAU9F,EAAc8F,OAE5BA,GAAQG,YAAcvN,KAAK8B,WAE3B9B,KAAK4F,8BAML,KAAK,GAJD6J,GAAYzP,KAAK+B,eAEjB2N,GAAY,EAEPzM,EAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAC1C,CACI,GAAIuF,GAAQxI,KAAKgD,SAASC,EAE1B,IAAKuF,EAAM/G,QAAX,CAEA,GAAIqG,GAAUU,EAAMV,QAChBkE,EAAQlE,EAAQkE,KAIpB,IAFAoB,EAAQG,YAAcvN,KAAK8B,WAAa0G,EAAMhH,MAE1CgH,EAAMjH,UAAsB,EAAVV,KAAKC,MAAY,EAE/B4O,IAEAtC,EAAQW,aAAa0B,EAAU/K,EAAG+K,EAAU9K,EAAG8K,EAAU7K,EAAG6K,EAAU5K,EAAG4K,EAAU3K,GAAI2K,EAAU1K,IACjG2K,GAAY,GAIhBtC,EAAQiB,UAAUvG,EAAQ+D,YAAY2C,OACjBxC,EAAM3G,EACN2G,EAAM1G,EACN0G,EAAMrF,MACNqF,EAAMpF,OACJ4B,EAAMN,OAAQ,IAAM8D,EAAMrF,MAAQ6B,EAAMnH,MAAMgE,GAAKmD,EAAMrH,SAASkE,EAAK,GAAO,EAC9EmD,EAAMN,OAAQ,IAAM8D,EAAMpF,OAAS4B,EAAMnH,MAAMiE,GAAKkD,EAAMrH,SAASmE,EAAK,GAAO,EACjF0G,EAAMrF,MAAQ6B,EAAMnH,MAAMgE,EAC1B2G,EAAMpF,OAAS4B,EAAMnH,MAAMiE,OAGpD,CACSoK,IAAWA,GAAY,GAE5BlH,EAAM5C,8BAEN,IAAI+J,GAAiBnH,EAAMzG,cAIvBuF,GAAcwG,YAEdV,EAAQW,aAAa4B,EAAejL,EAAGiL,EAAehL,EAAGgL,EAAe/K,EAAG+K,EAAe9K,EAAuB,EAApB8K,EAAe7K,GAA4B,EAApB6K,EAAe5K,IAInIqI,EAAQW,aAAa4B,EAAejL,EAAGiL,EAAehL,EAAGgL,EAAe/K,EAAG+K,EAAe9K,EAAG8K,EAAe7K,GAAI6K,EAAe5K,IAGnIqI,EAAQiB,UAAUvG,EAAQ+D,YAAY2C,OACjBxC,EAAM3G,EACN2G,EAAM1G,EACN0G,EAAMrF,MACNqF,EAAMpF,OACJ4B,EAAMN,OAAQ,GAAM8D,EAAMrF,MAAS,GAAO,EAC1C6B,EAAMN,OAAQ,GAAM8D,EAAMpF,OAAU,GAAO,EAC7CoF,EAAMrF,MACNqF,EAAMpF,aAgBvC3G,EAAK2P,QAAU,SAASC,GACpB,QAASA,GAAO,GAAK,KAAQ,KAAOA,GAAO,EAAI,KAAQ,KAAY,IAANA,GAAa,MAS9E5P,EAAK6P,QAAU,SAASC,GACpB,OAAgB,IAAPA,EAAI,IAAU,KAAc,IAAPA,EAAI,IAAU,GAAY,IAAPA,EAAI,IASzD9P,EAAK+P,0BAA4B,WAE7B,GAAiBvG,SAAbwG,SAAwB,OAAO,CAEnC,IAAIC,GAAU,iFACVC,EAAS,mDAETC,EAAU,GAAIC,MAClBD,GAAQE,IAAMJ,EAAU,WAAaC,CAErC,IAAII,GAAS,GAAIF,MACjBE,GAAOD,IAAMJ,EAAU,WAAaC,CAEpC,IAAIK,GAASvQ,EAAKwQ,WAAWrI,OAAOpI,KAAM,EAAG,GACzCoN,EAAUoD,EAAOE,WAAW,KAKhC,IAJAtD,EAAQC,yBAA2B,WACnCD,EAAQiB,UAAU+B,EAAS,EAAG,GAC9BhD,EAAQiB,UAAUkC,EAAQ,EAAG,IAExBnD,EAAQuD,aAAa,EAAE,EAAE,EAAE,GAE5B,OAAO,CAGX,IAAIC,GAAOxD,EAAQuD,aAAa,EAAE,EAAE,EAAE,GAAGC,IAIzC,OAFA3Q,GAAKwQ,WAAWI,OAAO7Q,MAEH,MAAZ4Q,EAAK,IAA0B,IAAZA,EAAK,IAAwB,IAAZA,EAAK,IAYrD3Q,EAAK6Q,kBAAoB,SAASC,GAE9B,GAAIA,EAAS,GAAiC,KAA3BA,EAAUA,EAAS,GAClC,MAAOA,EAIP,KADA,GAAIC,GAAS,EACGD,EAATC,GAAiBA,IAAW,CACnC,OAAOA,IAWf/Q,EAAKgR,aAAe,SAAStK,EAAOC,GAEhC,MAAQD,GAAQ,GAA+B,KAAzBA,EAASA,EAAQ,IAAaC,EAAS,GAAiC,KAA3BA,EAAUA,EAAS,IAgB1F3G,EAAKwQ,YAYDrI,OAAQ,SAAUxG,EAAQ+E,EAAOC,GAE7B,GACI4J,GADAU,EAAMjR,EAAKwQ,WAAWU,UAG1B,IAAY,KAARD,EACJ,CACI,GAAIE,IACAxP,OAAQA,EACR4O,OAAQP,SAASoB,cAAc,UAGnCpR,GAAKwQ,WAAWa,KAAKvN,KAAKqN,GAE1BZ,EAASY,EAAUZ,WAInBvQ,GAAKwQ,WAAWa,KAAKJ,GAAKtP,OAASA,EAEnC4O,EAASvQ,EAAKwQ,WAAWa,KAAKJ,GAAKV,MASvC,OANc/G,UAAV9C,IAEA6J,EAAO7J,MAAQA,EACf6J,EAAO5J,OAASA,GAGb4J,GAWXW,SAAU,WAIN,IAAK,GAFDG,GAAOrR,EAAKwQ,WAAWa,KAElBrO,EAAI,EAAGA,EAAIqO,EAAKpO,OAAQD,IAE7B,GAAuB,OAAnBqO,EAAKrO,GAAGrB,OAER,MAAOqB,EAIf,OAAO,IAWX4N,OAAQ,SAAUjP,GAId,IAAK,GAFD0P,GAAOrR,EAAKwQ,WAAWa,KAElBrO,EAAI,EAAGA,EAAIqO,EAAKpO,OAAQD,IAEzBqO,EAAKrO,GAAGrB,SAAWA,IAEnB0P,EAAKrO,GAAGrB,OAAS,OAa7B2P,eAAgB,SAAUf,GAItB,IAAK,GAFDc,GAAOrR,EAAKwQ,WAAWa,KAElBrO,EAAI,EAAGA,EAAIqO,EAAKpO,OAAQD,IAEzBqO,EAAKrO,GAAGuN,SAAWA,IAEnBc,EAAKrO,GAAGrB,OAAS,OAa7B4P,SAAU,WAKN,IAAK,GAHDF,GAAOrR,EAAKwQ,WAAWa,KACvB1M,EAAI,EAEC3B,EAAI,EAAGA,EAAIqO,EAAKpO,OAAQD,IAEN,OAAnBqO,EAAKrO,GAAGrB,QAERgD,GAIR,OAAOA,IAWX6M,QAAS,WAKL,IAAK,GAHDH,GAAOrR,EAAKwQ,WAAWa,KACvB1M,EAAI,EAEC3B,EAAI,EAAGA,EAAIqO,EAAKpO,OAAQD,IAEN,OAAnBqO,EAAKrO,GAAGrB,QAERgD,GAIR,OAAOA,KAaf3E,EAAKwQ,WAAWa,QAWhBrR,EAAKyR,mBAAqB,aAW1BzR,EAAK0R,oBAAsB,SAASnK,EAAIoK,GAEpC,MAAO3R,GAAK4R,eAAerK,EAAIoK,EAAWpK,EAAGsK,gBAUjD7R,EAAK8R,sBAAwB,SAASvK,EAAIoK,GAEtC,MAAO3R,GAAK4R,eAAerK,EAAIoK,EAAWpK,EAAGwK,kBAYjD/R,EAAK4R,eAAiB,SAASrK,EAAIoK,EAAWK,GAE1C,GAAI3B,GAAMsB,CAENjR,OAAMuR,QAAQN,KAEdtB,EAAMsB,EAAUO,KAAK,MAGzB,IAAIvG,GAASpE,EAAG4K,aAAaH,EAI7B,OAHAzK,GAAG6K,aAAazG,EAAQ0E,GACxB9I,EAAG8K,cAAc1G,GAEZpE,EAAG+K,mBAAmB3G,EAAQpE,EAAGgL,gBAM/B5G,GAJH6G,OAAOC,QAAQC,IAAInL,EAAGoL,iBAAiBhH,IAChC,OAcf3L,EAAK4S,eAAiB,SAASrL,EAAIsL,EAAWC,GAE1C,GAAIC,GAAiB/S,EAAK8R,sBAAsBvK,EAAIuL,GAChDE,EAAehT,EAAK0R,oBAAoBnK,EAAIsL,GAE5CI,EAAgB1L,EAAG2L,eAWvB,OATA3L,GAAG4L,aAAaF,EAAeD,GAC/BzL,EAAG4L,aAAaF,EAAeF,GAC/BxL,EAAG6L,YAAYH,GAEV1L,EAAG8L,oBAAoBJ,EAAe1L,EAAG+L,cAE1Cd,OAAOC,QAAQC,IAAI,gCAGhBO,GAaXjT,EAAKuT,WAAa,SAAShM,GAOvBxH,KAAKM,KAAOL,EAAKK,OAMjBN,KAAKwH,GAAKA,EAOVxH,KAAKyT,QAAU,KAOfzT,KAAK+S,aACD,wBACA,8BACA,uBACA,8BACA,oBACA,kEACA,KAQJ/S,KAAK0T,aAAe,EAQpB1T,KAAK2T,UAAW,EAOhB3T,KAAK4T,OAAQ,EAQb5T,KAAK6T,cAEL7T,KAAK8T,QAGT7T,EAAKuT,WAAW3Q,UAAUC,YAAc7C,EAAKuT,WAO7CvT,EAAKuT,WAAW3Q,UAAUiR,KAAO,WAE7B,GAAItM,GAAKxH,KAAKwH,GAEViM,EAAUxT,EAAK4S,eAAerL,EAAIxH,KAAK8S,WAAa7S,EAAKuT,WAAWO,iBAAkB/T,KAAK+S,YAE/FvL,GAAGwM,WAAWP,GAGdzT,KAAKiU,SAAWzM,EAAG0M,mBAAmBT,EAAS,YAC/CzT,KAAKmU,iBAAmB3M,EAAG0M,mBAAmBT,EAAS,oBACvDzT,KAAKoU,aAAe5M,EAAG0M,mBAAmBT,EAAS,gBACnDzT,KAAKqU,WAAa7M,EAAG0M,mBAAmBT,EAAS,cAGjDzT,KAAKsU,gBAAkB9M,EAAG+M,kBAAkBd,EAAS,mBACrDzT,KAAKwU,cAAgBhN,EAAG+M,kBAAkBd,EAAS,iBACnDzT,KAAKyU,eAAiBjN,EAAG+M,kBAAkBd,EAAS,UAQzB,KAAxBzT,KAAKyU,iBAEJzU,KAAKyU,eAAiB,GAG1BzU,KAAK6T,YAAc7T,KAAKsU,gBAAiBtU,KAAKwU,cAAexU,KAAKyU,eAKlE,KAAK,GAAIC,KAAO1U,MAAK2U,SAGjB3U,KAAK2U,SAASD,GAAKE,gBAAkBpN,EAAG0M,mBAAmBT,EAASiB,EAGxE1U,MAAK6U,eAEL7U,KAAKyT,QAAUA,GAWnBxT,EAAKuT,WAAW3Q,UAAUgS,aAAe,WAErC7U,KAAK0T,aAAe,CACpB,IACIoB,GADAtN,EAAKxH,KAAKwH,EAGd,KAAK,GAAIkN,KAAO1U,MAAK2U,SACrB,CACIG,EAAU9U,KAAK2U,SAASD,EAExB,IAAIK,GAAOD,EAAQC,IAEN,eAATA,GAEAD,EAAQE,OAAQ,EAEM,OAAlBF,EAAQrR,OAERzD,KAAKiV,cAAcH,IAGT,SAATC,GAA4B,SAATA,GAA4B,SAATA,GAG3CD,EAAQI,UAAW,EACnBJ,EAAQK,cAAgB,EAEX,SAATJ,EAEAD,EAAQM,OAAS5N,EAAG6N,iBAEN,SAATN,EAELD,EAAQM,OAAS5N,EAAG8N,iBAEN,SAATP,IAELD,EAAQM,OAAS5N,EAAG+N,oBAMxBT,EAAQM,OAAS5N,EAAG,UAAYuN,GAEnB,OAATA,GAA0B,OAATA,EAEjBD,EAAQK,cAAgB,EAEV,OAATJ,GAA0B,OAATA,EAEtBD,EAAQK,cAAgB,EAEV,OAATJ,GAA0B,OAATA,EAEtBD,EAAQK,cAAgB,EAIxBL,EAAQK,cAAgB,KAYxClV,EAAKuT,WAAW3Q,UAAUoS,cAAgB,SAASH,GAE/C,GAAKA,EAAQrR,OAAUqR,EAAQrR,MAAMoI,aAAgBiJ,EAAQrR,MAAMoI,YAAYC,UAA/E,CAKA,GAAItE,GAAKxH,KAAKwH,EAMd,IAJAA,EAAGgO,cAAchO,EAAG,UAAYxH,KAAK0T,eACrClM,EAAGiO,YAAYjO,EAAGkO,WAAYZ,EAAQrR,MAAMoI,YAAY8J,YAAYnO,EAAGoO,KAGnEd,EAAQe,YACZ,CACI,GAAIjF,GAAOkE,EAAQe,YAYfC,EAAalF,EAAc,UAAIA,EAAKkF,UAAYtO,EAAGkG,OACnDqI,EAAanF,EAAc,UAAIA,EAAKmF,UAAYvO,EAAGkG,OACnDsI,EAASpF,EAAU,MAAIA,EAAKoF,MAAQxO,EAAGyO,cACvCC,EAAStF,EAAU,MAAIA,EAAKsF,MAAQ1O,EAAGyO,cACvCE,EAAUvF,EAAc,UAAIpJ,EAAG4O,UAAY5O,EAAG6O,IAUlD,IARIzF,EAAK0F,SAELN,EAAQxO,EAAG+O,OACXL,EAAQ1O,EAAG+O,QAGf/O,EAAGgP,YAAYhP,EAAGiP,sBAAuB7F,EAAK8F,OAE1C9F,EAAKjK,MACT,CACI,GAAIA,GAASiK,EAAU,MAAIA,EAAKjK,MAAQ,IACpCC,EAAUgK,EAAW,OAAIA,EAAKhK,OAAS,EACvC+P,EAAU/F,EAAW,OAAIA,EAAK+F,OAAS,CAG3CnP,GAAGoP,WAAWpP,EAAGkO,WAAY,EAAGS,EAAQxP,EAAOC,EAAQ+P,EAAQR,EAAQ3O,EAAGqP,cAAe,UAKzFrP,GAAGoP,WAAWpP,EAAGkO,WAAY,EAAGS,EAAQ3O,EAAG6O,KAAM7O,EAAGqP,cAAe/B,EAAQrR,MAAMoI,YAAY2C,OAGjGhH,GAAGsP,cAActP,EAAGkO,WAAYlO,EAAGuP,mBAAoBjB,GACvDtO,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGwP,mBAAoBjB,GACvDvO,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGyP,eAAgBjB,GACnDxO,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAG0P,eAAgBhB,GAGvD1O,EAAG2P,UAAUrC,EAAQF,gBAAiB5U,KAAK0T,cAE3CoB,EAAQE,OAAQ,EAEhBhV,KAAK0T,iBASTzT,EAAKuT,WAAW3Q,UAAUuU,aAAe,WAErCpX,KAAK0T,aAAe,CACpB,IAAIoB,GACAtN,EAAKxH,KAAKwH,EAGd,KAAK,GAAIkN,KAAO1U,MAAK2U,SAEjBG,EAAU9U,KAAK2U,SAASD,GAEM,IAA1BI,EAAQK,cAEJL,EAAQI,YAAa,EAErBJ,EAAQM,OAAO1P,KAAK8B,EAAIsN,EAAQF,gBAAiBE,EAAQuC,UAAWvC,EAAQrR,OAI5EqR,EAAQM,OAAO1P,KAAK8B,EAAIsN,EAAQF,gBAAiBE,EAAQrR,OAG9B,IAA1BqR,EAAQK,cAEbL,EAAQM,OAAO1P,KAAK8B,EAAIsN,EAAQF,gBAAiBE,EAAQrR,MAAM4B,EAAGyP,EAAQrR,MAAM6B,GAEjD,IAA1BwP,EAAQK,cAEbL,EAAQM,OAAO1P,KAAK8B,EAAIsN,EAAQF,gBAAiBE,EAAQrR,MAAM4B,EAAGyP,EAAQrR,MAAM6B,EAAGwP,EAAQrR,MAAM6T,GAElE,IAA1BxC,EAAQK,cAEbL,EAAQM,OAAO1P,KAAK8B,EAAIsN,EAAQF,gBAAiBE,EAAQrR,MAAM4B,EAAGyP,EAAQrR,MAAM6B,EAAGwP,EAAQrR,MAAM6T,EAAGxC,EAAQrR,MAAM8T,GAE5F,cAAjBzC,EAAQC,OAETD,EAAQE,OAERxN,EAAGgO,cAAchO,EAAG,UAAYxH,KAAK0T,eAElCoB,EAAQrR,MAAMoI,YAAY2L,OAAOhQ,EAAGoO,IAEnC3V,EAAKwX,UAAUjQ,EAAGoO,IAAI8B,cAAc5C,EAAQrR,MAAMoI,aAKlDrE,EAAGiO,YAAYjO,EAAGkO,WAAYZ,EAAQrR,MAAMoI,YAAY8J,YAAYnO,EAAGoO,KAI3EpO,EAAG2P,UAAUrC,EAAQF,gBAAiB5U,KAAK0T,cAC3C1T,KAAK0T,gBAIL1T,KAAKiV,cAAcH,KAYnC7U,EAAKuT,WAAW3Q,UAAUE,QAAU,WAEhC/C,KAAKwH,GAAGmQ,cAAe3X,KAAKyT,SAC5BzT,KAAK2U,SAAW,KAChB3U,KAAKwH,GAAK,KAEVxH,KAAK6T,WAAa,MAStB5T,EAAKuT,WAAWO,kBACZ,kCACA,gCACA,yBAEA,iCACA,6BAEA,8BACA,uBAEA,uCAEA,oBACA,qGACA,oCACA,qDACA,KAWJ9T,EAAK2X,eAAiB,SAASpQ,GAO3BxH,KAAKM,KAAOL,EAAKK,OAMjBN,KAAKwH,GAAKA,EAOVxH,KAAKyT,QAAU,KAOfzT,KAAK+S,aACD,wBACA,8BACA,wBACA,8BACA,oBACA,kEACA,KAQJ/S,KAAK8S,WACD,kCACA,iCACA,yBACA,6BACA,gCACA,0BAEA,iCACA,6BACA,wBAEA,8BACA,wBAEA,uCAEA,oBACA,aACA,yCACA,8DACA,8DACA,2DACA,uEACA,oCAEA,sBACA,KAQJ9S,KAAK0T,aAAe,EAEpB1T,KAAK8T,QAGT7T,EAAK2X,eAAe/U,UAAUC,YAAc7C,EAAK2X,eAOjD3X,EAAK2X,eAAe/U,UAAUiR,KAAO,WAEjC,GAAItM,GAAKxH,KAAKwH,GAEViM,EAAUxT,EAAK4S,eAAerL,EAAIxH,KAAK8S,UAAW9S,KAAK+S,YAE3DvL,GAAGwM,WAAWP,GAGdzT,KAAKiU,SAAWzM,EAAG0M,mBAAmBT,EAAS,YAE/CzT,KAAKmU,iBAAmB3M,EAAG0M,mBAAmBT,EAAS,oBACvDzT,KAAKoU,aAAe5M,EAAG0M,mBAAmBT,EAAS,gBACnDzT,KAAKqU,WAAa7M,EAAG0M,mBAAmBT,EAAS,cACjDzT,KAAK6X,QAAUrQ,EAAG0M,mBAAmBT,EAAS,WAG9CzT,KAAKsU,gBAAkB9M,EAAG+M,kBAAkBd,EAAS,mBACrDzT,KAAK8X,eAAiBtQ,EAAG+M,kBAAkBd,EAAS,kBAEpDzT,KAAK+X,OAASvQ,EAAG+M,kBAAkBd,EAAS,UAC5CzT,KAAKgY,UAAYxQ,EAAG+M,kBAAkBd,EAAS,aAE/CzT,KAAKwU,cAAgBhN,EAAG+M,kBAAkBd,EAAS,iBACnDzT,KAAKyU,eAAiBjN,EAAG+M,kBAAkBd,EAAS,UAQzB,KAAxBzT,KAAKyU,iBAEJzU,KAAKyU,eAAiB,GAG1BzU,KAAK6T,YAAc7T,KAAKsU,gBAAiBtU,KAAK8X,eAAiB9X,KAAK+X,OAAQ/X,KAAKgY,UAAWhY,KAAKwU,cAAexU,KAAKyU,gBAIrHzU,KAAKyT,QAAUA,GAQnBxT,EAAK2X,eAAe/U,UAAUE,QAAU,WAEpC/C,KAAKwH,GAAGmQ,cAAe3X,KAAKyT,SAC5BzT,KAAK2U,SAAW,KAChB3U,KAAKwH,GAAK,KAEVxH,KAAK6T,WAAa,MAYtB5T,EAAKgY,YAAc,SAASzQ,GAOxBxH,KAAKM,KAAOL,EAAKK,OAMjBN,KAAKwH,GAAKA,EAOVxH,KAAKyT,QAAU,KAOfzT,KAAK+S,aACD,2BACA,8BAEA,uBACA,8BAEA,oBACA,yFAEA,KAQJ/S,KAAK8S,WACD,kCACA,gCACA,kCACA,iCACA,6BAGA,8BAGA,oBACA,+DACA,4BACA,qGACA,oCAEA,KAGJ9S,KAAK8T,QAGT7T,EAAKgY,YAAYpV,UAAUC,YAAc7C,EAAKgY,YAO9ChY,EAAKgY,YAAYpV,UAAUiR,KAAO,WAE9B,GAAItM,GAAKxH,KAAKwH,GAEViM,EAAUxT,EAAK4S,eAAerL,EAAIxH,KAAK8S,UAAW9S,KAAK+S,YAC3DvL,GAAGwM,WAAWP,GAGdzT,KAAKiU,SAAWzM,EAAG0M,mBAAmBT,EAAS,YAC/CzT,KAAKmU,iBAAmB3M,EAAG0M,mBAAmBT,EAAS,oBACvDzT,KAAKoU,aAAe5M,EAAG0M,mBAAmBT,EAAS,gBACnDzT,KAAKyU,eAAiBjN,EAAG+M,kBAAkBd,EAAS,UAIpDzT,KAAKsU,gBAAkB9M,EAAG+M,kBAAkBd,EAAS,mBACrDzT,KAAKwU,cAAgBhN,EAAG+M,kBAAkBd,EAAS,iBAEnDzT,KAAK6T,YAAc7T,KAAKsU,gBAAiBtU,KAAKwU,eAE9CxU,KAAKkY,kBAAoB1Q,EAAG0M,mBAAmBT,EAAS,qBACxDzT,KAAKwB,MAAQgG,EAAG0M,mBAAmBT,EAAS,SAE5CzT,KAAKyT,QAAUA,GAQnBxT,EAAKgY,YAAYpV,UAAUE,QAAU,WAEjC/C,KAAKwH,GAAGmQ,cAAe3X,KAAKyT,SAC5BzT,KAAK2U,SAAW,KAChB3U,KAAKwH,GAAK,KAEVxH,KAAKmY,UAAY,MAYrBlY,EAAKmY,gBAAkB,SAAS5Q,GAO5BxH,KAAKM,KAAOL,EAAKK,OAMjBN,KAAKwH,GAAKA,EAOVxH,KAAKyT,QAAU,KAOfzT,KAAK+S,aACD,2BACA,uBAEA,oBACA,4BACA,KAQJ/S,KAAK8S,WACD,kCACA,yBACA,kCACA,iCACA,6BACA,uBACA,uBACA,qBACA,uBAEA,oBACA,+DACA,4BACA,iHACA,kDACA,KAGJ9S,KAAK8T,QAGT7T,EAAKmY,gBAAgBvV,UAAUC,YAAc7C,EAAKmY,gBAOlDnY,EAAKmY,gBAAgBvV,UAAUiR,KAAO,WAElC,GAAItM,GAAKxH,KAAKwH,GAEViM,EAAUxT,EAAK4S,eAAerL,EAAIxH,KAAK8S,UAAW9S,KAAK+S,YAC3DvL,GAAGwM,WAAWP,GAGdzT,KAAKmU,iBAAmB3M,EAAG0M,mBAAmBT,EAAS,oBACvDzT,KAAKoU,aAAe5M,EAAG0M,mBAAmBT,EAAS,gBACnDzT,KAAKqY,UAAY7Q,EAAG0M,mBAAmBT,EAAS,QAChDzT,KAAK0W,MAAQlP,EAAG0M,mBAAmBT,EAAS,SAG5CzT,KAAKsU,gBAAkB9M,EAAG+M,kBAAkBd,EAAS,mBACrDzT,KAAKyU,eAAiBjN,EAAG+M,kBAAkBd,EAAS,UAEpDzT,KAAK6T,YAAc7T,KAAKsU,gBAAiBtU,KAAKyU,gBAE9CzU,KAAKkY,kBAAoB1Q,EAAG0M,mBAAmBT,EAAS,qBACxDzT,KAAKwB,MAAQgG,EAAG0M,mBAAmBT,EAAS,SAE5CzT,KAAKyT,QAAUA,GAQnBxT,EAAKmY,gBAAgBvV,UAAUE,QAAU,WAErC/C,KAAKwH,GAAGmQ,cAAe3X,KAAKyT,SAC5BzT,KAAK2U,SAAW,KAChB3U,KAAKwH,GAAK,KAEVxH,KAAK6T,WAAa,MAYtB5T,EAAKqY,uBAAyB,SAAS9Q,GAOnCxH,KAAKM,KAAOL,EAAKK,OAMjBN,KAAKwH,GAAKA,EAOVxH,KAAKyT,QAAU,KAOfzT,KAAK+S,aAED,2BAEA,uBAEA,oBACA,4BACA,KAQJ/S,KAAK8S,WACD,kCAEA,kCACA,iCACA,6BAEA,qBACA,uBACA,sBACA,uBACA,uBAEA,oBACA,+DACA,4BACA,iHACA,iDACA,KAGJ9S,KAAK8T,QAGT7T,EAAKqY,uBAAuBzV,UAAUC,YAAc7C,EAAKqY,uBAOzDrY,EAAKqY,uBAAuBzV,UAAUiR,KAAO,WAEzC,GAAItM,GAAKxH,KAAKwH,GAEViM,EAAUxT,EAAK4S,eAAerL,EAAIxH,KAAK8S,UAAW9S,KAAK+S,YAC3DvL,GAAGwM,WAAWP,GAGdzT,KAAKmU,iBAAmB3M,EAAG0M,mBAAmBT,EAAS,oBACvDzT,KAAKoU,aAAe5M,EAAG0M,mBAAmBT,EAAS,gBACnDzT,KAAKqY,UAAY7Q,EAAG0M,mBAAmBT,EAAS,QAChDzT,KAAKuY,MAAQ/Q,EAAG0M,mBAAmBT,EAAS,SAC5CzT,KAAK0W,MAAQlP,EAAG0M,mBAAmBT,EAAS,SAG5CzT,KAAKsU,gBAAkB9M,EAAG+M,kBAAkBd,EAAS,mBAGrDzT,KAAK6T,YAAc7T,KAAKsU,gBAAiBtU,KAAKyU,gBAE9CzU,KAAKkY,kBAAoB1Q,EAAG0M,mBAAmBT,EAAS,qBACxDzT,KAAKwB,MAAQgG,EAAG0M,mBAAmBT,EAAS,SAE5CzT,KAAKyT,QAAUA,GAQnBxT,EAAKqY,uBAAuBzV,UAAUE,QAAU,WAE5C/C,KAAKwH,GAAGmQ,cAAe3X,KAAKyT,SAC5BzT,KAAK2U,SAAW,KAChB3U,KAAKwH,GAAK,KAEVxH,KAAKmY,UAAY,MAOrBlY,EAAKuY,cACLvY,EAAKwX,aAYLxX,EAAKwY,cAAgB,SAASvY,GAK1BF,KAAKE,KAAOA,EAEPD,EAAKyY,kBAENzY,EAAKyY,gBAAkB1Y,MAO3BA,KAAK+U,KAAO9U,EAAKE,eASjBH,KAAKqG,WAAanG,EAAKmG,WAQvBrG,KAAK2Y,YAAczY,EAAKyY,YAQxB3Y,KAAK4Y,YAAa,EAQlB5Y,KAAK6Y,sBAAwB3Y,EAAK2Y,sBAYlC7Y,KAAK8Y,kBAAoB5Y,EAAK4Y,kBAQ9B9Y,KAAK2G,MAAQzG,EAAKyG,MAQlB3G,KAAK4G,OAAS1G,EAAK0G,OAQnB5G,KAAK+Y,KAAO7Y,EAAKsQ,OAOjBxQ,KAAKgZ,iBACDxX,MAAOxB,KAAK2Y,YACZM,UAAW/Y,EAAK+Y,UAChBC,mBAAoBlZ,KAAK2Y,aAAoC,kBAArB3Y,KAAK2Y,YAC7CQ,SAAS,EACTN,sBAAuB7Y,KAAK6Y,uBAOhC7Y,KAAKoZ,WAAa,GAAInZ,GAAKmB,MAM3BpB,KAAKqZ,OAAS,GAAIpZ,GAAKmB,MASvBpB,KAAKsP,cAAgB,GAAIrP,GAAKqZ,mBAO9BtZ,KAAK4K,YAAc,GAAI3K,GAAKsZ,iBAO5BvZ,KAAKiL,YAAc,GAAIhL,GAAKuZ,iBAO5BxZ,KAAK8K,cAAgB,GAAI7K,GAAKwZ,mBAO9BzZ,KAAK0Z,eAAiB,GAAIzZ,GAAK0Z,oBAO/B3Z,KAAK4Z,iBAAmB,GAAI3Z,GAAK4Z,sBAMjC7Z,KAAKsH,iBAGLtH,KAAKsH,cAAcpH,KAAOF,KAAKE,KAC/BF,KAAKsH,cAAcE,GAAKxH,KAAKwH,GAC7BxH,KAAKsH,cAAcwS,UAAY,EAC/B9Z,KAAKsH,cAAcgI,cAAgBtP,KAAKsP;AACxCtP,KAAKsH,cAAc2D,YAAcjL,KAAKiL,YACtCjL,KAAKsH,cAAcwD,cAAgB9K,KAAK8K,cACxC9K,KAAKsH,cAAcsS,iBAAmB5Z,KAAK4Z,iBAC3C5Z,KAAKsH,cAAcsD,YAAc5K,KAAK4K,YACtC5K,KAAKsH,cAAcoS,eAAiB1Z,KAAK0Z,eACzC1Z,KAAKsH,cAAcf,SAAWvG,KAC9BA,KAAKsH,cAAcjB,WAAarG,KAAKqG,WAGrCrG,KAAK+Z,cAGL/Z,KAAKga,iBAKT/Z,EAAKwY,cAAc5V,UAAUC,YAAc7C,EAAKwY,cAKhDxY,EAAKwY,cAAc5V,UAAUkX,YAAc,WAEvC,GAAIvS,GAAKxH,KAAK+Y,KAAKrI,WAAW,QAAS1Q,KAAKgZ,kBAAoBhZ,KAAK+Y,KAAKrI,WAAW,qBAAsB1Q,KAAKgZ,gBAIhH,IAFAhZ,KAAKwH,GAAKA,GAELA,EAED,KAAM,IAAIqB,OAAM,qEAGpB7I,MAAKia,YAAczS,EAAGoO,GAAK3V,EAAKwY,cAAcwB,cAE9Cha,EAAKuY,WAAWxY,KAAKia,aAAezS,EAEpCvH,EAAKwX,UAAUzX,KAAKia,aAAeja,KAGnCwH,EAAG0S,QAAQ1S,EAAG2S,YACd3S,EAAG0S,QAAQ1S,EAAG4S,WACd5S,EAAG6S,OAAO7S,EAAG8S,OAGbta,KAAKsP,cAAcD,WAAW7H,GAC9BxH,KAAK4K,YAAYyE,WAAW7H,GAC5BxH,KAAKiL,YAAYoE,WAAW7H,GAC5BxH,KAAK8K,cAAcuE,WAAW7H,GAC9BxH,KAAK4Z,iBAAiBvK,WAAW7H,GACjCxH,KAAK0Z,eAAerK,WAAW7H,GAE/BxH,KAAKsH,cAAcE,GAAKxH,KAAKwH,GAG7BxH,KAAK+H,OAAO/H,KAAK2G,MAAO3G,KAAK4G,SASjC3G,EAAKwY,cAAc5V,UAAUiE,OAAS,SAASjF,GAG3C,IAAI7B,KAAKua,YAAT,CAMA1Y,EAAM0C,iBAEN,IAAIiD,GAAKxH,KAAKwH,EAGdA,GAAGgT,SAAS,EAAG,EAAGxa,KAAK2G,MAAO3G,KAAK4G,QAGnCY,EAAGiT,gBAAgBjT,EAAGkT,YAAa,MAE/B1a,KAAKE,KAAK4Y,oBAEVtR,EAAGmT,WAAW9Y,EAAM+Y,SAASC,EAAGhZ,EAAM+Y,SAASE,EAAGjZ,EAAM+Y,SAASjW,EAAG9C,EAAM+Y,SAASlW,GAEnF8C,EAAGuT,MAAMvT,EAAGwT,mBAGhBhb,KAAKib,oBAAoBpZ,EAAO7B,KAAKoZ,cAWzCnZ,EAAKwY,cAAc5V,UAAUoY,oBAAsB,SAASC,EAAe9B,EAAY+B,EAAQrV,GAE3F9F,KAAKsH,cAAcsS,iBAAiBwB,aAAanb,EAAKkE,WAAWE,QAGjErE,KAAKsH,cAAcwS,UAAY,EAG/B9Z,KAAKsH,cAAcoP,MAAQyE,EAAS,GAAK,EAGzCnb,KAAKsH,cAAc8R,WAAaA,EAGhCpZ,KAAKsH,cAAc+R,OAASrZ,KAAKqZ,OAGjCrZ,KAAK4K,YAAYf,MAAM7J,KAAKsH,eAG5BtH,KAAK8K,cAAcjB,MAAM7J,KAAKsH,cAAe6T,GAG7CD,EAAcxT,aAAa1H,KAAKsH,cAAexB,GAG/C9F,KAAK4K,YAAYd,OAUrB7J,EAAKwY,cAAc5V,UAAUkF,OAAS,SAASpB,EAAOC,GAElD5G,KAAK2G,MAAQA,EAAQ3G,KAAKqG,WAC1BrG,KAAK4G,OAASA,EAAS5G,KAAKqG,WAE5BrG,KAAK+Y,KAAKpS,MAAQ3G,KAAK2G,MACvB3G,KAAK+Y,KAAKnS,OAAS5G,KAAK4G,OAEpB5G,KAAK4Y,aACL5Y,KAAK+Y,KAAKsC,MAAM1U,MAAQ3G,KAAK2G,MAAQ3G,KAAKqG,WAAa,KACvDrG,KAAK+Y,KAAKsC,MAAMzU,OAAS5G,KAAK4G,OAAS5G,KAAKqG,WAAa,MAG7DrG,KAAKwH,GAAGgT,SAAS,EAAG,EAAGxa,KAAK2G,MAAO3G,KAAK4G,QAExC5G,KAAKoZ,WAAW/T,EAAKrF,KAAK2G,MAAQ,EAAI3G,KAAKqG,WAC3CrG,KAAKoZ,WAAW9T,GAAMtF,KAAK4G,OAAS,EAAI5G,KAAKqG,YAUjDpG,EAAKwY,cAAc5V,UAAU6U,cAAgB,SAAS5P,GAElD,IAAKA,EAAQgE,UAET,OAAO,CAGX,IAAItE,GAAKxH,KAAKwH,EAuCd,OArCKM,GAAQ6N,YAAYnO,EAAGoO,MAExB9N,EAAQ6N,YAAYnO,EAAGoO,IAAMpO,EAAG8T,iBAGpC9T,EAAGiO,YAAYjO,EAAGkO,WAAY5N,EAAQ6N,YAAYnO,EAAGoO,KAErDpO,EAAGgP,YAAYhP,EAAG+T,+BAAgCzT,EAAQoR,oBAE1D1R,EAAGoP,WAAWpP,EAAGkO,WAAY,EAAGlO,EAAG6O,KAAM7O,EAAG6O,KAAM7O,EAAGqP,cAAe/O,EAAQ0G,QAE5EhH,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGuP,mBAAoBjP,EAAQxB,YAAcrG,EAAKwN,WAAWC,OAASlG,EAAGkG,OAASlG,EAAGgU,SAEjH1T,EAAQ2T,QAAUxb,EAAKgR,aAAanJ,EAAQnB,MAAOmB,EAAQlB,SAE3DY,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGwP,mBAAoBlP,EAAQxB,YAAcrG,EAAKwN,WAAWC,OAASlG,EAAGkU,qBAAuBlU,EAAGmU,wBACnInU,EAAGoU,eAAepU,EAAGkO,aAIrBlO,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGwP,mBAAoBlP,EAAQxB,YAAcrG,EAAKwN,WAAWC,OAASlG,EAAGkG,OAASlG,EAAGgU,SAGpH1T,EAAQ+T,WAOTrU,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGyP,eAAgBzP,EAAG+O,QACtD/O,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAG0P,eAAgB1P,EAAG+O,UANtD/O,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGyP,eAAgBzP,EAAGyO,eACtDzO,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAG0P,eAAgB1P,EAAGyO,gBAQ1DnO,EAAQ0P,OAAOhQ,EAAGoO,KAAM,GAGjB,GASX3V,EAAKwY,cAAc5V,UAAUE,QAAU,WAEnC9C,EAAKuY,WAAWxY,KAAKia,aAAe,KAEpCja,KAAKoZ,WAAa,KAClBpZ,KAAKqZ,OAAS,KAEdrZ,KAAKsP,cAAcvM,UACnB/C,KAAK4K,YAAY7H,UACjB/C,KAAKiL,YAAYlI,UACjB/C,KAAK8K,cAAc/H,UAEnB/C,KAAKsP,cAAgB,KACrBtP,KAAK4K,YAAc,KACnB5K,KAAKiL,YAAc,KACnBjL,KAAK8K,cAAgB,KAErB9K,KAAKwH,GAAK,KACVxH,KAAKsH,cAAgB,KAErBrH,EAAKwQ,WAAWI,OAAO7Q,MAEvBC,EAAKwX,UAAUzX,KAAKia,aAAe,KAEnCha,EAAKwY,cAAcwB,eAQvBha,EAAKwY,cAAc5V,UAAUmX,cAAgB,WAEzC,GAAIxS,GAAKxH,KAAKwH,EAEd,KAAKvH,EAAK6b,gBACV,CACI,GAAInX,MACAoX,EAAQ9b,EAAKkE,UAEjBQ,GAAEoX,EAAM1X,SAAkBmD,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMG,MAAkB1U,EAAG2U,UAAW3U,EAAG4U,WAC3CzX,EAAEoX,EAAM3X,WAAkBoD,EAAG6U,UAAW7U,EAAGyU,qBAC3CtX,EAAEoX,EAAMO,SAAkB9U,EAAG2U,UAAW3U,EAAGwU,KAC3CrX,EAAEoX,EAAMQ,UAAkB/U,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMS,SAAkBhV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMU,UAAkBjV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMW,cAAkBlV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMY,aAAkBnV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMa,aAAkBpV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMc,aAAkBrV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMe,aAAkBtV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMgB,YAAkBvV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMiB,MAAkBxV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMkB,aAAkBzV,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMmB,QAAkB1V,EAAGwU,IAAWxU,EAAGyU,qBAC3CtX,EAAEoX,EAAMoB,aAAkB3V,EAAGwU,IAAWxU,EAAGyU,qBAE3Chc,EAAK6b,gBAAkBnX,IAI/B1E,EAAKwY,cAAcwB,YAAc,EAWjCha,EAAK4Z,sBAAwB,WAMzB7Z,KAAKmN,iBAAmB,OAG5BlN,EAAK4Z,sBAAsBhX,UAAUC,YAAc7C,EAAK4Z,sBAQxD5Z,EAAK4Z,sBAAsBhX,UAAUwM,WAAa,SAAS7H,GAEvDxH,KAAKwH,GAAKA,GASdvH,EAAK4Z,sBAAsBhX,UAAUuY,aAAe,SAASlX,GAEzD,GAAGlE,KAAKmN,mBAAqBjJ,EAAU,OAAO,CAE9ClE,MAAKmN,iBAAmBjJ,CAExB,IAAIkZ,GAAiBnd,EAAK6b,gBAAgB9b,KAAKmN,iBAO/C,OALIiQ,IAEApd,KAAKwH,GAAG6V,UAAUD,EAAe,GAAIA,EAAe,KAGjD,GAQXnd,EAAK4Z,sBAAsBhX,UAAUE,QAAU,WAE3C/C,KAAKwH,GAAK,MAYdvH,EAAKuZ,iBAAmB,aAIxBvZ,EAAKuZ,iBAAiB3W,UAAUC,YAAc7C,EAAKuZ,iBAQnDvZ,EAAKuZ,iBAAiB3W,UAAUwM,WAAa,SAAS7H,GAElDxH,KAAKwH,GAAKA,GAUdvH,EAAKuZ,iBAAiB3W,UAAUqI,SAAW,SAASoS,EAAUhW,GAE1D,GAAIE,GAAKF,EAAcE,EAEnB8V,GAAS1J,OAET3T,EAAKsd,cAAcC,eAAeF,EAAU9V,GAGjBiC,SAA3B6T,EAASG,OAAOjW,EAAGoO,KAAqDnM,SAAhC6T,EAASG,OAAOjW,EAAGoO,IAAIhF,MAA6D,IAAvC0M,EAASG,OAAOjW,EAAGoO,IAAIhF,KAAK1N,QAKrHoE,EAAcoS,eAAegE,YAAYJ,EAAUA,EAASG,OAAOjW,EAAGoO,IAAIhF,KAAK,GAAItJ,IAUvFrH,EAAKuZ,iBAAiB3W,UAAUwI,QAAU,SAASiS,EAAUhW,GAEzD,GAAIE,GAAKxH,KAAKwH,EAEiBiC,UAA3B6T,EAASG,OAAOjW,EAAGoO,KAAqDnM,SAAhC6T,EAASG,OAAOjW,EAAGoO,IAAIhF,MAA6D,IAAvC0M,EAASG,OAAOjW,EAAGoO,IAAIhF,KAAK1N,QAKrHoE,EAAcoS,eAAeiE,WAAWL,EAAUA,EAASG,OAAOjW,EAAGoO,IAAIhF,KAAK,GAAItJ,IAStFrH,EAAKuZ,iBAAiB3W,UAAUE,QAAU,WAEtC/C,KAAKwH,GAAK,MAYdvH,EAAK0Z,oBAAsB,WAEvB3Z,KAAK4d,gBACL5d,KAAK6d,SAAU,EACf7d,KAAK8d,MAAQ,GASjB7d,EAAK0Z,oBAAoB9W,UAAUwM,WAAa,SAAS7H,GAErDxH,KAAKwH,GAAKA,GAWdvH,EAAK0Z,oBAAoB9W,UAAU6a,YAAc,SAASK,EAAUC,EAAW1W,GAE3E,GAAIE,GAAKxH,KAAKwH,EACdxH,MAAKie,aAAaF,EAAUC,EAAW1W,GAEP,IAA7BtH,KAAK4d,aAAa1a,SAEjBsE,EAAG6S,OAAO7S,EAAG0W,cACb1W,EAAGuT,MAAMvT,EAAG2W,oBACZne,KAAK6d,SAAU,EACf7d,KAAK8d,MAAQ,GAGjB9d,KAAK4d,aAAa7Z,KAAKia,EAEvB,IAAII,GAAQpe,KAAK8d,KAEjBtW,GAAG6W,WAAU,GAAO,GAAO,GAAO,GAElC7W,EAAG8W,YAAY9W,EAAG+W,OAAO,EAAE,KAC3B/W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAGkX,QAIV,IAAnBV,EAAUW,MAETnX,EAAGoX,aAAapX,EAAGqX,aAAeb,EAAUc,QAAQ5b,OAAS,EAAGsE,EAAGuX,eAAgB,GAEhF/e,KAAK6d,SAEJrW,EAAG8W,YAAY9W,EAAGwX,MAAO,IAAOZ,EAAO,KACvC5W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAGyX,QAIhCzX,EAAG8W,YAAY9W,EAAGwX,MAAMZ,EAAO,KAC/B5W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAG0X,OAIpC1X,EAAGoX,aAAapX,EAAGqX,aAAc,EAAGrX,EAAGuX,eAAmD,GAAjCf,EAAUc,QAAQ5b,OAAS,IAEjFlD,KAAK6d,QAEJrW,EAAG8W,YAAY9W,EAAGwX,MAAM,KAAMZ,EAAM,GAAI,KAIxC5W,EAAG8W,YAAY9W,EAAGwX,MAAMZ,EAAM,EAAG,KAGrCpe,KAAK6d,SAAW7d,KAAK6d,UAIjB7d,KAAK6d,SAOLrW,EAAG8W,YAAY9W,EAAGwX,MAAMZ,EAAO,KAC/B5W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAG0X,QANhC1X,EAAG8W,YAAY9W,EAAGwX,MAAO,IAAOZ,EAAO,KACvC5W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAGyX,OAQpCzX,EAAGoX,aAAapX,EAAG2X,eAAiBnB,EAAUc,QAAQ5b,OAAQsE,EAAGuX,eAAgB,GAE7E/e,KAAK6d,QAMLrW,EAAG8W,YAAY9W,EAAGwX,MAAMZ,EAAM,EAAG,KAJjC5W,EAAG8W,YAAY9W,EAAGwX,MAAM,KAAMZ,EAAM,GAAI,MAQhD5W,EAAG6W,WAAU,GAAM,GAAM,GAAM,GAC/B7W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAGiX,MAEhCze,KAAK8d,SAWT7d,EAAK0Z,oBAAoB9W,UAAUob,aAAe,SAASF,EAAUC,EAAW1W,GAG5EtH,KAAKof,iBAAmBrB,CAExB,IAKInS,GALApE,EAAKxH,KAAKwH,GAGV4R,EAAa9R,EAAc8R,WAC3BC,EAAS/R,EAAc+R,MAGL,KAAnB2E,EAAUW,MAET/S,EAAStE,EAAcgI,cAAc+P,uBAErC/X,EAAcgI,cAAcC,UAAW3D,GAEvCpE,EAAG8X,UAAU1T,EAAO8K,MAAOpP,EAAcoP,OAEzClP,EAAG8N,iBAAiB1J,EAAOsM,mBAAmB,EAAO6F,EAAShc,eAAewd,SAAQ,IAErF/X,EAAGgY,UAAU5T,EAAOuI,iBAAkBiF,EAAW/T,GAAI+T,EAAW9T,GAChEkC,EAAGgY,UAAU5T,EAAOwI,cAAeiF,EAAOhU,GAAIgU,EAAO/T,GAErDkC,EAAGiY,WAAW7T,EAAOyM,UAAWpY,EAAK2P,QAAQmO,EAAStS,OACtDjE,EAAGiY,WAAW7T,EAAO2M,MAAOyF,EAAUzF,OAEtC/Q,EAAG8X,UAAU1T,EAAOpK,MAAOuc,EAASjc,WAAakc,EAAUxc,OAE3DgG,EAAGkY,WAAWlY,EAAGmY,aAAc3B,EAAU7C,QAEzC3T,EAAGoY,oBAAoBhU,EAAO0I,gBAAiB,EAAG9M,EAAGqY,OAAO,EAAO,EAAO,GAK1ErY,EAAGkY,WAAWlY,EAAGsY,qBAAsB9B,EAAU+B,eAKjDnU,EAAStE,EAAcgI,cAAc0Q,gBACrC1Y,EAAcgI,cAAcC,UAAW3D,GAEvCpE,EAAG8N,iBAAiB1J,EAAOsM,mBAAmB,EAAO6F,EAAShc,eAAewd,SAAQ,IAErF/X,EAAG8X,UAAU1T,EAAO8K,MAAOpP,EAAcoP,OACzClP,EAAGgY,UAAU5T,EAAOuI,iBAAkBiF,EAAW/T,GAAI+T,EAAW9T,GAChEkC,EAAGgY,UAAU5T,EAAOwI,cAAeiF,EAAOhU,GAAIgU,EAAO/T,GAErDkC,EAAGiY,WAAW7T,EAAOyM,UAAWpY,EAAK2P,QAAQmO,EAAStS,OAEtDjE,EAAG8X,UAAU1T,EAAOpK,MAAOuc,EAASjc,YAEpC0F,EAAGkY,WAAWlY,EAAGmY,aAAc3B,EAAU7C,QAEzC3T,EAAGoY,oBAAoBhU,EAAO0I,gBAAiB,EAAG9M,EAAGqY,OAAO,EAAO,GAAO,GAC1ErY,EAAGoY,oBAAoBhU,EAAO6I,eAAgB,EAAGjN,EAAGqY,OAAO,EAAM,GAAO,GAGxErY,EAAGkY,WAAWlY,EAAGsY,qBAAsB9B,EAAU+B,eAUzD9f,EAAK0Z,oBAAoB9W,UAAU8a,WAAa,SAASI,EAAUC,EAAW1W,GAE7E,GAAIE,GAAKxH,KAAKwH,EAKX,IAJAxH,KAAK4d,aAAaqC,MAElBjgB,KAAK8d,QAE2B,IAA7B9d,KAAK4d,aAAa1a,OAGjBsE,EAAG0S,QAAQ1S,EAAG0W,kBAIlB,CAEI,GAAIE,GAAQpe,KAAK8d,KAEjB9d,MAAKie,aAAaF,EAAUC,EAAW1W,GAEvCE,EAAG6W,WAAU,GAAO,GAAO,GAAO,GAEZ,IAAnBL,EAAUW,MAET3e,KAAK6d,SAAW7d,KAAK6d,QAElB7d,KAAK6d,SAEJrW,EAAG8W,YAAY9W,EAAGwX,MAAO,KAAQZ,EAAM,GAAI,KAC3C5W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAG0X,QAIhC1X,EAAG8W,YAAY9W,EAAGwX,MAAMZ,EAAM,EAAG,KACjC5W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAGyX,OAIpCzX,EAAGoX,aAAapX,EAAGqX,aAAc,EAAGrX,EAAGuX,eAAmD,GAAjCf,EAAUc,QAAQ5b,OAAS,IAEpFsE,EAAG8W,YAAY9W,EAAG+W,OAAO,EAAE,KAC3B/W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAGkX,QAGhClX,EAAGoX,aAAapX,EAAGqX,aAAeb,EAAUc,QAAQ5b,OAAS,EAAGsE,EAAGuX,eAAgB,GAE/E/e,KAAK6d,QAMLrW,EAAG8W,YAAY9W,EAAGwX,MAAMZ,EAAO,KAJ/B5W,EAAG8W,YAAY9W,EAAGwX,MAAM,IAAK,EAAS,OAWtChf,KAAK6d,SAOLrW,EAAG8W,YAAY9W,EAAGwX,MAAMZ,EAAM,EAAG,KACjC5W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAGyX,QANhCzX,EAAG8W,YAAY9W,EAAGwX,MAAO,KAAQZ,EAAM,GAAI,KAC3C5W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAG0X,OAQpC1X,EAAGoX,aAAapX,EAAG2X,eAAiBnB,EAAUc,QAAQ5b,OAAQsE,EAAGuX,eAAgB,GAE7E/e,KAAK6d,QAMLrW,EAAG8W,YAAY9W,EAAGwX,MAAMZ,EAAO,KAJ/B5W,EAAG8W,YAAY9W,EAAGwX,MAAM,IAAK,EAAS,MAQ9CxX,EAAG6W,WAAU,GAAM,GAAM,GAAM,GAC/B7W,EAAGgX,UAAUhX,EAAGiX,KAAKjX,EAAGiX,KAAKjX,EAAGiX,QAWxCxe,EAAK0Z,oBAAoB9W,UAAUE,QAAU,WAEzC/C,KAAK4d,aAAe,KACpB5d,KAAKwH,GAAK,MAYdvH,EAAKqZ,mBAAqB,WAMtBtZ,KAAKkgB,UAAY,GAMjBlgB,KAAKmgB,eAMLngB,KAAKogB,kBAEL,KAAK,GAAInd,GAAI,EAAGA,EAAIjD,KAAKkgB,UAAWjd,IAEhCjD,KAAKmgB,YAAYld,IAAK,CAO1BjD,MAAKqgB,UAITpgB,EAAKqZ,mBAAmBzW,UAAUC,YAAc7C,EAAKqZ,mBAQrDrZ,EAAKqZ,mBAAmBzW,UAAUwM,WAAa,SAAS7H,GAEpDxH,KAAKwH,GAAKA,EAGVxH,KAAKggB,gBAAkB,GAAI/f,GAAKmY,gBAAgB5Q,GAGhDxH,KAAKqf,uBAAyB,GAAIpf,GAAKqY,uBAAuB9Q,GAG9DxH,KAAKsgB,cAAgB,GAAIrgB,GAAKuT,WAAWhM,GAGzCxH,KAAKwP,WAAa,GAAIvP,GAAK2X,eAAepQ,GAG1CxH,KAAKugB,YAAc,GAAItgB,GAAKgY,YAAYzQ,GACxCxH,KAAKuP,UAAUvP,KAAKsgB,gBASxBrgB,EAAKqZ,mBAAmBzW,UAAU2d,WAAa,SAASC,GAGpD,GAAIxd,EAEJ,KAAKA,EAAI,EAAGA,EAAIjD,KAAKogB,gBAAgBld,OAAQD,IAEzCjD,KAAKogB,gBAAgBnd,IAAK,CAI9B,KAAKA,EAAI,EAAGA,EAAIwd,EAAQvd,OAAQD,IAChC,CACI,GAAIyd,GAAWD,EAAQxd,EACvBjD,MAAKogB,gBAAgBM,IAAY,EAGrC,GAAIlZ,GAAKxH,KAAKwH,EAEd,KAAKvE,EAAI,EAAGA,EAAIjD,KAAKmgB,YAAYjd,OAAQD,IAElCjD,KAAKmgB,YAAYld,KAAOjD,KAAKogB,gBAAgBnd,KAE5CjD,KAAKmgB,YAAYld,GAAKjD,KAAKogB,gBAAgBnd,GAExCjD,KAAKogB,gBAAgBnd,GAEpBuE,EAAGmZ,wBAAwB1d,GAI3BuE,EAAGoZ,yBAAyB3d,KAY5ChD,EAAKqZ,mBAAmBzW,UAAU0M,UAAY,SAAS3D,GAEnD,MAAG5L,MAAK6gB,aAAejV,EAAOtL,MAAY,GAE1CN,KAAK6gB,WAAajV,EAAOtL,KAEzBN,KAAK8gB,cAAgBlV,EAErB5L,KAAKwH,GAAGwM,WAAWpI,EAAO6H,SAC1BzT,KAAKwgB,WAAW5U,EAAOiI,aAEhB,IAQX5T,EAAKqZ,mBAAmBzW,UAAUE,QAAU,WAExC/C,KAAKmgB,YAAc,KAEnBngB,KAAKogB,gBAAkB,KAEvBpgB,KAAKggB,gBAAgBjd,UAErB/C,KAAKqf,uBAAuBtc,UAE5B/C,KAAKsgB,cAAcvd,UAEnB/C,KAAKwP,WAAWzM,UAEhB/C,KAAKugB,YAAYxd,UAEjB/C,KAAKwH,GAAK,MAoBdvH,EAAKsZ,iBAAmB,WAMpBvZ,KAAK+gB,SAAW,EAOhB/gB,KAAKghB,KAAO,GAGZ,IAAIC,GAAuB,EAAZjhB,KAAKghB,KAAW,EAAIhhB,KAAK+gB,SAEpCG,EAAyB,EAAZlhB,KAAKghB,IAQtBhhB,MAAKmhB,SAAW,GAAIlhB,GAAKS,YAAYugB,GAQrCjhB,KAAKohB,UAAY,GAAInhB,GAAKM,aAAaP,KAAKmhB,UAQ5CnhB,KAAKqhB,OAAS,GAAIphB,GAAKQ,YAAYT,KAAKmhB,UAQxCnhB,KAAK8e,QAAU,GAAI7e,GAAKO,YAAY0gB,GAMpClhB,KAAKshB,eAAiB,CAEtB,KAAK,GAAIre,GAAE,EAAGa,EAAE,EAAOod,EAAJje,EAAgBA,GAAK,EAAGa,GAAK,EAE5C9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,CAO9B9D,MAAKuhB,SAAU,EAMfvhB,KAAKwhB,iBAAmB,EAMxBxhB,KAAKyhB,mBAAqB,KAM1BzhB,KAAK4T,OAAQ,EAMb5T,KAAK0hB,YAML1hB,KAAKmE,cAMLnE,KAAK2hB,WAML3hB,KAAK4hB,WAML5hB,KAAKsgB,cAAgB,GAAIrgB,GAAK4hB,gBAC1B,wBACA,8BACA,uBACA,8BACA,oBACA,kEACA,OAQR5hB,EAAKsZ,iBAAiB1W,UAAUwM,WAAa,SAAS7H,GAElDxH,KAAKwH,GAAKA,EAGVxH,KAAK8hB,aAAeta,EAAGua,eACvB/hB,KAAK+f,YAAcvY,EAAGua,eAKtBva,EAAGkY,WAAWlY,EAAGsY,qBAAsB9f,KAAK+f,aAC5CvY,EAAGwa,WAAWxa,EAAGsY,qBAAsB9f,KAAK8e,QAAStX,EAAGya,aAExDza,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK8hB,cACpCta,EAAGwa,WAAWxa,EAAGmY,aAAc3f,KAAKmhB,SAAU3Z,EAAG0a,cAEjDliB,KAAKmN,iBAAmB,KAExB,IAAIvB,GAAS,GAAI3L,GAAKuT,WAAWhM,EAEjCoE,GAAOmH,YAAc/S,KAAKsgB,cAAcvN,YACxCnH,EAAO+I,YACP/I,EAAOkI,OAEP9T,KAAKsgB,cAAcqB,QAAQna,EAAGoO,IAAMhK,GAOxC3L,EAAKsZ,iBAAiB1W,UAAUgH,MAAQ,SAASvC,GAE7CtH,KAAKsH,cAAgBA,EACrBtH,KAAK4L,OAAS5L,KAAKsH,cAAcgI,cAAcgR,cAE/CtgB,KAAKoL,SAMTnL,EAAKsZ,iBAAiB1W,UAAUiH,IAAM,WAElC9J,KAAK6K,SAQT5K,EAAKsZ,iBAAiB1W,UAAUiE,OAAS,SAASqb,EAAQrc,GAEtD,GAAIgC,GAAUqa,EAAOra,QAGjB7C,EAAKkd,EAAOpgB,cAEZ+D,KAEAb,EAAKa,GAIL9F,KAAKwhB,kBAAoBxhB,KAAKghB,OAE9BhhB,KAAK6K,QACL7K,KAAKyhB,mBAAqB3Z,EAAQ+D,YAItC,IAAIuW,GAAMta,EAAQua,IAGlB,IAAKD,EAAL,CAKA,GAGI/V,GAAIC,EAAIC,EAAIC,EAHZ8V,EAAKH,EAAOja,OAAO7C,EACnBkd,EAAKJ,EAAOja,OAAO5C,CAIvB,IAAIwC,EAAQ8F,KACZ,CAEI,GAAIA,GAAO9F,EAAQ8F,IAEnBtB,GAAKsB,EAAKvI,EAAIid,EAAK1U,EAAKjH,MACxB0F,EAAKC,EAAKxE,EAAQoF,KAAKvG,MAEvB6F,EAAKoB,EAAKtI,EAAIid,EAAK3U,EAAKhH,OACxB2F,EAAKC,EAAK1E,EAAQoF,KAAKtG,WAIvByF,GAAMvE,EAAQkE,MAAW,OAAK,EAAEsW,GAChChW,EAAMxE,EAAQkE,MAAW,OAAKsW,EAE9B/V,EAAKzE,EAAQkE,MAAMpF,QAAU,EAAE2b,GAC/B/V,EAAK1E,EAAQkE,MAAMpF,QAAU2b,CAGjC,IAAItf,GAA4B,EAAxBjD,KAAKwhB,iBAAuBxhB,KAAK+gB,SACrC1a,EAAayB,EAAQ+D,YAAYxF,WAEjC3B,EAAIO,EAAGP,EAAI2B,EACX1B,EAAIM,EAAGN,EAAI0B,EACXzB,EAAIK,EAAGL,EAAIyB,EACXxB,EAAII,EAAGJ,EAAIwB,EACXvB,EAAKG,EAAGH,GACRC,EAAKE,EAAGF,GAERsc,EAASrhB,KAAKqhB,OACdD,EAAYphB,KAAKohB,SAEjBphB,MAAKsH,cAAcwG,aAGnBsT,EAAUne,GAAKyB,EAAI4H,EAAK1H,EAAI4H,EAAK1H,EAAK,EACtCsc,EAAUne,EAAE,GAAK4B,EAAI2H,EAAK7H,EAAI2H,EAAKvH,EAAK,EAGxCqc,EAAUne,EAAE,GAAKyB,EAAI2H,EAAKzH,EAAI4H,EAAK1H,EAAK,EACxCsc,EAAUne,EAAE,GAAK4B,EAAI2H,EAAK7H,EAAI0H,EAAKtH,EAAK,EAGxCqc,EAAUne,EAAE,IAAMyB,EAAI2H,EAAKzH,EAAI2H,EAAKzH,EAAK,EACzCsc,EAAUne,EAAE,IAAM4B,EAAI0H,EAAK5H,EAAI0H,EAAKtH,EAAK,EAGzCqc,EAAUne,EAAE,IAAMyB,EAAI4H,EAAK1H,EAAI2H,EAAKzH,EAAK,EACzCsc,EAAUne,EAAE,IAAM4B,EAAI0H,EAAK5H,EAAI2H,EAAKvH,EAAK,IAKzCqc,EAAUne,GAAKyB,EAAI4H,EAAK1H,EAAI4H,EAAK1H,EACjCsc,EAAUne,EAAE,GAAK4B,EAAI2H,EAAK7H,EAAI2H,EAAKvH,EAGnCqc,EAAUne,EAAE,GAAKyB,EAAI2H,EAAKzH,EAAI4H,EAAK1H,EACnCsc,EAAUne,EAAE,GAAK4B,EAAI2H,EAAK7H,EAAI0H,EAAKtH,EAGnCqc,EAAUne,EAAE,IAAMyB,EAAI2H,EAAKzH,EAAI2H,EAAKzH,EACpCsc,EAAUne,EAAE,IAAM4B,EAAI0H,EAAK5H,EAAI0H,EAAKtH,EAGpCqc,EAAUne,EAAE,IAAMyB,EAAI4H,EAAK1H,EAAI2H,EAAKzH,EACpCsc,EAAUne,EAAE,IAAM4B,EAAI0H,EAAK5H,EAAI2H,EAAKvH,GAIxCqc,EAAUne,EAAE,GAAKmf,EAAII,GACrBpB,EAAUne,EAAE,GAAKmf,EAAIK,GAGrBrB,EAAUne,EAAE,GAAKmf,EAAI1V,GACrB0U,EAAUne,EAAE,GAAKmf,EAAIzV,GAGrByU,EAAUne,EAAE,IAAMmf,EAAIxV,GACtBwU,EAAUne,EAAE,IAAMmf,EAAIvV,GAGtBuU,EAAUne,EAAE,IAAMmf,EAAItV,GACtBsU,EAAUne,EAAE,IAAMmf,EAAIrV,EAGtB,IAAItB,GAAO0W,EAAO1W,IAElB4V,GAAOpe,EAAE,GAAKoe,EAAOpe,EAAE,GAAKoe,EAAOpe,EAAE,IAAMoe,EAAOpe,EAAE,KAAOwI,GAAQ,KAAc,MAAPA,KAA0B,IAAPA,IAAgB,KAA2B,IAApB0W,EAAOrgB,YAAoB,IAG/I9B,KAAK4hB,QAAQ5hB,KAAKwhB,oBAAsBW,IAU5CliB,EAAKsZ,iBAAiB1W,UAAU6f,mBAAqB,SAASP,GAE1D,GAAIra,GAAUqa,EAAOQ,aAGjB3iB,MAAKwhB,kBAAoBxhB,KAAKghB,OAE9BhhB,KAAK6K,QACL7K,KAAKyhB,mBAAqB3Z,EAAQ+D,aAIjCsW,EAAOE,OAERF,EAAOE,KAAO,GAAIpiB,GAAK2iB,WAG3B,IAAIR,GAAMD,EAAOE,KAEb9K,EAAIzP,EAAQ+D,YAAYlF,MACxBkc,EAAI/a,EAAQ+D,YAAYjF,MAQ5Bub,GAAOW,aAAazd,GAAKkS,EAAI4K,EAAOY,gBAAgB1d,EACpD8c,EAAOW,aAAaxd,GAAKud,EAAIV,EAAOY,gBAAgBzd,CAEpD,IAAI0d,GAAUb,EAAOW,aAAazd,GAAKkS,EAAI4K,EAAOY,gBAAgB1d,GAC9D4d,EAAUd,EAAOW,aAAaxd,GAAKud,EAAIV,EAAOY,gBAAgBzd,GAE9D4d,EAAUf,EAAOxb,MAAQ4Q,GAAM4K,EAAOgB,UAAU9d,EAAI8c,EAAOY,gBAAgB1d,GAC3E+d,EAAUjB,EAAOvb,OAASic,GAAMV,EAAOgB,UAAU7d,EAAI6c,EAAOY,gBAAgBzd,EAEhF8c,GAAII,GAAK,EAAIQ,EACbZ,EAAIK,GAAK,EAAIQ,EAEbb,EAAI1V,GAAM,EAAIwW,EAAUF,EACxBZ,EAAIzV,GAAK,EAAIsW,EAEbb,EAAIxV,GAAM,EAAIsW,EAAUF,EACxBZ,EAAIvV,GAAM,EAAIuW,EAAUH,EAExBb,EAAItV,GAAK,EAAIkW,EACbZ,EAAIrV,GAAM,EAAIqW,EAAUH,CAGxB,IAAIxX,GAAO0W,EAAO1W,KACd8M,GAAS9M,GAAQ,KAAc,MAAPA,KAA0B,IAAPA,IAAgB,KAA2B,IAApB0W,EAAOrgB,YAAoB,IAE7Fsf,EAAYphB,KAAKohB,UACjBC,EAASrhB,KAAKqhB,OAEd1a,EAAQwb,EAAOxb,MACfC,EAASub,EAAOvb,OAGhB0b,EAAKH,EAAOja,OAAO7C,EACnBkd,EAAKJ,EAAOja,OAAO5C,EACnB+G,EAAK1F,GAAS,EAAE2b,GAChBhW,EAAK3F,GAAS2b,EAEd/V,EAAK3F,GAAU,EAAE2b,GACjB/V,EAAK5F,GAAU2b,EAEftf,EAA4B,EAAxBjD,KAAKwhB,iBAAuBxhB,KAAK+gB,SAErC1a,EAAayB,EAAQ+D,YAAYxF,WAEjCpB,EAAKkd,EAAOpgB,eAEZ2C,EAAIO,EAAGP,EAAI2B,EACX1B,EAAIM,EAAGN,EAAI0B,EACXzB,EAAIK,EAAGL,EAAIyB,EACXxB,EAAII,EAAGJ,EAAIwB,EACXvB,EAAKG,EAAGH,GACRC,EAAKE,EAAGF,EAGZqc,GAAUne,KAAOyB,EAAI4H,EAAK1H,EAAI4H,EAAK1H,EACnCsc,EAAUne,KAAO4B,EAAI2H,EAAK7H,EAAI2H,EAAKvH,EAEnCqc,EAAUne,KAAOmf,EAAII,GACrBpB,EAAUne,KAAOmf,EAAIK,GAErBpB,EAAOpe,KAAOsV,EAGd6I,EAAUne,KAAQyB,EAAI2H,EAAKzH,EAAI4H,EAAK1H,EACpCsc,EAAUne,KAAO4B,EAAI2H,EAAK7H,EAAI0H,EAAKtH,EAEnCqc,EAAUne,KAAOmf,EAAI1V,GACrB0U,EAAUne,KAAOmf,EAAIzV,GAErB0U,EAAOpe,KAAOsV,EAGd6I,EAAUne,KAAOyB,EAAI2H,EAAKzH,EAAI2H,EAAKzH,EACnCsc,EAAUne,KAAO4B,EAAI0H,EAAK5H,EAAI0H,EAAKtH,EAEnCqc,EAAUne,KAAOmf,EAAIxV,GACrBwU,EAAUne,KAAOmf,EAAIvV,GAErBwU,EAAOpe,KAAOsV,EAGd6I,EAAUne,KAAOyB,EAAI4H,EAAK1H,EAAI2H,EAAKzH,EACnCsc,EAAUne,KAAO4B,EAAI0H,EAAK5H,EAAI2H,EAAKvH,EAEnCqc,EAAUne,KAAOmf,EAAItV,GACrBsU,EAAUne,KAAOmf,EAAIrV,GAErBsU,EAAOpe,KAAOsV,EAGdvY,KAAK4hB,QAAQ5hB,KAAKwhB,oBAAsBW,GAQ5CliB,EAAKsZ,iBAAiB1W,UAAUgI,MAAQ,WAGpC,GAA8B,IAA1B7K,KAAKwhB,iBAAT,CAKA,GACI5V,GADApE,EAAKxH,KAAKwH,EAGd,IAAIxH,KAAK4T,MACT,CACI5T,KAAK4T,OAAQ,EAGbpM,EAAGgO,cAAchO,EAAG6b,UAGpB7b,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK8hB,cACpCta,EAAGkY,WAAWlY,EAAGsY,qBAAsB9f,KAAK+f,aAE5CnU,EAAS5L,KAAKsgB,cAAcqB,QAAQna,EAAGoO,GAGvC,IAAI0N,GAAyB,EAAhBtjB,KAAK+gB,QAClBvZ,GAAGoY,oBAAoBhU,EAAO0I,gBAAiB,EAAG9M,EAAGqY,OAAO,EAAOyD,EAAQ,GAC3E9b,EAAGoY,oBAAoBhU,EAAO4I,cAAe,EAAGhN,EAAGqY,OAAO,EAAOyD,EAAQ,GAGzE9b,EAAGoY,oBAAoBhU,EAAO6I,eAAgB,EAAGjN,EAAGqP,eAAe,EAAMyM,EAAQ,IAIrF,GAAItjB,KAAKwhB,iBAAgC,GAAZxhB,KAAKghB,KAE9BxZ,EAAG+b,cAAc/b,EAAGmY,aAAc,EAAG3f,KAAKmhB,cAG9C,CACI,GAAIpI,GAAO/Y,KAAKohB,UAAUoC,SAAS,EAA2B,EAAxBxjB,KAAKwhB,iBAAuBxhB,KAAK+gB,SACvEvZ,GAAG+b,cAAc/b,EAAGmY,aAAc,EAAG5G,GAezC,IAAK,GAZD0K,GAAaC,EAAeC,EAU5BxB,EATAyB,EAAY,EACZxY,EAAQ,EAERqW,EAAqB,KACrBtU,EAAmBnN,KAAKsH,cAAcsS,iBAAiBzM,iBACvD2T,EAAgB,KAEhB+C,GAAY,EACZC,GAAa,EAGR7gB,EAAI,EAAGa,EAAI9D,KAAKwhB,iBAAsB1d,EAAJb,EAAOA,IAAK,CAEnDkf,EAASniB,KAAK4hB,QAAQ3e,GAIlBwgB,EAFAtB,EAAOQ,cAEOR,EAAOQ,cAAc9W,YAIrBsW,EAAOra,QAAQ+D,YAGjC6X,EAAgBvB,EAAOje,UACvByf,EAAaxB,EAAOvW,QAAU5L,KAAKsgB,cAEnCuD,EAAY1W,IAAqBuW,EACjCI,EAAahD,IAAkB6C,CAE/B,IAAII,GAAON,EAAYtX,UAOvB,IALI4X,GAAQ5B,EAAOnf,SAASE,OAAS,IAEjC6gB,GAAO,IAGNtC,IAAuBgC,IAAgBM,GAASF,GAAaC,KAE9D9jB,KAAKgkB,YAAYvC,EAAoBmC,EAAWxY,GAEhDA,EAAQnI,EACR2gB,EAAY,EACZnC,EAAqBgC,EAEjBI,IAEA1W,EAAmBuW,EACnB1jB,KAAKsH,cAAcsS,iBAAiBwB,aAAajO,IAGjD2W,GACJ,CACIhD,EAAgB6C,EAEhB/X,EAASkV,EAAca,QAAQna,EAAGoO,IAE7BhK,IAEDA,EAAS,GAAI3L,GAAKuT,WAAWhM,GAE7BoE,EAAOmH,YAAc+N,EAAc/N,YACnCnH,EAAO+I,SAAWmM,EAAcnM,SAChC/I,EAAOkI,OAEPgN,EAAca,QAAQna,EAAGoO,IAAMhK,GAInC5L,KAAKsH,cAAcgI,cAAcC,UAAU3D,GAEvCA,EAAOgI,OAEPhI,EAAOwL,cAKX,IAAIgC,GAAapZ,KAAKsH,cAAc8R,UACpC5R,GAAGgY,UAAU5T,EAAOuI,iBAAkBiF,EAAW/T,EAAG+T,EAAW9T,EAG/D,IAAI8O,GAAepU,KAAKsH,cAAc+R,MACtC7R,GAAGgY,UAAU5T,EAAOwI,aAAcA,EAAa/O,EAAG+O,EAAa9O,GAMvEse,IAGJ5jB,KAAKgkB,YAAYvC,EAAoBmC,EAAWxY,GAGhDpL,KAAKwhB,iBAAmB,IAS5BvhB,EAAKsZ,iBAAiB1W,UAAUmhB,YAAc,SAASlc,EAASkZ,EAAMiD,GAElE,GAAa,IAATjD,EAAJ,CAKA,GAAIxZ,GAAKxH,KAAKwH,EAGd,IAAIM,EAAQ0P,OAAOhQ,EAAGoO,KAElB,IAAK5V,KAAKsH,cAAcf,SAASmR,cAAc5P,GAG3C,WAMJN,GAAGiO,YAAYjO,EAAGkO,WAAY5N,EAAQ6N,YAAYnO,EAAGoO,IAIzDpO,GAAGoX,aAAapX,EAAG0c,UAAkB,EAAPlD,EAAUxZ,EAAGuX,eAA6B,EAAbkF,EAAiB,GAG5EjkB,KAAKsH,cAAcwS,cAMvB7Z,EAAKsZ,iBAAiB1W,UAAUmI,KAAO,WAEnChL,KAAK6K,QACL7K,KAAK4T,OAAQ,GAMjB3T,EAAKsZ,iBAAiB1W,UAAUuI,MAAQ,WAEpCpL,KAAK4T,OAAQ,GAQjB3T,EAAKsZ,iBAAiB1W,UAAUE,QAAU,WAEtC/C,KAAKmhB,SAAW,KAChBnhB,KAAK8e,QAAU,KAEf9e,KAAKwH,GAAG2c,aAAankB,KAAK8hB,cAC1B9hB,KAAKwH,GAAG2c,aAAankB,KAAK+f,aAE1B/f,KAAKyhB,mBAAqB,KAE1BzhB,KAAKwH,GAAK,MAgBdvH,EAAKmP,qBAAuB,SAAS5H,GAMjCxH,KAAK+gB,SAAW,GAMhB/gB,KAAKokB,QAAU,IAMfpkB,KAAKghB,KAAOhhB,KAAKokB,OAGjB,IAAInD,GAAuB,EAAZjhB,KAAKghB,KAAYhhB,KAAK+gB,SAGjCG,EAA4B,EAAflhB,KAAKokB,OAOtBpkB,MAAKmhB,SAAW,GAAIlhB,GAAKM,aAAa0gB,GAOtCjhB,KAAK8e,QAAU,GAAI7e,GAAKO,YAAY0gB,GAMpClhB,KAAK8hB,aAAe,KAMpB9hB,KAAK+f,YAAc,KAMnB/f,KAAKshB,eAAiB,CAEtB,KAAK,GAAIre,GAAE,EAAGa,EAAE,EAAOod,EAAJje,EAAgBA,GAAK,EAAGa,GAAK,EAE5C9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,EAC1B9D,KAAK8e,QAAQ7b,EAAI,GAAKa,EAAI,CAO9B9D,MAAKuhB,SAAU,EAMfvhB,KAAKwhB,iBAAmB,EAMxBxhB,KAAKyhB,mBAAqB,KAM1BzhB,KAAKmN,iBAAmB,EAMxBnN,KAAKsH,cAAgB,KAMrBtH,KAAK4L,OAAS,KAMd5L,KAAK8F,OAAS,KAEd9F,KAAKqP,WAAW7H,IAGpBvH,EAAKmP,qBAAqBvM,UAAUC,YAAc7C,EAAKmP,qBAQvDnP,EAAKmP,qBAAqBvM,UAAUwM,WAAa,SAAS7H,GAEtDxH,KAAKwH,GAAKA,EAGVxH,KAAK8hB,aAAeta,EAAGua,eACvB/hB,KAAK+f,YAAcvY,EAAGua,eAKtBva,EAAGkY,WAAWlY,EAAGsY,qBAAsB9f,KAAK+f,aAC5CvY,EAAGwa,WAAWxa,EAAGsY,qBAAsB9f,KAAK8e,QAAStX,EAAGya,aAExDza,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK8hB,cACpCta,EAAGwa,WAAWxa,EAAGmY,aAAc3f,KAAKmhB,SAAU3Z,EAAG0a,eAQrDjiB,EAAKmP,qBAAqBvM,UAAUgH,MAAQ,SAASe,EAAatD,GAE9DtH,KAAKsH,cAAgBA,EACrBtH,KAAK4L,OAAS5L,KAAKsH,cAAcgI,cAAcE,WAE/CxP,KAAK8F,OAAS8E,EAAY7I,eAAewd,SAAQ,GAEjDvf,KAAKoL,SAMTnL,EAAKmP,qBAAqBvM,UAAUiH,IAAM,WAEtC9J,KAAK6K,SAOT5K,EAAKmP,qBAAqBvM,UAAUiE,OAAS,SAAS8D,GAElD,GAAI5H,GAAW4H,EAAY5H,SACvBmf,EAASnf,EAAS,EAKtB,IAAImf,EAAOra,QAAQua,KAAnB,CAEAriB,KAAKyhB,mBAAqBU,EAAOra,QAAQ+D,YAGtCsW,EAAOje,YAAclE,KAAKsH,cAAcsS,iBAAiBzM,mBAExDnN,KAAK6K,QACL7K,KAAKsH,cAAcsS,iBAAiBwB,aAAa+G,EAAOje,WAG5D,KAAI,GAAIjB,GAAE,EAAEa,EAAGd,EAASE,OAAUY,EAAFb,EAAKA,IAEjCjD,KAAKqkB,aAAarhB,EAASC,GAG/BjD,MAAK6K,UAOT5K,EAAKmP,qBAAqBvM,UAAUwhB,aAAe,SAASlC,GAGxD,GAAIA,EAAO1gB,UAGR0gB,EAAOra,QAAQ+D,cAAgB7L,KAAKyhB,oBAAuBU,EAAOra,QAAQ+D,YAAYM,aAErFnM,KAAK6K,QACL7K,KAAKyhB,mBAAqBU,EAAOra,QAAQ+D,YAErCsW,EAAOra,QAAQua,OALvB,CAQA,GAAID,GAA+Bzb,EAAOC,EAAQyF,EAAIC,EAAIC,EAAIC,EAAI9D,EAAzDyY,EAAWnhB,KAAKmhB,QAOzB,IALAiB,EAAMD,EAAOra,QAAQua,KAErB1b,EAAQwb,EAAOra,QAAQkE,MAAMrF,MAC7BC,EAASub,EAAOra,QAAQkE,MAAMpF,OAE1Bub,EAAOra,QAAQ8F,KACnB,CAEI,GAAIA,GAAOuU,EAAOra,QAAQ8F,IAE1BtB,GAAKsB,EAAKvI,EAAI8c,EAAOja,OAAO7C,EAAIuI,EAAKjH,MACrC0F,EAAKC,EAAK6V,EAAOra,QAAQoF,KAAKvG,MAE9B6F,EAAKoB,EAAKtI,EAAI6c,EAAOja,OAAO5C,EAAIsI,EAAKhH,OACrC2F,EAAKC,EAAK2V,EAAOra,QAAQoF,KAAKtG,WAI9ByF,GAAM8V,EAAOra,QAAQkE,MAAY,OAAK,EAAEmW,EAAOja,OAAO7C,GACtDiH,EAAM6V,EAAOra,QAAQkE,MAAY,OAAKmW,EAAOja,OAAO7C,EAEpDkH,EAAK4V,EAAOra,QAAQkE,MAAMpF,QAAU,EAAEub,EAAOja,OAAO5C,GACpDkH,EAAK2V,EAAOra,QAAQkE,MAAMpF,QAAUub,EAAOja,OAAO5C,CAGtDoD,GAAgC,EAAxB1I,KAAKwhB,iBAAuBxhB,KAAK+gB,SAGzCI,EAASzY,KAAW4D,EACpB6U,EAASzY,KAAW8D,EAEpB2U,EAASzY,KAAWyZ,EAAOhhB,SAASkE,EACpC8b,EAASzY,KAAWyZ,EAAOhhB,SAASmE,EAGpC6b,EAASzY,KAAWyZ,EAAO9gB,MAAMgE,EACjC8b,EAASzY,KAAWyZ,EAAO9gB,MAAMiE,EAGjC6b,EAASzY,KAAWyZ,EAAO5gB,SAG3B4f,EAASzY,KAAW0Z,EAAII,GACxBrB,EAASzY,KAAW0Z,EAAIzV,GAExBwU,EAASzY,KAAWyZ,EAAO3gB,MAI3B2f,EAASzY,KAAW2D,EACpB8U,EAASzY,KAAW8D,EAEpB2U,EAASzY,KAAWyZ,EAAOhhB,SAASkE,EACpC8b,EAASzY,KAAWyZ,EAAOhhB,SAASmE,EAGpC6b,EAASzY,KAAWyZ,EAAO9gB,MAAMgE,EACjC8b,EAASzY,KAAWyZ,EAAO9gB,MAAMiE,EAGjC6b,EAASzY,KAAWyZ,EAAO5gB,SAG3B4f,EAASzY,KAAW0Z,EAAI1V,GACxByU,EAASzY,KAAW0Z,EAAIzV,GAExBwU,EAASzY,KAAWyZ,EAAO3gB,MAI3B2f,EAASzY,KAAW2D,EACpB8U,EAASzY,KAAW6D,EAEpB4U,EAASzY,KAAWyZ,EAAOhhB,SAASkE,EACpC8b,EAASzY,KAAWyZ,EAAOhhB,SAASmE,EAGpC6b,EAASzY,KAAWyZ,EAAO9gB,MAAMgE,EACjC8b,EAASzY,KAAWyZ,EAAO9gB,MAAMiE,EAGjC6b,EAASzY,KAAWyZ,EAAO5gB,SAG3B4f,EAASzY,KAAW0Z,EAAIxV,GACxBuU,EAASzY,KAAW0Z,EAAIvV,GAExBsU,EAASzY,KAAWyZ,EAAO3gB,MAM3B2f,EAASzY,KAAW4D,EACpB6U,EAASzY,KAAW6D,EAEpB4U,EAASzY,KAAWyZ,EAAOhhB,SAASkE,EACpC8b,EAASzY,KAAWyZ,EAAOhhB,SAASmE,EAGpC6b,EAASzY,KAAWyZ,EAAO9gB,MAAMgE,EACjC8b,EAASzY,KAAWyZ,EAAO9gB,MAAMiE,EAGjC6b,EAASzY,KAAWyZ,EAAO5gB,SAG3B4f,EAASzY,KAAW0Z,EAAItV,GACxBqU,EAASzY,KAAW0Z,EAAIrV,GAExBoU,EAASzY,KAAWyZ,EAAO3gB,MAG3BxB,KAAKwhB,mBAEFxhB,KAAKwhB,kBAAoBxhB,KAAKghB,MAE7BhhB,KAAK6K,UAOb5K,EAAKmP,qBAAqBvM,UAAUgI,MAAQ,WAGxC,GAA4B,IAAxB7K,KAAKwhB,iBAAT,CAEA,GAAIha,GAAKxH,KAAKwH,EAUd,IANIxH,KAAKyhB,mBAAmB9L,YAAYnO,EAAGoO,KAAI5V,KAAKsH,cAAcf,SAASmR,cAAc1X,KAAKyhB,mBAAoBja,GAElHA,EAAGiO,YAAYjO,EAAGkO,WAAY1V,KAAKyhB,mBAAmB9L,YAAYnO,EAAGoO,KAIlE5V,KAAKwhB,iBAAiC,GAAZxhB,KAAKghB,KAE9BxZ,EAAG+b,cAAc/b,EAAGmY,aAAc,EAAG3f,KAAKmhB,cAG9C,CACI,GAAIpI,GAAO/Y,KAAKmhB,SAASqC,SAAS,EAA2B,EAAxBxjB,KAAKwhB,iBAAuBxhB,KAAK+gB,SAEtEvZ,GAAG+b,cAAc/b,EAAGmY,aAAc,EAAG5G,GAIzCvR,EAAGoX,aAAapX,EAAG0c,UAAmC,EAAxBlkB,KAAKwhB,iBAAsBha,EAAGuX,eAAgB,GAG5E/e,KAAKwhB,iBAAmB,EAGxBxhB,KAAKsH,cAAcwS,cAOvB7Z,EAAKmP,qBAAqBvM,UAAUmI,KAAO,WAEvChL,KAAK6K,SAMT5K,EAAKmP,qBAAqBvM,UAAUuI,MAAQ,WAExC,GAAI5D,GAAKxH,KAAKwH,EAGdA,GAAGgO,cAAchO,EAAG6b,UAGpB7b,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK8hB,cACpCta,EAAGkY,WAAWlY,EAAGsY,qBAAsB9f,KAAK+f,YAG5C,IAAI3G,GAAapZ,KAAKsH,cAAc8R,UACpC5R,GAAGgY,UAAUxf,KAAK4L,OAAOuI,iBAAkBiF,EAAW/T,EAAG+T,EAAW9T,GAGpEkC,EAAG8N,iBAAiBtV,KAAK4L,OAAOiM,SAAS,EAAO7X,KAAK8F,OAGrD,IAAIwd,GAA0B,EAAhBtjB,KAAK+gB,QAEnBvZ,GAAGoY,oBAAoB5f,KAAK4L,OAAO0I,gBAAiB,EAAG9M,EAAGqY,OAAO,EAAOyD,EAAQ,GAChF9b,EAAGoY,oBAAoB5f,KAAK4L,OAAOkM,eAAgB,EAAGtQ,EAAGqY,OAAO,EAAOyD,EAAQ,GAC/E9b,EAAGoY,oBAAoB5f,KAAK4L,OAAOmM,OAAQ,EAAGvQ,EAAGqY,OAAO,EAAOyD,EAAQ,IACvE9b,EAAGoY,oBAAoB5f,KAAK4L,OAAOoM,UAAW,EAAGxQ,EAAGqY,OAAO,EAAOyD,EAAQ,IAC1E9b,EAAGoY,oBAAoB5f,KAAK4L,OAAO4I,cAAe,EAAGhN,EAAGqY,OAAO,EAAOyD,EAAQ,IAC9E9b,EAAGoY,oBAAoB5f,KAAK4L,OAAO6I,eAAgB,EAAGjN,EAAGqY,OAAO,EAAOyD,EAAQ,KAYnFrjB,EAAKwZ,mBAAqB,WAMtBzZ,KAAKskB,eAMLtkB,KAAKgjB,QAAU,EAMfhjB,KAAKijB,QAAU,GAGnBhjB,EAAKwZ,mBAAmB5W,UAAUC,YAAc7C,EAAKwZ,mBAQrDxZ,EAAKwZ,mBAAmB5W,UAAUwM,WAAa,SAAS7H,GAEpDxH,KAAKwH,GAAKA,EACVxH,KAAKukB,eAELvkB,KAAKwkB,qBAQTvkB,EAAKwZ,mBAAmB5W,UAAUgH,MAAQ,SAASvC,EAAe6T,GAE9Dnb,KAAKsH,cAAgBA,EACrBtH,KAAKsgB,cAAgBhZ,EAAcgI,cAAcgR,aAEjD,IAAIlH,GAAapZ,KAAKsH,cAAc8R,UACpCpZ,MAAK2G,MAAuB,EAAfyS,EAAW/T,EACxBrF,KAAK4G,OAAyB,GAAfwS,EAAW9T,EAC1BtF,KAAKmb,OAASA,GASlBlb,EAAKwZ,mBAAmB5W,UAAUkI,WAAa,SAAS0Z,GAEpD,GAAIjd,GAAKxH,KAAKwH,GAEV4R,EAAapZ,KAAKsH,cAAc8R,WAChCC,EAASrZ,KAAKsH,cAAc+R,MAEhCoL,GAAYC,YAAcD,EAAYxgB,OAAO3B,YAAcmiB,EAAYxgB,OAAO4B,YAG9E4e,EAAYE,sBAAwB3kB,KAAKsH,cAAcoS,eACvD1Z,KAAKsH,cAAcoS,eAAiB,GAAIzZ,GAAK0Z,oBAC7C3Z,KAAKsH,cAAcoS,eAAerK,WAAW7H,GAC7CA,EAAG0S,QAAQ1S,EAAG0W,cAKdle,KAAKskB,YAAYvgB,KAAK0gB,EAEtB,IAAIG,GAASH,EAAY5gB,aAAa,EAEtC7D,MAAKgjB,SAAWyB,EAAYC,YAAYrf,EACxCrF,KAAKijB,SAAWwB,EAAYC,YAAYpf,CAExC,IAAIwC,GAAU9H,KAAKukB,YAAYtE,KAC3BnY,GAMAA,EAAQC,OAAO/H,KAAK2G,MAAQ3G,KAAKsH,cAAcjB,WAAYrG,KAAK4G,OAAS5G,KAAKsH,cAAcjB,YAJ5FyB,EAAU,GAAI7H,GAAK4kB,cAAc7kB,KAAKwH,GAAIxH,KAAK2G,MAAQ3G,KAAKsH,cAAcjB,WAAYrG,KAAK4G,OAAS5G,KAAKsH,cAAcjB,YAO3HmB,EAAGiO,YAAYjO,EAAGkO,WAAa5N,EAAQA,QAEvC,IAAIxF,GAAamiB,EAAYC,YAEzBI,EAAUF,EAAOE,OACrBxiB,GAAW+C,GAAKyf,EAChBxiB,EAAWgD,GAAKwf,EAChBxiB,EAAWqE,OAAmB,EAAVme,EACpBxiB,EAAWsE,QAAoB,EAAVke,EAGlBxiB,EAAW+C,EAAI,IAAE/C,EAAW+C,EAAI,GAChC/C,EAAWqE,MAAQ3G,KAAK2G,QAAMrE,EAAWqE,MAAQ3G,KAAK2G,OACtDrE,EAAWgD,EAAI,IAAEhD,EAAWgD,EAAI,GAChChD,EAAWsE,OAAS5G,KAAK4G,SAAOtE,EAAWsE,OAAS5G,KAAK4G,QAG5DY,EAAGiT,gBAAgBjT,EAAGkT,YAAa5S,EAAQid,aAG3Cvd,EAAGgT,SAAS,EAAG,EAAGlY,EAAWqE,MAAQ3G,KAAKsH,cAAcjB,WAAY/D,EAAWsE,OAAS5G,KAAKsH,cAAcjB,YAE3G+S,EAAW/T,EAAI/C,EAAWqE,MAAM,EAChCyS,EAAW9T,GAAKhD,EAAWsE,OAAO,EAElCyS,EAAOhU,GAAK/C,EAAW+C,EACvBgU,EAAO/T,GAAKhD,EAAWgD,EAQvBkC,EAAG6W,WAAU,GAAM,GAAM,GAAM,GAC/B7W,EAAGmT,WAAW,EAAE,EAAE,EAAG,GACrBnT,EAAGuT,MAAMvT,EAAGwT,kBAEZyJ,EAAYO,iBAAmBld,GASnC7H,EAAKwZ,mBAAmB5W,UAAUyI,UAAY,WAE1C,GAAI9D,GAAKxH,KAAKwH,GACVid,EAAczkB,KAAKskB,YAAYrE,MAC/B3d,EAAamiB,EAAYC,YACzB5c,EAAU2c,EAAYO,iBACtB5L,EAAapZ,KAAKsH,cAAc8R,WAChCC,EAASrZ,KAAKsH,cAAc+R,MAEhC,IAAGoL,EAAY5gB,aAAaX,OAAS,EACrC,CACIsE,EAAGgT,SAAS,EAAG,EAAGlY,EAAWqE,MAAQ3G,KAAKsH,cAAcjB,WAAY/D,EAAWsE,OAAS5G,KAAKsH,cAAcjB,YAE3GmB,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK8hB,cAEpC9hB,KAAKilB,YAAY,GAAK,EACtBjlB,KAAKilB,YAAY,GAAK3iB,EAAWsE,OAEjC5G,KAAKilB,YAAY,GAAK3iB,EAAWqE,MACjC3G,KAAKilB,YAAY,GAAK3iB,EAAWsE,OAEjC5G,KAAKilB,YAAY,GAAK,EACtBjlB,KAAKilB,YAAY,GAAK,EAEtBjlB,KAAKilB,YAAY,GAAK3iB,EAAWqE,MACjC3G,KAAKilB,YAAY,GAAK,EAEtBzd,EAAG+b,cAAc/b,EAAGmY,aAAc,EAAG3f,KAAKilB,aAE1Czd,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAKklB,UAEpCllB,KAAKmlB,QAAQ,GAAK7iB,EAAWqE,MAAM3G,KAAK2G,MACxC3G,KAAKmlB,QAAQ,GAAK7iB,EAAWsE,OAAO5G,KAAK4G,OACzC5G,KAAKmlB,QAAQ,GAAK7iB,EAAWqE,MAAM3G,KAAK2G,MACxC3G,KAAKmlB,QAAQ,GAAK7iB,EAAWsE,OAAO5G,KAAK4G,OAEzCY,EAAG+b,cAAc/b,EAAGmY,aAAc,EAAG3f,KAAKmlB,QAE1C,IAAIC,GAAetd,EACfud,EAAgBrlB,KAAKukB,YAAYtE,KACjCoF,KAAcA,EAAgB,GAAIplB,GAAK4kB,cAAc7kB,KAAKwH,GAAIxH,KAAK2G,MAAQ3G,KAAKsH,cAAcjB,WAAYrG,KAAK4G,OAAS5G,KAAKsH,cAAcjB,aAC/Igf,EAActd,OAAO/H,KAAK2G,MAAQ3G,KAAKsH,cAAcjB,WAAYrG,KAAK4G,OAAS5G,KAAKsH,cAAcjB,YAGlGmB,EAAGiT,gBAAgBjT,EAAGkT,YAAa2K,EAAcN,aACjDvd,EAAGuT,MAAMvT,EAAGwT,kBAEZxT,EAAG0S,QAAQ1S,EAAG8S,MAEd,KAAK,GAAIrX,GAAI,EAAGA,EAAIwhB,EAAY5gB,aAAaX,OAAO,EAAGD,IACvD,CACI,GAAIqiB,GAAab,EAAY5gB,aAAaZ,EAE1CuE,GAAGiT,gBAAgBjT,EAAGkT,YAAa2K,EAAcN,aAGjDvd,EAAGgO,cAAchO,EAAG6b,UACpB7b,EAAGiO,YAAYjO,EAAGkO,WAAY0P,EAAatd,SAI3C9H,KAAKulB,gBAAgBD,EAAYhjB,EAAYA,EAAWqE,MAAOrE,EAAWsE,OAG1E,IAAI6F,GAAO2Y,CACXA,GAAeC,EACfA,EAAgB5Y,EAGpBjF,EAAG6S,OAAO7S,EAAG8S,OAEbxS,EAAUsd,EACVplB,KAAKukB,YAAYxgB,KAAKshB,GAG1B,GAAIT,GAASH,EAAY5gB,aAAa4gB,EAAY5gB,aAAaX,OAAO,EAEtElD,MAAKgjB,SAAW1gB,EAAW+C,EAC3BrF,KAAKijB,SAAW3gB,EAAWgD,CAE3B,IAAIkgB,GAAQxlB,KAAK2G,MACb8e,EAAQzlB,KAAK4G,OAEboc,EAAU,EACVC,EAAU,EAEV9H,EAASnb,KAAKmb,MAGlB,IAA+B,IAA5Bnb,KAAKskB,YAAYphB,OAEhBsE,EAAG6W,WAAU,GAAM,GAAM,GAAM,OAGnC,CACI,GAAIqH,GAAgB1lB,KAAKskB,YAAYtkB,KAAKskB,YAAYphB,OAAO,EAC7DZ,GAAaojB,EAAchB,YAE3Bc,EAAQljB,EAAWqE,MACnB8e,EAAQnjB,EAAWsE,OAEnBoc,EAAU1gB,EAAW+C,EACrB4d,EAAU3gB,EAAWgD,EAErB6V,EAAUuK,EAAcV,iBAAiBD,YAI7C3L,EAAW/T,EAAImgB,EAAM,EACrBpM,EAAW9T,GAAKmgB,EAAM,EAEtBpM,EAAOhU,EAAI2d,EACX3J,EAAO/T,EAAI2d,EAEX3gB,EAAamiB,EAAYC,WAEzB,IAAIrf,GAAI/C,EAAW+C,EAAE2d,EACjB1d,EAAIhD,EAAWgD,EAAE2d,CAIrBzb,GAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK8hB,cAEpC9hB,KAAKilB,YAAY,GAAK5f,EACtBrF,KAAKilB,YAAY,GAAK3f,EAAIhD,EAAWsE,OAErC5G,KAAKilB,YAAY,GAAK5f,EAAI/C,EAAWqE,MACrC3G,KAAKilB,YAAY,GAAK3f,EAAIhD,EAAWsE,OAErC5G,KAAKilB,YAAY,GAAK5f,EACtBrF,KAAKilB,YAAY,GAAK3f,EAEtBtF,KAAKilB,YAAY,GAAK5f,EAAI/C,EAAWqE,MACrC3G,KAAKilB,YAAY,GAAK3f,EAEtBkC,EAAG+b,cAAc/b,EAAGmY,aAAc,EAAG3f,KAAKilB,aAE1Czd,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAKklB,UAEpCllB,KAAKmlB,QAAQ,GAAK7iB,EAAWqE,MAAM3G,KAAK2G,MACxC3G,KAAKmlB,QAAQ,GAAK7iB,EAAWsE,OAAO5G,KAAK4G,OACzC5G,KAAKmlB,QAAQ,GAAK7iB,EAAWqE,MAAM3G,KAAK2G,MACxC3G,KAAKmlB,QAAQ,GAAK7iB,EAAWsE,OAAO5G,KAAK4G,OAEzCY,EAAG+b,cAAc/b,EAAGmY,aAAc,EAAG3f,KAAKmlB,SAE1C3d,EAAGgT,SAAS,EAAG,EAAGgL,EAAQxlB,KAAKsH,cAAcjB,WAAYof,EAAQzlB,KAAKsH,cAAcjB,YAGpFmB,EAAGiT,gBAAgBjT,EAAGkT,YAAaS,GAMnC3T,EAAGgO,cAAchO,EAAG6b,UACpB7b,EAAGiO,YAAYjO,EAAGkO,WAAY5N,EAAQA,SAGlC9H,KAAKsH,cAAcoS,gBACnB1Z,KAAKsH,cAAcoS,eAAe3W,UAEtC/C,KAAKsH,cAAcoS,eAAiB+K,EAAYE,sBAChDF,EAAYE,sBAAwB,KAChC3kB,KAAKsH,cAAcoS,eAAeoE,MAAQ,EAC1CtW,EAAG6S,OAAO7S,EAAG0W,cAGb1W,EAAG0S,QAAQ1S,EAAG0W,cAKlBle,KAAKulB,gBAAgBX,EAAQtiB,EAAYkjB,EAAOC,GAQhDzlB,KAAKukB,YAAYxgB,KAAK+D,GACtB2c,EAAYO,iBAAmB,MAanC/kB,EAAKwZ,mBAAmB5W,UAAU0iB,gBAAkB,SAASX,EAAQtiB,EAAYqE,EAAOC,GAGpF,GAAIY,GAAKxH,KAAKwH,GACVoE,EAASgZ,EAAOjD,QAAQna,EAAGoO,GAE3BhK,KAEAA,EAAS,GAAI3L,GAAKuT,WAAWhM,GAE7BoE,EAAOmH,YAAc6R,EAAO7R,YAC5BnH,EAAO+I,SAAWiQ,EAAOjQ,SACzB/I,EAAOkI,OAEP8Q,EAAOjD,QAAQna,EAAGoO,IAAMhK,GAI5B5L,KAAKsH,cAAcgI,cAAcC,UAAU3D,GAI3CpE,EAAGgY,UAAU5T,EAAOuI,iBAAkBxN,EAAM,GAAIC,EAAO,GACvDY,EAAGgY,UAAU5T,EAAOwI,aAAc,EAAE,GAEjCwQ,EAAOjQ,SAASN,aAEfuQ,EAAOjQ,SAASN,WAAW5Q,MAAM,GAAKzD,KAAK2G,MAC3Cie,EAAOjQ,SAASN,WAAW5Q,MAAM,GAAKzD,KAAK4G,OAC3Cge,EAAOjQ,SAASN,WAAW5Q,MAAM,GAAKzD,KAAKilB,YAAY,GACvDL,EAAOjQ,SAASN,WAAW5Q,MAAM,GAAKzD,KAAKilB,YAAY,IAG3DrZ,EAAOwL,eAEP5P,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK8hB,cACpCta,EAAGoY,oBAAoBhU,EAAO0I,gBAAiB,EAAG9M,EAAGqY,OAAO,EAAO,EAAG,GAEtErY,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAKklB,UACpC1d,EAAGoY,oBAAoBhU,EAAO4I,cAAe,EAAGhN,EAAGqY,OAAO,EAAO,EAAG,GAEpErY,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK2lB,aACpCne,EAAGoY,oBAAoBhU,EAAO6I,eAAgB,EAAGjN,EAAGqY,OAAO,EAAO,EAAG,GAErErY,EAAGkY,WAAWlY,EAAGsY,qBAAsB9f,KAAK+f,aAG5CvY,EAAGoX,aAAapX,EAAG0c,UAAW,EAAG1c,EAAGuX,eAAgB,GAEpD/e,KAAKsH,cAAcwS,aAQvB7Z,EAAKwZ,mBAAmB5W,UAAU2hB,kBAAoB,WAElD,GAAIhd,GAAKxH,KAAKwH,EAGdxH,MAAK8hB,aAAeta,EAAGua,eACvB/hB,KAAKklB,SAAW1d,EAAGua,eACnB/hB,KAAK2lB,YAAcne,EAAGua,eACtB/hB,KAAK+f,YAAcvY,EAAGua,eAItB/hB,KAAKilB,YAAc,GAAIhlB,GAAKM,cAAc,EAAK,EACV,EAAK,EACL,EAAK,EACL,EAAK,IAE1CiH,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK8hB,cACpCta,EAAGwa,WAAWxa,EAAGmY,aAAc3f,KAAKilB,YAAazd,EAAGya,aAGpDjiB,KAAKmlB,QAAU,GAAIllB,GAAKM,cAAc,EAAK,EACV,EAAK,EACL,EAAK,EACL,EAAK,IAEtCiH,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAKklB,UACpC1d,EAAGwa,WAAWxa,EAAGmY,aAAc3f,KAAKmlB,QAAS3d,EAAGya,aAEhDjiB,KAAK4lB,WAAa,GAAI3lB,GAAKM,cAAc,EAAK,SACV,EAAK,SACL,EAAK,SACL,EAAK,WAEzCiH,EAAGkY,WAAWlY,EAAGmY,aAAc3f,KAAK2lB,aACpCne,EAAGwa,WAAWxa,EAAGmY,aAAc3f,KAAK4lB,WAAYpe,EAAGya,aAGnDza,EAAGkY,WAAWlY,EAAGsY,qBAAsB9f,KAAK+f,aAC5CvY,EAAGwa,WAAWxa,EAAGsY,qBAAsB,GAAItf,cAAa,EAAG,EAAG,EAAG,EAAG,EAAG,IAAKgH,EAAGya,cASnFhiB,EAAKwZ,mBAAmB5W,UAAUE,QAAU,WAExC,GAAIyE,GAAKxH,KAAKwH,EAEdxH,MAAKskB,YAAc,KAEnBtkB,KAAKgjB,QAAU,EACfhjB,KAAKijB,QAAU,CAGf,KAAK,GAAIhgB,GAAI,EAAGA,EAAIjD,KAAKukB,YAAYrhB,OAAQD,IACzCjD,KAAKukB,YAAYthB,GAAGF,SAGxB/C,MAAKukB,YAAc,KAGnB/c,EAAG2c,aAAankB,KAAK8hB,cACrBta,EAAG2c,aAAankB,KAAKklB,UACrB1d,EAAG2c,aAAankB,KAAK2lB,aACrBne,EAAG2c,aAAankB,KAAK+f,cAezB9f,EAAK4kB,cAAgB,SAASrd,EAAIb,EAAOC,EAAQN,GAM7CtG,KAAKwH,GAAKA,EAQVxH,KAAK+kB,YAAcvd,EAAGqe,oBAMtB7lB,KAAK8H,QAAUN,EAAG8T,gBAMlBhV,EAAYA,GAAarG,EAAKwN,WAAWqY,QAEzCte,EAAGiO,YAAYjO,EAAGkO,WAAa1V,KAAK8H,SACpCN,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGuP,mBAAoBzQ,IAAcrG,EAAKwN,WAAWC,OAASlG,EAAGkG,OAASlG,EAAGgU,SAC7GhU,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGwP,mBAAoB1Q,IAAcrG,EAAKwN,WAAWC,OAASlG,EAAGkG,OAASlG,EAAGgU,SAC7GhU,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAGyP,eAAgBzP,EAAGyO,eACtDzO,EAAGsP,cAActP,EAAGkO,WAAYlO,EAAG0P,eAAgB1P,EAAGyO,eACtDzO,EAAGiT,gBAAgBjT,EAAGkT,YAAa1a,KAAK+kB,aAExCvd,EAAGiT,gBAAgBjT,EAAGkT,YAAa1a,KAAK+kB,aACxCvd,EAAGue,qBAAqBve,EAAGkT,YAAalT,EAAGwe,kBAAmBxe,EAAGkO,WAAY1V,KAAK8H,QAAS,GAG3F9H,KAAKimB,aAAeze,EAAG0e,qBACvB1e,EAAG2e,iBAAiB3e,EAAG4e,aAAcpmB,KAAKimB,cAC1Cze,EAAG6e,wBAAwB7e,EAAGkT,YAAalT,EAAG8e,yBAA0B9e,EAAG4e,aAAcpmB,KAAKimB,cAE9FjmB,KAAK+H,OAAOpB,EAAOC,IAGvB3G,EAAK4kB,cAAchiB,UAAUC,YAAc7C,EAAK4kB,cAOhD5kB,EAAK4kB,cAAchiB,UAAUkY,MAAQ,WAEjC,GAAIvT,GAAKxH,KAAKwH,EAEdA,GAAGmT,WAAW,EAAE,EAAE,EAAG,GACrBnT,EAAGuT,MAAMvT,EAAGwT,mBAUhB/a,EAAK4kB,cAAchiB,UAAUkF,OAAS,SAASpB,EAAOC,GAElD,GAAG5G,KAAK2G,QAAUA,GAAS3G,KAAK4G,SAAWA,EAA3C,CAEA5G,KAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,CAEd,IAAIY,GAAKxH,KAAKwH,EAEdA,GAAGiO,YAAYjO,EAAGkO,WAAa1V,KAAK8H,SACpCN,EAAGoP,WAAWpP,EAAGkO,WAAY,EAAGlO,EAAG6O,KAAO1P,EAAQC,EAAS,EAAGY,EAAG6O,KAAM7O,EAAGqP,cAAe,MAEzFrP,EAAG2e,iBAAiB3e,EAAG4e,aAAcpmB,KAAKimB,cAC1Cze,EAAG+e,oBAAoB/e,EAAG4e,aAAc5e,EAAGgf,cAAe7f,EAAQC,KAQtE3G,EAAK4kB,cAAchiB,UAAUE,QAAU,WAEnC,GAAIyE,GAAKxH,KAAKwH,EACdA,GAAGif,kBAAmBzmB,KAAK+kB,aAC3Bvd,EAAGkf,cAAe1mB,KAAK8H,SAEvB9H,KAAK+kB,YAAc,KACnB/kB,KAAK8H,QAAU,MAenB7H,EAAK0mB,aAAe,SAAShgB,EAAOC,GAQhC5G,KAAK2G,MAAQA,EAQb3G,KAAK4G,OAASA,EAQd5G,KAAKwQ,OAASvQ,EAAKwQ,WAAWrI,OAAOpI,KAAMA,KAAK2G,MAAO3G,KAAK4G,QAQ5D5G,KAAKoN,QAAUpN,KAAKwQ,OAAOE,WAAW,MAEtC1Q,KAAKwQ,OAAO7J,MAAQA,EACpB3G,KAAKwQ,OAAO5J,OAASA,GAGzB3G,EAAK0mB,aAAa9jB,UAAUC,YAAc7C,EAAK0mB,aAQ/C1mB,EAAK0mB,aAAa9jB,UAAUkY,MAAQ,WAEhC/a,KAAKoN,QAAQW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GACzC/N,KAAKoN,QAAQwZ,UAAU,EAAE,EAAG5mB,KAAK2G,MAAO3G,KAAK4G,SAUjD3G,EAAK0mB,aAAa9jB,UAAUkF,OAAS,SAASpB,EAAOC,GAEjD5G,KAAK2G,MAAQ3G,KAAKwQ,OAAO7J,MAAQA,EACjC3G,KAAK4G,OAAS5G,KAAKwQ,OAAO5J,OAASA,GAQvC3G,EAAK0mB,aAAa9jB,UAAUE,QAAU,WAElC9C,EAAKwQ,WAAWI,OAAO7Q,OAa3BC,EAAK4mB,kBAAoB,aAIzB5mB,EAAK4mB,kBAAkBhkB,UAAUC,YAAc7C,EAAK4mB,kBASpD5mB,EAAK4mB,kBAAkBhkB,UAAUqI,SAAW,SAASoS,EAAUhW,GAE9D,GAAI8F,GAAU9F,EAAc8F,OAEzBA,GAAQ0Z,MAER,IAAIC,GAAazJ,EAAS9b,MACtBiO,EAAY6N,EAASvb,eAErBsE,EAAaiB,EAAcjB,UAE/B+G,GAAQW,aAAa0B,EAAU/K,EAAI2B,EACdoJ,EAAU9K,EAAI0B,EACdoJ,EAAU7K,EAAIyB,EACdoJ,EAAU5K,EAAIwB,EACdoJ,EAAU3K,GAAKuB,EACfoJ,EAAU1K,GAAKsB,GAEpCpG,EAAK+mB,eAAeC,mBAAmB3J,EAAUlQ,GAEjDA,EAAQ8Z,OAER5J,EAASxb,WAAailB,GAS1B9mB,EAAK4mB,kBAAkBhkB,UAAUwI,QAAU,SAAS/D,GAEhDA,EAAc8F,QAAQ+Z,WAa1BlnB,EAAKkO,aAAe,aAWpBlO,EAAKkO,aAAaC,iBAAmB,SAAS+T,EAAQ5J,GAElD,GAAI/H,GAAS2R,EAAOxW,eAAiB1L,EAAKwQ,WAAWrI,OAAOpI,KAI5D,OAFAC,GAAKkO,aAAaiZ,WAAWjF,EAAOra,QAASyQ,EAAO/H,GAE7CA,GAYXvQ,EAAKkO,aAAakZ,iBAAmB,SAASvf,EAASyQ,EAAO/H,GAE1D,GAAIpD,GAAUoD,EAAOE,WAAW,MAE5BxD,EAAOpF,EAAQoF,MAEfsD,EAAO7J,QAAUuG,EAAKvG,OAAS6J,EAAO5J,SAAWsG,EAAKtG,UAEtD4J,EAAO7J,MAAQuG,EAAKvG,MACpB6J,EAAO5J,OAASsG,EAAKtG,QAGzBwG,EAAQwZ,UAAU,EAAG,EAAG1Z,EAAKvG,MAAOuG,EAAKtG,QAEzCwG,EAAQka,UAAY,KAAO,SAAmB,EAAR/O,GAAWgP,SAAS,KAAKC,OAAO,IACtEpa,EAAQqa,SAAS,EAAG,EAAGva,EAAKvG,MAAOuG,EAAKtG,QAExCwG,EAAQC,yBAA2B,WACnCD,EAAQiB,UAAUvG,EAAQ+D,YAAY2C,OAAQtB,EAAK7H,EAAG6H,EAAK5H,EAAG4H,EAAKvG,MAAOuG,EAAKtG,OAAQ,EAAG,EAAGsG,EAAKvG,MAAOuG,EAAKtG,QAE9GwG,EAAQC,yBAA2B,mBACnCD,EAAQiB,UAAUvG,EAAQ+D,YAAY2C,OAAQtB,EAAK7H,EAAG6H,EAAK5H,EAAG4H,EAAKvG,MAAOuG,EAAKtG,OAAQ,EAAG,EAAGsG,EAAKvG,MAAOuG,EAAKtG,SAalH3G,EAAKkO,aAAauZ,iBAAmB,SAAS5f,EAASyQ,EAAO/H,GAE1D,GAAIpD,GAAUoD,EAAOE,WAAW,MAE5BxD,EAAOpF,EAAQoF,IAEnBsD,GAAO7J,MAAQuG,EAAKvG,MACpB6J,EAAO5J,OAASsG,EAAKtG,OAErBwG,EAAQC,yBAA2B,OAEnCD,EAAQiB,UAAUvG,EAAQ+D,YAAY2C,OAAQtB,EAAK7H,EAAG6H,EAAK5H,EAAG4H,EAAKvG,MAAOuG,EAAKtG,OAAQ,EAAG,EAAGsG,EAAKvG,MAAOuG,EAAKtG,OAS9G,KAAK,GAPD+gB,GAAY1nB,EAAK2P,QAAQ2I,GACzBsC,EAAI8M,EAAU,GAAI7M,EAAI6M,EAAU,GAAIhjB,EAAIgjB,EAAU,GAElDC,EAAYxa,EAAQuD,aAAa,EAAG,EAAGzD,EAAKvG,MAAOuG,EAAKtG,QAExDihB,EAASD,EAAUhX,KAEd3N,EAAI,EAAGA,EAAI4kB,EAAO3kB,OAAQD,GAAK,EAMpC,GAJA4kB,EAAO5kB,EAAI,IAAM4X,EACjBgN,EAAO5kB,EAAI,IAAM6X,EACjB+M,EAAO5kB,EAAI,IAAM0B,GAEZ1E,EAAKkO,aAAa2Z,eACvB,CACI,GAAItmB,GAAQqmB,EAAO5kB,EAAI,EAEvB4kB,GAAO5kB,EAAI,IAAM,IAAMzB,EACvBqmB,EAAO5kB,EAAI,IAAM,IAAMzB,EACvBqmB,EAAO5kB,EAAI,IAAM,IAAMzB,EAI/B4L,EAAQ2a,aAAaH,EAAW,EAAG;EASvC3nB,EAAKkO,aAAa6Z,kBAAoB,WAElC,GAAIxX,GAAS,GAAIvQ,GAAK0mB,aAAa,EAAG,EAEtCnW,GAAOpD,QAAQka,UAAY,wBAG3B9W,EAAOpD,QAAQqa,SAAS,EAAG,EAAG,EAAG,EAGjC,IAAIQ,GAAKzX,EAAOpD,QAAQuD,aAAa,EAAG,EAAG,EAAG,EAE9C,IAAW,OAAPsX,EAEA,OAAO,CAIXzX,GAAOpD,QAAQ2a,aAAaE,EAAI,EAAG,EAGnC,IAAIC,GAAK1X,EAAOpD,QAAQuD,aAAa,EAAG,EAAG,EAAG,EAG9C,OAAQuX,GAAGtX,KAAK,KAAOqX,EAAGrX,KAAK,IAAMsX,EAAGtX,KAAK,KAAOqX,EAAGrX,KAAK,IAAMsX,EAAGtX,KAAK,KAAOqX,EAAGrX,KAAK,IAAMsX,EAAGtX,KAAK,KAAOqX,EAAGrX,KAAK,IAW1H3Q,EAAKkO,aAAa2Z,eAAiB7nB,EAAKkO,aAAa6Z,oBASrD/nB,EAAKkO,aAAaga,eAAiBloB,EAAK+P,4BAQxC/P,EAAKkO,aAAaiZ,WAAannB,EAAKkO,aAAaga,eAAiBloB,EAAKkO,aAAakZ,iBAAoBpnB,EAAKkO,aAAauZ,iBAc1HznB,EAAKmoB,eAAiB,SAAUloB,GAK5BF,KAAKE,KAAOA,EAEPD,EAAKyY,kBAENzY,EAAKyY,gBAAkB1Y,MAS3BA,KAAK+U,KAAO9U,EAAKG,gBAQjBJ,KAAKqG,WAAanG,EAAKmG,WAYvBrG,KAAK8Y,kBAAoB5Y,EAAK4Y,kBAQ9B9Y,KAAK2Y,YAAczY,EAAKyY,YAQxB3Y,KAAK4Y,YAAa,EASlB5Y,KAAK2G,MAAQzG,EAAKyG,MAAQ3G,KAAKqG,WAS/BrG,KAAK4G,OAAS1G,EAAK0G,OAAS5G,KAAKqG,WAQjCrG,KAAK+Y,KAAO7Y,EAAKsQ,OAOjBxQ,KAAKoN,QAAUpN,KAAK+Y,KAAKrI,WAAW,MAAQlP,MAAOxB,KAAK2Y,cAQxD3Y,KAAKqoB,SAAU,EAYfroB,KAAK8d,MAAQ,EAOb9d,KAAKiL,YAAc,GAAIhL,GAAK4mB,kBAO5B7mB,KAAKsH,eACD8F,QAASpN,KAAKoN,QACdnC,YAAajL,KAAKiL,YAClB3E,UAAW,KACXkH,eAAgB8a,OAAOC,OAAOC,mBAAmBxoB,KAAKoN,SAMtDU,aAAa,GAGjB9N,KAAKga,gBAELha,KAAK+H,OAAO/H,KAAK2G,MAAO3G,KAAK4G,SAKjC3G,EAAKmoB,eAAevlB,UAAUC,YAAc7C,EAAKmoB,eAQjDnoB,EAAKmoB,eAAevlB,UAAUiE,OAAS,SAAUjF,GAE7CA,EAAM0C,kBAENvE,KAAKoN,QAAQW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAEzC/N,KAAKoN,QAAQG,YAAc,EAE3BvN,KAAKsH,cAAc6F,iBAAmB,EACtCnN,KAAKoN,QAAQC,yBAA2B,cAEpCob,UAAUC,YAAc1oB,KAAK+Y,KAAK4P,eAElC3oB,KAAKoN,QAAQka,UAAY,QACzBtnB,KAAKoN,QAAQ2N,SAGb/a,KAAK8Y,oBAED9Y,KAAK2Y,YAEL3Y,KAAKoN,QAAQwZ,UAAU,EAAG,EAAG5mB,KAAK2G,MAAO3G,KAAK4G,SAI9C5G,KAAKoN,QAAQka,UAAYzlB,EAAM+Y,SAASgO,KACxC5oB,KAAKoN,QAAQqa,SAAS,EAAG,EAAGznB,KAAK2G,MAAQ3G,KAAK4G,UAItD5G,KAAKib,oBAAoBpZ,IAU7B5B,EAAKmoB,eAAevlB,UAAUE,QAAU,SAAS8lB,GAE1Bpf,SAAfof,IAA4BA,GAAa,GAEzCA,GAAc7oB,KAAK+Y,KAAKnX,QAExB5B,KAAK+Y,KAAKnX,OAAO+G,YAAY3I,KAAK+Y,MAGtC/Y,KAAK+Y,KAAO,KACZ/Y,KAAKoN,QAAU,KACfpN,KAAKiL,YAAc,KACnBjL,KAAKsH,cAAgB,MAWzBrH,EAAKmoB,eAAevlB,UAAUkF,OAAS,SAASpB,EAAOC,GAEnD5G,KAAK2G,MAAQA,EAAQ3G,KAAKqG,WAC1BrG,KAAK4G,OAASA,EAAS5G,KAAKqG,WAE5BrG,KAAK+Y,KAAKpS,MAAQ3G,KAAK2G,MACvB3G,KAAK+Y,KAAKnS,OAAS5G,KAAK4G,OAEpB5G,KAAK4Y,aAEL5Y,KAAK+Y,KAAKsC,MAAM1U,MAAQ3G,KAAK2G,MAAQ3G,KAAKqG,WAAa,KACvDrG,KAAK+Y,KAAKsC,MAAMzU,OAAS5G,KAAK4G,OAAS5G,KAAKqG,WAAa,OAajEpG,EAAKmoB,eAAevlB,UAAUoY,oBAAsB,SAAUC,EAAe9N,EAAStH,GAElF9F,KAAKsH,cAAc8F,QAAUA,GAAWpN,KAAKoN,QAC7CpN,KAAKsH,cAAcjB,WAAarG,KAAKqG,WACrC6U,EAAcvT,cAAc3H,KAAKsH,cAAexB,IAUpD7F,EAAKmoB,eAAevlB,UAAUmX,cAAgB,WAE1C,IAAK/Z,EAAKqN,iBACV,CACI,GAAI3I,MACAoX,EAAQ9b,EAAKkE,WACb2kB,EAAS7oB,EAAK+P,2BAElBrL,GAAEoX,EAAM1X,QAAU,cAClBM,EAAEoX,EAAMG,KAAO,UACfvX,EAAEoX,EAAM3X,UAAY,EAAW,WAAa,cAC5CO,EAAEoX,EAAMO,QAAU,EAAW,SAAW,cACxC3X,EAAEoX,EAAMQ,SAAW,EAAW,UAAY,cAC1C5X,EAAEoX,EAAMS,QAAU,EAAW,SAAW,cACxC7X,EAAEoX,EAAMU,SAAW,EAAW,UAAY,cAC1C9X,EAAEoX,EAAMW,aAAe,EAAW,cAAgB,cAClD/X,EAAEoX,EAAMY,YAAc,EAAW,aAAe,cAChDhY,EAAEoX,EAAMa,YAAc,EAAW,aAAe,cAChDjY,EAAEoX,EAAMc,YAAc,EAAW,aAAe,cAChDlY,EAAEoX,EAAMe,YAAc,EAAW,aAAe,cAChDnY,EAAEoX,EAAMgB,WAAa,EAAW,YAAc,cAC9CpY,EAAEoX,EAAMiB,KAAO,EAAW,MAAQ,cAClCrY,EAAEoX,EAAMkB,YAAc,EAAW,aAAe,cAChDtY,EAAEoX,EAAMmB,OAAS,EAAW,QAAU,cACtCvY,EAAEoX,EAAMoB,YAAc,EAAW,aAAe,cAEhDld,EAAKqN,iBAAmB3I,IAShC1E,EAAK8oB,oBAEL9oB,EAAK+oB,4BAA8B,EAWnC/oB,EAAKgpB,YAAc,SAASza,EAAQlI,GAQhCtG,KAAKqG,WAAa,EASlBrG,KAAK2G,MAAQ,IASb3G,KAAK4G,OAAS,IASd5G,KAAKsG,UAAYA,GAAarG,EAAKwN,WAAWqY,QAS9C9lB,KAAK8L,WAAY,EAQjB9L,KAAKwO,OAASA,EAEdxO,KAAKM,KAAOL,EAAKK,OASjBN,KAAKkZ,oBAAqB,EAS1BlZ,KAAK2V,eASL3V,KAAKyb,QAAS,EAOdzb,KAAKwX,SAAU,GAAM,GAAM,GAAM,GAE5BhJ,KAKAxO,KAAKwO,OAAO0a,UAAYlpB,KAAKwO,OAAOkC,aAAe1Q,KAAKwO,OAAO7H,OAAS3G,KAAKwO,OAAO5H,SAErF5G,KAAK8L,WAAY,EACjB9L,KAAK2G,MAAQ3G,KAAKwO,OAAO2a,cAAgBnpB,KAAKwO,OAAO7H,MACrD3G,KAAK4G,OAAS5G,KAAKwO,OAAO4a,eAAiBppB,KAAKwO,OAAO5H,OACvD5G,KAAK4T,SAYT5T,KAAKmM,YAAa,EAMlBnM,KAAKqpB,SAAW,KAOhBrpB,KAAK6b,WAAY,IAIrB5b,EAAKgpB,YAAYpmB,UAAUC,YAAc7C,EAAKgpB,YAW9ChpB,EAAKgpB,YAAYpmB,UAAUymB,YAAc,SAAS3iB,EAAOC,GAErD5G,KAAK8L,WAAY,EACjB9L,KAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,EACd5G,KAAK4T,SAST3T,EAAKgpB,YAAYpmB,UAAUE,QAAU,WAE7B/C,KAAKqpB,gBAEEppB,GAAK8oB,iBAAiB/oB,KAAKqpB,gBAC3BppB,GAAK0O,aAAa3O,KAAKqpB,UAE9BrpB,KAAKqpB,SAAW,KAEXZ,UAAUC,aAAY1oB,KAAKwO,OAAO8B,IAAM,KAExCtQ,KAAKwO,SAEVvO,EAAKwQ,WAAWc,eAAevR,KAAKwO,QAEhCxO,KAAKwO,OAAO+a,eAELtpB,GAAK8oB,iBAAiB/oB,KAAKwO,OAAO+a,UAIjDvpB,KAAKwO,OAAS,KAEdxO,KAAKwpB,iBASTvpB,EAAKgpB,YAAYpmB,UAAU4mB,kBAAoB,SAASC,GAEpD1pB,KAAK8L,WAAY,EACjB9L,KAAKwO,OAAO8B,IAAM,KAClBtQ,KAAKwO,OAAO8B,IAAMoZ,GAQtBzpB,EAAKgpB,YAAYpmB,UAAU+Q,MAAQ,WAE/B,IAAK,GAAI3Q,GAAI,EAAGA,EAAIjD,KAAK2V,YAAYzS,OAAQD,IAEzCjD,KAAKwX,OAAOvU,IAAK,GAUzBhD,EAAKgpB,YAAYpmB,UAAU2mB,cAAgB,WAEvCxpB,KAAK4T,OAGL,KAAK,GAAI3Q,GAAIjD,KAAK2V,YAAYzS,OAAS,EAAGD,GAAK,EAAGA,IAClD,CACI,GAAI0mB,GAAY3pB,KAAK2V,YAAY1S,GAC7BuE,EAAKvH,EAAKuY,WAAWvV,EAEtBuE,IAAMmiB,GAELniB,EAAGkf,cAAciD,GAKzB3pB,KAAK2V,YAAYzS,OAAS,EAE1BlD,KAAK4T,SAcT3T,EAAKgpB,YAAYra,UAAY,SAASya,EAAUva,EAAaxI,GAEzD,GAAIuF,GAAc5L,EAAK8oB,iBAAiBM,EAIxC,IAFmB5f,SAAhBqF,GAA2D,KAA9Bua,EAASlgB,QAAQ,WAAiB2F,GAAc,IAE5EjD,EACJ,CAGI,GAAI+d,GAAQ,GAAIvZ,MAEZvB,KAEA8a,EAAMC,YAAc,IAGxBD,EAAMtZ,IAAM+Y,EACZxd,EAAc,GAAI5L,GAAKgpB,YAAYW,EAAOtjB,GAC1CuF,EAAYwd,SAAWA,EACvBppB,EAAK8oB,iBAAiBM,GAAYxd,EAGiB,KAA/Cwd,EAASlgB,QAAQlJ,EAAKgB,cAAgB,OAEtC4K,EAAYxF,WAAa,GAIjC,MAAOwF,IAYX5L,EAAKgpB,YAAYa,WAAa,SAAStZ,EAAQlK,GAEtCkK,EAAO+Y,UAER/Y,EAAO+Y,QAAU,UAAYtpB,EAAK8pB,2BAGjB,IAAjBvZ,EAAO7J,QAEP6J,EAAO7J,MAAQ,GAGG,IAAlB6J,EAAO5J,SAEP4J,EAAO5J,OAAS,EAGpB,IAAIiF,GAAc5L,EAAK8oB,iBAAiBvY,EAAO+Y,QAQ/C,OANK1d,KAEDA,EAAc,GAAI5L,GAAKgpB,YAAYzY,EAAQlK,GAC3CrG,EAAK8oB,iBAAiBvY,EAAO+Y,SAAW1d,GAGrCA,GAOX5L,EAAK0O,gBACL1O,EAAK+pB,cASL/pB,EAAKgqB,mBAAoB,EAEzBhqB,EAAK8pB,wBAA0B,EAc/B9pB,EAAKsL,QAAU,SAASM,EAAaG,EAAOkB,EAAMU,GAQ9C5N,KAAKkqB,SAAU,EAEVle,IAEDhM,KAAKkqB,SAAU,EACfle,EAAQ,GAAI/L,GAAKuC,UAAU,EAAE,EAAE,EAAE,IAGjCqJ,YAAuB5L,GAAKsL,UAE5BM,EAAcA,EAAYA,aAS9B7L,KAAK6L,YAAcA,EAQnB7L,KAAKgM,MAAQA,EAQbhM,KAAK4N,KAAOA,EAQZ5N,KAAKoM,OAAQ,EAQbpM,KAAKmqB,UAAW,EAQhBnqB,KAAKoqB,gBAAiB,EAQtBpqB,KAAKkO,gBAAiB,EAStBlO,KAAKqiB,KAAO,KAQZriB,KAAK2G,MAAQ,EAQb3G,KAAK4G,OAAS,EASd5G,KAAKkN,KAAOA,GAAQ,GAAIjN,GAAKuC,UAAU,EAAG,EAAG,EAAG,GAE5CqJ,EAAYC,YAER9L,KAAKkqB,UAASle,EAAQ,GAAI/L,GAAKuC,UAAU,EAAG,EAAGqJ,EAAYlF,MAAOkF,EAAYjF,SAClF5G,KAAKqqB,SAASre,KAKtB/L,EAAKsL,QAAQ1I,UAAUC,YAAc7C,EAAKsL,QAQ1CtL,EAAKsL,QAAQ1I,UAAUynB,oBAAsB,WAEzC,GAAIze,GAAc7L,KAAK6L,WAEnB7L,MAAKkqB,UAELlqB,KAAKgM,MAAQ,GAAI/L,GAAKuC,UAAU,EAAG,EAAGqJ,EAAYlF,MAAOkF,EAAYjF,SAGzE5G,KAAKqqB,SAASrqB,KAAKgM,QASvB/L,EAAKsL,QAAQ1I,UAAUE,QAAU,SAASmJ,GAElCA,GAAalM,KAAK6L,YAAY9I,UAElC/C,KAAKoM,OAAQ,GASjBnM,EAAKsL,QAAQ1I,UAAUwnB,SAAW,SAASre,GAavC,GAXAhM,KAAKkqB,SAAU,EAEflqB,KAAKgM,MAAQA,EACbhM,KAAK2G,MAAQqF,EAAMrF,MACnB3G,KAAK4G,OAASoF,EAAMpF,OAEpB5G,KAAKkN,KAAK7H,EAAI2G,EAAM3G,EACpBrF,KAAKkN,KAAK5H,EAAI0G,EAAM1G,EACpBtF,KAAKkN,KAAKvG,MAAQqF,EAAMrF,MACxB3G,KAAKkN,KAAKtG,OAASoF,EAAMpF,QAEpB5G,KAAK4N,OAAS5B,EAAM3G,EAAI2G,EAAMrF,MAAQ3G,KAAK6L,YAAYlF,OAASqF,EAAM1G,EAAI0G,EAAMpF,OAAS5G,KAAK6L,YAAYjF,QAC/G,CACI,IAAK3G,EAAKgqB,kBAEN,KAAM,IAAIphB,OAAM,wEAA0E7I,KAI9F,aADAA,KAAKoM,OAAQ,GAIjBpM,KAAKoM,MAAQJ,GAASA,EAAMrF,OAASqF,EAAMpF,QAAU5G,KAAK6L,YAAY2C,QAAUxO,KAAK6L,YAAYC,UAE7F9L,KAAK4N,OAEL5N,KAAK2G,MAAQ3G,KAAK4N,KAAKjH,MACvB3G,KAAK4G,OAAS5G,KAAK4N,KAAKhH,OACxB5G,KAAKgM,MAAMrF,MAAQ3G,KAAK4N,KAAKjH,MAC7B3G,KAAKgM,MAAMpF,OAAS5G,KAAK4N,KAAKhH,QAG9B5G,KAAKoM,OAAOpM,KAAKuqB,cAUzBtqB,EAAKsL,QAAQ1I,UAAU0nB,WAAa,WAE5BvqB,KAAKqiB,OAAKriB,KAAKqiB,KAAO,GAAIpiB,GAAK2iB,WAEnC,IAAI5W,GAAQhM,KAAKkN,KACbsd,EAAKxqB,KAAK6L,YAAYlF,MACtB8jB,EAAKzqB,KAAK6L,YAAYjF,MAE1B5G,MAAKqiB,KAAKG,GAAKxW,EAAM3G,EAAImlB,EACzBxqB,KAAKqiB,KAAKI,GAAKzW,EAAM1G,EAAImlB,EAEzBzqB,KAAKqiB,KAAK3V,IAAMV,EAAM3G,EAAI2G,EAAMrF,OAAS6jB,EACzCxqB,KAAKqiB,KAAK1V,GAAKX,EAAM1G,EAAImlB,EAEzBzqB,KAAKqiB,KAAKzV,IAAMZ,EAAM3G,EAAI2G,EAAMrF,OAAS6jB,EACzCxqB,KAAKqiB,KAAKxV,IAAMb,EAAM1G,EAAI0G,EAAMpF,QAAU6jB,EAE1CzqB,KAAKqiB,KAAKvV,GAAKd,EAAM3G,EAAImlB,EACzBxqB,KAAKqiB,KAAKtV,IAAMf,EAAM1G,EAAI0G,EAAMpF,QAAU6jB,GAc9CxqB,EAAKsL,QAAQqD,UAAY,SAASya,EAAUva,EAAaxI,GAErD,GAAIwB,GAAU7H,EAAK0O,aAAa0a,EAQhC,OANIvhB,KAEAA,EAAU,GAAI7H,GAAKsL,QAAQtL,EAAKgpB,YAAYra,UAAUya,EAAUva,EAAaxI,IAC7ErG,EAAK0O,aAAa0a,GAAYvhB,GAG3BA,GAYX7H,EAAKsL,QAAQkD,UAAY,SAASC,GAE9B,GAAI5G,GAAU7H,EAAK0O,aAAaD,EAChC,KAAI5G,EAAS,KAAM,IAAIe,OAAM,gBAAkB6F,EAAU,yCACzD,OAAO5G,IAYX7H,EAAKsL,QAAQue,WAAa,SAAStZ,EAAQlK,GAEvC,GAAIuF,GAAc5L,EAAKgpB,YAAYa,WAAWtZ,EAAQlK,EAEtD,OAAO,IAAIrG,GAAKsL,QAAQM,IAW5B5L,EAAKsL,QAAQmf,kBAAoB,SAAS5iB,EAAS8N,GAE/C3V,EAAK0O,aAAaiH,GAAM9N,GAW5B7H,EAAKsL,QAAQof,uBAAyB,SAAS/U,GAE3C,GAAI9N,GAAU7H,EAAK0O,aAAaiH,EAGhC,cAFO3V,GAAK0O,aAAaiH,SAClB3V,GAAK8oB,iBAAiBnT,GACtB9N,GAGX7H,EAAK2iB,WAAa,WAEd5iB,KAAKwiB,GAAK,EACVxiB,KAAKyiB,GAAK,EAEVziB,KAAK0M,GAAK,EACV1M,KAAK2M,GAAK,EAEV3M,KAAK4M,GAAK,EACV5M,KAAK6M,GAAK,EAEV7M,KAAK8M,GAAK,EACV9M,KAAK+M,GAAK,GAqCd9M,EAAKyG,cAAgB,SAASC,EAAOC,EAAQL,EAAUD,EAAWD,GAwE9D,GAhEArG,KAAK2G,MAAQA,GAAS,IAQtB3G,KAAK4G,OAASA,GAAU,IAQxB5G,KAAKqG,WAAaA,GAAc,EAQhCrG,KAAKgM,MAAQ,GAAI/L,GAAKuC,UAAU,EAAG,EAAGxC,KAAK2G,MAAQ3G,KAAKqG,WAAYrG,KAAK4G,OAAS5G,KAAKqG,YASvFrG,KAAKkN,KAAO,GAAIjN,GAAKuC,UAAU,EAAG,EAAGxC,KAAK2G,MAAQ3G,KAAKqG,WAAYrG,KAAK4G,OAAS5G,KAAKqG,YAQtFrG,KAAK6L,YAAc,GAAI5L,GAAKgpB,YAC5BjpB,KAAK6L,YAAYlF,MAAQ3G,KAAK2G,MAAQ3G,KAAKqG,WAC3CrG,KAAK6L,YAAYjF,OAAS5G,KAAK4G,OAAS5G,KAAKqG,WAC7CrG,KAAK6L,YAAY8J,eACjB3V,KAAK6L,YAAYxF,WAAarG,KAAKqG,WAEnCrG,KAAK6L,YAAYvF,UAAYA,GAAarG,EAAKwN,WAAWqY,QAE1D9lB,KAAK6L,YAAYC,WAAY,EAE7B7L,EAAKsL,QAAQ7F,KAAK1F,KACdA,KAAK6L,YACL,GAAI5L,GAAKuC,UAAU,EAAG,EAAGxC,KAAK2G,MAAQ3G,KAAKqG,WAAYrG,KAAK4G,OAAS5G,KAAKqG,aAS9ErG,KAAKuG,SAAWA,GAAYtG,EAAKyY,gBAE7B1Y,KAAKuG,SAASwO,OAAS9U,EAAKE,eAChC,CACI,GAAIqH,GAAKxH,KAAKuG,SAASiB,EACvBxH,MAAK6L,YAAY2L,OAAOhQ,EAAGoO,KAAM,EAEjC5V,KAAK4qB,cAAgB,GAAI3qB,GAAK4kB,cAAcrd,EAAIxH,KAAK2G,MAAO3G,KAAK4G,OAAQ5G,KAAK6L,YAAYvF,WAC1FtG,KAAK6L,YAAY8J,YAAYnO,EAAGoO,IAAO5V,KAAK4qB,cAAc9iB,QAE1D9H,KAAK8G,OAAS9G,KAAK6qB,YACnB7qB,KAAKoZ,WAAa,GAAInZ,GAAKmB,MAAmB,GAAbpB,KAAK2G,MAA4B,IAAd3G,KAAK4G,YAIzD5G,MAAK8G,OAAS9G,KAAK8qB,aACnB9qB,KAAK4qB,cAAgB,GAAI3qB,GAAK0mB,aAAa3mB,KAAK2G,MAAQ3G,KAAKqG,WAAYrG,KAAK4G,OAAS5G,KAAKqG,YAC5FrG,KAAK6L,YAAY2C,OAASxO,KAAK4qB,cAAcpa,MAOjDxQ,MAAKoM,OAAQ,EAEbpM,KAAK+qB,WAAa,GAAIzC,QAAOtmB,OAE7BhC,KAAKuqB,cAGTtqB,EAAKyG,cAAc7D,UAAYO,OAAOgF,OAAOnI,EAAKsL,QAAQ1I,WAC1D5C,EAAKyG,cAAc7D,UAAUC,YAAc7C,EAAKyG,cAUhDzG,EAAKyG,cAAc7D,UAAUkF,OAAS,SAASpB,EAAOC,EAAQokB,IAEtDrkB,IAAU3G,KAAK2G,OAASC,IAAW5G,KAAK4G,UAE5C5G,KAAKoM,MAASzF,EAAQ,GAAKC,EAAS,EAEpC5G,KAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,EACd5G,KAAKgM,MAAMrF,MAAQ3G,KAAKkN,KAAKvG,MAAQA,EAAQ3G,KAAKqG,WAClDrG,KAAKgM,MAAMpF,OAAS5G,KAAKkN,KAAKtG,OAASA,EAAS5G,KAAKqG,WAEjD2kB,IAEAhrB,KAAK6L,YAAYlF,MAAQ3G,KAAK2G,MAAQ3G,KAAKqG,WAC3CrG,KAAK6L,YAAYjF,OAAS5G,KAAK4G,OAAS5G,KAAKqG,YAG7CrG,KAAKuG,SAASwO,OAAS9U,EAAKE,iBAE5BH,KAAKoZ,WAAW/T,EAAIrF,KAAK2G,MAAQ,EACjC3G,KAAKoZ,WAAW9T,GAAKtF,KAAK4G,OAAS,GAGnC5G,KAAKoM,OAETpM,KAAK4qB,cAAc7iB,OAAO/H,KAAK2G,MAAO3G,KAAK4G,UAQ/C3G,EAAKyG,cAAc7D,UAAUkY,MAAQ,WAE5B/a,KAAKoM,QAKNpM,KAAKuG,SAASwO,OAAS9U,EAAKE,gBAE5BH,KAAKuG,SAASiB,GAAGiT,gBAAgBza,KAAKuG,SAASiB,GAAGkT,YAAa1a,KAAK4qB,cAAc7F,aAGtF/kB,KAAK4qB,cAAc7P,UAYvB9a,EAAKyG,cAAc7D,UAAUgoB,YAAc,SAAS3P,EAAepV,EAAQiV,GAEvE,GAAK/a,KAAKoM,OAAiC,IAAxB8O,EAAc1Z,MAAjC,CAOA,GAAIyD,GAAKiW,EAAcnZ,cACvBkD,GAAGgmB,WACHhmB,EAAGimB,UAAU,EAAuB,EAApBlrB,KAAKoZ,WAAW9T,GAE5BQ,GAEAb,EAAGkmB,OAAOrlB,GAGdb,EAAG5D,MAAM,EAAG,GAGZ,KAAK,GAAI4B,GAAI,EAAGA,EAAIiY,EAAclY,SAASE,OAAQD,IAE/CiY,EAAclY,SAASC,GAAGsB,iBAI9B,IAAIiD,GAAKxH,KAAKuG,SAASiB,EAEvBA,GAAGgT,SAAS,EAAG,EAAGxa,KAAK2G,MAAQ3G,KAAKqG,WAAYrG,KAAK4G,OAAS5G,KAAKqG,YAEnEmB,EAAGiT,gBAAgBjT,EAAGkT,YAAa1a,KAAK4qB,cAAc7F,aAElDhK,GAEA/a,KAAK4qB,cAAc7P,QAGvB/a,KAAKuG,SAASqE,YAAYgJ,OAAQ,EAElC5T,KAAKuG,SAAS0U,oBAAoBC,EAAelb,KAAKoZ,WAAYpZ,KAAK4qB,cAAc7F,YAAajf,GAElG9F,KAAKuG,SAASqE,YAAYgJ,OAAQ,IAatC3T,EAAKyG,cAAc7D,UAAUioB,aAAe,SAAS5P,EAAepV,EAAQiV,GAExE,GAAK/a,KAAKoM,OAAiC,IAAxB8O,EAAc1Z,MAAjC,CAOA,GAAIyD,GAAKiW,EAAcnZ,cACvBkD,GAAGgmB,WAECnlB,GAEAb,EAAGkmB,OAAOrlB,EAId,KAAK,GAAI7C,GAAI,EAAGA,EAAIiY,EAAclY,SAASE,OAAQD,IAE/CiY,EAAclY,SAASC,GAAGsB,iBAG1BwW,IAEA/a,KAAK4qB,cAAc7P,OAGvB,IAAIqQ,GAAiBprB,KAAKuG,SAASF,UAEnCrG,MAAKuG,SAASF,WAAarG,KAAKqG,WAEhCrG,KAAKuG,SAAS0U,oBAAoBC,EAAelb,KAAK4qB,cAAcxd,QAAStH,GAE7E9F,KAAKuG,SAASF,WAAa+kB,IAS/BnrB,EAAKyG,cAAc7D,UAAUwoB,SAAW,WAEpC,GAAIzB,GAAQ,GAAIvZ,MAEhB,OADAuZ,GAAMtZ,IAAMtQ,KAAKsrB,YACV1B,GASX3pB,EAAKyG,cAAc7D,UAAUyoB,UAAY,WAErC,MAAOtrB,MAAKurB,YAAYC,aAS5BvrB,EAAKyG,cAAc7D,UAAU0oB,UAAY,WAErC,GAAIvrB,KAAKuG,SAASwO,OAAS9U,EAAKE,eAChC,CACI,GAAIqH,GAAMxH,KAAKuG,SAASiB,GACpBb,EAAQ3G,KAAK4qB,cAAcjkB,MAC3BC,EAAS5G,KAAK4qB,cAAchkB,OAE5B6kB,EAAc,GAAIC,YAAW,EAAI/kB,EAAQC,EAE7CY,GAAGiT,gBAAgBjT,EAAGkT,YAAa1a,KAAK4qB,cAAc7F,aACtDvd,EAAGmkB,WAAW,EAAG,EAAGhlB,EAAOC,EAAQY,EAAG6O,KAAM7O,EAAGqP,cAAe4U,GAC9DjkB,EAAGiT,gBAAgBjT,EAAGkT,YAAa,KAEnC,IAAIkR,GAAa,GAAI3rB,GAAK0mB,aAAahgB,EAAOC,GAC1CilB,EAAaD,EAAWxe,QAAQuD,aAAa,EAAG,EAAGhK,EAAOC,EAK9D,OAJAilB,GAAWjb,KAAKpN,IAAIioB,GAEpBG,EAAWxe,QAAQ2a,aAAa8D,EAAY,EAAG,GAExCD,EAAWpb,OAIlB,MAAOxQ,MAAK4qB,cAAcpa,QAgBlCvQ,EAAK4hB,eAAiB,SAAS9O,EAAa4B,GASxC3U,KAAK4D,QAAU5D,MAOfA,KAAK2hB,WAML3hB,KAAK4T,OAAQ,EAMb5T,KAAK8kB,QAAU,EAOf9kB,KAAK2U,SAAWA,MAOhB3U,KAAK+S,YAAcA,OAGvB9S,EAAK4hB,eAAehf,UAAUC,YAAc7C,EAAK4hB,eAOjD5hB,EAAK4hB,eAAehf,UAAUuU,aAAe,WAEzC,IAAI,GAAInU,GAAE,EAAEa,EAAE9D,KAAK2hB,QAAQze,OAAUY,EAAFb,EAAKA,IAEpCjD,KAAK2hB,QAAQ1e,GAAG2Q,OAAQ,GAcL,mBAAZkY,UACe,mBAAXC,SAA0BA,OAAOD,UACxCA,QAAUC,OAAOD,QAAU7rB,GAE/B6rB,QAAQ7rB,KAAOA,GACU,mBAAX+rB,SAA0BA,OAAOC,IAC/CD,OAAO,OAAQ,WAAc,MAAOjsB,GAAKE,KAAOA,MAEhDF,EAAKE,KAAOA,EAGTA,IACRyF,KAAK1F,MAOR,WAsubA,QAASksB,GAAiBC,EAAaC,GAMnCpsB,KAAKqsB,aAAeF,EAMpBnsB,KAAKssB,WAAaF,EAMlBpsB,KAAKusB,cAAgB,KAtvbrB,GAAIxsB,GAAOC,KAYXsoB,EAASA,IAOTjoB,QAAS,QAOTmsB,SAOAC,KAAM,EAONC,OAAQ,EAORC,MAAO,EAOPC,SAAU,EAOVC,KAAM,EAONC,KAAM,EAONC,MAAO,EAOPC,GAAI,EAOJC,KAAM,EAONC,OAAQ,EAORC,OAAQ,EAORC,MAAO,EAOPC,SAAU,EAOVC,KAAM,EAONC,WAAY,EAOZC,WAAY,EAOZC,MAAO,EAOPC,cAAe,EAOfC,QAAS,EAOTC,aAAc,GAOdC,QAAS,GAOTC,QAAS,GAOTC,WAAY,GAOZC,cAAe,GAOfC,aAAc,GAOdC,QAAS,GAOTC,YAAa,GAObC,UAAW,GAOXC,QAAS,GAOTC,KAAM,GAONC,OAAQ,GAORC,UAAW,GAOXC,KAAM,GAONC,OAAQ,GAORC,MAAO,GAOPC,iBAAkB,GAOlBC,SAAU,GAOVC,MAAO,GAOPC,cAAe,GA2Bf5qB,YACIE,OAAO,EACP6X,IAAI,EACJ9X,SAAS,EACTkY,OAAO,EACPC,QAAQ,EACRC,OAAO,EACPC,QAAQ,EACRC,YAAY,EACZC,WAAW,EACXC,WAAW,EACXC,WAAW,GACXC,WAAW,GACXC,UAAU,GACVC,IAAI,GACJC,WAAW,GACXC,MAAM,GACNC,WAAW,IAgBf1P,YACIqY,QAAQ,EACRpY,OAAO,EACP8N,QAAQ,GAGZvb,KAAMA,SA6GV,IAnGKY,KAAKmuB,QACNnuB,KAAKmuB,MAAQ,SAAe3pB,GACxB,MAAW,GAAJA,EAAQxE,KAAKgH,KAAKxC,GAAKxE,KAAKouB,MAAM5pB,KAO5C6pB,SAASrsB,UAAUssB,OAGpBD,SAASrsB,UAAUssB,KAAO,WAEtB,GAAIC,GAAQzuB,MAAMkC,UAAUusB,KAE5B,OAAO,UAAUC,GASb,QAASC,KACL,GAAIC,GAAOC,EAAUC,OAAOL,EAAM1pB,KAAKgqB,WACvCzrB,GAAOgD,MAAMjH,eAAgBsvB,GAAQtvB,KAAOqvB,EAASE,GATzD,GAAItrB,GAASjE,KAAMwvB,EAAYJ,EAAM1pB,KAAKgqB,UAAW,EAErD,IAAsB,kBAAXzrB,GAEP,KAAM,IAAI0rB,UAqBd,OAbAL,GAAMzsB,UAAY,QAAU+sB,GAAEC,GAM1B,MALIA,KAEAD,EAAE/sB,UAAYgtB,GAGZ7vB,eAAgB4vB,GAAtB,OAGW,GAAIA,IAEhB3rB,EAAOpB,WAEHysB,OAQd3uB,MAAMuR,UAEPvR,MAAMuR,QAAU,SAAU4d,GAEtB,MAA8C,kBAAvC1sB,OAAOP,UAAU0kB,SAAS7hB,KAAKoqB,KAQzCnvB,MAAMkC,UAAUktB,UAEjBpvB,MAAMkC,UAAUktB,QAAU,SAASC,GAE/B,YAEA,IAAa,SAAThwB,MAA4B,OAATA,KAEnB,KAAM,IAAI2vB,UAGd,IAAIM,GAAI7sB,OAAOpD,MACXkwB,EAAMD,EAAE/sB,SAAW,CAEvB,IAAmB,kBAAR8sB,GAEP,KAAM,IAAIL,UAKd,KAAK,GAFDN,GAAUK,UAAUxsB,QAAU,EAAIwsB,UAAU,GAAK,OAE5CzsB,EAAI,EAAOitB,EAAJjtB,EAASA,IAEjBA,IAAKgtB,IAELD,EAAItqB,KAAK2pB,EAASY,EAAEhtB,GAAIA,EAAGgtB,KAWT,kBAAvBxd,QAAOhS,aAA4D,gBAAvBgS,QAAOhS,YAC9D,CACI,GAAI0vB,GAAa,SAASpb,GAEtB,GAAI8a,GAAQ,GAAIlvB,MAEhB8R,QAAOsC,GAAQ,SAAS+a,GAEpB,GAAoB,gBAAV,GACV,CACInvB,MAAM+E,KAAK1F,KAAM8vB,GACjB9vB,KAAKkD,OAAS4sB,CAEd,KAAK,GAAI7sB,GAAI,EAAGA,EAAIjD,KAAKkD,OAAQD,IAE7BjD,KAAKiD,GAAK,MAIlB,CACItC,MAAM+E,KAAK1F,KAAM8vB,EAAI5sB,QAErBlD,KAAKkD,OAAS4sB,EAAI5sB,MAElB,KAAK,GAAID,GAAI,EAAGA,EAAIjD,KAAKkD,OAAQD,IAE7BjD,KAAKiD,GAAK6sB,EAAI7sB,KAK1BwP,OAAOsC,GAAMlS,UAAYgtB,EACzBpd,OAAOsC,GAAMjS,YAAc2P,OAAOsC,GAGtCob,GAAW,eACXA,EAAW,cAMV1d,OAAOC,UAERD,OAAOC,WACPD,OAAOC,QAAQC,IAAMF,OAAOC,QAAQ0d,OAAS,aAC7C3d,OAAOC,QAAQ2d,KAAO5d,OAAOC,QAAQ0d,OAAS,cAalD9H,EAAOgI,OAUHC,YAAa,SAASC,EAAKC,GAQvB,IANA,GAAIC,GAAQD,EAAKE,MAAM,KACnBC,EAAOF,EAAMzQ,MACb4Q,EAAIH,EAAMxtB,OACVD,EAAI,EACJ6tB,EAAUJ,EAAM,GAETG,EAAJ5tB,IAAUutB,EAAMA,EAAIM,KAEvBA,EAAUJ,EAAMztB,GAChBA,GAGJ,OAAIutB,GAEOA,EAAII,GAIJ,MAafG,YAAa,SAASP,EAAKC,EAAMhtB,GAQ7B,IANA,GAAIitB,GAAQD,EAAKE,MAAM,KACnBC,EAAOF,EAAMzQ,MACb4Q,EAAIH,EAAMxtB,OACVD,EAAI,EACJ6tB,EAAUJ,EAAM,GAETG,EAAJ5tB,IAAUutB,EAAMA,EAAIM,KAEvBA,EAAUJ,EAAMztB,GAChBA,GAQJ,OALIutB,KAEAA,EAAII,GAAQntB,GAGT+sB,GAcXQ,WAAY,SAAUC,GAElB,MADexnB,UAAXwnB,IAAwBA,EAAS,IAC9BA,EAAS,GAAsB,IAAhBpwB,KAAKqwB,UAAkBD,GAWjDE,aAAc,SAAUC,EAASC,GAC7B,MAAQxwB,MAAKqwB,SAAW,GAAOE,EAAUC,GAW7CC,eAAgB,SAAUtQ,EAAMuQ,GAE5B,GAAIC,GAAI,EACJC,EAAK,CA4BT,OA1BoB,gBAATzQ,GAGiB,MAApBA,EAAKwG,OAAO,KAEZgK,EAAIE,SAAS1Q,EAAM,IAAM,IAIrByQ,EAFc,IAAdF,EAEK9e,OAAOkf,WAAaH,EAIpB/e,OAAOmf,YAAcJ,GAK9BC,EAAKC,SAAS1Q,EAAM,IAKxByQ,EAAKzQ,EAGFyQ,GAcXI,IAAK,SAAUC,EAAK5B,EAAK2B,EAAKE,GAE1B,GAAYtoB,SAARymB,EAAqB,GAAIA,GAAM,CACnC,IAAYzmB,SAARooB,EAAqB,GAAIA,GAAM,GACnC,IAAYpoB,SAARsoB,EAAqB,GAAIA,GAAM,CAEnC,IAAIC,GAAS,CAEb,IAAI9B,EAAM,GAAK4B,EAAI5uB,OAEf,OAAQ6uB,GAEJ,IAAK,GACDD,EAAM,GAAInxB,OAAMuvB,EAAM,EAAI4B,EAAI5uB,QAAQiP,KAAK0f,GAAOC,CAClD,MAEJ,KAAK,GACD,GAAIG,GAAQpxB,KAAKgH,MAAMmqB,EAAS9B,EAAM4B,EAAI5uB,QAAU,GAChDgvB,EAAOF,EAASC,CACpBH,GAAM,GAAInxB,OAAMuxB,EAAK,GAAG/f,KAAK0f,GAAOC,EAAM,GAAInxB,OAAMsxB,EAAM,GAAG9f,KAAK0f,EAClE,MAEJ,SACIC,GAAY,GAAInxB,OAAMuvB,EAAM,EAAI4B,EAAI5uB,QAAQiP,KAAK0f,GAK7D,MAAOC,IAWXK,cAAe,SAAU3B,GAMrB,GAAoB,gBAAV,IAAsBA,EAAI4B,UAAY5B,IAAQA,EAAI/d,OAExD,OAAO,CAOX,KACI,GAAI+d,EAAI1tB,iBAAqBuvB,eAAe3sB,KAAK8qB,EAAI1tB,YAAYD,UAAW,iBAExE,OAAO,EAEb,MAAOyvB,GACL,OAAO,EAKX,OAAO,GAWXC,OAAQ,WAEJ,GAAIC,GAASC,EAAMniB,EAAKoiB,EAAMC,EAAaC,EACvC3uB,EAASyrB,UAAU,OACnBzsB,EAAI,EACJC,EAASwsB,UAAUxsB,OACnB2vB,GAAO,CAkBX,KAfsB,iBAAX5uB,KAEP4uB,EAAO5uB,EACPA,EAASyrB,UAAU,OAEnBzsB,EAAI,GAIJC,IAAWD,IAEXgB,EAASjE,OACPiD,GAGKC,EAAJD,EAAYA,IAGf,GAAgC,OAA3BuvB,EAAU9C,UAAUzsB,IAGrB,IAAKwvB,IAAQD,GAETliB,EAAMrM,EAAOwuB,GACbC,EAAOF,EAAQC,GAGXxuB,IAAWyuB,IAMXG,GAAQH,IAASpK,EAAOgI,MAAM6B,cAAcO,KAAUC,EAAchyB,MAAMuR,QAAQwgB,MAE9EC,GAEAA,GAAc,EACdC,EAAQtiB,GAAO3P,MAAMuR,QAAQ5B,GAAOA,MAIpCsiB,EAAQtiB,GAAOgY,EAAOgI,MAAM6B,cAAc7hB,GAAOA,KAIrDrM,EAAOwuB,GAAQnK,EAAOgI,MAAMiC,OAAOM,EAAMD,EAAOF,IAIlCjpB,SAATipB,IAELzuB,EAAOwuB,GAAQC,GAO/B,OAAOzuB,IAgBX6uB,eAAgB,SAAU7uB,EAAQ8uB,EAAOC,GAErBvpB,SAAZupB,IAAyBA,GAAU,EAIvC,KAAK,GAFDC,GAAY7vB,OAAO8vB,KAAKH,GAEnB9vB,EAAI,EAAGA,EAAIgwB,EAAU/vB,OAAQD,IACtC,CACI,GAAIyR,GAAMue,EAAUhwB,GAChBQ,EAAQsvB,EAAMre,IAEbse,GAAYte,IAAOzQ,MAOhBR,GACsB,kBAAdA,GAAMH,KAA2C,kBAAdG,GAAMD,IAcjDS,EAAOyQ,GAAOjR,EAXa,kBAAhBA,GAAMmvB,MAEb3uB,EAAOyQ,GAAOjR,EAAMmvB,QAIpBxvB,OAAOC,eAAeY,EAAQyQ,EAAKjR,MAqBvDsvB,MAAO,SAAU5rB,EAAMgsB,GAEnB,IAAKhsB,GAA0B,gBAAX,GAEhB,MAAOgsB,EAGX,KAAK,GAAIze,KAAOvN,GAChB,CACI,GAAIisB,GAAIjsB,EAAKuN,EAEb,KAAI0e,EAAEC,aAAcD,EAAEE,UAAtB,CAKA,GAAIve,SAAe5N,GAAKuN,EAEnBvN,GAAKuN,IAAiB,WAATK,QAOFoe,GAAGze,KAAUK,EAErBoe,EAAGze,GAAO4T,EAAOgI,MAAMyC,MAAM5rB,EAAKuN,GAAMye,EAAGze,IAI3Cye,EAAGze,GAAO4T,EAAOgI,MAAMyC,MAAM5rB,EAAKuN,GAAM,GAAI0e,GAAEtwB,aAXlDqwB,EAAGze,GAAOvN,EAAKuN,IAgBvB,MAAOye,KAsBf7K,EAAOiL,OAAS,SAAUluB,EAAGC,EAAGkuB,GAE5BnuB,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTkuB,EAAWA,GAAY,EAKvBxzB,KAAKqF,EAAIA,EAKTrF,KAAKsF,EAAIA,EAMTtF,KAAKyzB,UAAYD,EAMjBxzB,KAAK0zB,QAAU,EAEXF,EAAW,IAEXxzB,KAAK0zB,QAAqB,GAAXF,GAOnBxzB,KAAK+U,KAAOuT,EAAOiG,QAIvBjG,EAAOiL,OAAO1wB,WAQV8wB,cAAe,WAEX,MAAO,IAAK9yB,KAAKC,GAAKd,KAAK0zB,UAY/BxC,OAAQ,SAAU0C,GAEFnqB,SAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,MAE1C,IAAI6uB,GAAI,EAAIpvB,KAAKC,GAAKD,KAAKqwB,SACvB2C,EAAIhzB,KAAKqwB,SAAWrwB,KAAKqwB,SACzBrW,EAAKgZ,EAAI,EAAK,EAAIA,EAAIA,EACtBxuB,EAAIwV,EAAIha,KAAKuE,IAAI6qB,GACjB3qB,EAAIuV,EAAIha,KAAKsE,IAAI8qB,EAKrB,OAHA2D,GAAIvuB,EAAIrF,KAAKqF,EAAKA,EAAIrF,KAAK8zB,OAC3BF,EAAItuB,EAAItF,KAAKsF,EAAKA,EAAItF,KAAK8zB,OAEpBF,GAUX/tB,UAAW,WAEP,MAAO,IAAIyiB,GAAO9lB,UAAUxC,KAAKqF,EAAIrF,KAAK8zB,OAAQ9zB,KAAKsF,EAAItF,KAAK8zB,OAAQ9zB,KAAKwzB,SAAUxzB,KAAKwzB,WAYhGO,MAAO,SAAU1uB,EAAGC,EAAGkuB,GAOnB,MALAxzB,MAAKqF,EAAIA,EACTrF,KAAKsF,EAAIA,EACTtF,KAAKyzB,UAAYD,EACjBxzB,KAAK0zB,QAAqB,GAAXF,EAERxzB,MAUXg0B,SAAU,SAAUxlB,GAEhB,MAAOxO,MAAK+zB,MAAMvlB,EAAOnJ,EAAGmJ,EAAOlJ,EAAGkJ,EAAOglB,WAUjDS,OAAQ,SAAUC,GAMd,MAJAA,GAAK7uB,EAAIrF,KAAKqF,EACd6uB,EAAK5uB,EAAItF,KAAKsF,EACd4uB,EAAKV,SAAWxzB,KAAKyzB,UAEdS,GAYXC,SAAU,SAAUD,EAAME,GAEtB,GAAID,GAAW7L,EAAOznB,KAAKszB,SAASn0B,KAAKqF,EAAGrF,KAAKsF,EAAG4uB,EAAK7uB,EAAG6uB,EAAK5uB,EACjE,OAAO8uB,GAAQvzB,KAAKuzB,MAAMD,GAAYA,GAU1CvB,MAAO,SAAUyB,GAWb,MATe5qB,UAAX4qB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/L,GAAOiL,OAAOvzB,KAAKqF,EAAGrF,KAAKsF,EAAGtF,KAAKwzB,UAIhDa,EAAON,MAAM/zB,KAAKqF,EAAGrF,KAAKsF,EAAGtF,KAAKwzB,UAG/Ba,GAWXC,SAAU,SAAUjvB,EAAGC,GAEnB,MAAOgjB,GAAOiL,OAAOe,SAASt0B,KAAMqF,EAAGC,IAY3CivB,mBAAoB,SAAUC,EAAOC,EAAWb,GAE5C,MAAOtL,GAAOiL,OAAOgB,mBAAmBv0B,KAAMw0B,EAAOC,EAAWb,IAWpEva,OAAQ,SAAU1L,EAAIE,GAKlB,MAHA7N,MAAKqF,GAAKsI,EACV3N,KAAKsF,GAAKuI,EAEH7N,MAUX00B,YAAa,SAAUC,GACnB,MAAO30B,MAAKqZ,OAAOsb,EAAMtvB,EAAGsvB,EAAMrvB,IAQtCiiB,SAAU,WACN,MAAO,sBAAwBvnB,KAAKqF,EAAI,MAAQrF,KAAKsF,EAAI,aAAetF,KAAKwzB,SAAW,WAAaxzB,KAAK8zB,OAAS,QAK3HxL,EAAOiL,OAAO1wB,UAAUC,YAAcwlB,EAAOiL,OAQ7CnwB,OAAOC,eAAeilB,EAAOiL,OAAO1wB,UAAW,YAE3CS,IAAK,WACD,MAAOtD,MAAKyzB,WAGhBjwB,IAAK,SAAUC,GAEPA,EAAQ,IAERzD,KAAKyzB,UAAYhwB,EACjBzD,KAAK0zB,QAAkB,GAARjwB,MAW3BL,OAAOC,eAAeilB,EAAOiL,OAAO1wB,UAAW,UAE3CS,IAAK,WACD,MAAOtD,MAAK0zB,SAGhBlwB,IAAK,SAAUC,GAEPA,EAAQ,IAERzD,KAAK0zB,QAAUjwB,EACfzD,KAAKyzB,UAAoB,EAARhwB,MAY7BL,OAAOC,eAAeilB,EAAOiL,OAAO1wB,UAAW,QAE3CS,IAAK,WACD,MAAOtD,MAAKqF,EAAIrF,KAAK0zB,SAGzBlwB,IAAK,SAAUC,GAEPA,EAAQzD,KAAKqF,GAEbrF,KAAK0zB,QAAU,EACf1zB,KAAKyzB,UAAY,GAIjBzzB,KAAK8zB,OAAS9zB,KAAKqF,EAAI5B,KAYnCL,OAAOC,eAAeilB,EAAOiL,OAAO1wB,UAAW,SAE3CS,IAAK,WACD,MAAOtD,MAAKqF,EAAIrF,KAAK0zB,SAGzBlwB,IAAK,SAAUC,GAEPA,EAAQzD,KAAKqF,GAEbrF,KAAK0zB,QAAU,EACf1zB,KAAKyzB,UAAY,GAIjBzzB,KAAK8zB,OAASrwB,EAAQzD,KAAKqF,KAYvCjC,OAAOC,eAAeilB,EAAOiL,OAAO1wB,UAAW,OAE3CS,IAAK,WACD,MAAOtD,MAAKsF,EAAItF,KAAK0zB,SAGzBlwB,IAAK,SAAUC,GAEPA,EAAQzD,KAAKsF,GAEbtF,KAAK0zB,QAAU,EACf1zB,KAAKyzB,UAAY,GAIjBzzB,KAAK8zB,OAAS9zB,KAAKsF,EAAI7B,KAYnCL,OAAOC,eAAeilB,EAAOiL,OAAO1wB,UAAW,UAE3CS,IAAK,WACD,MAAOtD,MAAKsF,EAAItF,KAAK0zB,SAGzBlwB,IAAK,SAAUC,GAEPA,EAAQzD,KAAKsF,GAEbtF,KAAK0zB,QAAU,EACf1zB,KAAKyzB,UAAY,GAIjBzzB,KAAK8zB,OAASrwB,EAAQzD,KAAKsF,KAavClC,OAAOC,eAAeilB,EAAOiL,OAAO1wB,UAAW,QAE3CS,IAAK,WAED,MAAItD,MAAK0zB,QAAU,EAER7yB,KAAKC,GAAKd,KAAK0zB,QAAU1zB,KAAK0zB,QAI9B,KAanBtwB,OAAOC,eAAeilB,EAAOiL,OAAO1wB,UAAW,SAE3CS,IAAK,WACD,MAA2B,KAAnBtD,KAAKyzB,WAGjBjwB,IAAK,SAAUC,GAEPA,KAAU,GAEVzD,KAAK+zB,MAAM,EAAG,EAAG,MAe7BzL,EAAOiL,OAAOe,SAAW,SAAU5vB,EAAGW,EAAGC,GAGrC,GAAIZ,EAAEovB,OAAS,GAAKzuB,GAAKX,EAAEwtB,MAAQ7sB,GAAKX,EAAEutB,OAAS3sB,GAAKZ,EAAEkwB,KAAOtvB,GAAKZ,EAAEmwB,OACxE,CACI,GAAIlnB,IAAMjJ,EAAEW,EAAIA,IAAMX,EAAEW,EAAIA,GACxBwI,GAAMnJ,EAAEY,EAAIA,IAAMZ,EAAEY,EAAIA,EAE5B,OAAQqI,GAAKE,GAAQnJ,EAAEovB,OAASpvB,EAAEovB,OAIlC,OAAO,GAYfxL,EAAOiL,OAAOuB,OAAS,SAAUpwB,EAAGC,GAChC,MAAQD,GAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAE8uB,UAAY7uB,EAAE6uB,UAWxDlL,EAAOiL,OAAOwB,WAAa,SAAUrwB,EAAGC,GACpC,MAAQ2jB,GAAOznB,KAAKszB,SAASzvB,EAAEW,EAAGX,EAAEY,EAAGX,EAAEU,EAAGV,EAAEW,IAAOZ,EAAEovB,OAASnvB,EAAEmvB,QAYtExL,EAAOiL,OAAOgB,mBAAqB,SAAU7vB,EAAG8vB,EAAOC,EAAWb,GAa9D,MAXkBnqB,UAAdgrB,IAA2BA,GAAY,GAC/BhrB,SAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAEtCqzB,KAAc,IAEdD,EAAQlM,EAAOznB,KAAKm0B,SAASR,IAGjCZ,EAAIvuB,EAAIX,EAAEW,EAAIX,EAAEovB,OAASjzB,KAAKuE,IAAIovB,GAClCZ,EAAItuB,EAAIZ,EAAEY,EAAIZ,EAAEovB,OAASjzB,KAAKsE,IAAIqvB,GAE3BZ,GAWXtL,EAAOiL,OAAO0B,oBAAsB,SAAUrwB,EAAGiW,GAE7C,GAAIvM,GAAKzN,KAAKq0B,IAAItwB,EAAES,EAAIwV,EAAExV,EAAIwV,EAAEsa,WAC5BC,EAAQva,EAAEsa,UAAYvwB,EAAEkvB,MAE5B,IAAIxlB,EAAK8mB,EAEL,OAAO,CAGX,IAAI7mB,GAAK1N,KAAKq0B,IAAItwB,EAAEU,EAAIuV,EAAEvV,EAAIuV,EAAEwa,YAC5BC,EAAQza,EAAEwa,WAAazwB,EAAEkvB,MAE7B,IAAIvlB,EAAK+mB,EAEL,OAAO,CAGX,IAAIhnB,GAAMuM,EAAEsa,WAAa5mB,GAAMsM,EAAEwa,WAE7B,OAAO,CAGX,IAAIE,GAAcjnB,EAAKuM,EAAEsa,UACrBK,EAAcjnB,EAAKsM,EAAEwa,WACrBI,EAAgBF,EAAcA,EAC9BG,EAAgBF,EAAcA,EAC9BG,EAAkB/wB,EAAEkvB,OAASlvB,EAAEkvB,MAEnC,OAAwC6B,IAAjCF,EAAgBC,GAK3Bz1B,KAAKszB,OAASjL,EAAOiL,OAmBrBjL,EAAOsN,QAAU,SAAUvwB,EAAGC,EAAGqB,EAAOC,GAEpCvB,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTqB,EAAQA,GAAS,EACjBC,EAASA,GAAU,EAKnB5G,KAAKqF,EAAIA,EAKTrF,KAAKsF,EAAIA,EAKTtF,KAAK2G,MAAQA,EAKb3G,KAAK4G,OAASA,EAMd5G,KAAK+U,KAAOuT,EAAO4F,SAIvB5F,EAAOsN,QAAQ/yB,WAWXkxB,MAAO,SAAU1uB,EAAGC,EAAGqB,EAAOC,GAO1B,MALA5G,MAAKqF,EAAIA,EACTrF,KAAKsF,EAAIA,EACTtF,KAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,EAEP5G,MAUX6F,UAAW,WAEP,MAAO,IAAIyiB,GAAO9lB,UAAUxC,KAAKqF,EAAIrF,KAAK2G,MAAO3G,KAAKsF,EAAItF,KAAK4G,OAAQ5G,KAAK2G,MAAO3G,KAAK4G,SAW5FotB,SAAU,SAAUxlB,GAEhB,MAAOxO,MAAK+zB,MAAMvlB,EAAOnJ,EAAGmJ,EAAOlJ,EAAGkJ,EAAO7H,MAAO6H,EAAO5H,SAU/DqtB,OAAQ,SAASC,GAOb,MALAA,GAAK7uB,EAAIrF,KAAKqF,EACd6uB,EAAK5uB,EAAItF,KAAKsF,EACd4uB,EAAKvtB,MAAQ3G,KAAK2G,MAClButB,EAAKttB,OAAS5G,KAAK4G,OAEZstB,GAUXtB,MAAO,SAASyB,GAWZ,MATe5qB,UAAX4qB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/L,GAAOsN,QAAQ51B,KAAKqF,EAAGrF,KAAKsF,EAAGtF,KAAK2G,MAAO3G,KAAK4G,QAI7DytB,EAAON,MAAM/zB,KAAKqF,EAAGrF,KAAKsF,EAAGtF,KAAK2G,MAAO3G,KAAK4G,QAG3CytB,GAYXC,SAAU,SAAUjvB,EAAGC,GAEnB,MAAOgjB,GAAOsN,QAAQtB,SAASt0B,KAAMqF,EAAGC,IAY5C4rB,OAAQ,SAAU0C,GAEFnqB,SAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,MAE1C,IAAIoD,GAAI3D,KAAKqwB,SAAWrwB,KAAKC,GAAK,EAC9B+Z,EAAIha,KAAKqwB,QAQb,OANA0C,GAAIvuB,EAAIxE,KAAK0E,KAAKsV,GAAKha,KAAKuE,IAAIZ,GAChCovB,EAAItuB,EAAIzE,KAAK0E,KAAKsV,GAAKha,KAAKsE,IAAIX,GAEhCovB,EAAIvuB,EAAIrF,KAAKqF,EAAKuuB,EAAIvuB,EAAIrF,KAAK2G,MAAQ,EACvCitB,EAAItuB,EAAItF,KAAKsF,EAAKsuB,EAAItuB,EAAItF,KAAK4G,OAAS,EAEjCgtB,GASXrM,SAAU,WACN,MAAO,uBAAyBvnB,KAAKqF,EAAI,MAAQrF,KAAKsF,EAAI,UAAYtF,KAAK2G,MAAQ,WAAa3G,KAAK4G,OAAS,QAKtH0hB,EAAOsN,QAAQ/yB,UAAUC,YAAcwlB,EAAOsN,QAO9CxyB,OAAOC,eAAeilB,EAAOsN,QAAQ/yB,UAAW,QAE5CS,IAAK,WACD,MAAOtD,MAAKqF,GAGhB7B,IAAK,SAAUC,GAEXzD,KAAKqF,EAAI5B,KAWjBL,OAAOC,eAAeilB,EAAOsN,QAAQ/yB,UAAW,SAE5CS,IAAK,WACD,MAAOtD,MAAKqF,EAAIrF,KAAK2G,OAGzBnD,IAAK,SAAUC,GAEPA,EAAQzD,KAAKqF,EAEbrF,KAAK2G,MAAQ,EAIb3G,KAAK2G,MAAQlD,EAAQzD,KAAKqF,KAWtCjC,OAAOC,eAAeilB,EAAOsN,QAAQ/yB,UAAW,OAE5CS,IAAK,WACD,MAAOtD,MAAKsF,GAGhB9B,IAAK,SAAUC,GACXzD,KAAKsF,EAAI7B,KAUjBL,OAAOC,eAAeilB,EAAOsN,QAAQ/yB,UAAW,UAE5CS,IAAK,WACD,MAAOtD,MAAKsF,EAAItF,KAAK4G,QAGzBpD,IAAK,SAAUC,GAEPA,EAAQzD,KAAKsF,EAEbtF,KAAK4G,OAAS,EAId5G,KAAK4G,OAASnD,EAAQzD,KAAKsF,KAYvClC,OAAOC,eAAeilB,EAAOsN,QAAQ/yB,UAAW,SAE5CS,IAAK,WACD,MAAuB,KAAftD,KAAK2G,OAA+B,IAAhB3G,KAAK4G,QAGrCpD,IAAK,SAAUC,GAEPA,KAAU,GAEVzD,KAAK+zB,MAAM,EAAG,EAAG,EAAG,MAgBhCzL,EAAOsN,QAAQtB,SAAW,SAAU5vB,EAAGW,EAAGC,GAEtC,GAAIZ,EAAEiC,OAAS,GAAKjC,EAAEkC,QAAU,EAC5B,OAAO,CAIX,IAAIivB,IAAUxwB,EAAIX,EAAEW,GAAKX,EAAEiC,MAAS,GAChCmvB,GAAUxwB,EAAIZ,EAAEY,GAAKZ,EAAEkC,OAAU,EAKrC,OAHAivB,IAASA,EACTC,GAASA,EAEe,IAAhBD,EAAQC,GAKpB71B,KAAK21B,QAAUtN,EAAOsN,QAkBtBtN,EAAOyN,KAAO,SAAUrpB,EAAIC,EAAIC,EAAIC,GAEhCH,EAAKA,GAAM,EACXC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EAKX7M,KAAKoL,MAAQ,GAAIkd,GAAOlnB,MAAMsL,EAAIC,GAKlC3M,KAAK8J,IAAM,GAAIwe,GAAOlnB,MAAMwL,EAAIC,GAMhC7M,KAAK+U,KAAOuT,EAAOmG,MAIvBnG,EAAOyN,KAAKlzB,WAYRkxB,MAAO,SAAUrnB,EAAIC,EAAIC,EAAIC,GAKzB,MAHA7M,MAAKoL,MAAM2oB,MAAMrnB,EAAIC,GACrB3M,KAAK8J,IAAIiqB,MAAMnnB,EAAIC,GAEZ7M,MAcXg2B,WAAY,SAAUC,EAAaC,EAAWC,GAI1C,MAFkB1sB,UAAd0sB,IAA2BA,GAAY,GAEvCA,EAEOn2B,KAAK+zB,MAAMkC,EAAYG,OAAO/wB,EAAG4wB,EAAYG,OAAO9wB,EAAG4wB,EAAUE,OAAO/wB,EAAG6wB,EAAUE,OAAO9wB,GAGhGtF,KAAK+zB,MAAMkC,EAAY5wB,EAAG4wB,EAAY3wB,EAAG4wB,EAAU7wB,EAAG6wB,EAAU5wB,IAc3E+wB,UAAW,SAAUhxB,EAAGC,EAAGkvB,EAAOtxB,GAK9B,MAHAlD,MAAKoL,MAAM2oB,MAAM1uB,EAAGC,GACpBtF,KAAK8J,IAAIiqB,MAAM1uB,EAAKxE,KAAKuE,IAAIovB,GAAStxB,EAASoC,EAAKzE,KAAKsE,IAAIqvB,GAAStxB,GAE/DlD,MAiBXs2B,OAAQ,SAAU9B,EAAOC,GAErB,GAAInmB,IAAMtO,KAAKoL,MAAM/F,EAAIrF,KAAK8J,IAAIzE,GAAK,EACnCkJ,GAAMvO,KAAKoL,MAAM9F,EAAItF,KAAK8J,IAAIxE,GAAK,CAKvC,OAHAtF,MAAKoL,MAAMkrB,OAAOhoB,EAAIC,EAAIimB,EAAOC,GACjCz0B,KAAK8J,IAAIwsB,OAAOhoB,EAAIC,EAAIimB,EAAOC,GAExBz0B,MAgBXu2B,aAAc,SAAUlxB,EAAGC,EAAGkvB,EAAOC,GAKjC,MAHAz0B,MAAKoL,MAAMkrB,OAAOjxB,EAAGC,EAAGkvB,EAAOC,GAC/Bz0B,KAAK8J,IAAIwsB,OAAOjxB,EAAGC,EAAGkvB,EAAOC,GAEtBz0B,MAeX+0B,WAAY,SAAUyB,EAAMC,EAAWzlB,GAEnC,MAAOsX,GAAOyN,KAAKW,iBAAiB12B,KAAKoL,MAAOpL,KAAK8J,IAAK0sB,EAAKprB,MAAOorB,EAAK1sB,IAAK2sB,EAAWzlB,IAY/F2lB,QAAS,SAAUH,GAEf,MAAOlO,GAAOyN,KAAKY,QAAQ32B,KAAMw2B,IAWrCI,SAAU,SAAUhD,GAOhB,MALYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAE1CwyB,EAAIvuB,GAAKrF,KAAKoL,MAAM/F,EAAIrF,KAAK8J,IAAIzE,GAAK,EACtCuuB,EAAItuB,GAAKtF,KAAKoL,MAAM9F,EAAItF,KAAK8J,IAAIxE,GAAK,EAE/BsuB,GAeXiD,SAAU,SAAUxxB,EAAGC,GAEnB,GAAIgJ,IAAMtO,KAAKoL,MAAM/F,EAAIrF,KAAK8J,IAAIzE,GAAK,EACnCkJ,GAAMvO,KAAKoL,MAAM9F,EAAItF,KAAK8J,IAAIxE,GAAK,EAEnCR,EAAKO,EAAIiJ,EACTvJ,EAAKO,EAAIiJ,CAEbvO,MAAKoL,MAAM0rB,IAAIhyB,EAAIC,GACnB/E,KAAK8J,IAAIgtB,IAAIhyB,EAAIC,IAYrBgyB,YAAa,SAAU1xB,EAAGC,GAEtB,OAASD,EAAIrF,KAAKoL,MAAM/F,IAAMrF,KAAK8J,IAAIxE,EAAItF,KAAKoL,MAAM9F,MAAQtF,KAAK8J,IAAIzE,EAAIrF,KAAKoL,MAAM/F,IAAMC,EAAItF,KAAKoL,MAAM9F,IAY/G0xB,eAAgB,SAAU3xB,EAAGC,GAEzB,GAAI2xB,GAAOp2B,KAAKq2B,IAAIl3B,KAAKoL,MAAM/F,EAAGrF,KAAK8J,IAAIzE,GACvC8xB,EAAOt2B,KAAK+G,IAAI5H,KAAKoL,MAAM/F,EAAGrF,KAAK8J,IAAIzE,GACvC+xB,EAAOv2B,KAAKq2B,IAAIl3B,KAAKoL,MAAM9F,EAAGtF,KAAK8J,IAAIxE,GACvC+xB,EAAOx2B,KAAK+G,IAAI5H,KAAKoL,MAAM9F,EAAGtF,KAAK8J,IAAIxE,EAE3C,OAAQtF,MAAK+2B,YAAY1xB,EAAGC,IAAOD,GAAK4xB,GAAaE,GAAL9xB,GAAeC,GAAK8xB,GAAaC,GAAL/xB,GAYhF4rB,OAAQ,SAAU0C,GAEFnqB,SAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,MAE1C,IAAI6uB,GAAIpvB,KAAKqwB,QAKb,OAHA0C,GAAIvuB,EAAIrF,KAAKoL,MAAM/F,EAAI4qB,GAAKjwB,KAAK8J,IAAIzE,EAAIrF,KAAKoL,MAAM/F,GACpDuuB,EAAItuB,EAAItF,KAAKoL,MAAM9F,EAAI2qB,GAAKjwB,KAAK8J,IAAIxE,EAAItF,KAAKoL,MAAM9F,GAE7CsuB,GAaX0D,kBAAmB,SAAUC,EAAUC,GAElB/tB,SAAb8tB,IAA0BA,EAAW,GACzB9tB,SAAZ+tB,IAAyBA,KAE7B,IAAI9qB,GAAK7L,KAAKuzB,MAAMp0B,KAAKoL,MAAM/F,GAC3BsH,EAAK9L,KAAKuzB,MAAMp0B,KAAKoL,MAAM9F,GAC3BsH,EAAK/L,KAAKuzB,MAAMp0B,KAAK8J,IAAIzE,GACzBwH,EAAKhM,KAAKuzB,MAAMp0B,KAAK8J,IAAIxE,GAEzBqI,EAAK9M,KAAKq0B,IAAItoB,EAAKF,GACnBmB,EAAKhN,KAAKq0B,IAAIroB,EAAKF,GACnB8qB,EAAW7qB,EAALF,EAAW,EAAI,GACrBgrB,EAAW7qB,EAALF,EAAW,EAAI,GACrBgrB,EAAMhqB,EAAKE,CAEf2pB,GAAQzzB,MAAM2I,EAAIC,GAIlB,KAFA,GAAI1J,GAAI,EAEEyJ,GAAME,GAAQD,GAAME,GAC9B,CACI,GAAI+qB,GAAKD,GAAO,CAEZC,IAAM/pB,IAEN8pB,GAAO9pB,EACPnB,GAAM+qB,GAGD9pB,EAALiqB,IAEAD,GAAOhqB,EACPhB,GAAM+qB,GAGNz0B,EAAIs0B,IAAa,GAEjBC,EAAQzzB,MAAM2I,EAAIC,IAGtB1J,IAIJ,MAAOu0B,IAUX5E,MAAO,SAAUyB,GAWb,MATe5qB,UAAX4qB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/L,GAAOyN,KAAK/1B,KAAKoL,MAAM/F,EAAGrF,KAAKoL,MAAM9F,EAAGtF,KAAK8J,IAAIzE,EAAGrF,KAAK8J,IAAIxE,GAI1E+uB,EAAON,MAAM/zB,KAAKoL,MAAM/F,EAAGrF,KAAKoL,MAAM9F,EAAGtF,KAAK8J,IAAIzE,EAAGrF,KAAK8J,IAAIxE,GAG3D+uB,IAWfjxB,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,UAEzCS,IAAK,WACD,MAAOzC,MAAK0E,MAAMvF,KAAK8J,IAAIzE,EAAIrF,KAAKoL,MAAM/F,IAAMrF,KAAK8J,IAAIzE,EAAIrF,KAAKoL,MAAM/F,IAAMrF,KAAK8J,IAAIxE,EAAItF,KAAKoL,MAAM9F,IAAMtF,KAAK8J,IAAIxE,EAAItF,KAAKoL,MAAM9F,OAU5IlC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,SAEzCS,IAAK,WACD,MAAOzC,MAAK2E,MAAMxF,KAAK8J,IAAIxE,EAAItF,KAAKoL,MAAM9F,EAAGtF,KAAK8J,IAAIzE,EAAIrF,KAAKoL,MAAM/F,MAU7EjC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,SAEzCS,IAAK,WACD,OAAQtD,KAAK8J,IAAIxE,EAAItF,KAAKoL,MAAM9F,IAAMtF,KAAK8J,IAAIzE,EAAIrF,KAAKoL,MAAM/F,MAUtEjC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,aAEzCS,IAAK,WACD,SAAUtD,KAAK8J,IAAIzE,EAAIrF,KAAKoL,MAAM/F,IAAMrF,KAAK8J,IAAIxE,EAAItF,KAAKoL,MAAM9F,OAUxElC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,KAEzCS,IAAK,WACD,MAAOzC,MAAKq2B,IAAIl3B,KAAKoL,MAAM/F,EAAGrF,KAAK8J,IAAIzE,MAU/CjC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,KAEzCS,IAAK,WACD,MAAOzC,MAAKq2B,IAAIl3B,KAAKoL,MAAM9F,EAAGtF,KAAK8J,IAAIxE,MAU/ClC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,QAEzCS,IAAK,WACD,MAAOzC,MAAKq2B,IAAIl3B,KAAKoL,MAAM/F,EAAGrF,KAAK8J,IAAIzE,MAU/CjC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,SAEzCS,IAAK,WACD,MAAOzC,MAAK+G,IAAI5H,KAAKoL,MAAM/F,EAAGrF,KAAK8J,IAAIzE,MAU/CjC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,OAEzCS,IAAK,WACD,MAAOzC,MAAKq2B,IAAIl3B,KAAKoL,MAAM9F,EAAGtF,KAAK8J,IAAIxE,MAU/ClC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,UAEzCS,IAAK,WACD,MAAOzC,MAAK+G,IAAI5H,KAAKoL,MAAM9F,EAAGtF,KAAK8J,IAAIxE,MAU/ClC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,SAEzCS,IAAK,WACD,MAAOzC,MAAKq0B,IAAIl1B,KAAKoL,MAAM/F,EAAIrF,KAAK8J,IAAIzE,MAUhDjC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,UAEzCS,IAAK,WACD,MAAOzC,MAAKq0B,IAAIl1B,KAAKoL,MAAM9F,EAAItF,KAAK8J,IAAIxE,MAUhDlC,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,WAEzCS,IAAK,WACD,MAAOzC,MAAKuE,IAAIpF,KAAKw0B,MAAQ,uBAUrCpxB,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,WAEzCS,IAAK,WACD,MAAOzC,MAAKsE,IAAInF,KAAKw0B,MAAQ,uBAUrCpxB,OAAOC,eAAeilB,EAAOyN,KAAKlzB,UAAW,eAEzCS,IAAK,WACD,MAAOglB,GAAOznB,KAAKg3B,KAAK73B,KAAKw0B,MAAQ,oBAAqB3zB,KAAKC,GAAID,KAAKC,OAoBhFwnB,EAAOyN,KAAKW,iBAAmB,SAAUhyB,EAAGC,EAAG2tB,EAAGd,EAAGiF,EAAWzlB,GAE1CvH,SAAdgtB,IAA2BA,GAAY,GAC5BhtB,SAAXuH,IAAwBA,EAAS,GAAIsX,GAAOlnB,MAEhD,IAAI02B,GAAKnzB,EAAEW,EAAIZ,EAAEY,EACbyyB,EAAKvG,EAAElsB,EAAIgtB,EAAEhtB,EACb0yB,EAAKtzB,EAAEW,EAAIV,EAAEU,EACb4yB,EAAK3F,EAAEjtB,EAAImsB,EAAEnsB,EACb6yB,EAAMvzB,EAAEU,EAAIX,EAAEY,EAAMZ,EAAEW,EAAIV,EAAEW,EAC5B6yB,EAAM3G,EAAEnsB,EAAIitB,EAAEhtB,EAAMgtB,EAAEjtB,EAAImsB,EAAElsB,EAC5B8yB,EAASN,EAAKG,EAAOF,EAAKC,CAE9B,IAAc,IAAVI,EAEA,MAAO,KAMX,IAHApnB,EAAO3L,GAAM2yB,EAAKG,EAAOF,EAAKC,GAAOE,EACrCpnB,EAAO1L,GAAMyyB,EAAKG,EAAOJ,EAAKK,GAAOC,EAEjC3B,EACJ,CACI,GAAI4B,IAAO7G,EAAElsB,EAAIgtB,EAAEhtB,IAAMX,EAAEU,EAAIX,EAAEW,IAAMmsB,EAAEnsB,EAAIitB,EAAEjtB,IAAMV,EAAEW,EAAIZ,EAAEY,GACzDgzB,IAAQ9G,EAAEnsB,EAAIitB,EAAEjtB,IAAMX,EAAEY,EAAIgtB,EAAEhtB,IAAOksB,EAAElsB,EAAIgtB,EAAEhtB,IAAMZ,EAAEW,EAAIitB,EAAEjtB,IAAMgzB,EACjEE,IAAQ5zB,EAAEU,EAAIX,EAAEW,IAAMX,EAAEY,EAAIgtB,EAAEhtB,IAAQX,EAAEW,EAAIZ,EAAEY,IAAMZ,EAAEW,EAAIitB,EAAEjtB,IAAOgzB,CAEvE,OAAIC,IAAM,GAAW,GAANA,GAAWC,GAAM,GAAW,GAANA,EAE1BvnB,EAIA,KAIf,MAAOA,IAkBXsX,EAAOyN,KAAKhB,WAAa,SAAUrwB,EAAGC,EAAG8xB,EAAWzlB,GAEhD,MAAOsX,GAAOyN,KAAKW,iBAAiBhyB,EAAE0G,MAAO1G,EAAEoF,IAAKnF,EAAEyG,MAAOzG,EAAEmF,IAAK2sB,EAAWzlB,IAanFsX,EAAOyN,KAAKY,QAAU,SAAUjyB,EAAGC,GAE/B,MAAO,GAAIA,EAAE6zB,YAAc,kBAAoB9zB,EAAE8vB,OA6BrDlM,EAAOtmB,OAAS,SAAU0C,EAAGC,EAAGC,EAAGC,EAAGC,EAAIC,GAEtCL,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTC,EAAKA,GAAM,EACXC,EAAKA,GAAM,EAMX/E,KAAK0E,EAAIA,EAMT1E,KAAK2E,EAAIA,EAMT3E,KAAK4E,EAAIA,EAMT5E,KAAK6E,EAAIA,EAMT7E,KAAK8E,GAAKA,EAMV9E,KAAK+E,GAAKA,EAMV/E,KAAK+U,KAAOuT,EAAOoG,QAIvBpG,EAAOtmB,OAAOa,WAkBV41B,UAAW,SAAUC,GAEjB,MAAO14B,MAAK+zB,MAAM2E,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,KAgB9E3E,MAAO,SAAUrvB,EAAGC,EAAGC,EAAGC,EAAGC,EAAIC,GAS7B,MAPA/E,MAAK0E,EAAIA,EACT1E,KAAK2E,EAAIA,EACT3E,KAAK4E,EAAIA,EACT5E,KAAK6E,EAAIA,EACT7E,KAAK8E,GAAKA,EACV9E,KAAK+E,GAAKA,EAEH/E,MAaX4yB,MAAO,SAAUyB,GAgBb,MAde5qB,UAAX4qB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/L,GAAOtmB,OAAOhC,KAAK0E,EAAG1E,KAAK2E,EAAG3E,KAAK4E,EAAG5E,KAAK6E,EAAG7E,KAAK8E,GAAI9E,KAAK+E,KAIzEsvB,EAAO3vB,EAAI1E,KAAK0E,EAChB2vB,EAAO1vB,EAAI3E,KAAK2E,EAChB0vB,EAAOzvB,EAAI5E,KAAK4E,EAChByvB,EAAOxvB,EAAI7E,KAAK6E,EAChBwvB,EAAOvvB,GAAK9E,KAAK8E,GACjBuvB,EAAOtvB,GAAK/E,KAAK+E,IAGdsvB,GAWXJ,OAAQ,SAAUnuB,GAId,MAFAA,GAAOkuB,SAASh0B,MAET8F,GAWXkuB,SAAU,SAAUluB,GAShB,MAPA9F,MAAK0E,EAAIoB,EAAOpB,EAChB1E,KAAK2E,EAAImB,EAAOnB,EAChB3E,KAAK4E,EAAIkB,EAAOlB,EAChB5E,KAAK6E,EAAIiB,EAAOjB,EAChB7E,KAAK8E,GAAKgB,EAAOhB,GACjB9E,KAAK+E,GAAKe,EAAOf,GAEV/E,MAYXuf,QAAS,SAAUlI,EAAWqhB,GA6B1B,MA3BcjvB,UAAVivB,IAAuBA,EAAQ,GAAIz4B,MAAKM,aAAa,IAErD8W,GAEAqhB,EAAM,GAAK14B,KAAK0E,EAChBg0B,EAAM,GAAK14B,KAAK2E,EAChB+zB,EAAM,GAAK,EACXA,EAAM,GAAK14B,KAAK4E,EAChB8zB,EAAM,GAAK14B,KAAK6E,EAChB6zB,EAAM,GAAK,EACXA,EAAM,GAAK14B,KAAK8E,GAChB4zB,EAAM,GAAK14B,KAAK+E,GAChB2zB,EAAM,GAAK,IAIXA,EAAM,GAAK14B,KAAK0E,EAChBg0B,EAAM,GAAK14B,KAAK4E,EAChB8zB,EAAM,GAAK14B,KAAK8E,GAChB4zB,EAAM,GAAK14B,KAAK2E,EAChB+zB,EAAM,GAAK14B,KAAK6E,EAChB6zB,EAAM,GAAK14B,KAAK+E,GAChB2zB,EAAM,GAAK,EACXA,EAAM,GAAK,EACXA,EAAM,GAAK,GAGRA,GAcXzxB,MAAO,SAAU0xB,EAAKC,GAOlB,MALenvB,UAAXmvB,IAAwBA,EAAS,GAAItQ,GAAOlnB,OAEhDw3B,EAAOvzB,EAAIrF,KAAK0E,EAAIi0B,EAAItzB,EAAIrF,KAAK4E,EAAI+zB,EAAIrzB,EAAItF,KAAK8E,GAClD8zB,EAAOtzB,EAAItF,KAAK2E,EAAIg0B,EAAItzB,EAAIrF,KAAK6E,EAAI8zB,EAAIrzB,EAAItF,KAAK+E,GAE3C6zB,GAcXxxB,aAAc,SAAUuxB,EAAKC,GAEVnvB,SAAXmvB,IAAwBA,EAAS,GAAItQ,GAAOlnB,MAEhD,IAAIwU,GAAK,GAAK5V,KAAK0E,EAAI1E,KAAK6E,EAAI7E,KAAK4E,GAAK5E,KAAK2E,GAC3CU,EAAIszB,EAAItzB,EACRC,EAAIqzB,EAAIrzB,CAKZ,OAHAszB,GAAOvzB,EAAIrF,KAAK6E,EAAI+Q,EAAKvQ,GAAKrF,KAAK4E,EAAIgR,EAAKtQ,GAAKtF,KAAK+E,GAAK/E,KAAK4E,EAAI5E,KAAK8E,GAAK9E,KAAK6E,GAAK+Q,EACxFgjB,EAAOtzB,EAAItF,KAAK0E,EAAIkR,EAAKtQ,GAAKtF,KAAK2E,EAAIiR,EAAKvQ,IAAMrF,KAAK+E,GAAK/E,KAAK0E,EAAI1E,KAAK8E,GAAK9E,KAAK2E,GAAKiR,EAElFgjB,GAaX1N,UAAW,SAAU7lB,EAAGC,GAKpB,MAHAtF,MAAK8E,IAAMO,EACXrF,KAAK+E,IAAMO,EAEJtF,MAYXqB,MAAO,SAAUgE,EAAGC,GAShB,MAPAtF,MAAK0E,GAAKW,EACVrF,KAAK6E,GAAKS,EACVtF,KAAK4E,GAAKS,EACVrF,KAAK2E,GAAKW,EACVtF,KAAK8E,IAAMO,EACXrF,KAAK+E,IAAMO,EAEJtF,MAWXs2B,OAAQ,SAAU9B,GAEd,GAAIpvB,GAAMvE,KAAKuE,IAAIovB,GACfrvB,EAAMtE,KAAKsE,IAAIqvB,GAEfsD,EAAK93B,KAAK0E,EACVwzB,EAAKl4B,KAAK4E,EACVi0B,EAAM74B,KAAK8E,EASf,OAPA9E,MAAK0E,EAAIozB,EAAK1yB,EAAIpF,KAAK2E,EAAIQ,EAC3BnF,KAAK2E,EAAImzB,EAAK3yB,EAAInF,KAAK2E,EAAIS,EAC3BpF,KAAK4E,EAAIszB,EAAK9yB,EAAIpF,KAAK6E,EAAIM,EAC3BnF,KAAK6E,EAAIqzB,EAAK/yB,EAAInF,KAAK6E,EAAIO,EAC3BpF,KAAK8E,GAAK+zB,EAAMzzB,EAAMpF,KAAK+E,GAAKI,EAChCnF,KAAK+E,GAAK8zB,EAAM1zB,EAAMnF,KAAK+E,GAAKK,EAEzBpF,MAWXmrB,OAAQ,SAAUrlB,GAEd,GAAIgyB,GAAK93B,KAAK0E,EACVszB,EAAKh4B,KAAK2E,EACVuzB,EAAKl4B,KAAK4E,EACVk0B,EAAK94B,KAAK6E,CAUd,OARA7E,MAAK0E,EAAKoB,EAAOpB,EAAIozB,EAAKhyB,EAAOnB,EAAIuzB,EACrCl4B,KAAK2E,EAAKmB,EAAOpB,EAAIszB,EAAKlyB,EAAOnB,EAAIm0B,EACrC94B,KAAK4E,EAAKkB,EAAOlB,EAAIkzB,EAAKhyB,EAAOjB,EAAIqzB,EACrCl4B,KAAK6E,EAAKiB,EAAOlB,EAAIozB,EAAKlyB,EAAOjB,EAAIi0B,EAErC94B,KAAK8E,GAAKgB,EAAOhB,GAAKgzB,EAAKhyB,EAAOf,GAAKmzB,EAAKl4B,KAAK8E,GACjD9E,KAAK+E,GAAKe,EAAOhB,GAAKkzB,EAAKlyB,EAAOf,GAAK+zB,EAAK94B,KAAK+E,GAE1C/E,MAUXirB,SAAU,WAEN,MAAOjrB,MAAK+zB,MAAM,EAAG,EAAG,EAAG,EAAG,EAAG,KAMzCzL,EAAOriB,eAAiB,GAAIqiB,GAAOtmB,OAGnC/B,KAAK+B,OAASsmB,EAAOtmB,OACrB/B,KAAKgG,eAAiBqiB,EAAOriB,eAmB7BqiB,EAAOlnB,MAAQ,SAAUiE,EAAGC,GAExBD,EAAIA,GAAK,EACTC,EAAIA,GAAK,EAKTtF,KAAKqF,EAAIA,EAKTrF,KAAKsF,EAAIA,EAMTtF,KAAK+U,KAAOuT,EAAOqG,OAIvBrG,EAAOlnB,MAAMyB,WASTmxB,SAAU,SAAUxlB,GAEhB,MAAOxO,MAAK+zB,MAAMvlB,EAAOnJ,EAAGmJ,EAAOlJ,IAUvCyzB,OAAQ,WAEJ,MAAO/4B,MAAK+zB,MAAM/zB,KAAKsF,EAAGtF,KAAKqF,IAcnC0uB,MAAO,SAAU1uB,EAAGC,GAKhB,MAHAtF,MAAKqF,EAAIA,GAAK,EACdrF,KAAKsF,EAAIA,IAAc,IAANA,EAAWtF,KAAKqF,EAAI,GAE9BrF,MAcXwD,IAAK,SAAU6B,EAAGC,GAKd,MAHAtF,MAAKqF,EAAIA,GAAK,EACdrF,KAAKsF,EAAIA,IAAc,IAANA,EAAWtF,KAAKqF,EAAI,GAE9BrF,MAYX82B,IAAK,SAAUzxB,EAAGC,GAId,MAFAtF,MAAKqF,GAAKA,EACVrF,KAAKsF,GAAKA,EACHtF,MAYXg5B,SAAU,SAAU3zB,EAAGC,GAInB,MAFAtF,MAAKqF,GAAKA,EACVrF,KAAKsF,GAAKA,EACHtF,MAYXi5B,SAAU,SAAU5zB,EAAGC,GAInB,MAFAtF,MAAKqF,GAAKA,EACVrF,KAAKsF,GAAKA,EACHtF,MAYXk5B,OAAQ,SAAU7zB,EAAGC,GAIjB,MAFAtF,MAAKqF,GAAKA,EACVrF,KAAKsF,GAAKA,EACHtF,MAYXm5B,OAAQ,SAAUjC,EAAKtvB,GAGnB,MADA5H,MAAKqF,EAAIijB,EAAOznB,KAAKu4B,MAAMp5B,KAAKqF,EAAG6xB,EAAKtvB,GACjC5H,MAYXq5B,OAAQ,SAAUnC,EAAKtvB,GAGnB,MADA5H,MAAKsF,EAAIgjB,EAAOznB,KAAKu4B,MAAMp5B,KAAKsF,EAAG4xB,EAAKtvB,GACjC5H,MAYXo5B,MAAO,SAAUlC,EAAKtvB,GAIlB,MAFA5H,MAAKqF,EAAIijB,EAAOznB,KAAKu4B,MAAMp5B,KAAKqF,EAAG6xB,EAAKtvB,GACxC5H,KAAKsF,EAAIgjB,EAAOznB,KAAKu4B,MAAMp5B,KAAKsF,EAAG4xB,EAAKtvB,GACjC5H,MAWX4yB,MAAO,SAAUyB,GAWb,MATe5qB,UAAX4qB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/L,GAAOlnB,MAAMpB,KAAKqF,EAAGrF,KAAKsF,GAIvC+uB,EAAON,MAAM/zB,KAAKqF,EAAGrF,KAAKsF,GAGvB+uB,GAWXJ,OAAQ,SAAUC,GAKd,MAHAA,GAAK7uB,EAAIrF,KAAKqF,EACd6uB,EAAK5uB,EAAItF,KAAKsF,EAEP4uB,GAYXC,SAAU,SAAUD,EAAME,GAEtB,MAAO9L,GAAOlnB,MAAM+yB,SAASn0B,KAAMk0B,EAAME,IAW7CU,OAAQ,SAAUpwB,GAEd,MAAQA,GAAEW,IAAMrF,KAAKqF,GAAKX,EAAEY,IAAMtF,KAAKsF,GAY3CkvB,MAAO,SAAU9vB,EAAG+vB,GAIhB,MAFkBhrB,UAAdgrB,IAA2BA,GAAY,GAEvCA,EAEOnM,EAAOznB,KAAKy4B,SAASz4B,KAAK2E,MAAMd,EAAEY,EAAItF,KAAKsF,EAAGZ,EAAEW,EAAIrF,KAAKqF,IAIzDxE,KAAK2E,MAAMd,EAAEY,EAAItF,KAAKsF,EAAGZ,EAAEW,EAAIrF,KAAKqF,IAgBnDixB,OAAQ,SAAUjxB,EAAGC,EAAGkvB,EAAOC,EAAWN,GAEtC,MAAO7L,GAAOlnB,MAAMk1B,OAAOt2B,KAAMqF,EAAGC,EAAGkvB,EAAOC,EAAWN,IAU7DoF,aAAc,WAEV,MAAO14B,MAAK0E,KAAMvF,KAAKqF,EAAIrF,KAAKqF,EAAMrF,KAAKsF,EAAItF,KAAKsF,IAUxDk0B,eAAgB,WAEZ,MAAQx5B,MAAKqF,EAAIrF,KAAKqF,EAAMrF,KAAKsF,EAAItF,KAAKsF,GAW9Cm0B,aAAc,SAAUC,GAEpB,MAAO15B,MAAK25B,YAAYV,SAASS,EAAWA,IAUhDC,UAAW,WAEP,IAAK35B,KAAK45B,SACV,CACI,GAAIC,GAAI75B,KAAKu5B,cACbv5B,MAAKqF,GAAKw0B,EACV75B,KAAKsF,GAAKu0B,EAGd,MAAO75B,OAUX45B,OAAQ,WAEJ,MAAmB,KAAX55B,KAAKqF,GAAsB,IAAXrF,KAAKsF,GAWjCw0B,IAAK,SAAUp1B,GAEX,MAAS1E,MAAKqF,EAAIX,EAAEW,EAAMrF,KAAKsF,EAAIZ,EAAEY,GAWzCy0B,MAAO,SAAUr1B,GAEb,MAAS1E,MAAKqF,EAAIX,EAAEY,EAAMtF,KAAKsF,EAAIZ,EAAEW,GAUzC20B,KAAM,WAEF,MAAOh6B,MAAK+zB,OAAO/zB,KAAKsF,EAAGtF,KAAKqF,IAUpC40B,MAAO,WAEH,MAAOj6B,MAAK+zB,MAAM/zB,KAAKsF,GAAItF,KAAKqF,IAUpC60B,gBAAiB,WAEb,MAAOl6B,MAAK+zB,MAAe,GAAT/zB,KAAKsF,EAAQtF,KAAKqF,IAUxC4pB,MAAO,WAEH,MAAOjvB,MAAK+zB,MAAMlzB,KAAKouB,MAAMjvB,KAAKqF,GAAIxE,KAAKouB,MAAMjvB,KAAKsF,KAU1DuC,KAAM,WAEF,MAAO7H,MAAK+zB,MAAMlzB,KAAKgH,KAAK7H,KAAKqF,GAAIxE,KAAKgH,KAAK7H,KAAKsF,KAUxDiiB,SAAU,WAEN,MAAO,cAAgBvnB,KAAKqF,EAAI,MAAQrF,KAAKsF,EAAI,QAMzDgjB,EAAOlnB,MAAMyB,UAAUC,YAAcwlB,EAAOlnB,MAW5CknB,EAAOlnB,MAAM01B,IAAM,SAAUpyB,EAAGC,EAAGivB,GAO/B,MALYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAE1CwyB,EAAIvuB,EAAIX,EAAEW,EAAIV,EAAEU,EAChBuuB,EAAItuB,EAAIZ,EAAEY,EAAIX,EAAEW,EAETsuB,GAaXtL,EAAOlnB,MAAM43B,SAAW,SAAUt0B,EAAGC,EAAGivB,GAOpC,MALYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAE1CwyB,EAAIvuB,EAAIX,EAAEW,EAAIV,EAAEU,EAChBuuB,EAAItuB,EAAIZ,EAAEY,EAAIX,EAAEW,EAETsuB,GAaXtL,EAAOlnB,MAAM63B,SAAW,SAAUv0B,EAAGC,EAAGivB,GAOpC,MALYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAE1CwyB,EAAIvuB,EAAIX,EAAEW,EAAIV,EAAEU,EAChBuuB,EAAItuB,EAAIZ,EAAEY,EAAIX,EAAEW,EAETsuB,GAaXtL,EAAOlnB,MAAM83B,OAAS,SAAUx0B,EAAGC,EAAGivB,GAOlC,MALYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAE1CwyB,EAAIvuB,EAAIX,EAAEW,EAAIV,EAAEU,EAChBuuB,EAAItuB,EAAIZ,EAAEY,EAAIX,EAAEW,EAETsuB,GAYXtL,EAAOlnB,MAAM0zB,OAAS,SAAUpwB,EAAGC,GAE/B,MAAQD,GAAEW,IAAMV,EAAEU,GAAKX,EAAEY,IAAMX,EAAEW,GAYrCgjB,EAAOlnB,MAAMozB,MAAQ,SAAU9vB,EAAGC,GAG9B,MAAO9D,MAAK2E,MAAMd,EAAEY,EAAIX,EAAEW,EAAGZ,EAAEW,EAAIV,EAAEU,IAYzCijB,EAAOlnB,MAAM+4B,SAAW,SAAUz1B,EAAGkvB,GAIjC,MAFYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAEnCwyB,EAAIG,OAAOrvB,EAAEW,GAAIX,EAAEY,IAc9BgjB,EAAOlnB,MAAMg5B,YAAc,SAAU11B,EAAGC,EAAG01B,EAAGzG,GAI1C,MAFYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAEnCwyB,EAAIG,MAAMrvB,EAAEW,EAAIV,EAAEU,EAAIg1B,EAAG31B,EAAEY,EAAIX,EAAEW,EAAI+0B,IAchD/R,EAAOlnB,MAAMk5B,YAAc,SAAU51B,EAAGC,EAAG6sB,EAAGoC,GAI1C,MAFYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAEnCwyB,EAAIG,MAAMrvB,EAAEW,GAAKV,EAAEU,EAAIX,EAAEW,GAAKmsB,EAAG9sB,EAAEY,GAAKX,EAAEW,EAAIZ,EAAEY,GAAKksB,IAYhElJ,EAAOlnB,MAAM44B,KAAO,SAAUt1B,EAAGkvB,GAI7B,MAFYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAEnCwyB,EAAIG,OAAOrvB,EAAEY,EAAGZ,EAAEW,IAY7BijB,EAAOlnB,MAAM64B,MAAQ,SAAUv1B,EAAGkvB,GAI9B,MAFYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAEnCwyB,EAAIG,MAAMrvB,EAAEY,GAAIZ,EAAEW,IAa7BijB,EAAOlnB,MAAM+yB,SAAW,SAAUzvB,EAAGC,EAAGyvB,GAEpC,GAAID,GAAW7L,EAAOznB,KAAKszB,SAASzvB,EAAEW,EAAGX,EAAEY,EAAGX,EAAEU,EAAGV,EAAEW,EACrD,OAAO8uB,GAAQvzB,KAAKuzB,MAAMD,GAAYA,GAa1C7L,EAAOlnB,MAAMm5B,QAAU,SAAU71B,EAAGC,EAAGivB,GAEvBnqB,SAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,MAE1C,IAAIo5B,GAAM91B,EAAEo1B,IAAIn1B,GAAKA,EAAE60B,gBAOvB,OALY,KAARgB,GAEA5G,EAAIG,MAAMyG,EAAM71B,EAAEU,EAAGm1B,EAAM71B,EAAEW;AAG1BsuB,GAaXtL,EAAOlnB,MAAMq5B,YAAc,SAAU/1B,EAAGC,EAAGivB,GAE3BnqB,SAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,MAE1C,IAAIo5B,GAAM91B,EAAEo1B,IAAIn1B,EAOhB,OALY,KAAR61B,GAEA5G,EAAIG,MAAMyG,EAAM71B,EAAEU,EAAGm1B,EAAM71B,EAAEW,GAG1BsuB,GAYXtL,EAAOlnB,MAAM84B,gBAAkB,SAAUx1B,EAAGkvB,GAIxC,MAFYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAEnCwyB,EAAIG,MAAY,GAANrvB,EAAEY,EAAQZ,EAAEW,IAYjCijB,EAAOlnB,MAAMu4B,UAAY,SAAUj1B,EAAGkvB,GAEtBnqB,SAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,MAE1C,IAAIy4B,GAAIn1B,EAAE60B,cAOV,OALU,KAANM,GAEAjG,EAAIG,MAAMrvB,EAAEW,EAAIw0B,EAAGn1B,EAAEY,EAAIu0B,GAGtBjG,GAqBXtL,EAAOlnB,MAAMk1B,OAAS,SAAU5xB,EAAGW,EAAGC,EAAGkvB,EAAOC,EAAWN,GAIvD,GAFIM,IAAaD,EAAQlM,EAAOznB,KAAKm0B,SAASR,IAE7B/qB,SAAb0qB,EACJ,CACIzvB,EAAEs0B,SAAS3zB,EAAGC,EAEd,IAAI+0B,GAAIx5B,KAAKsE,IAAIqvB,GACb5vB,EAAI/D,KAAKuE,IAAIovB,GAEb1vB,EAAKF,EAAIF,EAAEW,EAAIg1B,EAAI31B,EAAEY,EACrBP,EAAKs1B,EAAI31B,EAAEW,EAAIT,EAAIF,EAAEY,CAEzBZ,GAAEW,EAAIP,EAAKO,EACXX,EAAEY,EAAIP,EAAKO,MAGf,CACI,GAAI2qB,GAAIuE,EAAQ3zB,KAAK2E,MAAMd,EAAEY,EAAIA,EAAGZ,EAAEW,EAAIA,EAC1CX,GAAEW,EAAIA,EAAI8uB,EAAWtzB,KAAKuE,IAAI6qB,GAC9BvrB,EAAEY,EAAIA,EAAI6uB,EAAWtzB,KAAKsE,IAAI8qB,GAGlC,MAAOvrB,IAYX4jB,EAAOlnB,MAAMs5B,SAAW,SAAUC,EAAQ/G,GAItC,GAFYnqB,SAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAEK,mBAA3CgC,OAAOP,UAAU0kB,SAAS7hB,KAAKi1B,GAE/B,KAAM,IAAI9xB,OAAM,oDAGpB,IAAI+xB,GAAeD,EAAOz3B,MAE1B,IAAmB,EAAf03B,EAEA,KAAM,IAAI/xB,OAAM,2DAGpB,IAAqB,IAAjB+xB,EAGA,MADAhH,GAAII,SAAS2G,EAAO,IACb/G,CAGX,KAAK,GAAI3wB,GAAI,EAAO23B,EAAJ33B,EAAkBA,IAE9BqlB,EAAOlnB,MAAM01B,IAAIlD,EAAK+G,EAAO13B,GAAI2wB,EAKrC,OAFAA,GAAIsF,OAAO0B,EAAcA,GAElBhH,GAeXtL,EAAOlnB,MAAMy5B,MAAQ,SAASrK,EAAKsK,EAAOC,GAEtCD,EAAQA,GAAS,IACjBC,EAAQA,GAAS,GAEjB,IAAIpG,GAAQ,GAAIrM,GAAOlnB,KAYvB,OAVIovB,GAAIsK,KAEJnG,EAAMtvB,EAAIqsB,SAASlB,EAAIsK,GAAQ,KAG/BtK,EAAIuK,KAEJpG,EAAMrvB,EAAIosB,SAASlB,EAAIuK,GAAQ,KAG5BpG,GAKX10B,KAAKmB,MAAQknB,EAAOlnB,MAyBpBknB,EAAO0S,QAAU,WAKbh7B,KAAKi7B,KAAO,EAMZj7B,KAAKk7B,WAEDxL,UAAUxsB,OAAS,GAEnBlD,KAAK+zB,MAAM9sB,MAAMjH,KAAM0vB,WAM3B1vB,KAAKm7B,QAAS,EAKdn7B,KAAK+U,KAAOuT,EAAOwF,SAIvBxF,EAAO0S,QAAQn4B,WASXu4B,cAAe,SAAU/G,GAEN5qB,SAAX4qB,IAAwBA,KAE5B,KAAK,GAAIpxB,GAAI,EAAGA,EAAIjD,KAAKk7B,QAAQh4B,OAAQD,IAEN,gBAApBjD,MAAKk7B,QAAQj4B,IAEpBoxB,EAAOtwB,KAAK/D,KAAKk7B,QAAQj4B,IACzBoxB,EAAOtwB,KAAK/D,KAAKk7B,QAAQj4B,EAAI,IAC7BA,MAIAoxB,EAAOtwB,KAAK/D,KAAKk7B,QAAQj4B,GAAGoC,GAC5BgvB,EAAOtwB,KAAK/D,KAAKk7B,QAAQj4B,GAAGqC,GAIpC,OAAO+uB,IAUXgH,QAAS,WAIL,MAFAr7B,MAAKk7B,QAAUl7B,KAAKo7B,gBAEbp7B,MAYX4yB,MAAO,SAAUyB,GAEb,GAAIsG,GAAS36B,KAAKk7B,QAAQ9L,OAW1B,OATe3lB,UAAX4qB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/L,GAAO0S,QAAQL,GAI5BtG,EAAON,MAAM4G,GAGVtG,GAYXC,SAAU,SAAUjvB,EAAGC,GAOnB,IAAK,GAHDpC,GAASlD,KAAKk7B,QAAQh4B,OACtBo4B,GAAS,EAEJr4B,EAAI,GAAIa,EAAIZ,EAAS,IAAKD,EAAIC,EAAQY,EAAIb,EACnD,CACI,GAAIs4B,GAAKv7B,KAAKk7B,QAAQj4B,GAAGoC,EACrBm2B,EAAKx7B,KAAKk7B,QAAQj4B,GAAGqC,EAErBm2B,EAAKz7B,KAAKk7B,QAAQp3B,GAAGuB,EACrBq2B,EAAK17B,KAAKk7B,QAAQp3B,GAAGwB,GAEbA,GAANk2B,GAAeE,EAAJp2B,GAAkBA,GAANo2B,GAAeF,EAAJl2B,KAAkBm2B,EAAKF,IAAOj2B,EAAIk2B,IAAOE,EAAKF,GAAMD,EAAvCl2B,IAEjDi2B,GAAUA,GAIlB,MAAOA,IAsBXvH,MAAO,SAAU4G,GAKb,GAHA36B,KAAKi7B,KAAO,EACZj7B,KAAKk7B,WAEDxL,UAAUxsB,OAAS,EACvB,CAESvC,MAAMuR,QAAQyoB,KAEfA,EAASh6B,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,WAMxC,KAAK,GAHDjN,GAAKkZ,OAAOC,UAGP34B,EAAI,EAAGitB,EAAMyK,EAAOz3B,OAAYgtB,EAAJjtB,EAASA,IAC9C,CACI,GAAyB,gBAAd03B,GAAO13B,GAClB,CACI,GAAIuB,GAAI,GAAIvE,MAAKmB,MAAMu5B,EAAO13B,GAAI03B,EAAO13B,EAAI,GAC7CA,SAIA,IAAIuB,GAAI,GAAIvE,MAAKmB,MAAMu5B,EAAO13B,GAAGoC,EAAGs1B,EAAO13B,GAAGqC,EAGlDtF,MAAKk7B,QAAQn3B,KAAKS,GAGdA,EAAEc,EAAImd,IAENA,EAAKje,EAAEc,GAIftF,KAAK67B,cAAcpZ,GAGvB,MAAOziB,OAYX67B,cAAe,SAAUpZ,GAOrB,IAAK,GALDqZ,GACAC,EACAC,EACAr1B,EAEK1D,EAAI,EAAGitB,EAAMlwB,KAAKk7B,QAAQh4B,OAAYgtB,EAAJjtB,EAASA,IAEhD64B,EAAK97B,KAAKk7B,QAAQj4B,GAId84B,EAFA94B,IAAMitB,EAAM,EAEPlwB,KAAKk7B,QAAQ,GAIbl7B,KAAKk7B,QAAQj4B,EAAI,GAG1B+4B,GAAcF,EAAGx2B,EAAImd,GAAOsZ,EAAGz2B,EAAImd,IAAO,EAC1C9b,EAAQm1B,EAAGz2B,EAAI02B,EAAG12B,EAClBrF,KAAKi7B,MAAQe,EAAYr1B,CAG7B,OAAO3G,MAAKi7B,OAMpB3S,EAAO0S,QAAQn4B,UAAUC,YAAcwlB,EAAO0S,QAW9C53B,OAAOC,eAAeilB,EAAO0S,QAAQn4B,UAAW,UAE5CS,IAAK,WACD,MAAOtD,MAAKk7B,SAGhB13B,IAAK,SAASm3B,GAEI,MAAVA,EAEA36B,KAAK+zB,MAAM4G,GAKX36B,KAAK+zB,WAQjB9zB,KAAK+6B,QAAU1S,EAAO0S,QAmBtB1S,EAAO9lB,UAAY,SAAU6C,EAAGC,EAAGqB,EAAOC,GAEtCvB,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACTqB,EAAQA,GAAS,EACjBC,EAASA,GAAU,EAKnB5G,KAAKqF,EAAIA,EAKTrF,KAAKsF,EAAIA,EAKTtF,KAAK2G,MAAQA,EAKb3G,KAAK4G,OAASA,EAMd5G,KAAK+U,KAAOuT,EAAOkG,WAIvBlG,EAAO9lB,UAAUK,WASbwW,OAAQ,SAAU1L,EAAIE,GAKlB,MAHA7N,MAAKqF,GAAKsI,EACV3N,KAAKsF,GAAKuI,EAEH7N,MAUX00B,YAAa,SAAUC,GAEnB,MAAO30B,MAAKqZ,OAAOsb,EAAMtvB,EAAGsvB,EAAMrvB,IAatCyuB,MAAO,SAAU1uB,EAAGC,EAAGqB,EAAOC,GAO1B,MALA5G,MAAKqF,EAAIA,EACTrF,KAAKsF,EAAIA,EACTtF,KAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,EAEP5G,MAYXqB,MAAO,SAAUgE,EAAGC,GAOhB,MALUmE,UAANnE,IAAmBA,EAAID,GAE3BrF,KAAK2G,OAAStB,EACdrF,KAAK4G,QAAUtB,EAERtF,MAYX62B,SAAU,SAAUxxB,EAAGC,GAKnB,MAHAtF,MAAKi8B,QAAU52B,EACfrF,KAAKk8B,QAAU52B,EAERtF,MAQXivB,MAAO,WAEHjvB,KAAKqF,EAAIxE,KAAKouB,MAAMjvB,KAAKqF,GACzBrF,KAAKsF,EAAIzE,KAAKouB,MAAMjvB,KAAKsF,IAQ7B62B,SAAU,WAENn8B,KAAKqF,EAAIxE,KAAKouB,MAAMjvB,KAAKqF,GACzBrF,KAAKsF,EAAIzE,KAAKouB,MAAMjvB,KAAKsF,GACzBtF,KAAK2G,MAAQ9F,KAAKouB,MAAMjvB,KAAK2G,OAC7B3G,KAAK4G,OAAS/F,KAAKouB,MAAMjvB,KAAK4G,SAQlCiB,KAAM,WAEF7H,KAAKqF,EAAIxE,KAAKgH,KAAK7H,KAAKqF,GACxBrF,KAAKsF,EAAIzE,KAAKgH,KAAK7H,KAAKsF,IAQ5B82B,QAAS,WAELp8B,KAAKqF,EAAIxE,KAAKgH,KAAK7H,KAAKqF,GACxBrF,KAAKsF,EAAIzE,KAAKgH,KAAK7H,KAAKsF,GACxBtF,KAAK2G,MAAQ9F,KAAKgH,KAAK7H,KAAK2G,OAC5B3G,KAAK4G,OAAS/F,KAAKgH,KAAK7H,KAAK4G,SAUjCotB,SAAU,SAAUxlB,GAEhB,MAAOxO,MAAK+zB,MAAMvlB,EAAOnJ,EAAGmJ,EAAOlJ,EAAGkJ,EAAO7H,MAAO6H,EAAO5H,SAU/DqtB,OAAQ,SAAUC,GAOd,MALAA,GAAK7uB,EAAIrF,KAAKqF,EACd6uB,EAAK5uB,EAAItF,KAAKsF,EACd4uB,EAAKvtB,MAAQ3G,KAAK2G,MAClButB,EAAKttB,OAAS5G,KAAK4G,OAEZstB,GAWXmI,QAAS,SAAU1uB,EAAIE,GAEnB,MAAOya,GAAO9lB,UAAU65B,QAAQr8B,KAAM2N,EAAIE,IAU9CmT,KAAM,SAAUqT,GAEZ,MAAO/L,GAAO9lB,UAAUwe,KAAKhhB,KAAMq0B,IAavCtsB,OAAQ,SAAUpB,EAAOC,GAKrB,MAHA5G,MAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,EAEP5G,MAUX4yB,MAAO,SAAUyB,GAEb,MAAO/L,GAAO9lB,UAAUowB,MAAM5yB,KAAMq0B,IAWxCC,SAAU,SAAUjvB,EAAGC,GAEnB,MAAOgjB,GAAO9lB,UAAU8xB,SAASt0B,KAAMqF,EAAGC,IAW9Cg3B,aAAc,SAAU33B,GAEpB,MAAO2jB,GAAO9lB,UAAU85B,aAAa33B,EAAG3E,OAW5C80B,OAAQ,SAAUnwB,GAEd,MAAO2jB,GAAO9lB,UAAUsyB,OAAO90B,KAAM2E,IAWzC43B,aAAc,SAAU53B,EAAGivB,GAEvB,MAAOtL,GAAO9lB,UAAU+5B,aAAav8B,KAAM2E,EAAGivB,IAYlDmB,WAAY,SAAUpwB,GAElB,MAAO2jB,GAAO9lB,UAAUuyB,WAAW/0B,KAAM2E,IAe7C63B,cAAe,SAAUtK,EAAMD,EAAO2C,EAAKC,EAAQ4H,GAE/C,MAAOnU,GAAO9lB,UAAUg6B,cAAcx8B,KAAMkyB,EAAMD,EAAO2C,EAAKC,EAAQ4H,IAW1EC,MAAO,SAAU/3B,EAAGivB,GAEhB,MAAOtL,GAAO9lB,UAAUk6B,MAAM18B,KAAM2E,EAAGivB,IAY3C1C,OAAQ,SAAU0C,GAOd,MALYnqB,UAARmqB,IAAqBA,EAAM,GAAItL,GAAOlnB,OAE1CwyB,EAAIvuB,EAAIrF,KAAK28B,QACb/I,EAAItuB,EAAItF,KAAK48B,QAENhJ,GASXrM,SAAU,WAEN,MAAO,kBAAoBvnB,KAAKqF,EAAI,MAAQrF,KAAKsF,EAAI,UAAYtF,KAAK2G,MAAQ,WAAa3G,KAAK4G,OAAS,UAAY5G,KAAK68B,MAAQ,QAW1Iz5B,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,aAE9CS,IAAK,WACD,MAAOzC,MAAKuzB,MAAMp0B,KAAK2G,MAAQ,MAUvCvD,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,cAE9CS,IAAK,WACD,MAAOzC,MAAKuzB,MAAMp0B,KAAK4G,OAAS,MAUxCxD,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,UAE9CS,IAAK,WACD,MAAOtD,MAAKsF,EAAItF,KAAK4G,QAGzBpD,IAAK,SAAUC,GAEPA,GAASzD,KAAKsF,EAEdtF,KAAK4G,OAAS,EAId5G,KAAK4G,OAASnD,EAAQzD,KAAKsF,KAYvClC,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,cAE9CS,IAAK,WACD,MAAO,IAAIglB,GAAOlnB,MAAMpB,KAAKqF,EAAGrF,KAAK60B,SAGzCrxB,IAAK,SAAUC,GACXzD,KAAKqF,EAAI5B,EAAM4B,EACfrF,KAAK60B,OAASpxB,EAAM6B,KAU5BlC,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,eAE9CS,IAAK,WACD,MAAO,IAAIglB,GAAOlnB,MAAMpB,KAAKiyB,MAAOjyB,KAAK60B,SAG7CrxB,IAAK,SAAUC,GACXzD,KAAKiyB,MAAQxuB,EAAM4B,EACnBrF,KAAK60B,OAASpxB,EAAM6B,KAU5BlC,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,QAE9CS,IAAK,WACD,MAAOtD,MAAKqF,GAGhB7B,IAAK,SAAUC,GACPA,GAASzD,KAAKiyB,MACdjyB,KAAK2G,MAAQ,EAEb3G,KAAK2G,MAAQ3G,KAAKiyB,MAAQxuB,EAE9BzD,KAAKqF,EAAI5B,KAUjBL,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,SAE9CS,IAAK,WACD,MAAOtD,MAAKqF,EAAIrF,KAAK2G,OAGzBnD,IAAK,SAAUC,GACPA,GAASzD,KAAKqF,EACdrF,KAAK2G,MAAQ,EAEb3G,KAAK2G,MAAQlD,EAAQzD,KAAKqF,KAYtCjC,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,UAE9CS,IAAK,WACD,MAAOtD,MAAK2G,MAAQ3G,KAAK4G,UAWjCxD,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,aAE9CS,IAAK,WACD,MAAqB,GAAbtD,KAAK2G,MAA4B,EAAd3G,KAAK4G,UAUxCxD,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAOtD,MAAKqF,EAAIrF,KAAKm1B,WAGzB3xB,IAAK,SAAUC,GACXzD,KAAKqF,EAAI5B,EAAQzD,KAAKm1B,aAU9B/xB,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAOtD,MAAKsF,EAAItF,KAAKq1B,YAGzB7xB,IAAK,SAAUC,GACXzD,KAAKsF,EAAI7B,EAAQzD,KAAKq1B,cAW9BjyB,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,WAE9CS,IAAK,WAED,MAAOtD,MAAKqF,EAAKxE,KAAKqwB,SAAWlxB,KAAK2G,SAY9CvD,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,WAE9CS,IAAK,WAED,MAAOtD,MAAKsF,EAAKzE,KAAKqwB,SAAWlxB,KAAK4G,UAY9CxD,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,OAE9CS,IAAK,WACD,MAAOtD,MAAKsF,GAGhB9B,IAAK,SAAUC,GACPA,GAASzD,KAAK60B,QACd70B,KAAK4G,OAAS,EACd5G,KAAKsF,EAAI7B,GAETzD,KAAK4G,OAAU5G,KAAK60B,OAASpxB,KAWzCL,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,WAE9CS,IAAK,WACD,MAAO,IAAIglB,GAAOlnB,MAAMpB,KAAKqF,EAAGrF,KAAKsF,IAGzC9B,IAAK,SAAUC,GACXzD,KAAKqF,EAAI5B,EAAM4B,EACfrF,KAAKsF,EAAI7B,EAAM6B,KAUvBlC,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,YAE9CS,IAAK,WACD,MAAO,IAAIglB,GAAOlnB,MAAMpB,KAAKqF,EAAIrF,KAAK2G,MAAO3G,KAAKsF,IAGtD9B,IAAK,SAAUC,GACXzD,KAAKiyB,MAAQxuB,EAAM4B,EACnBrF,KAAKsF,EAAI7B,EAAM6B,KAWvBlC,OAAOC,eAAeilB,EAAO9lB,UAAUK,UAAW,SAE9CS,IAAK,WACD,OAAStD,KAAK2G,QAAU3G,KAAK4G,QAGjCpD,IAAK,SAAUC,GAEPA,KAAU,GAEVzD,KAAK+zB,MAAM,EAAG,EAAG,EAAG,MAOhCzL,EAAO9lB,UAAUK,UAAUC,YAAcwlB,EAAO9lB,UAUhD8lB,EAAO9lB,UAAU65B,QAAU,SAAU33B,EAAGiJ,EAAIE,GAOxC,MALAnJ,GAAEW,GAAKsI,EACPjJ,EAAEiC,OAAS,EAAIgH,EACfjJ,EAAEY,GAAKuI,EACPnJ,EAAEkC,QAAU,EAAIiH,EAETnJ,GAWX4jB,EAAO9lB,UAAUs6B,aAAe,SAAUp4B,EAAGiwB,GAEzC,MAAOrM,GAAO9lB,UAAU65B,QAAQ33B,EAAGiwB,EAAMtvB,EAAGsvB,EAAMrvB,IAWtDgjB,EAAO9lB,UAAUwe,KAAO,SAAUtc,EAAG2vB,GAWjC,MATe5qB,UAAX4qB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/L,GAAOlnB,MAAMsD,EAAEiC,MAAOjC,EAAEkC,QAIrCytB,EAAON,MAAMrvB,EAAEiC,MAAOjC,EAAEkC,QAGrBytB,GAWX/L,EAAO9lB,UAAUowB,MAAQ,SAAUluB,EAAG2vB,GAWlC,MATe5qB,UAAX4qB,GAAmC,OAAXA,EAExBA,EAAS,GAAI/L,GAAO9lB,UAAUkC,EAAEW,EAAGX,EAAEY,EAAGZ,EAAEiC,MAAOjC,EAAEkC,QAInDytB,EAAON,MAAMrvB,EAAEW,EAAGX,EAAEY,EAAGZ,EAAEiC,MAAOjC,EAAEkC,QAG/BytB,GAYX/L,EAAO9lB,UAAU8xB,SAAW,SAAU5vB,EAAGW,EAAGC,GAExC,MAAIZ,GAAEiC,OAAS,GAAKjC,EAAEkC,QAAU,GAErB,EAGHvB,GAAKX,EAAEW,GAAKA,EAAIX,EAAEutB,OAAS3sB,GAAKZ,EAAEY,GAAKA,EAAIZ,EAAEmwB,QAezDvM,EAAO9lB,UAAUu6B,YAAc,SAAUC,EAAIC,EAAIC,EAAIC,EAAI93B,EAAGC,GAExD,MAAQD,IAAK23B,GAAWA,EAAKE,EAAV73B,GAAiBC,GAAK23B,GAAWA,EAAKE,EAAV73B,GAWnDgjB,EAAO9lB,UAAU46B,cAAgB,SAAU14B,EAAGiwB,GAE1C,MAAOrM,GAAO9lB,UAAU8xB,SAAS5vB,EAAGiwB,EAAMtvB,EAAGsvB,EAAMrvB,IAYvDgjB,EAAO9lB,UAAU85B,aAAe,SAAU53B,EAAGC,GAGzC,MAAID,GAAE24B,OAAS14B,EAAE04B,QAEN,EAGH34B,EAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAEutB,MAAQttB,EAAEstB,OAASvtB,EAAEmwB,OAASlwB,EAAEkwB,QAY1EvM,EAAO9lB,UAAUsyB,OAAS,SAAUpwB,EAAGC,GAEnC,MAAQD,GAAEW,GAAKV,EAAEU,GAAKX,EAAEY,GAAKX,EAAEW,GAAKZ,EAAEiC,OAAShC,EAAEgC,OAASjC,EAAEkC,QAAUjC,EAAEiC,QAW5E0hB,EAAO9lB,UAAU86B,eAAiB,SAAU54B,EAAGC,GAE3C,MAAQD,GAAEiC,QAAUhC,EAAEgC,OAASjC,EAAEkC,SAAWjC,EAAEiC,QAYlD0hB,EAAO9lB,UAAU+5B,aAAe,SAAU73B,EAAGC,EAAG0vB,GAe5C,MAbe5qB,UAAX4qB,IAEAA,EAAS,GAAI/L,GAAO9lB,WAGpB8lB,EAAO9lB,UAAUuyB,WAAWrwB,EAAGC,KAE/B0vB,EAAOhvB,EAAIxE,KAAK+G,IAAIlD,EAAEW,EAAGV,EAAEU,GAC3BgvB,EAAO/uB,EAAIzE,KAAK+G,IAAIlD,EAAEY,EAAGX,EAAEW,GAC3B+uB,EAAO1tB,MAAQ9F,KAAKq2B,IAAIxyB,EAAEutB,MAAOttB,EAAEstB,OAASoC,EAAOhvB,EACnDgvB,EAAOztB,OAAS/F,KAAKq2B,IAAIxyB,EAAEmwB,OAAQlwB,EAAEkwB,QAAUR,EAAO/uB,GAGnD+uB,GAYX/L,EAAO9lB,UAAUuyB,WAAa,SAAUrwB,EAAGC,GAEvC,MAAID,GAAEiC,OAAS,GAAKjC,EAAEkC,QAAU,GAAKjC,EAAEgC,OAAS,GAAKhC,EAAEiC,QAAU,GAEtD,IAGFlC,EAAEutB,MAAQttB,EAAEU,GAAKX,EAAEmwB,OAASlwB,EAAEW,GAAKZ,EAAEW,EAAIV,EAAEstB,OAASvtB,EAAEY,EAAIX,EAAEkwB,SAczEvM,EAAO9lB,UAAUg6B,cAAgB,SAAU93B,EAAGwtB,EAAMD,EAAO2C,EAAKC,EAAQ4H,GAIpE,MAFkBhzB,UAAdgzB,IAA2BA,EAAY,KAElCvK,EAAOxtB,EAAEutB,MAAQwK,GAAaxK,EAAQvtB,EAAEwtB,KAAOuK,GAAa7H,EAAMlwB,EAAEmwB,OAAS4H,GAAa5H,EAASnwB,EAAEkwB,IAAM6H,IAYxHnU,EAAO9lB,UAAUk6B,MAAQ,SAAUh4B,EAAGC,EAAG0vB,GAOrC,MALe5qB,UAAX4qB,IAEAA,EAAS,GAAI/L,GAAO9lB,WAGjB6xB,EAAON,MAAMlzB,KAAKq2B,IAAIxyB,EAAEW,EAAGV,EAAEU,GAAIxE,KAAKq2B,IAAIxyB,EAAEY,EAAGX,EAAEW,GAAIzE,KAAK+G,IAAIlD,EAAEutB,MAAOttB,EAAEstB,OAASpxB,KAAKq2B,IAAIxyB,EAAEwtB,KAAMvtB,EAAEutB,MAAOrxB,KAAK+G,IAAIlD,EAAEmwB,OAAQlwB,EAAEkwB,QAAUh0B,KAAKq2B,IAAIxyB,EAAEkwB,IAAKjwB,EAAEiwB,OAaxKtM,EAAO9lB,UAAU+6B,KAAO,SAAS5C,EAAQ/G,GAEzBnqB,SAARmqB,IACAA,EAAM,GAAItL,GAAO9lB,UAGrB,IAAI20B,GAAOwE,OAAO6B,UACdvG,EAAO0E,OAAOC,UACdvE,EAAOsE,OAAO6B,UACdpG,EAAOuE,OAAOC,SAoBlB,OAlBAjB,GAAO5K,QAAQ,SAAS4E,GAChBA,EAAMtvB,EAAI8xB,IACVA,EAAOxC,EAAMtvB,GAEbsvB,EAAMtvB,EAAI4xB,IACVA,EAAOtC,EAAMtvB,GAGbsvB,EAAMrvB,EAAI+xB,IACVA,EAAO1C,EAAMrvB,GAEbqvB,EAAMrvB,EAAI8xB,IACVA,EAAOzC,EAAMrvB,KAIrBsuB,EAAIG,MAAMkD,EAAMG,EAAMD,EAAOF,EAAMI,EAAOD,GAEnCxD,GAIX3zB,KAAKuC,UAAY8lB,EAAO9lB,UACxBvC,KAAK8F,eAAiB,GAAIuiB,GAAO9lB,UAAU,EAAG,EAAG,EAAG,GAqBpD8lB,EAAOmV,iBAAmB,SAASp4B,EAAGC,EAAGqB,EAAOC,EAAQktB,GAE1CrqB,SAANpE,IAAmBA,EAAI,GACjBoE,SAANnE,IAAmBA,EAAI,GACbmE,SAAV9C,IAAuBA,EAAQ,GACpB8C,SAAX7C,IAAwBA,EAAS,GACtB6C,SAAXqqB,IAAwBA,EAAS,IAKrC9zB,KAAKqF,EAAIA,EAKTrF,KAAKsF,EAAIA,EAKTtF,KAAK2G,MAAQA,EAKb3G,KAAK4G,OAASA,EAKd5G,KAAK8zB,OAASA,GAAU,GAMxB9zB,KAAK+U,KAAOuT,EAAOsG,kBAGvBtG,EAAOmV,iBAAiB56B,WASpB+vB,MAAO,WAEH,MAAO,IAAItK,GAAOmV,iBAAiBz9B,KAAKqF,EAAGrF,KAAKsF,EAAGtF,KAAK2G,MAAO3G,KAAK4G,OAAQ5G,KAAK8zB,SAYrFQ,SAAU,SAAUjvB,EAAGC,GAEnB,GAAItF,KAAK2G,OAAS,GAAK3G,KAAK4G,QAAU,EAElC,OAAO,CAGX,IAAI8F,GAAK1M,KAAKqF,CAEd,IAAIA,GAAKqH,GAAMrH,GAAKqH,EAAK1M,KAAK2G,MAC9B,CACI,GAAIgG,GAAK3M,KAAKsF,CAEd,IAAIA,GAAKqH,GAAMrH,GAAKqH,EAAK3M,KAAK4G,OAE1B,OAAO,EAIf,OAAO,IAMf0hB,EAAOmV,iBAAiB56B,UAAUC,YAAcwlB,EAAOmV,iBAGvDx9B,KAAKw9B,iBAAmBnV,EAAOmV,iBAqB/BnV,EAAOoV,OAAS,SAAUx9B,EAAM0V,EAAIvQ,EAAGC,EAAGqB,EAAOC,GAK7C5G,KAAKE,KAAOA,EAKZF,KAAKyE,MAAQvE,EAAKuE,MAMlBzE,KAAK4V,GAAK,EASV5V,KAAK+Y,KAAO,GAAIuP,GAAO9lB,UAAU6C,EAAGC,EAAGqB,EAAOC,GAS9C5G,KAAKwG,OAAS,GAAI8hB,GAAO9lB,UAAU6C,EAAGC,EAAGqB,EAAOC,GAKhD5G,KAAK29B,SAAW,KAMhB39B,KAAKyB,SAAU,EAMfzB,KAAK49B,SAAU,EAKf59B,KAAK69B,SAAYx4B,GAAG,EAAOC,GAAG,GAM9BtF,KAAKiE,OAAS,KAKdjE,KAAKkb,cAAgB,KAKrBlb,KAAKqB,MAAQ,KAMbrB,KAAK89B,YAAc,EAMnB99B,KAAK+9B,gBAAkB,GAAIzV,GAAOlnB,MAOlCpB,KAAKg+B,MAAQ,EAObh+B,KAAKi+B,UAAY,GAAI3V,GAAOlnB,OAQhCknB,EAAOoV,OAAOQ,cAAgB,EAM9B5V,EAAOoV,OAAOS,kBAAoB,EAMlC7V,EAAOoV,OAAOU,eAAiB,EAM/B9V,EAAOoV,OAAOW,qBAAuB,EAErC/V,EAAOoV,OAAO76B,WAOVsD,UAAW,WAEPnG,KAAK89B,YAAc,GAcvBQ,OAAQ,SAAUr6B,EAAQoX,GAER5R,SAAV4R,IAAuBA,EAAQiN,EAAOoV,OAAOQ,eAEjDl+B,KAAKiE,OAASA,CAEd,IAAIs6B,EAEJ,QAAQljB,GAEJ,IAAKiN,GAAOoV,OAAOS,kBACf,GAAI5mB,GAAIvX,KAAK2G,MAAQ,EACjBkc,EAAI7iB,KAAK4G,OAAS,CACtB5G,MAAK29B,SAAW,GAAIrV,GAAO9lB,WAAWxC,KAAK2G,MAAQ4Q,GAAK,GAAIvX,KAAK4G,OAASic,GAAK,EAAQ,IAAJA,EAAUtL,EAAGsL,EAChG,MAEJ,KAAKyF,GAAOoV,OAAOU,eACfG,EAAS19B,KAAK+G,IAAI5H,KAAK2G,MAAO3G,KAAK4G,QAAU,EAC7C5G,KAAK29B,SAAW,GAAIrV,GAAO9lB,WAAWxC,KAAK2G,MAAQ43B,GAAU,GAAIv+B,KAAK4G,OAAS23B,GAAU,EAAGA,EAAQA,EACpG,MAEJ,KAAKjW,GAAOoV,OAAOW,qBACfE,EAAS19B,KAAK+G,IAAI5H,KAAK2G,MAAO3G,KAAK4G,QAAU,EAC7C5G,KAAK29B,SAAW,GAAIrV,GAAO9lB,WAAWxC,KAAK2G,MAAQ43B,GAAU,GAAIv+B,KAAK4G,OAAS23B,GAAU,EAAGA,EAAQA,EACpG,MAEJ,KAAKjW,GAAOoV,OAAOQ,cACfl+B,KAAK29B,SAAW,IAChB,MAEJ,SACI39B,KAAK29B,SAAW,OAW5Ba,SAAU,WAENx+B,KAAKiE,OAAS,MASlBw6B,QAAS,SAAUvjB,GAEflb,KAAK0+B,YAAY79B,KAAKuzB,MAAMlZ,EAAc7V,EAAIrF,KAAK+Y,KAAKoc,WAAYt0B,KAAKuzB,MAAMlZ,EAAc5V,EAAItF,KAAK+Y,KAAKsc,cAU/GsJ,UAAW,SAAUt5B,EAAGC,GAEpBtF,KAAK0+B,YAAY79B,KAAKuzB,MAAM/uB,EAAIrF,KAAK+Y,KAAKoc,WAAYt0B,KAAKuzB,MAAM9uB,EAAItF,KAAK+Y,KAAKsc,cAQnFuJ,OAAQ,WAEA5+B,KAAKiE,QAELjE,KAAK6+B,eAGL7+B,KAAKwG,QAELxG,KAAK8+B,cAGL9+B,KAAK49B,SAEL59B,KAAK+Y,KAAKkW,QAGdjvB,KAAKkb,cAAc/Z,SAASkE,GAAKrF,KAAK+Y,KAAK1T,EAC3CrF,KAAKkb,cAAc/Z,SAASmE,GAAKtF,KAAK+Y,KAAKzT,GAS/Cu5B,aAAc,WAEV7+B,KAAK+9B,gBAAgB/J,SAASh0B,KAAKiE,QAE/BjE,KAAKiE,OAAOrC,QAEZ5B,KAAK+9B,gBAAgB9E,SAASj5B,KAAKiE,OAAOrC,OAAOG,eAAe2C,EAAG1E,KAAKiE,OAAOrC,OAAOG,eAAe8C,GAGrG7E,KAAK29B,UAEL39B,KAAKg+B,MAAQh+B,KAAK+9B,gBAAgB14B,EAAIrF,KAAK+Y,KAAK1T,EAE5CrF,KAAKg+B,MAAQh+B,KAAK29B,SAASzL,KAE3BlyB,KAAK+Y,KAAK1T,EAAIrF,KAAK+9B,gBAAgB14B,EAAIrF,KAAK29B,SAASzL,KAEhDlyB,KAAKg+B,MAAQh+B,KAAK29B,SAAS1L,QAEhCjyB,KAAK+Y,KAAK1T,EAAIrF,KAAK+9B,gBAAgB14B,EAAIrF,KAAK29B,SAAS1L,OAGzDjyB,KAAKg+B,MAAQh+B,KAAK+9B,gBAAgBz4B,EAAItF,KAAK+Y,KAAKzT,EAE5CtF,KAAKg+B,MAAQh+B,KAAK29B,SAAS/I,IAE3B50B,KAAK+Y,KAAKzT,EAAItF,KAAK+9B,gBAAgBz4B,EAAItF,KAAK29B,SAAS/I,IAEhD50B,KAAKg+B,MAAQh+B,KAAK29B,SAAS9I,SAEhC70B,KAAK+Y,KAAKzT,EAAItF,KAAK+9B,gBAAgBz4B,EAAItF,KAAK29B,SAAS9I,UAKzD70B,KAAK+Y,KAAK1T,EAAIrF,KAAK+9B,gBAAgB14B,EAAIrF,KAAK+Y,KAAKoc,UACjDn1B,KAAK+Y,KAAKzT,EAAItF,KAAK+9B,gBAAgBz4B,EAAItF,KAAK+Y,KAAKsc,aASzD0J,iBAAkB,WAEV/+B,KAAKwG,QAELxG,KAAKwG,OAAOwtB,SAASh0B,KAAKE,KAAKuE,MAAM+B,SAS7Cs4B,YAAa,WAET9+B,KAAK69B,QAAQx4B,GAAI,EACjBrF,KAAK69B,QAAQv4B,GAAI,EAGbtF,KAAK+Y,KAAK1T,GAAKrF,KAAKwG,OAAOnB,EAAIrF,KAAKqB,MAAMgE,IAE1CrF,KAAK69B,QAAQx4B,GAAI,EACjBrF,KAAK+Y,KAAK1T,EAAIrF,KAAKwG,OAAOnB,EAAIrF,KAAKqB,MAAMgE,GAGzCrF,KAAK+Y,KAAKkZ,OAASjyB,KAAKwG,OAAOyrB,MAAQjyB,KAAKqB,MAAMgE,IAElDrF,KAAK69B,QAAQx4B,GAAI,EACjBrF,KAAK+Y,KAAK1T,EAAKrF,KAAKwG,OAAOyrB,MAAQjyB,KAAKqB,MAAMgE,EAAKrF,KAAK2G,OAGxD3G,KAAK+Y,KAAKzT,GAAKtF,KAAKwG,OAAOouB,IAAM50B,KAAKqB,MAAMiE,IAE5CtF,KAAK69B,QAAQv4B,GAAI,EACjBtF,KAAK+Y,KAAKzT,EAAItF,KAAKwG,OAAOouB,IAAM50B,KAAKqB,MAAMiE,GAG3CtF,KAAK+Y,KAAK8b,QAAU70B,KAAKwG,OAAOquB,OAAS70B,KAAKqB,MAAMiE,IAEpDtF,KAAK69B,QAAQv4B,GAAI,EACjBtF,KAAK+Y,KAAKzT,EAAKtF,KAAKwG,OAAOquB,OAAS70B,KAAKqB,MAAMiE,EAAKtF,KAAK4G,SAajE83B,YAAa,SAAUr5B,EAAGC,GAEtBtF,KAAK+Y,KAAK1T,EAAIA,EACdrF,KAAK+Y,KAAKzT,EAAIA,EAEVtF,KAAKwG,QAELxG,KAAK8+B,eAYbE,QAAS,SAAUr4B,EAAOC,GAEtB5G,KAAK+Y,KAAKpS,MAAQA,EAClB3G,KAAK+Y,KAAKnS,OAASA,GASvBq4B,MAAO,WAEHj/B,KAAKiE,OAAS,KACdjE,KAAK+Y,KAAK1T,EAAI,EACdrF,KAAK+Y,KAAKzT,EAAI,IAMtBgjB,EAAOoV,OAAO76B,UAAUC,YAAcwlB,EAAOoV,OAO7Ct6B,OAAOC,eAAeilB,EAAOoV,OAAO76B,UAAW,KAE3CS,IAAK,WACD,MAAOtD,MAAK+Y,KAAK1T,GAGrB7B,IAAK,SAAUC,GAEXzD,KAAK+Y,KAAK1T,EAAI5B,EAEVzD,KAAKwG,QAELxG,KAAK8+B,iBAWjB17B,OAAOC,eAAeilB,EAAOoV,OAAO76B,UAAW,KAE3CS,IAAK,WACD,MAAOtD,MAAK+Y,KAAKzT,GAGrB9B,IAAK,SAAUC,GAEXzD,KAAK+Y,KAAKzT,EAAI7B,EAEVzD,KAAKwG,QAELxG,KAAK8+B,iBAWjB17B,OAAOC,eAAeilB,EAAOoV,OAAO76B,UAAW,YAE3CS,IAAK,WAED,MADAtD,MAAKi+B,UAAUz6B,IAAIxD,KAAK+Y,KAAKkjB,QAASj8B,KAAK+Y,KAAKmjB,SACzCl8B,KAAKi+B,WAGhBz6B,IAAK,SAAUC,GAEY,mBAAZA,GAAM4B,IAAqBrF,KAAK+Y,KAAK1T,EAAI5B,EAAM4B,GACnC,mBAAZ5B,GAAM6B,IAAqBtF,KAAK+Y,KAAKzT,EAAI7B,EAAM6B,GAEtDtF,KAAKwG,QAELxG,KAAK8+B,iBAWjB17B,OAAOC,eAAeilB,EAAOoV,OAAO76B,UAAW,SAE3CS,IAAK,WACD,MAAOtD,MAAK+Y,KAAKpS,OAGrBnD,IAAK,SAAUC,GACXzD,KAAK+Y,KAAKpS,MAAQlD,KAU1BL,OAAOC,eAAeilB,EAAOoV,OAAO76B,UAAW,UAE3CS,IAAK,WACD,MAAOtD,MAAK+Y,KAAKnS,QAGrBpD,IAAK,SAAUC,GACXzD,KAAK+Y,KAAKnS,OAASnD,KAkB3B6kB,EAAO4W,MAAQ,WAKXl/B,KAAKE,KAAO,KAKZF,KAAK0U,IAAM,GAKX1U,KAAK82B,IAAM,KAKX92B,KAAKm/B,KAAO,KAKZn/B,KAAKo/B,OAAS,KAKdp/B,KAAKq/B,MAAQ,KAKbr/B,KAAKs/B,MAAQ,KAKbt/B,KAAKu/B,KAAO,KAKZv/B,KAAKw/B,KAAO,KAKZx/B,KAAKy/B,MAAQ,KAKbz/B,KAAKqB,MAAQ,KAKbrB,KAAK6B,MAAQ,KAKb7B,KAAK0/B,KAAO,KAKZ1/B,KAAK2/B,OAAS,KAKd3/B,KAAKyE,MAAQ,KAKbzE,KAAK4/B,UAAY,KAKjB5/B,KAAK6/B,QAAU,KAKf7/B,KAAK8/B,IAAM,MAIfxX,EAAO4W,MAAMr8B,WASTiR,KAAM,aAUNisB,QAAS,aAQTC,WAAY,aASZC,WAAY,aASZ73B,OAAQ,aAURw2B,OAAQ,aAQRsB,UAAW,aAUXp5B,OAAQ,aAQRiB,OAAQ,aAQRo4B,OAAQ,aAQRC,QAAS,aAQTC,YAAa,aAQbC,SAAU,cAKdhY,EAAO4W,MAAMr8B,UAAUC,YAAcwlB,EAAO4W,MAkB5C5W,EAAOiY,aAAe,SAAUrgC,EAAMsgC,GAKlCxgC,KAAKE,KAAOA,EAKZF,KAAKygC,UAMLzgC,KAAK0gC,cAAgB,KAEO,mBAAjBF,IAAiD,OAAjBA,IAEvCxgC,KAAK0gC,cAAgBF,GAOzBxgC,KAAK2gC,aAAc,EAMnB3gC,KAAK4gC,aAAc,EAMnB5gC,KAAK6gC,UAAW,EAMhB7gC,KAAK8gC,SAML9gC,KAAK8wB,QAAU,GAcf9wB,KAAK+gC,cAAgB,GAAIzY,GAAO0Y,OAMhChhC,KAAKihC,eAAiB,KAMtBjhC,KAAKkhC,kBAAoB,KAMzBlhC,KAAKmhC,iBAAmB,KAMxBnhC,KAAKohC,iBAAmB,KAMxBphC,KAAKqhC,iBAAmB,KAMxBrhC,KAAKshC,iBAAmB,KAMxBthC,KAAKuhC,oBAAsB,KAM3BvhC,KAAKwhC,qBAAuB,KAM5BxhC,KAAKyhC,qBAAuB,KAM5BzhC,KAAK0hC,iBAAmB,KAMxB1hC,KAAK2hC,kBAAoB,KAMzB3hC,KAAK4hC,sBAAwB,KAM7B5hC,KAAK6hC,mBAAqB,MAI9BvZ,EAAOiY,aAAa19B,WAOhBi/B,KAAM,WAEF9hC,KAAKE,KAAK6hC,QAAQjL,IAAI92B,KAAKgiC,MAAOhiC,MAClCA,KAAKE,KAAK+hC,SAASnL,IAAI92B,KAAKkiC,OAAQliC,MAET,OAAvBA,KAAK0gC,eAAwD,gBAAvB1gC,MAAK0gC,eAE3C1gC,KAAK82B,IAAI,UAAW92B,KAAK0gC,eAAe,IAehD5J,IAAK,SAAUpiB,EAAKytB,EAAOC,GAEL34B,SAAd24B,IAA2BA,GAAY,EAE3C,IAAIC,EA8BJ,OA5BIF,aAAiB7Z,GAAO4W,MAExBmD,EAAWF,EAEW,gBAAVA,IAEZE,EAAWF,EACXE,EAASniC,KAAOF,KAAKE,MAEC,kBAAViiC,KAEZE,EAAW,GAAIF,GAAMniC,KAAKE,OAG9BF,KAAKygC,OAAO/rB,GAAO2tB,EAEfD,IAEIpiC,KAAKE,KAAKoiC,SAEVtiC,KAAKoL,MAAMsJ,GAIX1U,KAAK0gC,cAAgBhsB,GAItB2tB,GASXxxB,OAAQ,SAAU6D,GAEV1U,KAAK8wB,UAAYpc,IAEjB1U,KAAKuiC,gBAAkB,KAEvBviC,KAAKihC,eAAiB,KACtBjhC,KAAK6hC,mBAAqB,KAE1B7hC,KAAKkhC,kBAAoB,KACzBlhC,KAAKyhC,qBAAuB,KAC5BzhC,KAAKwhC,qBAAuB,KAC5BxhC,KAAKmhC,iBAAmB,KACxBnhC,KAAKohC,iBAAmB,KACxBphC,KAAKuhC,oBAAsB,KAC3BvhC,KAAKqhC,iBAAmB,KACxBrhC,KAAKshC,iBAAmB,KACxBthC,KAAK0hC,iBAAmB,KACxB1hC,KAAK2hC,kBAAoB,KACzB3hC,KAAK4hC,sBAAwB,YAG1B5hC,MAAKygC,OAAO/rB,IAavBtJ,MAAO,SAAUsJ,EAAK8tB,EAAYC,GAEXh5B,SAAf+4B,IAA4BA,GAAa,GAC1B/4B,SAAfg5B,IAA4BA,GAAa,GAEzCziC,KAAK0iC,WAAWhuB,KAGhB1U,KAAK0gC,cAAgBhsB,EACrB1U,KAAK2gC,YAAc6B,EACnBxiC,KAAK4gC,YAAc6B,EAEf/S,UAAUxsB,OAAS,IAEnBlD,KAAK8gC,MAAQngC,MAAMkC,UAAU+F,OAAOlD,KAAKgqB,UAAW,MAchEiT,QAAS,SAAUH,EAAYC,GAERh5B,SAAf+4B,IAA4BA,GAAa,GAC1B/4B,SAAfg5B,IAA4BA,GAAa,GAG7CziC,KAAK0gC,cAAgB1gC,KAAK8wB,QAC1B9wB,KAAK2gC,YAAc6B,EACnBxiC,KAAK4gC,YAAc6B,EAEf/S,UAAUxsB,OAAS,IAEnBlD,KAAK8gC,MAAQngC,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,UAAW,KAU3DkT,MAAO,aAQPz8B,UAAW,WAEP,GAAInG,KAAK0gC,eAAiB1gC,KAAKE,KAAKoiC,SACpC,CACI,GAAIO,GAAmB7iC,KAAK8wB,OAS5B,IANA9wB,KAAK8iC,oBAEL9iC,KAAK+iC,gBAAgB/iC,KAAK0gC,eAE1B1gC,KAAK+gC,cAAciC,SAAShjC,KAAK8wB,QAAS+R,GAEtC7iC,KAAK8wB,UAAY9wB,KAAK0gC,cAEtB,MAIA1gC,MAAK0gC,cAAgB,KAKrB1gC,KAAKkhC,mBAELlhC,KAAKE,KAAKq/B,KAAKN,OAAM,GACrBj/B,KAAKkhC,kBAAkBx7B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,MAGb,IAAtCF,KAAKE,KAAKq/B,KAAK0D,oBAAkE,IAAtCjjC,KAAKE,KAAKq/B,KAAK2D,mBAE1DljC,KAAKmjC,eAKLnjC,KAAKE,KAAKq/B,KAAKn0B,SAMnBpL,KAAKmjC,iBAYjBL,kBAAmB,WAEX9iC,KAAK8wB,UAED9wB,KAAK6hC,oBAEL7hC,KAAK6hC,mBAAmBn8B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,MAG5DF,KAAKE,KAAKy/B,OAAOyD,YAEjBpjC,KAAKE,KAAKk/B,OAAOH,QAEjBj/B,KAAKE,KAAKo/B,MAAML,OAAM,GAEtBj/B,KAAKE,KAAK2/B,QAAQ9kB,QAElB/a,KAAKE,KAAKw/B,KAAK0D,YAEfpjC,KAAKE,KAAKmB,MAAM49B,MAAMj/B,KAAK2gC,aAEvB3gC,KAAKE,KAAKmjC,OAEVrjC,KAAKE,KAAKmjC,MAAMpE,QAGhBj/B,KAAK2gC,cAEL3gC,KAAKE,KAAKuE,MAAM67B,WAEZtgC,KAAK4gC,aAEL5gC,KAAKE,KAAKm/B,MAAMt8B,aAchC2/B,WAAY,SAAUhuB,GAElB,MAAI1U,MAAKygC,OAAO/rB,GAER1U,KAAKygC,OAAO/rB,GAAc,SAAK1U,KAAKygC,OAAO/rB,GAAa,QAAK1U,KAAKygC,OAAO/rB,GAAa,QAAK1U,KAAKygC,OAAO/rB,GAAa,QAE7G,GAIPhC,QAAQ2d,KAAK,gIACN,IAKX3d,QAAQ2d,KAAK,sDAAwD3b,IAC9D,IAYf4uB,KAAM,SAAU5uB,GAEZ1U,KAAKygC,OAAO/rB,GAAKxU,KAAOF,KAAKE,KAC7BF,KAAKygC,OAAO/rB,GAAKoiB,IAAM92B,KAAKE,KAAK42B,IACjC92B,KAAKygC,OAAO/rB,GAAKyqB,KAAOn/B,KAAKE,KAAKi/B,KAClCn/B,KAAKygC,OAAO/rB,GAAK0qB,OAASp/B,KAAKE,KAAKk/B,OACpCp/B,KAAKygC,OAAO/rB,GAAK2qB,MAAQr/B,KAAKE,KAAKm/B,MACnCr/B,KAAKygC,OAAO/rB,GAAK4qB,MAAQt/B,KAAKE,KAAKo/B,MACnCt/B,KAAKygC,OAAO/rB,GAAK6qB,KAAOv/B,KAAKE,KAAKq/B,KAClCv/B,KAAKygC,OAAO/rB,GAAK8qB,KAAOx/B,KAAKE,KAAKs/B,KAClCx/B,KAAKygC,OAAO/rB,GAAK+qB,MAAQz/B,KAAKE,KAAKu/B,MACnCz/B,KAAKygC,OAAO/rB,GAAKrT,MAAQrB,KAAKE,KAAKmB,MACnCrB,KAAKygC,OAAO/rB,GAAKytB,MAAQniC,KACzBA,KAAKygC,OAAO/rB,GAAK7S,MAAQ7B,KAAKE,KAAK2B,MACnC7B,KAAKygC,OAAO/rB,GAAKgrB,KAAO1/B,KAAKE,KAAKw/B,KAClC1/B,KAAKygC,OAAO/rB,GAAKirB,OAAS3/B,KAAKE,KAAKy/B,OACpC3/B,KAAKygC,OAAO/rB,GAAKjQ,MAAQzE,KAAKE,KAAKuE,MACnCzE,KAAKygC,OAAO/rB,GAAKkrB,UAAY5/B,KAAKE,KAAK0/B,UACvC5/B,KAAKygC,OAAO/rB,GAAKorB,IAAM9/B,KAAKE,KAAK4/B,IACjC9/B,KAAKygC,OAAO/rB,GAAKmrB,QAAU7/B,KAAKE,KAAK2/B,QACrC7/B,KAAKygC,OAAO/rB,GAAKA,IAAMA,GAW3B6uB,OAAQ,SAAU7uB,GAEV1U,KAAKygC,OAAO/rB,KAEZ1U,KAAKygC,OAAO/rB,GAAKxU,KAAO,KACxBF,KAAKygC,OAAO/rB,GAAKoiB,IAAM,KACvB92B,KAAKygC,OAAO/rB,GAAKyqB,KAAO,KACxBn/B,KAAKygC,OAAO/rB,GAAK0qB,OAAS,KAC1Bp/B,KAAKygC,OAAO/rB,GAAK2qB,MAAQ,KACzBr/B,KAAKygC,OAAO/rB,GAAK4qB,MAAQ,KACzBt/B,KAAKygC,OAAO/rB,GAAK6qB,KAAO,KACxBv/B,KAAKygC,OAAO/rB,GAAK8qB,KAAO,KACxBx/B,KAAKygC,OAAO/rB,GAAK+qB,MAAQ,KACzBz/B,KAAKygC,OAAO/rB,GAAKrT,MAAQ,KACzBrB,KAAKygC,OAAO/rB,GAAKytB,MAAQ,KACzBniC,KAAKygC,OAAO/rB,GAAK7S,MAAQ,KACzB7B,KAAKygC,OAAO/rB,GAAKgrB,KAAO,KACxB1/B,KAAKygC,OAAO/rB,GAAKirB,OAAS,KAC1B3/B,KAAKygC,OAAO/rB,GAAKjQ,MAAQ,KACzBzE,KAAKygC,OAAO/rB,GAAKkrB,UAAY,KAC7B5/B,KAAKygC,OAAO/rB,GAAKorB,IAAM,KACvB9/B,KAAKygC,OAAO/rB,GAAKmrB,QAAU,OAYnCkD,gBAAiB,SAAUruB,GAEvB1U,KAAKuiC,gBAAkBviC,KAAKygC,OAAO/rB,GAEnC1U,KAAKsjC,KAAK5uB,GAGV1U,KAAKihC,eAAiBjhC,KAAKygC,OAAO/rB,GAAW,MAAK1U,KAAK4iC,MAEvD5iC,KAAKkhC,kBAAoBlhC,KAAKygC,OAAO/rB,GAAc,SAAK,KACxD1U,KAAKyhC,qBAAuBzhC,KAAKygC,OAAO/rB,GAAiB,YAAK,KAC9D1U,KAAKwhC,qBAAuBxhC,KAAKygC,OAAO/rB,GAAiB,YAAK,KAC9D1U,KAAKmhC,iBAAmBnhC,KAAKygC,OAAO/rB,GAAa,QAAK,KACtD1U,KAAKohC,iBAAmBphC,KAAKygC,OAAO/rB,GAAa,QAAK,KACtD1U,KAAKuhC,oBAAsBvhC,KAAKygC,OAAO/rB,GAAgB,WAAK,KAC5D1U,KAAKqhC,iBAAmBrhC,KAAKygC,OAAO/rB,GAAa,QAAK,KACtD1U,KAAKshC,iBAAmBthC,KAAKygC,OAAO/rB,GAAa,QAAK,KACtD1U,KAAK0hC,iBAAmB1hC,KAAKygC,OAAO/rB,GAAa,QAAK,KACtD1U,KAAK2hC,kBAAoB3hC,KAAKygC,OAAO/rB,GAAc,SAAK,KACxD1U,KAAK4hC,sBAAwB5hC,KAAKygC,OAAO/rB,GAAkB,aAAK,KAGhE1U,KAAK6hC,mBAAqB7hC,KAAKygC,OAAO/rB,GAAe,UAAK1U,KAAK4iC,MAG1C,KAAjB5iC,KAAK8wB,SAEL9wB,KAAKE,KAAK2/B,QAAQZ,QAGtBj/B,KAAK8wB,QAAUpc,EACf1U,KAAK6gC,UAAW,EAGhB7gC,KAAKihC,eAAeh6B,MAAMjH,KAAKuiC,gBAAiBviC,KAAK8gC,OAGjDpsB,IAAQ1U,KAAK0gC,gBAEb1gC,KAAK8gC,UAGT9gC,KAAKE,KAAKsjC,YAAa,GAW3BC,gBAAiB,WACb,MAAOzjC,MAAKygC,OAAOzgC,KAAK8wB,UAO5BqS,aAAc,WAGNnjC,KAAK6gC,YAAa,GAAS7gC,KAAKwhC,sBAEhCxhC,KAAKwhC,qBAAqB97B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,MAG1DF,KAAK6gC,YAAa,GAAS7gC,KAAKmhC,kBAEhCnhC,KAAK6gC,UAAW,EAChB7gC,KAAKmhC,iBAAiBz7B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,OAItDF,KAAK6gC,UAAW,GASxBmB,MAAO,WAEChiC,KAAK6gC,UAAY7gC,KAAK0hC,kBAEtB1hC,KAAK0hC,iBAAiBh8B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,OAS9DgiC,OAAQ,WAEAliC,KAAK6gC,UAAY7gC,KAAK2hC,mBAEtB3hC,KAAK2hC,kBAAkBj8B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,OAS/D0+B,OAAQ,WAEA5+B,KAAK6gC,SAED7gC,KAAKohC,kBAELphC,KAAKohC,iBAAiB17B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,MAKtDF,KAAKwhC,sBAELxhC,KAAKwhC,qBAAqB97B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,OAUtEmgC,YAAa,WAELrgC,KAAK6gC,SAED7gC,KAAK4hC,uBAEL5hC,KAAK4hC,sBAAsBl8B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,MAK3DF,KAAKwhC,sBAELxhC,KAAKwhC,qBAAqB97B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,OAWtEggC,UAAW,SAAUwD,GAEb1jC,KAAK6gC,UAAY7gC,KAAKuhC,qBAEtBvhC,KAAKuhC,oBAAoB77B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,KAAMwjC,IASvE37B,OAAQ,SAAUpB,EAAOC,GAEjB5G,KAAKshC,kBAELthC,KAAKshC,iBAAiB57B,KAAK1F,KAAKuiC,gBAAiB57B,EAAOC,IAShEE,OAAQ,WAEA9G,KAAK6gC,SAED7gC,KAAKqhC,mBAEDrhC,KAAKE,KAAKyjC,aAAerb,EAAOoE,QAEhC1sB,KAAKE,KAAKkN,QAAQ0Z,OAClB9mB,KAAKE,KAAKkN,QAAQW,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC9C/N,KAAKqhC,iBAAiB37B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,MACtDF,KAAKE,KAAKkN,QAAQ+Z,WAIlBnnB,KAAKqhC,iBAAiB37B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,OAM1DF,KAAKyhC,sBAELzhC,KAAKyhC,qBAAqB/7B,KAAK1F,KAAKuiC,gBAAiBviC,KAAKE,OAWtE6C,QAAS,WAEL/C,KAAK2gC,aAAc,EACnB3gC,KAAK4gC,aAAc,EAEnB5gC,KAAK8iC,oBAEL9iC,KAAKuiC,gBAAkB,KAEvBviC,KAAKihC,eAAiB,KACtBjhC,KAAK6hC,mBAAqB,KAE1B7hC,KAAKkhC,kBAAoB,KACzBlhC,KAAKyhC,qBAAuB,KAC5BzhC,KAAKwhC,qBAAuB,KAC5BxhC,KAAKmhC,iBAAmB,KACxBnhC,KAAKohC,iBAAmB,KACxBphC,KAAKqhC,iBAAmB,KACxBrhC,KAAK0hC,iBAAmB,KACxB1hC,KAAK2hC,kBAAoB,KACzB3hC,KAAK4hC,sBAAwB,KAE7B5hC,KAAKE,KAAO,KACZF,KAAKygC,UACLzgC,KAAK0gC,cAAgB,KACrB1gC,KAAK8wB,QAAU,KAMvBxI,EAAOiY,aAAa19B,UAAUC,YAAcwlB,EAAOiY,aAOnDn9B,OAAOC,eAAeilB,EAAOiY,aAAa19B,UAAW,WAEjDS,IAAK,WAED,MAAOtD,MAAK6gC,YAyBpBvY,EAAO0Y,OAAS,aAGhB1Y,EAAO0Y,OAAOn+B,WAMV+gC,UAAW,KAMXC,YAAa,KAUbC,UAAU,EAMVC,kBAAkB,EAUlBC,QAAQ,EAMRC,gBAAgB,EAQhBC,iBAAkB,SAAUC,EAAUC,GAElC,GAAwB,kBAAbD,GAEP,KAAM,IAAIt7B,OAAM,kFAAkFmqB,QAAQ,OAAQoR,KAc1HC,kBAAmB,SAAUF,EAAUG,EAAQC,EAAiBC,EAAUjV,GAEtE,GACIkV,GADAC,EAAY1kC,KAAK2kC,iBAAiBR,EAAUI,EAGhD,IAAkB,KAAdG,GAIA,GAFAD,EAAUzkC,KAAK4jC,UAAUc,GAErBD,EAAQH,WAAaA,EAErB,KAAM,IAAIz7B,OAAM,kBAAoBy7B,EAAS,GAAK,QAAU,eAAkBA,EAAc,OAAL,IAAe,qEAK1GG,GAAU,GAAInc,GAAOsc,cAAc5kC,KAAMmkC,EAAUG,EAAQC,EAAiBC,EAAUjV,GACtFvvB,KAAK6kC,YAAYJ,EAQrB,OALIzkC,MAAK8jC,UAAY9jC,KAAK6jC,aAEtBY,EAAQK,QAAQ9kC,KAAK6jC,aAGlBY,GASXI,YAAa,SAAUJ,GAEdzkC,KAAK4jC,YAEN5jC,KAAK4jC,aAIT,IAAImB,GAAI/kC,KAAK4jC,UAAU1gC,MAEvB,GACI6hC,WAEG/kC,KAAK4jC,UAAUmB,IAAMN,EAAQO,WAAahlC,KAAK4jC,UAAUmB,GAAGC,UAEnEhlC,MAAK4jC,UAAUh7B,OAAOm8B,EAAI,EAAG,EAAGN,IAWpCE,iBAAkB,SAAUR,EAAU/2B,GAElC,IAAKpN,KAAK4jC,UAEN,MAAO,EAGKn6B,UAAZ2D,IAAyBA,EAAU,KAKvC,KAHA,GACI63B,GADAF,EAAI/kC,KAAK4jC,UAAU1gC,OAGhB6hC,KAIH,GAFAE,EAAMjlC,KAAK4jC,UAAUmB,GAEjBE,EAAIC,YAAcf,GAAYc,EAAI73B,UAAYA,EAE9C,MAAO23B,EAIf,OAAO,IAYXI,IAAK,SAAUhB,EAAU/2B,GAErB,MAAoD,KAA7CpN,KAAK2kC,iBAAiBR,EAAU/2B,IA4B3C0pB,IAAK,SAAUqN,EAAUI,EAAiBC,GAEtCxkC,KAAKkkC,iBAAiBC,EAAU,MAEhC,IAAI5U,KAEJ,IAAIG,UAAUxsB,OAAS,EAEnB,IAAK,GAAID,GAAI,EAAGA,EAAIysB,UAAUxsB,OAAQD,IAElCssB,EAAKxrB,KAAK2rB,UAAUzsB,GAI5B,OAAOjD,MAAKqkC,kBAAkBF,GAAU,EAAOI,EAAiBC,EAAUjV,IAiB9E6V,QAAS,SAAUjB,EAAUI,EAAiBC,GAE1CxkC,KAAKkkC,iBAAiBC,EAAU,UAEhC,IAAI5U,KAEJ,IAAIG,UAAUxsB,OAAS,EAEnB,IAAK,GAAID,GAAI,EAAGA,EAAIysB,UAAUxsB,OAAQD,IAElCssB,EAAKxrB,KAAK2rB,UAAUzsB,GAI5B,OAAOjD,MAAKqkC,kBAAkBF,GAAU,EAAMI,EAAiBC,EAAUjV,IAY7E1e,OAAQ,SAAUszB,EAAU/2B,GAExBpN,KAAKkkC,iBAAiBC,EAAU,SAEhC,IAAIlhC,GAAIjD,KAAK2kC,iBAAiBR,EAAU/2B,EAQxC,OANU,KAANnK,IAEAjD,KAAK4jC,UAAU3gC,GAAGoiC,WAClBrlC,KAAK4jC,UAAUh7B,OAAO3F,EAAG,IAGtBkhC,GAUXf,UAAW,SAAUh2B,GAIjB,GAFgB3D,SAAZ2D,IAAyBA,EAAU,MAElCpN,KAAK4jC,UAAV,CAOA,IAFA,GAAImB,GAAI/kC,KAAK4jC,UAAU1gC,OAEhB6hC,KAEC33B,EAEIpN,KAAK4jC,UAAUmB,GAAG33B,UAAYA,IAE9BpN,KAAK4jC,UAAUmB,GAAGM,WAClBrlC,KAAK4jC,UAAUh7B,OAAOm8B,EAAG,IAK7B/kC,KAAK4jC,UAAUmB,GAAGM,UAIrBj4B,KAEDpN,KAAK4jC,UAAU1gC,OAAS,KAWhCoiC,gBAAiB,WAEb,MAAOtlC,MAAK4jC,UAAY5jC,KAAK4jC,UAAU1gC,OAAS,GAYpDqiC,KAAM,WAEFvlC,KAAK+jC,kBAAmB,GAY5Bf,SAAU,WAEN,GAAKhjC,KAAKgkC,QAAWhkC,KAAK4jC,UAA1B,CAKA,GAEI4B,GAFAC,EAAY9kC,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,WACvCqV,EAAI/kC,KAAK4jC,UAAU1gC,MAQvB,IALIlD,KAAK8jC,WAEL9jC,KAAK6jC,YAAc4B,GAGlBV,EAAL,CAMAS,EAAWxlC,KAAK4jC,UAAUxU,QAC1BpvB,KAAK+jC,kBAAmB,CAIxB,GACIgB,WAEGS,EAAST,IAAM/kC,KAAK+jC,kBAAoByB,EAAST,GAAGD,QAAQW,MAAe,MAStFC,OAAQ,WAEA1lC,KAAK6jC,cAEL7jC,KAAK6jC,YAAc,OAa3B8B,QAAS,WAEL3lC,KAAKojC,YAELpjC,KAAK4jC,UAAY,KACb5jC,KAAK6jC,cAEL7jC,KAAK6jC,YAAc,OAW3Btc,SAAU,WAEN,MAAO,yBAA0BvnB,KAAKgkC,OAAQ,iBAAkBhkC,KAAKslC,kBAAmB,MAehGliC,OAAOC,eAAeilB,EAAO0Y,OAAOn+B,UAAW,iBAE3CS,IAAK,WACD,GAAIsiC,GAAQ5lC,IACZ,OAAOA,MAAKikC,iBAAmBjkC,KAAKikC,eAAiB,WACjD,MAAO2B,GAAM5C,SAAS/7B,MAAM2+B,EAAOlW,gBAM/CpH,EAAO0Y,OAAOn+B,UAAUC,YAAcwlB,EAAO0Y,OAuB7C1Y,EAAOsc,cAAgB,SAAUiB,EAAQ1B,EAAUG,EAAQC,EAAiBC,EAAUjV,GAMlFvvB,KAAKklC,UAAYf,EAEbG,IAEAtkC,KAAK8lC,SAAU,GAGI,MAAnBvB,IAEAvkC,KAAKoN,QAAUm3B,GAOnBvkC,KAAK+lC,QAAUF,EAEXrB,IAEAxkC,KAAKglC,UAAYR,GAGjBjV,GAAQA,EAAKrsB,SAEblD,KAAK8gC,MAAQvR,IAKrBjH,EAAOsc,cAAc/hC,WAKjBuK,QAAS,KAMT04B,SAAS,EAMTd,UAAW,EAMXlE,MAAO,KAKPkF,UAAW,EAOXhC,QAAQ,EAORiC,OAAQ,KASRnB,QAAS,SAASW,GAEd,GAAIS,GAAeD,CAqBnB,OAnBIjmC,MAAKgkC,QAAYhkC,KAAKklC,YAEtBe,EAASjmC,KAAKimC,OAASjmC,KAAKimC,OAAOxW,OAAOgW,GAAaA,EAEnDzlC,KAAK8gC,QAELmF,EAASA,EAAOxW,OAAOzvB,KAAK8gC,QAGhCoF,EAAgBlmC,KAAKklC,UAAUj+B,MAAMjH,KAAKoN,QAAS64B,GAEnDjmC,KAAKgmC,YAEDhmC,KAAK8lC,SAEL9lC,KAAKmmC,UAIND,GAUXC,OAAQ,WACJ,MAAOnmC,MAAKomC,UAAYpmC,KAAK+lC,QAAQl1B,OAAO7Q,KAAKklC,UAAWllC,KAAKoN,SAAW,MAOhFg5B,QAAS,WACL,QAAUpmC,KAAK+lC,WAAa/lC,KAAKklC,WAOrCZ,OAAQ,WACJ,MAAOtkC,MAAK8lC,SAOhBO,YAAa,WACT,MAAOrmC,MAAKklC,WAOhBoB,UAAW,WACP,MAAOtmC,MAAK+lC,SAQhBV,SAAU,iBACCrlC,MAAK+lC,cACL/lC,MAAKklC,gBACLllC,MAAKoN,SAOhBma,SAAU,WACN,MAAO,gCAAkCvnB,KAAK8lC,QAAS,aAAc9lC,KAAKomC,UAAW,YAAcpmC,KAAKgkC,OAAS,MAKzH1b,EAAOsc,cAAc/hC,UAAUC,YAAcwlB,EAAOsc,cAoBpDtc,EAAOie,OAAS,SAAUrmC,EAAMyU,EAAU5B,GAKtC/S,KAAKE,KAAOA,EAMZF,KAAK+U,KAAOuT,EAAO2F,aAQnBjuB,KAAK4D,QAAU5D,MAMfA,KAAK2hB,WAML3hB,KAAK4T,OAAQ,EAMb5T,KAAK8kB,QAAU,EAKf9kB,KAAKwmC,UAAY,GAAIle,GAAOlnB,KAM5B,IAAIyD,GAAI,GAAI4hC,KAoBZ,IAfAzmC,KAAK2U,UAEDtO,YAAc0O,KAAM,KAAMtR,OAAS4B,EAAG,IAAKC,EAAG,MAC9Co6B,MAAQ3qB,KAAM,KAAMtR,MAAO,GAC3BijC,OAAS3xB,KAAM,KAAMtR,OAAS4B,EAAG,EAAKC,EAAG,IACzCqhC,MAAQ5xB,KAAM,MAAOtR,OAASoB,EAAE+hC,cAAgB/hC,EAAEgiC,WAAahiC,EAAEiiC,UAAyB,GAAdjiC,EAAEkiC,WAAiB,GAAsB,GAAjBliC,EAAEmiC,aAAoBniC,EAAEoiC,eAC5HC,YAAcnyB,KAAM,KAAMtR,MAAO,OACjC0jC,WAAapyB,KAAM,YAAatR,MAAO,KAAMoS,aAAeS,QAAQ,IACpE8wB,WAAaryB,KAAM,YAAatR,MAAO,KAAMoS,aAAeS,QAAQ,IACpE+wB,WAAatyB,KAAM,YAAatR,MAAO,KAAMoS,aAAeS,QAAQ,IACpEgxB,WAAavyB,KAAM,YAAatR,MAAO,KAAMoS,aAAeS,QAAQ,KAKpE3B,EAEA,IAAK,GAAID,KAAOC,GAEZ3U,KAAK2U,SAASD,GAAOC,EAASD,EAOtC1U,MAAK+S,YAAcA,GAAe,IAItCuV,EAAOie,OAAO1jC,WAMViR,KAAM,aAUNyzB,cAAe,SAAU5gC,EAAOC,GAE5B5G,KAAK2U,SAAStO,WAAW5C,MAAM4B,EAAIsB,EACnC3G,KAAK2U,SAAStO,WAAW5C,MAAM6B,EAAIsB,GASvCg4B,OAAQ,SAAU4I,GAEd,GAAuB,mBAAZA,GACX,CACI,GAAIniC,GAAImiC,EAAQniC,EAAIrF,KAAKE,KAAKyG,MAC1BrB,EAAI,EAAIkiC,EAAQliC,EAAItF,KAAKE,KAAK0G,QAE9BvB,IAAMrF,KAAKwmC,UAAUnhC,GAAKC,IAAMtF,KAAKwmC,UAAUlhC,KAE/CtF,KAAK2U,SAAS+xB,MAAMjjC,MAAM4B,EAAIA,EAAEoiC,QAAQ,GACxCznC,KAAK2U,SAAS+xB,MAAMjjC,MAAM6B,EAAIA,EAAEmiC,QAAQ,GACxCznC,KAAKwmC,UAAUhjC,IAAI6B,EAAGC,IAI9BtF,KAAK2U,SAAS+qB,KAAKj8B,MAAQzD,KAAKE,KAAKw/B,KAAKgI,uBAsB9CC,WAAY,SAAUtiC,EAAGC,EAAGqB,EAAOC,EAAQghC,EAASC,GAEhCp+B,SAAZm+B,IAAyBA,EAAU,GACvBn+B,SAAZo+B,IAAyBA,EAAU,GAEzBp+B,SAAV9C,GAAiC,OAAVA,EAEvB3G,KAAK2G,MAAQA,EAIbA,EAAQ3G,KAAK2G,MAGF8C,SAAX7C,GAAmC,OAAXA,EAExB5G,KAAK4G,OAASA,EAIdA,EAAS5G,KAAK4G,MAGlB,IAAIgjB,GAAQ5pB,KAAKE,KAAK42B,IAAIlN,MAAMvkB,EAAGC,EAAG,YAStC,OAPAskB,GAAMjjB,MAAQA,EACdijB,EAAMhjB,OAASA,EAEfgjB,EAAM1hB,OAAO1E,IAAIokC,EAASC,GAE1Bje,EAAM3hB,SAAYjI,MAEX4pB,GAQX7mB,QAAS,WAEL/C,KAAKE,KAAO,OAMpBooB,EAAOie,OAAO1jC,UAAUC,YAAcwlB,EAAOie,OAM7CnjC,OAAOC,eAAeilB,EAAOie,OAAO1jC,UAAW,SAE3CS,IAAK,WACD,MAAOtD,MAAK2U,SAAStO,WAAW5C,MAAM4B,GAG1C7B,IAAK,SAASC,GACVzD,KAAK2U,SAAStO,WAAW5C,MAAM4B,EAAI5B,KAS3CL,OAAOC,eAAeilB,EAAOie,OAAO1jC,UAAW,UAE3CS,IAAK,WACD,MAAOtD,MAAK2U,SAAStO,WAAW5C,MAAM6B,GAG1C9B,IAAK,SAASC,GACVzD,KAAK2U,SAAStO,WAAW5C,MAAM6B,EAAI7B,KAmB3C6kB,EAAOwf,OAAS,SAAU5nC,EAAM0B,GAEb6H,SAAX7H,IAAwBA,EAAS,MAKrC5B,KAAKE,KAAOA,EAKZF,KAAK4B,OAASA,EAMd5B,KAAKgkC,QAAS,EAMdhkC,KAAKyB,SAAU,EAMfzB,KAAK+nC,cAAe,EAMpB/nC,KAAKgoC,WAAY,EAMjBhoC,KAAKioC,eAAgB,EAMrBjoC,KAAKkoC,WAAY,EAMjBloC,KAAKmoC,eAAgB,GAIzB7f,EAAOwf,OAAOjlC,WAOVsD,UAAW,aAQXy4B,OAAQ,aAQR93B,OAAQ,aAQRshC,WAAY,aAOZrlC,QAAS,WAEL/C,KAAKE,KAAO,KACZF,KAAK4B,OAAS,KACd5B,KAAKgkC,QAAS,EACdhkC,KAAKyB,SAAU,IAMvB6mB,EAAOwf,OAAOjlC,UAAUC,YAAcwlB,EAAOwf,OAiB7Cxf,EAAO+f,cAAgB,SAASnoC,GAK5BF,KAAKE,KAAOA,EAKZF,KAAKsoC,WAMLtoC,KAAKuoC,KAAO,EAMZvoC,KAAKwoC,GAAK,GAIdlgB,EAAO+f,cAAcxlC,WAWjBi0B,IAAK,SAAU2R,GAEX,GAAIlZ,GAAO5uB,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,UAAW,GAC7C1e,GAAS,CA6Cb,OA1CsB,kBAAXy3B,GAEPA,EAAS,GAAIA,GAAOzoC,KAAKE,KAAMF,OAI/ByoC,EAAOvoC,KAAOF,KAAKE,KACnBuoC,EAAO7mC,OAAS5B,MAIe,kBAAxByoC,GAAkB,YAEzBA,EAAOV,cAAe,EACtB/2B,GAAS,GAGmB,kBAArBy3B,GAAe,SAEtBA,EAAOT,WAAY,EACnBh3B,GAAS,GAGuB,kBAAzBy3B,GAAmB,aAE1BA,EAAOR,eAAgB,EACvBj3B,GAAS,GAGmB,kBAArBy3B,GAAe,SAEtBA,EAAOP,WAAY,EACnBl3B,GAAS,GAGuB,kBAAzBy3B,GAAmB,aAE1BA,EAAON,eAAgB,EACvBn3B,GAAS,GAITA,IAEIy3B,EAAOV,cAAgBU,EAAOT,WAAaS,EAAOR,iBAElDQ,EAAOzE,QAAS,IAGhByE,EAAOP,WAAaO,EAAON,iBAE3BM,EAAOhnC,SAAU,GAGrBzB,KAAKuoC,KAAOvoC,KAAKsoC,QAAQvkC,KAAK0kC,GAGA,kBAAnBA,GAAa,MAEpBA,EAAO30B,KAAK7M,MAAMwhC,EAAQlZ,GAGvBkZ,GAIA,MAUf53B,OAAQ,SAAU43B,GAId,IAFAzoC,KAAKwoC,GAAKxoC,KAAKuoC,KAERvoC,KAAKwoC,MAER,GAAIxoC,KAAKsoC,QAAQtoC,KAAKwoC,MAAQC,EAK1B,MAHAA,GAAO1lC,UACP/C,KAAKsoC,QAAQ1/B,OAAO5I,KAAKwoC,GAAI,OAC7BxoC,MAAKuoC,QAYjBnF,UAAW,WAIP,IAFApjC,KAAKwoC,GAAKxoC,KAAKuoC,KAERvoC,KAAKwoC,MAERxoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIzlC,SAG1B/C,MAAKsoC,QAAQplC,OAAS,EACtBlD,KAAKuoC,KAAO,GAUhBpiC,UAAW,WAIP,IAFAnG,KAAKwoC,GAAKxoC,KAAKuoC,KAERvoC,KAAKwoC,MAEJxoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIxE,QAAUhkC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIT,cAEtD/nC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIriC,aAYlCy4B,OAAQ,WAIJ,IAFA5+B,KAAKwoC,GAAKxoC,KAAKuoC,KAERvoC,KAAKwoC,MAEJxoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIxE,QAAUhkC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIR,WAEtDhoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAI5J,UAalC8J,WAAY,WAIR,IAFA1oC,KAAKwoC,GAAKxoC,KAAKuoC,KAERvoC,KAAKwoC,MAEJxoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIxE,QAAUhkC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIP,eAEtDjoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIE,cAYlC5hC,OAAQ,WAIJ,IAFA9G,KAAKwoC,GAAKxoC,KAAKuoC,KAERvoC,KAAKwoC,MAEJxoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAI/mC,SAAWzB,KAAKsoC,QAAQtoC,KAAKwoC,IAAIN,WAEvDloC,KAAKsoC,QAAQtoC,KAAKwoC,IAAI1hC,UAYlCshC,WAAY,WAIR,IAFApoC,KAAKwoC,GAAKxoC,KAAKuoC,KAERvoC,KAAKwoC,MAEJxoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAI/mC,SAAWzB,KAAKsoC,QAAQtoC,KAAKwoC,IAAIL,eAEvDnoC,KAAKsoC,QAAQtoC,KAAKwoC,IAAIJ,cAWlCrlC,QAAS,WAEL/C,KAAKojC,YAELpjC,KAAKE,KAAO,OAMpBooB,EAAO+f,cAAcxlC,UAAUC,YAAcwlB,EAAO+f,cAiBpD/f,EAAOqgB,MAAQ,SAAUzoC,GAKrBF,KAAKE,KAAOA,EAEZD,KAAKkI,uBAAuBzC,KAAK1F,MAMjCA,KAAKyyB,KAAO,cAWZzyB,KAAK4oC,yBAA0B,EAM/B5oC,KAAK6oC,QAAS,EAOd7oC,KAAK+B,eAAiB,GAAI9B,MAAK+B,OAO/BhC,KAAK6B,MAAQ7B,KAKbA,KAAK8oC,qBAAuB,EAM5B9oC,KAAK+oC,WAAa,SAMlB/oC,KAAKgpC,UAAY,KAMjBhpC,KAAK4a,UAAaC,EAAG,EAAGC,EAAG,EAAGnW,EAAG,EAAGD,EAAG,EAAG6T,MAAO,EAAGqQ,KAAM,WAErD5oB,KAAKE,KAAKyY,cAGX3Y,KAAK4a,SAASlW,EAAI,GAGlBxE,EAAK+oC,QAELjpC,KAAKkpC,YAAYhpC,EAAK+oC,SAK9B3gB,EAAOqgB,MAAM9lC,UAAYO,OAAOgF,OAAOnI,KAAKkI,uBAAuBtF,WACnEylB,EAAOqgB,MAAM9lC,UAAUC,YAAcwlB,EAAOqgB,MAS5CrgB,EAAOqgB,MAAM9lC,UAAUqmC,YAAc,SAAUD,GAEvCA,EAAgC,0BAEhCjpC,KAAK4oC,wBAA0BK,EAAgC,yBAG/DA,EAAwB,iBAExBjpC,KAAKmpC,mBAAmBF,EAAwB,kBAUxD3gB,EAAOqgB,MAAM9lC,UAAUi/B,KAAO,WAE1BxZ,EAAO8gB,IAAIC,UAAUrpC,KAAKE,KAAKsQ,OAAQxQ,KAAKqZ,QAE5CiP,EAAOC,OAAO+gB,cAActpC,KAAKE,KAAKsQ,OAAQ,QAC9C8X,EAAOC,OAAOghB,eAAevpC,KAAKE,KAAKsQ,OAAQ,QAE/CxQ,KAAKwpC,mBAUTlhB,EAAOqgB,MAAM9lC,UAAUsD,UAAY,WAE/BnG,KAAK8oC,qBAAuB,CAG5B,KAAK,GAAI7lC,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAGkD,aAUzBmiB,EAAOqgB,MAAM9lC,UAAU+7B,OAAS,WAI5B,IAFA,GAAI37B,GAAIjD,KAAKgD,SAASE,OAEfD,KAEHjD,KAAKgD,SAASC,GAAG27B,UAazBtW,EAAOqgB,MAAM9lC,UAAU6lC,WAAa,WAEhC,GAAI1oC,KAAKE,KAAKuE,MAAM26B,OAAOn7B,OAC3B,CACIjE,KAAKE,KAAKuE,MAAM26B,OAAOn7B,OAAOykC,aAE9B1oC,KAAKE,KAAKuE,MAAM26B,OAAOR,QAIvB,KAFA,GAAI37B,GAAIjD,KAAKgD,SAASE,OAEfD,KAECjD,KAAKgD,SAASC,KAAOjD,KAAKE,KAAKuE,MAAM26B,OAAOn7B,QAE5CjE,KAAKgD,SAASC,GAAGylC,iBAK7B,CACI1oC,KAAKE,KAAKuE,MAAM26B,OAAOR,QAIvB,KAFA,GAAI37B,GAAIjD,KAAKgD,SAASE,OAEfD,KAEHjD,KAAKgD,SAASC,GAAGylC,eAY7BpgB,EAAOqgB,MAAM9lC,UAAU0B,gBAAkB,WAErCvE,KAAK8B,WAAa,CAElB,KAAK,GAAImB,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAGsB,mBAWzB+jB,EAAOqgB,MAAM9lC,UAAU2mC,gBAAkB,WAEP//B,SAA1BwG,SAASw5B,aAETzpC,KAAK+oC,WAAa,yBAEUt/B,SAAvBwG,SAASy5B,UAEd1pC,KAAK+oC,WAAa,sBAESt/B,SAAtBwG,SAAS05B,SAEd3pC,KAAK+oC,WAAa,qBAEOt/B,SAApBwG,SAAS25B,OAEd5pC,KAAK+oC,WAAa,mBAIlB/oC,KAAK+oC,WAAa;AAGtB,GAAInD,GAAQ5lC,IAEZA,MAAKgpC,UAAY,SAAUa,GACvB,MAAOjE,GAAMkE,iBAAiBD,IAI9B7pC,KAAK+oC,YAEL94B,SAAS85B,iBAAiB/pC,KAAK+oC,WAAY/oC,KAAKgpC,WAAW,GAG/Dv2B,OAAOu3B,OAAShqC,KAAKgpC,UACrBv2B,OAAOw3B,QAAUjqC,KAAKgpC,UAEtBv2B,OAAOy3B,WAAalqC,KAAKgpC,UACzBv2B,OAAO03B,WAAanqC,KAAKgpC,UAErBhpC,KAAKE,KAAKkqC,OAAOC,cAEjBC,SAASC,IAAIC,YAAYT,iBAAiB,WACtCzhB,EAAOqgB,MAAM9lC,UAAUinC,iBAAiBpkC,KAAKkgC,GAAS7wB,KAAM,YAGhEu1B,SAASC,IAAIE,YAAYV,iBAAiB,WACtCzhB,EAAOqgB,MAAM9lC,UAAUinC,iBAAiBpkC,KAAKkgC,GAAS7wB,KAAM,eAYxEuT,EAAOqgB,MAAM9lC,UAAUinC,iBAAmB,SAAUD,GAEhD,MAAmB,aAAfA,EAAM90B,MAAsC,SAAf80B,EAAM90B,MAAkC,aAAf80B,EAAM90B,MAAsC,UAAf80B,EAAM90B,UAEtE,aAAf80B,EAAM90B,MAAsC,SAAf80B,EAAM90B,KAEnC/U,KAAKE,KAAKwqC,UAAUb,IAEA,aAAfA,EAAM90B,MAAsC,UAAf80B,EAAM90B,OAExC/U,KAAKE,KAAKyqC,UAAUd,SAMxB7pC,KAAK4oC,0BAKL34B,SAAS25B,QAAU35B,SAASy5B,WAAaz5B,SAAS05B,UAAY15B,SAASw5B,cAA+B,UAAfI,EAAM90B,KAE7F/U,KAAKE,KAAK0qC,WAAWf,GAIrB7pC,KAAKE,KAAK2qC,YAAYhB,MAiB9BvhB,EAAOqgB,MAAM9lC,UAAUsmC,mBAAqB,SAAU5wB,GAE9CvY,KAAKE,KAAKyY,cAEd2P,EAAOwiB,MAAMC,aAAaxyB,EAAOvY,KAAK4a,UACtC0N,EAAOwiB,MAAME,YAAYhrC,KAAK4a,UAG9B5a,KAAK4a,SAASC,GAAK,IACnB7a,KAAK4a,SAASE,GAAK,IACnB9a,KAAK4a,SAASjW,GAAK,IACnB3E,KAAK4a,SAASlW,EAAI,IAStB4jB,EAAOqgB,MAAM9lC,UAAUE,QAAW,WAE1B/C,KAAK+oC,YAEL94B,SAASg7B,oBAAoBjrC,KAAK+oC,WAAY/oC,KAAKgpC,WAAW,GAGlEv2B,OAAOy3B,WAAa,KACpBz3B,OAAO03B,WAAa,KAEpB13B,OAAOu3B,OAAS,KAChBv3B,OAAOw3B,QAAU,MAQrB7mC,OAAOC,eAAeilB,EAAOqgB,MAAM9lC,UAAW,mBAE1CS,IAAK,WAED,MAAOtD,MAAK4a,SAASrC,OAIzB/U,IAAK,SAAU+U,GAEXvY,KAAKmpC,mBAAmB5wB,MAYhCnV,OAAOC,eAAeilB,EAAOqgB,MAAM9lC,UAAW,YAE1CS,IAAK,WAED,MAAOrD,MAAKwN,WAAWqY,UAAY7lB,KAAKwN,WAAWC,QAIvDlK,IAAK,SAAUC,GAEPA,EAEAxD,KAAKwN,WAAWqY,QAAU7lB,KAAKwN,WAAWC,OAI1CzN,KAAKwN,WAAWqY,QAAU7lB,KAAKwN,WAAW+N,WAgCtD8M,EAAO4iB,MAAQ,SAAUhrC,EAAM0B,EAAQ6wB,EAAM0Y,EAAYC,EAAYC,GAE9C5hC,SAAf0hC,IAA4BA,GAAa,GAC1B1hC,SAAf2hC,IAA4BA,GAAa,GACrB3hC,SAApB4hC,IAAiCA,EAAkB/iB,EAAOgjB,QAAQC,QAOtEvrC,KAAKE,KAAOA,EAEGuJ,SAAX7H,IAEAA,EAAS1B,EAAKuE,OAOlBzE,KAAKyyB,KAAOA,GAAQ,QAQpBzyB,KAAKsX,EAAI,EAETrX,KAAKkI,uBAAuBzC,KAAK1F,MAE7BmrC,GAEAnrC,KAAKE,KAAK2B,MAAM0G,SAASvI,MACzBA,KAAKsX,EAAItX,KAAKE,KAAK2B,MAAMmB,SAASE,QAI9BtB,IAEAA,EAAO2G,SAASvI,MAChBA,KAAKsX,EAAI1V,EAAOoB,SAASE,QASjClD,KAAK+U,KAAOuT,EAAOmF,MAMnBztB,KAAKwrC,YAAcljB,EAAOmF,MAO1BztB,KAAKyrC,OAAQ,EAObzrC,KAAK6oC,QAAS,EAOd7oC,KAAK0rC,eAAgB,EAYrB1rC,KAAK2rC,gBAAiB,EAWtB3rC,KAAK4rC,UAAYtjB,EAAO7gB,OAQxBzH,KAAK6rC,OAAS,KAQd7rC,KAAKorC,WAAaA,EASlBprC,KAAK8rC,iBAAkB,EAQvB9rC,KAAKqrC,gBAAkBA,EAkBvBrrC,KAAK+rC,qBAAuB,KAM5B/rC,KAAKgsC,UAAY,GAAI1jB,GAAO0Y,OAM5BhhC,KAAKisC,YAAc,EAUnBjsC,KAAKksC,eAAgB,EAOrBlsC,KAAKmsC,aAAe,GAAI7jB,GAAOlnB,MAa/BpB,KAAKosC,QAOLpsC,KAAKqsC,cAAgB,KAIzB/jB,EAAO4iB,MAAMroC,UAAYO,OAAOgF,OAAOnI,KAAKkI,uBAAuBtF,WACnEylB,EAAO4iB,MAAMroC,UAAUC,YAAcwlB,EAAO4iB,MAO5C5iB,EAAO4iB,MAAMoB,YAAc,EAO3BhkB,EAAO4iB,MAAMqB,aAAe,EAO5BjkB,EAAO4iB,MAAMsB,aAAe,EAO5BlkB,EAAO4iB,MAAMuB,eAAiB,GAO9BnkB,EAAO4iB,MAAMwB,gBAAkB,EAgB/BpkB,EAAO4iB,MAAMroC,UAAUi0B,IAAM,SAAUtuB,EAAOmkC,GAmC1C,MAjCeljC,UAAXkjC,IAAwBA,GAAS,GAEjCnkC,EAAM5G,SAAW5B,OAEbwI,EAAMokC,MAAQpkC,EAAM5G,QAEpB4G,EAAM5G,OAAOirC,eAAerkC,GAGhCA,EAAM8O,EAAItX,KAAKgD,SAASE,OAExBlD,KAAKuI,SAASC,GAEVxI,KAAKorC,YAA6B,OAAf5iC,EAAMokC,KAEzB5sC,KAAKE,KAAK2/B,QAAQxlB,OAAO7R,EAAOxI,KAAKqrC,iBAEhC7iC,EAAMokC,MAEX5sC,KAAK8sC,UAAUtkC,IAGdmkC,GAAUnkC,EAAMukC,QAEjBvkC,EAAMukC,OAAOC,wBAAwBxkC,EAAOxI,MAG5B,OAAhBA,KAAK6rC,SAEL7rC,KAAK6rC,OAASrjC,IAIfA,GAYX8f,EAAO4iB,MAAMroC,UAAUiqC,UAAY,SAAUtkC,GAEzC,GAAIA,EAAM5G,SAAW5B,KACrB,CACI,GAAI0I,GAAQ1I,KAAKosC,KAAKjjC,QAAQX,EAE9B,IAAc,KAAVE,EAGA,MADA1I,MAAKosC,KAAKroC,KAAKyE,IACR,EAIf,OAAO,GAYX8f,EAAO4iB,MAAMroC,UAAUgqC,eAAiB,SAAUrkC,GAE9C,GAAIA,EACJ,CACI,GAAIE,GAAQ1I,KAAKosC,KAAKjjC,QAAQX,EAE9B,IAAc,KAAVE,EAGA,MADA1I,MAAKosC,KAAKxjC,OAAOF,EAAO,IACjB,EAIf,OAAO,GAiBX4f,EAAO4iB,MAAMroC,UAAUoqC,YAAc,SAAUjqC,EAAU2pC,GAErD,GAAI3pC,YAAoBslB,GAAO4iB,MAE3BloC,EAASkqC,QAAQltC,KAAM2sC,OAEtB,IAAIhsC,MAAMuR,QAAQlP,GAEnB,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAASE,OAAQD,IAEjCjD,KAAK82B,IAAI9zB,EAASC,GAAI0pC,EAI9B,OAAO3pC,IAeXslB,EAAO4iB,MAAMroC,UAAUsqC,MAAQ,SAAU3kC,EAAOE,EAAOikC,GAmCnD,MAjCeljC,UAAXkjC,IAAwBA,GAAS,GAEjCnkC,EAAM5G,SAAW5B,OAEbwI,EAAMokC,MAAQpkC,EAAM5G,QAEpB4G,EAAM5G,OAAOirC,eAAerkC,GAGhCxI,KAAKyI,WAAWD,EAAOE,GAEvB1I,KAAKotC,UAEDptC,KAAKorC,YAA6B,OAAf5iC,EAAMokC,KAEzB5sC,KAAKE,KAAK2/B,QAAQxlB,OAAO7R,EAAOxI,KAAKqrC,iBAEhC7iC,EAAMokC,MAEX5sC,KAAK8sC,UAAUtkC,IAGdmkC,GAAUnkC,EAAMukC,QAEjBvkC,EAAMukC,OAAOC,wBAAwBxkC,EAAOxI,MAG5B,OAAhBA,KAAK6rC,SAEL7rC,KAAK6rC,OAASrjC,IAIfA,GAWX8f,EAAO4iB,MAAMroC,UAAUwqC,MAAQ,SAAU3kC,GAErC,MAAY,GAARA,GAAaA,GAAS1I,KAAKgD,SAASE,OAE7B,GAIAlD,KAAKsJ,WAAWZ,IAkB/B4f,EAAO4iB,MAAMroC,UAAUuF,OAAS,SAAU/C,EAAGC,EAAGoP,EAAK1I,EAAO68B,GAEzCp/B,SAAXo/B,IAAwBA,GAAS,EAErC,IAAIrgC,GAAQ,GAAIxI,MAAK4rC,UAAU5rC,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK1I,EAyBrD,OAvBAxD,GAAMqgC,OAASA,EACfrgC,EAAM/G,QAAUonC,EAChBrgC,EAAMijC,MAAQ5C,EAEdrgC,EAAM8O,EAAItX,KAAKgD,SAASE,OAExBlD,KAAKuI,SAASC,GAEVxI,KAAKorC,YAELprC,KAAKE,KAAK2/B,QAAQxlB,OAAO7R,EAAOxI,KAAKqrC,gBAAiBrrC,KAAK8rC,iBAG3DtjC,EAAMukC,QAENvkC,EAAMukC,OAAOC,wBAAwBxkC,EAAOxI,MAG5B,OAAhBA,KAAK6rC,SAEL7rC,KAAK6rC,OAASrjC,GAGXA,GAkBX8f,EAAO4iB,MAAMroC,UAAUyqC,eAAiB,SAAUC,EAAU74B,EAAK1I,EAAO68B,GAErDp/B,SAAXo/B,IAAwBA,GAAS,EAErC,KAAK,GAAI5lC,GAAI,EAAOsqC,EAAJtqC,EAAcA,IAE1BjD,KAAKoI,OAAO,EAAG,EAAGsM,EAAK1I,EAAO68B,IAatCvgB,EAAO4iB,MAAMroC,UAAUuqC,QAAU,WAI7B,IAFA,GAAInqC,GAAIjD,KAAKgD,SAASE,OAEfD,KAEHjD,KAAKgD,SAASC,GAAGqU,EAAIrU,GAc7BqlB,EAAO4iB,MAAMroC,UAAU2qC,YAAc,SAAU9kC,GAS3C,MAPce,UAAVf,IAAuBA,EAAQ,GAE/BA,EAAQ1I,KAAKgD,SAASE,OAAS,IAE/BwF,EAAQ,GAGR1I,KAAK6rC,QAEL7rC,KAAKisC,YAAcvjC,EACnB1I,KAAK6rC,OAAS7rC,KAAKgD,SAAShD,KAAKisC,aAC1BjsC,KAAK6rC,QAJhB,QAiBJvjB,EAAO4iB,MAAMroC,UAAU4qC,KAAO,WAE1B,MAAIztC,MAAK6rC,QAGD7rC,KAAKisC,aAAejsC,KAAKgD,SAASE,OAAS,EAE3ClD,KAAKisC,YAAc,EAInBjsC,KAAKisC,cAGTjsC,KAAK6rC,OAAS7rC,KAAKgD,SAAShD,KAAKisC,aAE1BjsC,KAAK6rC,QAdhB,QA2BJvjB,EAAO4iB,MAAMroC,UAAU6qC,SAAW,WAE9B,MAAI1tC,MAAK6rC,QAGoB,IAArB7rC,KAAKisC,YAELjsC,KAAKisC,YAAcjsC,KAAKgD,SAASE,OAAS,EAI1ClD,KAAKisC,cAGTjsC,KAAK6rC,OAAS7rC,KAAKgD,SAAShD,KAAKisC,aAE1BjsC,KAAK6rC,QAdhB,QA4BJvjB,EAAO4iB,MAAMroC,UAAU8qC,KAAO,SAAUC,EAAQ7kC,GAE5C/I,KAAK8I,aAAa8kC,EAAQ7kC,GAC1B/I,KAAKotC,WAWT9kB,EAAO4iB,MAAMroC,UAAUgrC,WAAa,SAAUrlC,GAQ1C,MANIA,GAAM5G,SAAW5B,MAAQA,KAAK8tC,SAAStlC,GAASxI,KAAKgD,SAASE,SAE9DlD,KAAK6Q,OAAOrI,GAAO,GAAO,GAC1BxI,KAAK82B,IAAItuB,GAAO,IAGbA,GAWX8f,EAAO4iB,MAAMroC,UAAUkrC,WAAa,SAAUvlC,GAQ1C,MANIA,GAAM5G,SAAW5B,MAAQA,KAAK8tC,SAAStlC,GAAS,IAEhDxI,KAAK6Q,OAAOrI,GAAO,GAAO,GAC1BxI,KAAKmtC,MAAM3kC,EAAO,GAAG,IAGlBA,GAWX8f,EAAO4iB,MAAMroC,UAAUmrC,OAAS,SAAUxlC,GAEtC,GAAIA,EAAM5G,SAAW5B,MAAQA,KAAK8tC,SAAStlC,GAASxI,KAAKgD,SAASE,OAAS,EAC3E,CACI,GAAIwB,GAAI1E,KAAK8tC,SAAStlC,GAClB7D,EAAI3E,KAAKqtC,MAAM3oC,EAAI,EAEnBC,IAEA3E,KAAK2tC,KAAKnlC,EAAO7D,GAIzB,MAAO6D,IAWX8f,EAAO4iB,MAAMroC,UAAUorC,SAAW,SAAUzlC,GAExC,GAAIA,EAAM5G,SAAW5B,MAAQA,KAAK8tC,SAAStlC,GAAS,EACpD,CACI,GAAI9D,GAAI1E,KAAK8tC,SAAStlC,GAClB7D,EAAI3E,KAAKqtC,MAAM3oC,EAAI,EAEnBC,IAEA3E,KAAK2tC,KAAKnlC,EAAO7D,GAIzB,MAAO6D,IAYX8f,EAAO4iB,MAAMroC,UAAUqrC,GAAK,SAAUxlC,EAAOrD,EAAGC,GAE5C,MAAY,GAARoD,GAAaA,EAAQ1I,KAAKgD,SAASE,OAE5B,IAIPlD,KAAKsJ,WAAWZ,GAAOrD,EAAIA,OAC3BrF,KAAKsJ,WAAWZ,GAAOpD,EAAIA,KAYnCgjB,EAAO4iB,MAAMroC,UAAUgb,QAAU,WAE7B7d,KAAKgD,SAAS6a,UACd7d,KAAKotC,WAWT9kB,EAAO4iB,MAAMroC,UAAUirC,SAAW,SAAUtlC,GAExC,MAAOxI,MAAKgD,SAASmG,QAAQX,IAYjC8f,EAAO4iB,MAAMroC,UAAUmwB,QAAU,SAAUmb,EAAUC,GAEjD,GAAI1lC,GAAQ1I,KAAK8tC,SAASK,EAE1B,OAAc,KAAVzlC,GAEI0lC,EAASxsC,SAELwsC,EAASxsC,iBAAkB0mB,GAAO4iB,MAElCkD,EAASxsC,OAAOiP,OAAOu9B,GAIvBA,EAASxsC,OAAO+G,YAAYylC,IAIpCpuC,KAAK6Q,OAAOs9B,GAEZnuC,KAAKmtC,MAAMiB,EAAU1lC,GAEdylC,GAlBX,QAiCJ7lB,EAAO4iB,MAAMroC,UAAUwrC,YAAc,SAAU7lC,EAAOkM,GAElD,GAAIwb,GAAMxb,EAAIxR,MAEd,OAAY,KAARgtB,GAAaxb,EAAI,IAAMlM,IAEhB,EAEM,IAAR0nB,GAAaxb,EAAI,IAAMlM,IAASkM,EAAI,IAAMlM,GAAMkM,EAAI,KAElD,EAEM,IAARwb,GAAaxb,EAAI,IAAMlM,IAASkM,EAAI,IAAMlM,GAAMkM,EAAI,KAAOA,EAAI,IAAMlM,GAAMkM,EAAI,IAAIA,EAAI,KAErF,EAEM,IAARwb,GAAaxb,EAAI,IAAMlM,IAASkM,EAAI,IAAMlM,GAAMkM,EAAI,KAAOA,EAAI,IAAMlM,GAAMkM,EAAI,IAAIA,EAAI,KAAOA,EAAI,IAAMlM,GAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAEhI,GAGJ,GAsBX4T,EAAO4iB,MAAMroC,UAAUkuB,YAAc,SAAUvoB,EAAOkM,EAAKjR,EAAO6qC,EAAWC,GAgBzE,GAdc9kC,SAAV8kC,IAAuBA,GAAQ,GAEnCD,EAAYA,GAAa,GAYpBtuC,KAAKquC,YAAY7lC,EAAOkM,MAAU65B,GAASD,EAAY,GAExD,OAAO,CAGX,IAAIpe,GAAMxb,EAAIxR,MAmCd,OAjCY,KAARgtB,EAEkB,IAAdoe,EAAmB9lC,EAAMkM,EAAI,IAAMjR,EACjB,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,KAAOjR,EACtB,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,KAAOjR,EACtB,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,KAAOjR,EACtB,GAAb6qC,IAAkB9lC,EAAMkM,EAAI,KAAOjR,GAE/B,IAARysB,EAEa,IAAdoe,EAAmB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAMjR,EACzB,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,KAAOjR,EAC9B,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,KAAOjR,EAC9B,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,KAAOjR,EAC9B,GAAb6qC,IAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,KAAOjR,GAEvC,IAARysB,EAEa,IAAdoe,EAAmB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAMjR,EACjC,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOjR,EACtC,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOjR,EACtC,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOjR,EACtC,GAAb6qC,IAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOjR,GAE/C,IAARysB,IAEa,IAAdoe,EAAmB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAMjR,EACzC,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOjR,EAC9C,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOjR,EAC9C,GAAb6qC,EAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOjR,EAC9C,GAAb6qC,IAAkB9lC,EAAMkM,EAAI,IAAIA,EAAI,IAAIA,EAAI,IAAIA,EAAI,KAAOjR,KAGjE,GAcX6kB,EAAO4iB,MAAMroC,UAAU2rC,cAAgB,SAAUhmC,EAAOkM,EAAKjR,EAAO8qC,GAKhE,MAHc9kC,UAAV8kC,IAAuBA,GAAQ,IAG9BjmB,EAAOgI,MAAMC,YAAY/nB,EAAOkM,IAAQ65B,GAElC,EAGPjmB,EAAOgI,MAAMC,YAAY/nB,EAAOkM,KAASjR,GAElC,GAGJ,GAmBX6kB,EAAO4iB,MAAMroC,UAAUW,IAAM,SAAUgF,EAAOkM,EAAKjR,EAAOgrC,EAAYC,EAAcJ,EAAWC,GAS3F,MAPc9kC,UAAV8kC,IAAuBA,GAAQ,GAEnC75B,EAAMA,EAAIic,MAAM,KAEGlnB,SAAfglC,IAA4BA,GAAa,GACxBhlC,SAAjBilC,IAA8BA,GAAe,IAE5CD,KAAe,GAAUA,GAAcjmC,EAAMijC,SAAYiD,KAAiB,GAAUA,GAAgBlmC,EAAM/G,SAEpGzB,KAAK+wB,YAAYvoB,EAAOkM,EAAKjR,EAAO6qC,EAAWC,GAF1D,QAuBJjmB,EAAO4iB,MAAMroC,UAAU8rC,OAAS,SAAUj6B,EAAKjR,EAAOgrC,EAAYC,EAAcJ,EAAWC,GAEpE9kC,SAAfglC,IAA4BA,GAAa,GACxBhlC,SAAjBilC,IAA8BA,GAAe,GACnCjlC,SAAV8kC,IAAuBA,GAAQ,GAEnC75B,EAAMA,EAAIic,MAAM,KAChB2d,EAAYA,GAAa,CAEzB,KAAK,GAAIrrC,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,MAEhCwrC,GAAeA,GAAczuC,KAAKgD,SAASC,GAAGwoC,UAAaiD,GAAiBA,GAAgB1uC,KAAKgD,SAASC,GAAGxB,UAE/GzB,KAAK+wB,YAAY/wB,KAAKgD,SAASC,GAAIyR,EAAKjR,EAAO6qC,EAAWC,IAsBtEjmB,EAAO4iB,MAAMroC,UAAU+rC,eAAiB,SAAUl6B,EAAKjR,EAAOgrC,EAAYC,EAAcJ,EAAWC,GAE5E9kC,SAAfglC,IAA4BA,GAAa,GACxBhlC,SAAjBilC,IAA8BA,GAAe,GACnCjlC,SAAV8kC,IAAuBA,GAAQ,GAEnCD,EAAYA,GAAa,CAEzB,KAAK,GAAIrrC,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,MAEhCwrC,GAAeA,GAAczuC,KAAKgD,SAASC,GAAGwoC,UAAaiD,GAAiBA,GAAgB1uC,KAAKgD,SAASC,GAAGxB,WAE3GzB,KAAKgD,SAASC,YAAcqlB,GAAO4iB,MAEnClrC,KAAKgD,SAASC,GAAG2rC,eAAel6B,EAAKjR,EAAOgrC,EAAYC,EAAcJ,EAAWC,GAIjFvuC,KAAK+wB,YAAY/wB,KAAKgD,SAASC,GAAIyR,EAAIic,MAAM,KAAMltB,EAAO6qC,EAAWC,KAmBrFjmB,EAAO4iB,MAAMroC,UAAUgsC,SAAW,SAAUn6B,EAAKjR,EAAOgrC,EAAYC,EAAcH,GAE3D9kC,SAAfglC,IAA4BA,GAAa,GACxBhlC,SAAjBilC,IAA8BA,GAAe,GACnCjlC,SAAV8kC,IAAuBA,GAAQ,EAEnC,KAAK,GAAItrC,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtC,KAAMwrC,GAAeA,GAAczuC,KAAKgD,SAASC,GAAGwoC,UAAaiD,GAAiBA,GAAgB1uC,KAAKgD,SAASC,GAAGxB,WAE1GzB,KAAKwuC,cAAcxuC,KAAKgD,SAASC,GAAIyR,EAAKjR,EAAO8qC,GAElD,OAAO,CAKnB,QAAO,GAeXjmB,EAAO4iB,MAAMroC,UAAUisC,OAAS,SAAUC,EAAUC,EAAQP,EAAYC,GAEpE1uC,KAAK2uC,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DpmB,EAAO4iB,MAAMroC,UAAUosC,OAAS,SAAUF,EAAUC,EAAQP,EAAYC,GAEpE1uC,KAAK2uC,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DpmB,EAAO4iB,MAAMroC,UAAUqsC,YAAc,SAAUH,EAAUC,EAAQP,EAAYC,GAEzE1uC,KAAK2uC,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAe5DpmB,EAAO4iB,MAAMroC,UAAUssC,UAAY,SAAUJ,EAAUC,EAAQP,EAAYC,GAEvE1uC,KAAK2uC,OAAOI,EAAUC,EAAQP,EAAYC,EAAc,IAc5DpmB,EAAO4iB,MAAMroC,UAAUusC,cAAgB,SAAUC,EAAUC,GAEvD,GAAI/f,EAEJ,IAAIG,UAAUxsB,OAAS,EACvB,CACIqsB,IAEA,KAAK,GAAItsB,GAAI,EAAGA,EAAIysB,UAAUxsB,OAAQD,IAElCssB,EAAKxrB,KAAK2rB,UAAUzsB,IAI5B,IAAK,GAAIA,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAElCjD,KAAKgD,SAASC,GAAG4lC,SAAWyG,GAAetvC,KAAKgD,SAASC,GAAGosC,IAE5DrvC,KAAKgD,SAASC,GAAGosC,GAAUpoC,MAAMjH,KAAKgD,SAASC,GAAIssB,IAe/DjH,EAAO4iB,MAAMroC,UAAU0sC,kBAAoB,SAAU/mC,EAAO6mC,EAAUnsC,GAIlE,GAAc,GAAVA,GAEA,GAAIsF,EAAM6mC,EAAS,IAEf,MAAO7mC,GAAM6mC,EAAS,QAGzB,IAAc,GAAVnsC,GAEL,GAAIsF,EAAM6mC,EAAS,IAAIA,EAAS,IAE5B,MAAO7mC,GAAM6mC,EAAS,IAAIA,EAAS,QAGtC,IAAc,GAAVnsC,GAEL,GAAIsF,EAAM6mC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAEzC,MAAO7mC,GAAM6mC,EAAS,IAAIA,EAAS,IAAIA,EAAS,QAGnD,IAAc,GAAVnsC,GAEL,GAAIsF,EAAM6mC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAEtD,MAAO7mC,GAAM6mC,EAAS,IAAIA,EAAS,IAAIA,EAAS,IAAIA,EAAS,QAKjE,IAAI7mC,EAAM6mC,GAEN,MAAO7mC,GAAM6mC,EAIrB,QAAO,GAeX/mB,EAAO4iB,MAAMroC,UAAU2sC,QAAU,SAAUC,EAAQriC,GAE/C,GAAe3D,SAAXgmC,EAAJ,CAMAA,EAASA,EAAO9e,MAAM,IAEtB,IAAI+e,GAAeD,EAAOvsC,MAE1B,IAAgBuG,SAAZ2D,GAAqC,OAAZA,GAAgC,KAAZA,EAE7CA,EAAU,SAKV,IAAuB,gBAAZA,GACX,CACIA,EAAUA,EAAQujB,MAAM,IACxB,IAAIgf,GAAgBviC,EAAQlK,OAIpC,GAAIqsB,EAEJ,IAAIG,UAAUxsB,OAAS,EACvB,CACIqsB,IAEA,KAAK,GAAItsB,GAAI,EAAGA,EAAIysB,UAAUxsB,OAAQD,IAElCssB,EAAKxrB,KAAK2rB,UAAUzsB,IAO5B,IAAK,GAHDosC,GAAW,KACX9M,EAAkB,KAEbt/B,EAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCosC,EAAWrvC,KAAKuvC,kBAAkBvvC,KAAKgD,SAASC,GAAIwsC,EAAQC,GAExDtiC,GAAWiiC,GAEX9M,EAAkBviC,KAAKuvC,kBAAkBvvC,KAAKgD,SAASC,GAAImK,EAASuiC,GAEhEN,GAEAA,EAASpoC,MAAMs7B,EAAiBhT,IAG/B8f,GAELA,EAASpoC,MAAMjH,KAAKgD,SAASC,GAAIssB,KAW7CjH,EAAO4iB,MAAMroC,UAAUsD,UAAY,WAE/B,GAAInG,KAAK2rC,eAGL,MADA3rC,MAAK+C,WACE,CAGX,KAAK/C,KAAK6oC,SAAW7oC,KAAK4B,OAAOinC,OAG7B,MADA7oC,MAAK4vC,cAAgB,IACd,CAKX,KAFA,GAAI3sC,GAAIjD,KAAKgD,SAASE,OAEfD,KAEHjD,KAAKgD,SAASC,GAAGkD,WAGrB,QAAO,GASXmiB,EAAO4iB,MAAMroC,UAAU+7B,OAAS,WAI5B,IAFA,GAAI37B,GAAIjD,KAAKgD,SAASE,OAEfD,KAEHjD,KAAKgD,SAASC,GAAG27B,UAUzBtW,EAAO4iB,MAAMroC,UAAU6lC,WAAa,WAG5B1oC,KAAKksC,gBAELlsC,KAAKqF,EAAIrF,KAAKE,KAAKk/B,OAAOrmB,KAAK1T,EAAIrF,KAAKmsC,aAAa9mC,EACrDrF,KAAKsF,EAAItF,KAAKE,KAAKk/B,OAAOrmB,KAAKzT,EAAItF,KAAKmsC,aAAa7mC,EAKzD,KAFA,GAAIrC,GAAIjD,KAAKgD,SAASE,OAEfD,KAEHjD,KAAKgD,SAASC,GAAGylC,cAuBzBpgB,EAAO4iB,MAAMroC,UAAU+hB,OAAS,SAAUirB,EAAWC,GAMjD,IAJA,GAAIpnC,GAAQ,GACRxF,EAASlD,KAAKgD,SAASE,OACvBs0B,OAEK9uB,EAAQxF,GACjB,CACI,GAAIsF,GAAQxI,KAAKgD,SAAS0F,KAErBonC,GAAgBA,GAAetnC,EAAMqgC,SAElCgH,EAAUrnC,EAAOE,EAAO1I,KAAKgD,WAE7Bw0B,EAAQzzB,KAAKyE,GAKzB,MAAO,IAAI8f,GAAOynB,SAASvY,IAqB/BlP,EAAO4iB,MAAMroC,UAAUktB,QAAU,SAAUsf,EAAU9M,EAAiBuN,GAIlE,GAFoBrmC,SAAhBqmC,IAA6BA,GAAc,GAE3CpgB,UAAUxsB,QAAU,EAEpB,IAAK,GAAID,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,MAEjC6sC,GAAgBA,GAAe9vC,KAAKgD,SAASC,GAAG4lC,SAEjDwG,EAAS3pC,KAAK68B,EAAiBviC,KAAKgD,SAASC,QAKzD,CAKI,IAAK,GAFDssB,IAAQ,MAEHtsB,EAAI,EAAGA,EAAIysB,UAAUxsB,OAAQD,IAElCssB,EAAKxrB,KAAK2rB,UAAUzsB,GAGxB,KAAK,GAAIA,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,MAEjC6sC,GAAgBA,GAAe9vC,KAAKgD,SAASC,GAAG4lC,UAEjDtZ,EAAK,GAAKvvB,KAAKgD,SAASC,GACxBosC,EAASpoC,MAAMs7B,EAAiBhT,MAiBhDjH,EAAO4iB,MAAMroC,UAAUmtC,cAAgB,SAAUX,EAAU9M,GAEvD,GAAIhT,EAEJ,IAAIG,UAAUxsB,OAAS,EACvB,CACIqsB,GAAQ,KAER,KAAK,GAAItsB,GAAI,EAAGA,EAAIysB,UAAUxsB,OAAQD,IAElCssB,EAAKxrB,KAAK2rB,UAAUzsB,IAI5BjD,KAAKiwC,QAAQ,UAAU,EAAM3nB,EAAO4iB,MAAMqB,aAAc8C,EAAU9M,EAAiBhT,IAcvFjH,EAAO4iB,MAAMroC,UAAUqtC,aAAe,SAAUb,EAAU9M,GAEtD,GAAIhT,EAEJ,IAAIG,UAAUxsB,OAAS,EACvB,CACIqsB,GAAQ,KAER,KAAK,GAAItsB,GAAI,EAAGA,EAAIysB,UAAUxsB,OAAQD,IAElCssB,EAAKxrB,KAAK2rB,UAAUzsB,IAI5BjD,KAAKiwC,QAAQ,SAAS,EAAM3nB,EAAO4iB,MAAMqB,aAAc8C,EAAU9M,EAAiBhT,IActFjH,EAAO4iB,MAAMroC,UAAUstC,YAAc,SAAUd,EAAU9M,GAErD,GAAIhT,EAEJ,IAAIG,UAAUxsB,OAAS,EACvB,CACIqsB,GAAQ,KAER,KAAK,GAAItsB,GAAI,EAAGA,EAAIysB,UAAUxsB,OAAQD,IAElCssB,EAAKxrB,KAAK2rB,UAAUzsB,IAI5BjD,KAAKiwC,QAAQ,SAAS,EAAO3nB,EAAO4iB,MAAMqB,aAAc8C,EAAU9M,EAAiBhT,IAkBvFjH,EAAO4iB,MAAMroC,UAAUutC,KAAO,SAAU17B,EAAK27B,GAErCrwC,KAAKgD,SAASE,OAAS,IAMfuG,SAARiL,IAAqBA,EAAM,KACjBjL,SAAV4mC,IAAuBA,EAAQ/nB,EAAO4iB,MAAMuB,gBAEhDzsC,KAAKqsC,cAAgB33B,EAEjB27B,IAAU/nB,EAAO4iB,MAAMuB,eAEvBzsC,KAAKgD,SAASotC,KAAKpwC,KAAKswC,qBAAqBnhB,KAAKnvB,OAIlDA,KAAKgD,SAASotC,KAAKpwC,KAAKuwC,sBAAsBphB,KAAKnvB,OAGvDA,KAAKotC,YAcT9kB,EAAO4iB,MAAMroC,UAAU2tC,WAAa,SAAUC,EAAarjC,GAEnDpN,KAAKgD,SAASE,OAAS,IAM3BlD,KAAKgD,SAASotC,KAAKK,EAAYthB,KAAK/hB,IAEpCpN,KAAKotC,YAYT9kB,EAAO4iB,MAAMroC,UAAUytC,qBAAuB,SAAU5rC,EAAGC,GAEvD,MAAID,GAAE1E,KAAKqsC,eAAiB1nC,EAAE3E,KAAKqsC,eAExB,GAEF3nC,EAAE1E,KAAKqsC,eAAiB1nC,EAAE3E,KAAKqsC,eAE7B,EAIH3nC,EAAE4S,EAAI3S,EAAE2S,EAED,GAIA,GAcnBgR,EAAO4iB,MAAMroC,UAAU0tC,sBAAwB,SAAU7rC,EAAGC,GAExD,MAAID,GAAE1E,KAAKqsC,eAAiB1nC,EAAE3E,KAAKqsC,eAExB,EAEF3nC,EAAE1E,KAAKqsC,eAAiB1nC,EAAE3E,KAAKqsC,eAE7B,GAIA,GAiCf/jB,EAAO4iB,MAAMroC,UAAUotC,QAAU,SAAUv7B,EAAKjR,EAAOitC,EAAYrB,EAAU9M,EAAiBhT,GAE1F,GAAImhB,IAAepoB,EAAO4iB,MAAMqB,cAAyC,IAAzBvsC,KAAKgD,SAASE,OAE1D,MAAO,EAKX,KAAK,GAFDytC,GAAQ,EAEH1tC,EAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtC,GAAIjD,KAAKgD,SAASC,GAAGyR,KAASjR,IAE1BktC,IAEItB,IAEI9f,GAEAA,EAAK,GAAKvvB,KAAKgD,SAASC,GACxBosC,EAASpoC,MAAMs7B,EAAiBhT,IAIhC8f,EAAS3pC,KAAK68B,EAAiBviC,KAAKgD,SAASC,KAIjDytC,IAAepoB,EAAO4iB,MAAMsB,cAE5B,MAAOxsC,MAAKgD,SAASC,EAKjC,OAAIytC,KAAepoB,EAAO4iB,MAAMqB,aAErBoE,EAIJ,MAuBXroB,EAAO4iB,MAAMroC,UAAU+tC,eAAiB,SAAU/H,EAAQgI,EAAcxrC,EAAGC,EAAGoP,EAAK1I,GAE1DvC,SAAjBonC,IAA8BA,GAAe,GAE3B,iBAAXhI,KAEPA,GAAS,EAGb,IAAIrgC,GAAQxI,KAAKiwC,QAAQ,SAAUpH,EAAQvgB,EAAO4iB,MAAMsB,aAExD,OAAkB,QAAVhkC,GAAkBqoC,EAAgB7wC,KAAKoI,OAAO/C,EAAGC,EAAGoP,EAAK1I,GAAShM,KAAK8wC,WAAWtoC,EAAOnD,EAAGC,EAAGoP,EAAK1I,IAwBhHsc,EAAO4iB,MAAMroC,UAAUkuC,cAAgB,SAAUF,EAAcxrC,EAAGC,EAAGoP,EAAK1I,GAEjDvC,SAAjBonC,IAA8BA,GAAe,EAEjD,IAAIroC,GAAQxI,KAAKiwC,QAAQ,SAAS,EAAM3nB,EAAO4iB,MAAMsB,aAErD,OAAkB,QAAVhkC,GAAkBqoC,EAAgB7wC,KAAKoI,OAAO/C,EAAGC,EAAGoP,EAAK1I,GAAShM,KAAK8wC,WAAWtoC,EAAOnD,EAAGC,EAAGoP,EAAK1I,IAwBhHsc,EAAO4iB,MAAMroC,UAAUmuC,aAAe,SAAUH,EAAcxrC,EAAGC,EAAGoP,EAAK1I,GAEhDvC,SAAjBonC,IAA8BA,GAAe,EAEjD,IAAIroC,GAAQxI,KAAKiwC,QAAQ,SAAS,EAAO3nB,EAAO4iB,MAAMsB,aAEtD,OAAkB,QAAVhkC,GAAkBqoC,EAAgB7wC,KAAKoI,OAAO/C,EAAGC,EAAGoP,EAAK1I,GAAShM,KAAK8wC,WAAWtoC,EAAOnD,EAAGC,EAAGoP,EAAK1I,IAmBhHsc,EAAO4iB,MAAMroC,UAAUiuC,WAAa,SAAUtoC,EAAOnD,EAAGC,EAAGoP,EAAK1I,GAE5D,MAAc,QAAVxD,EAEO,MAGDiB,SAANpE,IAAmBA,EAAI,MACjBoE,SAANnE,IAAmBA,EAAI,MAEjB,OAAND,GAAoB,OAANC,GAEdkD,EAAMy2B,MAAM55B,EAAGC,GAGPmE,SAARiL,GAEAlM,EAAMyoC,YAAYv8B,EAAK1I,GAGpBxD,IAYX8f,EAAO4iB,MAAMroC,UAAUquC,OAAS,WAE5B,MAAIlxC,MAAKgD,SAASE,OAAS,EAEhBlD,KAAKgD,SAAShD,KAAKgD,SAASE,OAAS,GAFhD,QAeJolB,EAAO4iB,MAAMroC,UAAUsuC,UAAY,WAE/B,MAAInxC,MAAKgD,SAASE,OAAS,EAEhBlD,KAAKgD,SAAS,GAFzB,QAaJslB,EAAO4iB,MAAMroC,UAAUuuC,YAAc,WAEjC,MAAOpxC,MAAKiwC,QAAQ,SAAS,EAAM3nB,EAAO4iB,MAAMqB,eAUpDjkB,EAAO4iB,MAAMroC,UAAUwuC,UAAY,WAE/B,MAAOrxC,MAAKiwC,QAAQ,SAAS,EAAO3nB,EAAO4iB,MAAMqB,eAYrDjkB,EAAO4iB,MAAMroC,UAAUyuC,UAAY,SAAUrtB,EAAY/gB,GAErD,MAA6B,KAAzBlD,KAAKgD,SAASE,OAEP,MAGX+gB,EAAaA,GAAc,EAC3B/gB,EAASA,GAAUlD,KAAKgD,SAASE,OAE1BolB,EAAOipB,WAAWC,cAAcxxC,KAAKgD,SAAUihB,EAAY/gB,KAiBtEolB,EAAO4iB,MAAMroC,UAAUgO,OAAS,SAAUrI,EAAOzF,EAAS4pC,GAKtD,GAHgBljC,SAAZ1G,IAAyBA,GAAU,GACxB0G,SAAXkjC,IAAwBA,GAAS,GAER,IAAzB3sC,KAAKgD,SAASE,QAAiD,KAAjClD,KAAKgD,SAASmG,QAAQX,GAEpD,OAAO,CAGNmkC,KAAUnkC,EAAMukC,QAAWvkC,EAAMipC,cAElCjpC,EAAMukC,OAAO2E,4BAA4BlpC,EAAOxI,KAGpD,IAAIgK,GAAUhK,KAAK2I,YAAYH,EAgB/B,OAdAxI,MAAK6sC,eAAerkC,GAEpBxI,KAAKotC,UAEDptC,KAAK6rC,SAAWrjC,GAEhBxI,KAAKytC,OAGL1qC,GAAWiH,GAEXA,EAAQjH,SAAQ,IAGb,GAYXulB,EAAO4iB,MAAMroC,UAAUqqC,QAAU,SAAUyE,EAAOhF,GAI9C,GAFeljC,SAAXkjC,IAAwBA,GAAS,GAEjC3sC,KAAKgD,SAASE,OAAS,GAAKyuC,YAAiBrpB,GAAO4iB,MACxD,CACI,EAEIyG,GAAM7a,IAAI92B,KAAKgD,SAAS,GAAI2pC,SAEzB3sC,KAAKgD,SAASE,OAAS,EAE9BlD,MAAKosC,QAELpsC,KAAK6rC,OAAS,KAGlB,MAAO8F,IAWXrpB,EAAO4iB,MAAMroC,UAAUugC,UAAY,SAAUrgC,EAAS4pC,GAKlD,GAHgBljC,SAAZ1G,IAAyBA,GAAU,GACxB0G,SAAXkjC,IAAwBA,GAAS,GAER,IAAzB3sC,KAAKgD,SAASE,OAAlB,CAKA,EACA,EACSypC,GAAU3sC,KAAKgD,SAAS,GAAG+pC,QAE5B/sC,KAAKgD,SAAS,GAAG+pC,OAAO2E,4BAA4B1xC,KAAKgD,SAAS,GAAIhD,KAG1E,IAAIgK,GAAUhK,KAAK2I,YAAY3I,KAAKgD,SAAS,GAE7ChD,MAAK6sC,eAAe7iC,GAEhBjH,GAAWiH,GAEXA,EAAQjH,SAAQ,SAGjB/C,KAAKgD,SAASE,OAAS,EAE9BlD,MAAKosC,QAELpsC,KAAK6rC,OAAS,OAalBvjB,EAAO4iB,MAAMroC,UAAU+uC,cAAgB,SAAU3tB,EAAYra,EAAU7G,EAAS4pC,GAM5E,GAJiBljC,SAAbG,IAA0BA,EAAW5J,KAAKgD,SAASE,OAAS,GAChDuG,SAAZ1G,IAAyBA,GAAU,GACxB0G,SAAXkjC,IAAwBA,GAAS,GAER,IAAzB3sC,KAAKgD,SAASE,OAAlB,CAKA,GAAI+gB,EAAara,GAAyB,EAAbqa,GAAkBra,EAAW5J,KAAKgD,SAASE,OAEpE,OAAO,CAKX,KAFA,GAAID,GAAI2G,EAED3G,GAAKghB,GACZ,EACS0oB,GAAU3sC,KAAKgD,SAASC,GAAG8pC,QAE5B/sC,KAAKgD,SAASC,GAAG8pC,OAAO2E,4BAA4B1xC,KAAKgD,SAASC,GAAIjD,KAG1E,IAAIgK,GAAUhK,KAAK2I,YAAY3I,KAAKgD,SAASC,GAE7CjD,MAAK6sC,eAAe7iC,GAEhBjH,GAAWiH,GAEXA,EAAQjH,SAAQ,GAGhB/C,KAAK6rC,SAAW7rC,KAAKgD,SAASC,KAE9BjD,KAAK6rC,OAAS,MAGlB5oC,IAGJjD,KAAKotC,YAaT9kB,EAAO4iB,MAAMroC,UAAUE,QAAU,SAAU8uC,EAAiBC,GAEtC,OAAd9xC,KAAKE,MAAiBF,KAAK0rC,gBAEPjiC,SAApBooC,IAAiCA,GAAkB,GAC1CpoC,SAATqoC,IAAsBA,GAAO,GAEjC9xC,KAAKgsC,UAAUhJ,SAAShjC,KAAM6xC,EAAiBC,GAE/C9xC,KAAKojC,UAAUyO,GAEf7xC,KAAK6rC,OAAS,KACd7rC,KAAKiI,QAAU,KACfjI,KAAK2rC,gBAAiB,EAEjBmG,IAEG9xC,KAAK4B,QAEL5B,KAAK4B,OAAO+G,YAAY3I,MAG5BA,KAAKE,KAAO,KACZF,KAAK6oC,QAAS,KAYtBzlC,OAAOC,eAAeilB,EAAO4iB,MAAMroC,UAAW,SAE1CS,IAAK,WAED,MAAOtD,MAAKiwC,QAAQ,UAAU,EAAM3nB,EAAO4iB,MAAMqB,iBAazDnpC,OAAOC,eAAeilB,EAAO4iB,MAAMroC,UAAW,UAE1CS,IAAK,WAED,MAAOtD,MAAKgD,SAASE,UAiB7BE,OAAOC,eAAeilB,EAAO4iB,MAAMroC,UAAW,SAE1CS,IAAK,WACD,MAAOglB,GAAOznB,KAAKy4B,SAASt5B,KAAKuB,WAGrCiC,IAAK,SAASC,GACVzD,KAAKuB,SAAW+mB,EAAOznB,KAAKm0B,SAASvxB,MA2E7C6kB,EAAOypB,MAAQ,SAAU7xC,GAErBooB,EAAO4iB,MAAMxlC,KAAK1F,KAAME,EAAM,KAAM,WAAW,GAS/CF,KAAKwG,OAAS,GAAI8hB,GAAO9lB,UAAU,EAAG,EAAGtC,EAAKyG,MAAOzG,EAAK0G,QAK1D5G,KAAKo/B,OAAS,KAMdp/B,KAAKgyC,cAAe,EAKpBhyC,KAAKqI,OAASnI,EAAKyG,MAKnB3G,KAAKsI,QAAUpI,EAAK0G,OAEpB5G,KAAKE,KAAKiiC,MAAMpB,cAAcjK,IAAI92B,KAAKiyC,YAAajyC,OAIxDsoB,EAAOypB,MAAMlvC,UAAYO,OAAOgF,OAAOkgB,EAAO4iB,MAAMroC,WACpDylB,EAAOypB,MAAMlvC,UAAUC,YAAcwlB,EAAOypB,MAQ5CzpB,EAAOypB,MAAMlvC,UAAUi/B,KAAO,WAE1B9hC,KAAKo/B,OAAS,GAAI9W,GAAOoV,OAAO19B,KAAKE,KAAM,EAAG,EAAG,EAAGF,KAAKE,KAAKyG,MAAO3G,KAAKE,KAAK0G,QAE/E5G,KAAKo/B,OAAOlkB,cAAgBlb,KAE5BA,KAAKo/B,OAAO/9B,MAAQrB,KAAKqB,MAEzBrB,KAAKE,KAAKk/B,OAASp/B,KAAKo/B,OAExBp/B,KAAKE,KAAK2B,MAAM0G,SAASvI,OAa7BsoB,EAAOypB,MAAMlvC,UAAUovC,YAAc,WAEjCjyC,KAAKqF,EAAI,EACTrF,KAAKsF,EAAI,EAETtF,KAAKo/B,OAAOH,SAchB3W,EAAOypB,MAAMlvC,UAAUqvC,UAAY,SAAU7sC,EAAGC,EAAGqB,EAAOC,GAEtD5G,KAAKgyC,cAAe,EACpBhyC,KAAKqI,OAAS1B,EACd3G,KAAKsI,QAAU1B,EAEf5G,KAAKwG,OAAOutB,MAAM1uB,EAAGC,EAAGqB,EAAOC,GAE/B5G,KAAKqF,EAAIA,EACTrF,KAAKsF,EAAIA,EAELtF,KAAKo/B,OAAO54B,QAGZxG,KAAKo/B,OAAO54B,OAAOutB,MAAM1uB,EAAGC,EAAGzE,KAAK+G,IAAIjB,EAAO3G,KAAKE,KAAKyG,OAAQ9F,KAAK+G,IAAIhB,EAAQ5G,KAAKE,KAAK0G,SAGhG5G,KAAKE,KAAK2/B,QAAQd,oBAWtBzW,EAAOypB,MAAMlvC,UAAUkF,OAAS,SAAUpB,EAAOC,GAIzC5G,KAAKgyC,eAEDrrC,EAAQ3G,KAAKqI,SAEb1B,EAAQ3G,KAAKqI,QAGbzB,EAAS5G,KAAKsI,UAEd1B,EAAS5G,KAAKsI,UAItBtI,KAAKwG,OAAOG,MAAQA,EACpB3G,KAAKwG,OAAOI,OAASA,EAErB5G,KAAKE,KAAKk/B,OAAOL,mBAEjB/+B,KAAKE,KAAK2/B,QAAQd,oBAStBzW,EAAOypB,MAAMlvC,UAAUy9B,SAAW,WAG9BtgC,KAAK+C,SAAQ,GAAM,IAgBvBulB,EAAOypB,MAAMlvC,UAAUg1B,KAAO,SAAU1V,EAAQ2C,EAASqtB,EAAWC,EAAYC,GAE5D5oC,SAAZqb,IAAyBA,EAAU,GACrBrb,SAAd0oC,IAA2BA,GAAY,GACxB1oC,SAAf2oC,IAA4BA,GAAa,GAC5B3oC,SAAb4oC,IAA0BA,GAAW,GAEpCF,GAsBDhwB,EAAOtc,YAEHusC,IAEKjwB,EAAO9c,EAAI8c,EAAO1f,eAAekE,MAAS3G,KAAKwG,OAAOnB,EAEvD8c,EAAO9c,EAAIrF,KAAKwG,OAAOyrB,MAElB9P,EAAO9c,EAAIrF,KAAKwG,OAAOyrB,QAE5B9P,EAAO9c,EAAIrF,KAAKwG,OAAO0rB,OAI3BmgB,IAEKlwB,EAAO7c,EAAI6c,EAAO1f,eAAemE,OAAU5G,KAAKwG,OAAOouB,IAExDzS,EAAO7c,EAAItF,KAAKwG,OAAOquB,OAElB1S,EAAO7c,EAAItF,KAAKwG,OAAOquB,SAE5B1S,EAAO7c,EAAItF,KAAKwG,OAAOouB,QA1C3Bwd,GAAcjwB,EAAO9c,EAAIyf,EAAU9kB,KAAKwG,OAAOnB,EAE/C8c,EAAO9c,EAAIrF,KAAKwG,OAAOyrB,MAAQnN,EAE1BstB,GAAcjwB,EAAO9c,EAAIyf,EAAU9kB,KAAKwG,OAAOyrB,QAEpD9P,EAAO9c,EAAIrF,KAAKwG,OAAO0rB,KAAOpN,GAG9ButB,GAAYlwB,EAAO7c,EAAIwf,EAAU9kB,KAAKwG,OAAOouB,IAE7CzS,EAAO7c,EAAItF,KAAKwG,OAAOquB,OAAS/P,EAE3ButB,GAAYlwB,EAAO7c,EAAIwf,EAAU9kB,KAAKwG,OAAOquB,SAElD1S,EAAO7c,EAAItF,KAAKwG,OAAOouB,IAAM9P,KAsCzC1hB,OAAOC,eAAeilB,EAAOypB,MAAMlvC,UAAW,SAE1CS,IAAK,WACD,MAAOtD,MAAKwG,OAAOG,OAGvBnD,IAAK,SAAUC,GAEPA,EAAQzD,KAAKE,KAAKyG,QAElBlD,EAAQzD,KAAKE,KAAKyG,OAGtB3G,KAAKwG,OAAOG,MAAQlD,EACpBzD,KAAKqI,OAAS5E,EACdzD,KAAKgyC,cAAe,KAU5B5uC,OAAOC,eAAeilB,EAAOypB,MAAMlvC,UAAW,UAE1CS,IAAK,WACD,MAAOtD,MAAKwG,OAAOI,QAGvBpD,IAAK,SAAUC,GAEPA,EAAQzD,KAAKE,KAAK0G,SAElBnD,EAAQzD,KAAKE,KAAK0G,QAGtB5G,KAAKwG,OAAOI,OAASnD,EACrBzD,KAAKsI,QAAU7E,EACfzD,KAAKgyC,cAAe,KAW5B5uC,OAAOC,eAAeilB,EAAOypB,MAAMlvC,UAAW,WAE1CS,IAAK,WACD,MAAOtD,MAAKwG,OAAO2uB,aAU3B/xB,OAAOC,eAAeilB,EAAOypB,MAAMlvC,UAAW,WAE1CS,IAAK,WACD,MAAOtD,MAAKwG,OAAO6uB,cAU3BjyB,OAAOC,eAAeilB,EAAOypB,MAAMlvC,UAAW,WAE1CS,IAAK,WAED,MAAItD,MAAKwG,OAAOnB,EAAI,EAETrF,KAAKE,KAAK4/B,IAAIwS,QAAQtyC,KAAKwG,OAAOnB,EAAIrF,KAAKwG,OAAOG,MAAQ9F,KAAKq0B,IAAIl1B,KAAKwG,OAAOnB,IAI/ErF,KAAKE,KAAK4/B,IAAIwS,QAAQtyC,KAAKwG,OAAOnB,EAAGrF,KAAKwG,OAAOG,UAYpEvD,OAAOC,eAAeilB,EAAOypB,MAAMlvC,UAAW,WAE1CS,IAAK,WAED,MAAItD,MAAKwG,OAAOlB,EAAI,EAETtF,KAAKE,KAAK4/B,IAAIwS,QAAQtyC,KAAKwG,OAAOlB,EAAItF,KAAKwG,OAAOI,OAAS/F,KAAKq0B,IAAIl1B,KAAKwG,OAAOlB,IAIhFtF,KAAKE,KAAK4/B,IAAIwS,QAAQtyC,KAAKwG,OAAOlB,EAAGtF,KAAKwG,OAAOI,WA+BpE0hB,EAAOiqB,KAAO,SAAU5rC,EAAOC,EAAQL,EAAU3E,EAAQugC,EAAOxpB,EAAaM,EAAWu5B,GAyZpF,MAnZAxyC,MAAK4V,GAAK0S,EAAOkE,MAAMzoB,KAAK/D,MAAQ,EAKpCA,KAAKipC,OAAS,KAKdjpC,KAAKwyC,cAAgBA,EAMrBxyC,KAAK4B,OAAS,GAWd5B,KAAK2G,MAAQ,IAWb3G,KAAK4G,OAAS,IASd5G,KAAKqG,WAAa,EAMlBrG,KAAKqI,OAAS,IAMdrI,KAAKsI,QAAU,IAMftI,KAAK2Y,aAAc,EAMnB3Y,KAAKiZ,WAAY,EAMjBjZ,KAAK6Y,uBAAwB,EAQ7B7Y,KAAK8Y,mBAAoB,EAMzB9Y,KAAKuG,SAAW,KAMhBvG,KAAK2jC,WAAarb,EAAOmE,KAKzBzsB,KAAKmiC,MAAQ,KAMbniC,KAAKsiC,UAAW,EAMhBtiC,KAAKyyC,WAAY,EAMjBzyC,KAAK0yC,IAAM,KAKX1yC,KAAK82B,IAAM,KAKX92B,KAAKm/B,KAAO,KAKZn/B,KAAKq/B,MAAQ,KAKbr/B,KAAKs/B,MAAQ,KAKbt/B,KAAKu/B,KAAO,KAKZv/B,KAAKw/B,KAAO,KAKZx/B,KAAK2yC,IAAM,KAKX3yC,KAAKqB,MAAQ,KAKbrB,KAAKy/B,MAAQ,KAKbz/B,KAAK6B,MAAQ,KAKb7B,KAAK0/B,KAAO,KAKZ1/B,KAAK2/B,OAAS,KAKd3/B,KAAKyE,MAAQ,KAKbzE,KAAK6/B,QAAU,KAKf7/B,KAAKsoC,QAAU,KAKftoC,KAAK8/B,IAAM,KAKX9/B,KAAKoqC,OAAS9hB,EAAOsqB,OAKrB5yC,KAAKo/B,OAAS,KAKdp/B,KAAKwQ,OAAS,KAKdxQ,KAAKoN,QAAU,KAKfpN,KAAKqjC,MAAQ,KAKbrjC,KAAK4/B,UAAY,KAKjB5/B,KAAKoI,OAAS,KASdpI,KAAK6yC,YAAa,EAOlB7yC,KAAK8yC,UAAW,EAOhB9yC,KAAK+yC,aAAc,EAOnB/yC,KAAKgzC,UAAY,EAKjBhzC,KAAK+hC,QAAU,KAKf/hC,KAAKiiC,SAAW,KAKhBjiC,KAAKizC,OAAS,KAKdjzC,KAAKkzC,QAAU,KAMflzC,KAAKmzC,SAAU,EAMfnzC,KAAKozC,aAAc,EAQnBpzC,KAAKqzC,gBAAkB,EAOvBrzC,KAAKszC,iBAAmB,EAMxBtzC,KAAKuzC,WAAa,EAMlBvzC,KAAKwzC,WAAa,EAMlBxzC,KAAKyzC,WAAa,EAMlBzzC,KAAKwjC,YAAa,EAQlBxjC,KAAK0zC,mBAAqB,GAAIprB,GAAO0Y,OAKrChhC,KAAK2zC,mBAAoB,EAMzB3zC,KAAK4zC,qBAAuB,EAGH,IAArBlkB,UAAUxsB,QAAwC,gBAAjBwsB,WAAU,GAE3C1vB,KAAKkpC,YAAYxZ,UAAU,KAI3B1vB,KAAKipC,QAAW4K,aAAa,GAER,mBAAVltC,KAEP3G,KAAKqI,OAAS1B,GAGI,mBAAXC,KAEP5G,KAAKsI,QAAU1B,GAGK,mBAAbL,KAEPvG,KAAK2jC,WAAap9B,GAGA,mBAAX3E,KAEP5B,KAAK4B,OAASA,GAGS,mBAAhB+W,KAEP3Y,KAAK2Y,YAAcA,GAGE,mBAAdM,KAEPjZ,KAAKiZ,UAAYA,GAGrBjZ,KAAK8/B,IAAM,GAAIxX,GAAOwrB,sBAAsBrN,KAAKsN,MAAQlzC,KAAKqwB,UAAU3J,aAExEvnB,KAAKmiC,MAAQ,GAAI7Z,GAAOiY,aAAavgC,KAAMmiC,IAG/CniC,KAAKoqC,OAAO4J,UAAUh0C,KAAK8hC,KAAM9hC,MAE1BA,MAIXsoB,EAAOiqB,KAAK1vC,WAQRqmC,YAAa,SAAUD,GAEnBjpC,KAAKipC,OAASA,EAEgBx/B,SAA1Bw/B,EAAoB,cAEpBjpC,KAAKipC,OAAO4K,aAAc,GAG1B5K,EAAc,QAEdjpC,KAAKqI,OAAS4gC,EAAc,OAG5BA,EAAe,SAEfjpC,KAAKsI,QAAU2gC,EAAe,QAG9BA,EAAiB,WAEjBjpC,KAAK2jC,WAAasF,EAAiB,UAGnCA,EAAe,SAEfjpC,KAAK4B,OAASqnC,EAAe,QAGHx/B,SAA1Bw/B,EAAoB,cAEpBjpC,KAAK2Y,YAAcswB,EAAoB,aAGfx/B,SAAxBw/B,EAAkB,YAElBjpC,KAAKiZ,UAAYgwB,EAAkB,WAGnCA,EAAmB,aAEnBjpC,KAAKqG,WAAa4iC,EAAmB,YAGDx/B,SAApCw/B,EAA8B,wBAE9BjpC,KAAK6Y,sBAAwBowB,EAA8B,uBAG3DA,EAAsB,gBAEtBjpC,KAAKwyC,cAAgBvJ,EAAsB,cAG/C,IAAIgL,KAASxN,KAAKsN,MAAQlzC,KAAKqwB,UAAU3J,WAErC0hB,GAAa,OAEbgL,EAAOhL,EAAa,MAGxBjpC,KAAK8/B,IAAM,GAAIxX,GAAOwrB,oBAAoBG,EAE1C,IAAI9R,GAAQ,IAER8G,GAAc,QAEd9G,EAAQ8G,EAAc,OAG1BjpC,KAAKmiC,MAAQ,GAAI7Z,GAAOiY,aAAavgC,KAAMmiC,IAU/CL,KAAM,WAEE9hC,KAAKsiC,WAKTtiC,KAAK+hC,QAAU,GAAIzZ,GAAO0Y,OAC1BhhC,KAAKiiC,SAAW,GAAI3Z,GAAO0Y,OAC3BhhC,KAAKizC,OAAS,GAAI3qB,GAAO0Y,OACzBhhC,KAAKkzC,QAAU,GAAI5qB,GAAO0Y,OAE1BhhC,KAAKsiC,UAAW,EAEhBriC,KAAKC,KAAOF,KAEZA,KAAKw/B,KAAOlX,EAAOznB,KAEnBb,KAAKqB,MAAQ,GAAIinB,GAAO4rB,aAAal0C,KAAMA,KAAKqI,OAAQrI,KAAKsI,SAC7DtI,KAAK6B,MAAQ,GAAIymB,GAAOqgB,MAAM3oC,MAE9BA,KAAKm0C,gBAELn0C,KAAKyE,MAAQ,GAAI6jB,GAAOypB,MAAM/xC,MAC9BA,KAAK82B,IAAM,GAAIxO,GAAO8rB,kBAAkBp0C,MACxCA,KAAKm/B,KAAO,GAAI7W,GAAO+rB,kBAAkBr0C,MACzCA,KAAKq/B,MAAQ,GAAI/W,GAAOgsB,MAAMt0C,MAC9BA,KAAKu/B,KAAO,GAAIjX,GAAOisB,OAAOv0C,MAC9BA,KAAK0/B,KAAO,GAAIpX,GAAOksB,KAAKx0C,MAC5BA,KAAK2/B,OAAS,GAAIrX,GAAOmsB,aAAaz0C,MACtCA,KAAKs/B,MAAQ,GAAIhX,GAAOosB,MAAM10C,MAC9BA,KAAKy/B,MAAQ,GAAInX,GAAOqsB,aAAa30C,MACrCA,KAAK6/B,QAAU,GAAIvX,GAAOgjB,QAAQtrC,KAAMA,KAAKwyC,eAC7CxyC,KAAK4/B,UAAY,GAAItX,GAAOssB,UAAU50C,MACtCA,KAAKoI,OAAS,GAAIkgB,GAAOusB,OAAO70C,MAChCA,KAAKsoC,QAAU,GAAIhgB,GAAO+f,cAAcroC,MACxCA,KAAK2yC,IAAM,GAAIrqB,GAAOwsB,IAAI90C,MAE1BA,KAAK0/B,KAAKoC,OACV9hC,KAAK6B,MAAMigC,OACX9hC,KAAKyE,MAAMq9B,OACX9hC,KAAKqB,MAAMygC,OACX9hC,KAAKs/B,MAAMwC,OACX9hC,KAAKy/B,MAAMqC,OACX9hC,KAAKmiC,MAAML,OAEP9hC,KAAKipC,OAAoB,aAEzBjpC,KAAKqjC,MAAQ,GAAI/a,GAAOgI,MAAMykB,MAAM/0C,MACpCA,KAAKqjC,MAAMvB,QAIX9hC,KAAKqjC,OAAUl9B,UAAW,aAAgBy4B,OAAQ,aAAgBK,MAAO,cAG7Ej/B,KAAKg1C,kBAELh1C,KAAKyyC,WAAY,EAEbzyC,KAAKipC,QAAUjpC,KAAKipC,OAAwB,gBAE5CjpC,KAAK0yC,IAAM,GAAIpqB,GAAO2sB,sBAAsBj1C,KAAMA,KAAKipC,OAAwB,iBAI/EjpC,KAAK0yC,IAAM,GAAIpqB,GAAO2sB,sBAAsBj1C,MAAM,GAGtDA,KAAKwjC,YAAa,EAEd/wB,OAAc,SAETA,OAAqB,cAAMA,OAAqB,eAAMA,OAAqB,aAAEyiC,YAE9EziC,OAAO0iC,QAIfn1C,KAAK0yC,IAAItnC,UAUb4pC,gBAAiB,WAEb,IAAIviC,OAAqB,eAAKA,OAAqB,aAAE2iC,WAArD,CAKA,GAAIC,GAAI/sB,EAAOjoB,QACXwa,EAAI,SACJnW,EAAI,aACJE,EAAI,CAkBR,IAhBI5E,KAAK2jC,aAAerb,EAAOqE,OAE3B9R,EAAI,QACJjW,KAEK5E,KAAK2jC,YAAcrb,EAAOsE,WAE/B/R,EAAI,YAGJ7a,KAAKoqC,OAAOkL,WAEZ5wC,EAAI,WACJE,KAGA5E,KAAKoqC,OAAOmL,OAChB,CAWI,IAAK,GAVDhmB,IACA,oBAAsB8lB,EAAI,cAAgBp1C,KAAKI,QAAU,MAAQwa,EAAI,MAAQnW,EAAI,wCACjF,sBACA,sBACA,uCACA,sBACA,sBACA,uBAGKzB,EAAI,EAAO,EAAJA,EAAOA,IAEX2B,EAAJ3B,EAEAssB,EAAKxrB,KAAK,oCAIVwrB,EAAKxrB,KAAK,mCAIlB2O,SAAQC,IAAI1L,MAAMyL,QAAS6c,OAEtB9c,QAAgB,SAErBC,QAAQC,IAAI,WAAa0iC,EAAI,cAAgBp1C,KAAKI,QAAU,MAAQwa,EAAI,MAAQnW,EAAI,yBAW5FyvC,cAAe,WAaX,GAXAn0C,KAAKwQ,OAAS8X,EAAOC,OAAOngB,OAAOpI,KAAMA,KAAK2G,MAAO3G,KAAK4G,OAAQ5G,KAAKipC,OAAiB,UAAG,GAEvFjpC,KAAKipC,OAAoB,YAEzBjpC,KAAKwQ,OAAO6K,MAAQrb,KAAKipC,OAAoB,YAI7CjpC,KAAKwQ,OAAO6K,MAAM,uBAAyB,4BAG3Crb,KAAK2jC,aAAerb,EAAOsE,UAAY5sB,KAAK2jC,aAAerb,EAAOoE,QAAW1sB,KAAK2jC,aAAerb,EAAOmE,OAASzsB,KAAKoqC,OAAOoL,MACjI,CACI,IAAIx1C,KAAKoqC,OAAO55B,OAWZ,KAAM,IAAI3H,OAAM,iEARhB7I,MAAK2jC,WAAarb,EAAOoE,OAEzB1sB,KAAKuG,SAAW,GAAItG,MAAKmoB,eAAepoB,MAExCA,KAAKoN,QAAUpN,KAAKuG,SAAS6G,YAUjCpN,MAAK2jC,WAAarb,EAAOqE,MAEzB3sB,KAAKuG,SAAW,GAAItG,MAAKwY,cAAczY,MAEvCA,KAAKoN,QAAU,KAEfpN,KAAKwQ,OAAOu5B,iBAAiB,mBAAoB/pC,KAAKua,YAAY4U,KAAKnvB,OAAO,GAC9EA,KAAKwQ,OAAOu5B,iBAAiB,uBAAwB/pC,KAAKy1C,gBAAgBtmB,KAAKnvB,OAAO,EAGtFA,MAAKoqC,OAAOsL,WAEZ11C,KAAKwQ,OAAOmY,aAAgB3oB,KAAK2jC,aAAerb,EAAOoE,QAAU,GAAO,GAGxE1sB,KAAK2jC,aAAerb,EAAOsE,WAE3B5sB,KAAK6B,MAAM8zC,SAAW31C,KAAKiZ,UAE3BqP,EAAOC,OAAOqtB,SAAS51C,KAAKwQ,OAAQxQ,KAAK4B,QAAQ,GACjD0mB,EAAOC,OAAOghB,eAAevpC,KAAKwQ,UAY1C+J,YAAa,SAAUsvB,GAEnBA,EAAMgM,iBAEN71C,KAAKuG,SAASgU,aAAc,GAUhCk7B,gBAAiB,WAEbz1C,KAAKuG,SAASwT,cAEd/Z,KAAKq/B,MAAMyW,kBAEX91C,KAAKuG,SAASgU,aAAc,GAWhCqkB,OAAQ,SAAUc,GAId,GAFA1/B,KAAK0/B,KAAKd,OAAOc,GAEb1/B,KAAKwjC,WAYL,MAVAxjC,MAAK+1C,YAAY/1C,KAAK0/B,KAAKsW,gBAG3Bh2C,KAAK6B,MAAM0C,kBAGXvE,KAAKi2C,aAAaj2C,KAAK0/B,KAAKwW,WAAal2C,KAAK0/B,KAAKyW,iBAEnDn2C,KAAKwjC,YAAa,EAMtB,IAAIxjC,KAAKyzC,WAAa,IAAMzzC,KAAK2zC,kBAGzB3zC,KAAK0/B,KAAKA,KAAO1/B,KAAK4zC,uBAGtB5zC,KAAK4zC,qBAAuB5zC,KAAK0/B,KAAKA,KAAO,IAG7C1/B,KAAK0zC,mBAAmB1Q,YAI5BhjC,KAAKuzC,WAAa,EAClBvzC,KAAKyzC,WAAa,EAGlBzzC,KAAKi2C,aAAaj2C,KAAK0/B,KAAKwW,WAAal2C,KAAK0/B,KAAKyW,gBAGvD,CAEI,GAAIC,GAAkC,IAAvBp2C,KAAK0/B,KAAKwW,WAAsBl2C,KAAK0/B,KAAKyW,UAGzDn2C,MAAKuzC,YAAc1yC,KAAK+G,IAAI/G,KAAKq2B,IAAe,EAAXkf,EAAcp2C,KAAK0/B,KAAK2W,SAAU,EAIvE,IAAIv4B,GAAQ,CASZ,KAPA9d,KAAKszC,iBAAmBzyC,KAAKouB,MAAMjvB,KAAKuzC,WAAa6C,GAEjDp2C,KAAK2zC,oBAEL3zC,KAAKszC,iBAAmBzyC,KAAKq2B,IAAI,EAAGl3B,KAAKszC,mBAGtCtzC,KAAKuzC,YAAc6C,IAEtBp2C,KAAKuzC,YAAc6C,EACnBp2C,KAAKqzC,gBAAkBv1B,EAEvB9d,KAAK+1C,YAAY/1C,KAAK0/B,KAAKsW,gBAG3Bh2C,KAAK6B,MAAM0C,kBAEXuZ,KAEI9d,KAAK2zC,mBAA+B,IAAV71B,IAM1B9d,KAAK0/B,KAAKrX,SAKdvK,GAAQ9d,KAAKwzC,WAEbxzC,KAAKyzC,aAEA31B,EAAQ9d,KAAKwzC,aAGlBxzC,KAAKyzC,WAAa,GAGtBzzC,KAAKwzC,WAAa11B,EAGlB9d,KAAKi2C,aAAaj2C,KAAKuzC,WAAa6C,KAY5CL,YAAa,SAAUO,GAEdt2C,KAAKmzC,SAAYnzC,KAAK+yC,aA8BvB/yC,KAAKqB,MAAMg/B,cACXrgC,KAAKmiC,MAAM9B,cACXrgC,KAAKqjC,MAAMl9B,cA9BPnG,KAAK8yC,WAEL9yC,KAAK+yC,aAAc,GAGvB/yC,KAAKqB,MAAM8E,YACXnG,KAAKqjC,MAAMl9B,YACXnG,KAAKyE,MAAM26B,OAAOj5B,YAClBnG,KAAK6/B,QAAQ15B,YACbnG,KAAKmiC,MAAMh8B,UAAUmwC,GACrBt2C,KAAKsoC,QAAQniC,UAAUmwC,GACvBt2C,KAAK6B,MAAMsE,YAEXnG,KAAKmiC,MAAMvD,SACX5+B,KAAK6B,MAAM+8B,SACX5+B,KAAK2/B,OAAOf,SACZ5+B,KAAKy/B,MAAMb,SACX5+B,KAAKs/B,MAAMV,SACX5+B,KAAK6/B,QAAQjB,SACb5+B,KAAK4/B,UAAUhB,SACf5+B,KAAKsoC,QAAQ1J,SAEb5+B,KAAK6B,MAAM6mC,aACX1oC,KAAKsoC,QAAQI,eA2BrBuN,aAAc,SAAUvS,GAEhB1jC,KAAK6yC,aAKT7yC,KAAKmiC,MAAMjC,UAAUwD,GAErB1jC,KAAKuG,SAASO,OAAO9G,KAAK6B,OAE1B7B,KAAKsoC,QAAQxhC,OAAO48B,GAEpB1jC,KAAKmiC,MAAMr7B,OAAO48B,GAElB1jC,KAAKsoC,QAAQF,WAAW1E,KAU5B6S,WAAY,WAERv2C,KAAK8yC,UAAW,EAChB9yC,KAAK+yC,aAAc,EACnB/yC,KAAKgzC,UAAY,GASrBwD,YAAa,WAETx2C,KAAK8yC,UAAW,EAChB9yC,KAAK+yC,aAAc,GAUvB0D,KAAM,WAEFz2C,KAAK+yC,aAAc,EACnB/yC,KAAKgzC,aASTjwC,QAAS,WAEL/C,KAAK0yC,IAAI1nC,OAEThL,KAAKmiC,MAAMp/B,UACX/C,KAAKy/B,MAAM18B,UAEX/C,KAAKqB,MAAM0B,UACX/C,KAAK6B,MAAMkB,UACX/C,KAAKs/B,MAAMv8B,UACX/C,KAAK6/B,QAAQ98B,UAEb/C,KAAKmiC,MAAQ,KACbniC,KAAKq/B,MAAQ,KACbr/B,KAAKs/B,MAAQ,KACbt/B,KAAKu/B,KAAO,KACZv/B,KAAKy/B,MAAQ,KACbz/B,KAAK6B,MAAQ,KACb7B,KAAK0/B,KAAO,KACZ1/B,KAAKyE,MAAQ,KACbzE,KAAKsiC,UAAW,EAEhBtiC,KAAKuG,SAASxD,SAAQ,GACtBulB,EAAOC,OAAOmuB,cAAc12C,KAAKwQ,QAEjC8X,EAAOkE,MAAMxsB,KAAK4V,IAAM,MAW5Bg1B,WAAY,SAAUf,GAGb7pC,KAAKmzC,UAENnzC,KAAKmzC,SAAU,EACfnzC,KAAK0/B,KAAKkL,aACV5qC,KAAKy/B,MAAMkX,UACX32C,KAAK+hC,QAAQiB,SAAS6G,GAGlB7pC,KAAKoqC,OAAOwM,SAAW52C,KAAKoqC,OAAOyM,MAEnC72C,KAAK6yC,YAAa,KAa9BhI,YAAa,SAAUhB,GAGf7pC,KAAKmzC,UAAYnzC,KAAKozC,cAEtBpzC,KAAKmzC,SAAU,EACfnzC,KAAK0/B,KAAKmL,cACV7qC,KAAKs/B,MAAML,QACXj/B,KAAKy/B,MAAMqX,YACX92C,KAAKiiC,SAASe,SAAS6G,GAGnB7pC,KAAKoqC,OAAOwM,SAAW52C,KAAKoqC,OAAOyM,MAEnC72C,KAAK6yC,YAAa,KAa9BnI,UAAW,SAAUb,GAEjB7pC,KAAKizC,OAAOjQ,SAAS6G,GAEhB7pC,KAAK6B,MAAM+mC,yBAEZ5oC,KAAK4qC,WAAWf,IAYxBc,UAAW,SAAUd,GAEjB7pC,KAAKkzC,QAAQlQ,SAAS6G,GAEjB7pC,KAAK6B,MAAM+mC,yBAEZ5oC,KAAK6qC,YAAYhB,KAO7BvhB,EAAOiqB,KAAK1vC,UAAUC,YAAcwlB,EAAOiqB,KAQ3CnvC,OAAOC,eAAeilB,EAAOiqB,KAAK1vC,UAAW,UAEzCS,IAAK,WACD,MAAOtD,MAAKmzC,SAGhB3vC,IAAK,SAAUC,GAEPA,KAAU,GAENzD,KAAKmzC,WAAY,IAEjBnzC,KAAKmzC,SAAU,EACfnzC,KAAKy/B,MAAMkX,UACX32C,KAAK0/B,KAAKkL,aACV5qC,KAAK+hC,QAAQiB,SAAShjC,OAE1BA,KAAKozC,aAAc,IAIfpzC,KAAKmzC,UAELnzC,KAAKmzC,SAAU,EACfnzC,KAAKs/B,MAAML,QACXj/B,KAAKy/B,MAAMqX,YACX92C,KAAK0/B,KAAKmL,cACV7qC,KAAKiiC,SAASe,SAAShjC,OAE3BA,KAAKozC,aAAc,MA6B/B9qB,EAAOosB,MAAQ,SAAUx0C,GAKrBF,KAAKE,KAAOA,EAMZF,KAAK+2C,UAAY,KAMjB/2C,KAAKg3C,WAAa,KAQlBh3C,KAAKi3C,iBAMLj3C,KAAKk3C,SAAW,EAShBl3C,KAAKm3C,SAAU,EAMfn3C,KAAKo3C,mBAAqB9uB,EAAOosB,MAAM2C,oBAMvCr3C,KAAKmB,SAAW,KAKhBnB,KAAKs3C,MAAQ,KAObt3C,KAAKu3C,OAAS,KAKdv3C,KAAKqB,MAAQ,KAMbrB,KAAKw3C,YAAc,GAMnBx3C,KAAKy3C,QAAU,IAMfz3C,KAAK03C,cAAgB,IAMrB13C,KAAK23C,SAAW,IAMhB33C,KAAK43C,gBAAkB,IAMvB53C,KAAK63C,iBAAmB,IASxB73C,KAAK83C,sBAAuB,EAM5B93C,KAAK+3C,WAAa,IAQlB/3C,KAAKg4C,YAAc,IAKnBh4C,KAAKi4C,SAAW,KAKhBj4C,KAAKk4C,SAAW,KAKhBl4C,KAAKm4C,SAAW,KAKhBn4C,KAAKo4C,SAAW,KAKhBp4C,KAAKq4C,SAAW,KAKhBr4C,KAAKs4C,SAAW,KAKhBt4C,KAAKu4C,SAAW,KAKhBv4C,KAAKw4C,SAAW,KAKhBx4C,KAAKy4C,SAAW,KAKhBz4C,KAAK04C,UAAY,KASjB14C,KAAK24C,YASL34C,KAAK44C,cAAgB,KAOrB54C,KAAK64C,aAAe,KAUpB74C,KAAK0mC,MAAQ,KAOb1mC,KAAK84C,SAAW,KAUhB94C,KAAK+4C,MAAQ,KAUb/4C,KAAKg5C,UAAY,KAOjBh5C,KAAKi5C,QAAU,KAQfj5C,KAAKk5C,aAAc,EAMnBl5C,KAAKm5C,OAAS,KAMdn5C,KAAKo5C,KAAO,KAMZp5C,KAAKq5C,MAAQ,KAMbr5C,KAAKs5C,OAAS,KAQdt5C,KAAKu5C,cAAgB,EAMrBv5C,KAAKw5C,iBAAmB,GAAIlxB,GAAOynB,SAMnC/vC,KAAKy5C,YAAc,GAAInxB,GAAOlnB,MAM9BpB,KAAK05C,aAAe,EAMpB15C,KAAK25C,aAAe,KAMpB35C,KAAK45C,GAAK,EAMV55C,KAAK65C,GAAK,GAQdvxB,EAAOosB,MAAMoF,sBAAwB,EAMrCxxB,EAAOosB,MAAMqF,sBAAwB,EAMrCzxB,EAAOosB,MAAM2C,oBAAsB,EAOnC/uB,EAAOosB,MAAMsF,aAAe,GAE5B1xB,EAAOosB,MAAM7xC,WAQTi/B,KAAM,WAEF9hC,KAAK64C,aAAe,GAAIvwB,GAAO2xB,QAAQj6C,KAAKE,KAAM,EAAGooB,EAAO4xB,YAAYC,QACxEn6C,KAAKo6C,aACLp6C,KAAKo6C,aAELp6C,KAAK0mC,MAAQ,GAAIpe,GAAO+xB,MAAMr6C,KAAKE,MACnCF,KAAK+4C,MAAQ,GAAIzwB,GAAOgyB,MAAMt6C,KAAKE,MACnCF,KAAKg5C,UAAY,GAAI1wB,GAAOiyB,UAAUv6C,KAAKE,MAEvCooB,EAAOkyB,WAEPx6C,KAAK84C,SAAW,GAAIxwB,GAAOkyB,SAASx6C,KAAKE,OAGzCooB,EAAOmyB,UAEPz6C,KAAKi5C,QAAU,GAAI3wB,GAAOmyB,QAAQz6C,KAAKE,OAG3CF,KAAKm5C,OAAS,GAAI7wB,GAAO0Y,OACzBhhC,KAAKo5C,KAAO,GAAI9wB,GAAO0Y,OACvBhhC,KAAKq5C,MAAQ,GAAI/wB,GAAO0Y,OACxBhhC,KAAKs5C,OAAS,GAAIhxB,GAAO0Y,OAEzBhhC,KAAKqB,MAAQ,GAAIinB,GAAOlnB,MAAM,EAAG,GACjCpB,KAAKs3C,MAAQ,GAAIhvB,GAAOlnB,MACxBpB,KAAKmB,SAAW,GAAImnB,GAAOlnB,MAC3BpB,KAAK25C,aAAe,GAAIrxB,GAAOlnB,MAE/BpB,KAAKu3C,OAAS,GAAIjvB,GAAOiL,OAAO,EAAG,EAAG,IAEtCvzB,KAAK44C,cAAgB54C,KAAK64C,aAE1B74C,KAAK+2C,UAAY92C,KAAKwQ,WAAWrI,OAAOpI,KAAM,EAAG,GACjDA,KAAKg3C,WAAah3C,KAAK+2C,UAAUrmC,WAAW,MAE5C1Q,KAAK0mC,MAAMt7B,QACXpL,KAAK+4C,MAAM3tC,QACXpL,KAAKg5C,UAAU5tC,QACfpL,KAAK64C,aAAa7U,QAAS,EAEvBhkC,KAAK84C,UAEL94C,KAAK84C,SAAS1tC,OAGlB,IAAIw6B,GAAQ5lC,IAEZA,MAAK06C,mBAAqB,SAAU7Q,GAChCjE,EAAM+U,kBAAkB9Q,IAG5B7pC,KAAKE,KAAKsQ,OAAOu5B,iBAAiB,QAAS/pC,KAAK06C,oBAAoB,IASxE33C,QAAS,WAEL/C,KAAK0mC,MAAM17B,OACXhL,KAAK+4C,MAAM/tC,OACXhL,KAAKg5C,UAAUhuC,OAEXhL,KAAK84C,UAEL94C,KAAK84C,SAAS9tC,OAGdhL,KAAKi5C,SAELj5C,KAAKi5C,QAAQjuC,OAGjBhL,KAAKi3C,iBAELh3C,KAAKwQ,WAAWI,OAAO7Q,MAEvBA,KAAKE,KAAKsQ,OAAOy6B,oBAAoB,QAASjrC,KAAK06C,qBAkBvDE,gBAAiB,SAAUvL,EAAUjiC,GAEjCpN,KAAKi3C,cAAclzC,MAAOsrC,SAAUA,EAAUjiC,QAASA,KAW3DytC,mBAAoB,SAAUxL,EAAUjiC,GAIpC,IAFA,GAAInK,GAAIjD,KAAKi3C,cAAc/zC,OAEpBD,KAEH,GAAIjD,KAAKi3C,cAAch0C,GAAGosC,WAAaA,GAAYrvC,KAAKi3C,cAAch0C,GAAGmK,UAAYA,EAGjF,WADApN,MAAKi3C,cAAcruC,OAAO3F,EAAG,IAezCm3C,WAAY,WAER,GAAIp6C,KAAK24C,SAASz1C,QAAUolB,EAAOosB,MAAMsF,aAGrC,MADAtnC,SAAQ2d,KAAK,6CAA+C/H,EAAOosB,MAAMsF,aAAe,sBACjF,IAGX,IAAIpkC,GAAK5V,KAAK24C,SAASz1C,OAAS,EAC5BskC,EAAU,GAAIlf,GAAO2xB,QAAQj6C,KAAKE,KAAM0V,EAAI0S,EAAO4xB,YAAYY,MAKnE,OAHA96C,MAAK24C,SAAS50C,KAAKyjC,GACnBxnC,KAAK,UAAY4V,GAAM4xB,EAEhBA,GAUX5I,OAAQ,WAOJ,GALI5+B,KAAK84C,UAEL94C,KAAK84C,SAASla,SAGd5+B,KAAKk3C,SAAW,GAAKl3C,KAAK05C,aAAe15C,KAAKk3C,SAG9C,WADAl3C,MAAK05C,cAIT15C,MAAKs3C,MAAMjyC,EAAIrF,KAAKmB,SAASkE,EAAIrF,KAAK25C,aAAat0C,EACnDrF,KAAKs3C,MAAMhyC,EAAItF,KAAKmB,SAASmE,EAAItF,KAAK25C,aAAar0C,EAEnDtF,KAAK25C,aAAa3lB,SAASh0B,KAAKmB,UAChCnB,KAAK64C,aAAaja,SAEd5+B,KAAKi5C,SAAWj5C,KAAKi5C,QAAQjV,QAE7BhkC,KAAKi5C,QAAQra,QAGjB,KAAK,GAAI37B,GAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,OAAQD,IAEtCjD,KAAK24C,SAAS11C,GAAG27B,QAGrB5+B,MAAK05C,aAAe,GAexBza,MAAO,SAAU8b,GAEb,GAAK/6C,KAAKE,KAAKoiC,WAAYtiC,KAAKk5C,YAAhC,CAKazvC,SAATsxC,IAAsBA,GAAO,GAEjC/6C,KAAK64C,aAAa5Z,QAEdj/B,KAAK84C,UAEL94C,KAAK84C,SAAS7Z,MAAM8b,GAGpB/6C,KAAKi5C,SAELj5C,KAAKi5C,QAAQha,OAGjB,KAAK,GAAIh8B,GAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,OAAQD,IAEtCjD,KAAK24C,SAAS11C,GAAGg8B,OAGiB,UAAlCj/B,KAAKE,KAAKsQ,OAAO6K,MAAMwwB,SAEvB7rC,KAAKE,KAAKsQ,OAAO6K,MAAMwwB,OAAS,WAGhCkP,IAEA/6C,KAAKm5C,OAAOxT,UACZ3lC,KAAKo5C,KAAKzT;AACV3lC,KAAKq5C,MAAM1T,UACX3lC,KAAKs5C,OAAO3T,UACZ3lC,KAAKm5C,OAAS,GAAI7wB,GAAO0Y,OACzBhhC,KAAKo5C,KAAO,GAAI9wB,GAAO0Y,OACvBhhC,KAAKq5C,MAAQ,GAAI/wB,GAAO0Y,OACxBhhC,KAAKs5C,OAAS,GAAIhxB,GAAO0Y,OACzBhhC,KAAKi3C,kBAGTj3C,KAAK05C,aAAe,IAWxBsB,WAAY,SAAU31C,EAAGC,GAErBtF,KAAK25C,aAAa5lB,MAAM1uB,EAAGC,GAC3BtF,KAAKs3C,MAAMvjB,MAAM,EAAG,IAaxBknB,aAAc,SAAUpR,GAEpB,GAAI7pC,KAAKw3C,aAAe,GAAKx3C,KAAKk7C,oBAAoBl7C,KAAKw3C,cAAgBx3C,KAAKw3C,YAE5E,MAAO,KAGX,KAAKx3C,KAAKi4C,SAASjU,OAEf,MAAOhkC,MAAKi4C,SAAS7sC,MAAMy+B,EAG/B,KAAK7pC,KAAKk4C,SAASlU,OAEf,MAAOhkC,MAAKk4C,SAAS9sC,MAAMy+B,EAG/B,KAAK,GAAI5mC,GAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,OAAQD,IAC1C,CACI,GAAIukC,GAAUxnC,KAAK24C,SAAS11C,EAE5B,KAAKukC,EAAQxD,OAET,MAAOwD,GAAQp8B,MAAMy+B,GAI7B,MAAO,OAaXsR,cAAe,SAAUtR,GAErB,GAAI7pC,KAAKi4C,SAASjU,QAAUhkC,KAAKi4C,SAASmD,aAAevR,EAAMuR,WAE3D,MAAOp7C,MAAKi4C,SAASoD,KAAKxR,EAG9B,IAAI7pC,KAAKk4C,SAASlU,QAAUhkC,KAAKk4C,SAASkD,aAAevR,EAAMuR,WAE3D,MAAOp7C,MAAKk4C,SAASmD,KAAKxR,EAG9B,KAAK,GAAI5mC,GAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,OAAQD,IAC1C,CACI,GAAIukC,GAAUxnC,KAAK24C,SAAS11C,EAE5B,IAAIukC,EAAQxD,QAAUwD,EAAQ4T,aAAevR,EAAMuR,WAE/C,MAAO5T,GAAQ6T,KAAKxR,GAI5B,MAAO,OAYXyR,YAAa,SAAUzR,GAEnB,GAAI7pC,KAAKi4C,SAASjU,QAAUhkC,KAAKi4C,SAASmD,aAAevR,EAAMuR,WAE3D,MAAOp7C,MAAKi4C,SAASjtC,KAAK6+B,EAG9B,IAAI7pC,KAAKk4C,SAASlU,QAAUhkC,KAAKk4C,SAASkD,aAAevR,EAAMuR,WAE3D,MAAOp7C,MAAKk4C,SAASltC,KAAK6+B,EAG9B,KAAK,GAAI5mC,GAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,OAAQD,IAC1C,CACI,GAAIukC,GAAUxnC,KAAK24C,SAAS11C,EAE5B,IAAIukC,EAAQxD,QAAUwD,EAAQ4T,aAAevR,EAAMuR,WAE/C,MAAO5T,GAAQx8B,KAAK6+B,GAI5B,MAAO,OAYXqR,oBAAqB,SAAUK,GAEb9xC,SAAV8xC,IAAuBA,EAAQv7C,KAAK24C,SAASz1C,OAIjD,KAAK,GAFD4a,GAAQy9B,EAEHt4C,EAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,QAAU4a,EAAQ,EAAG7a,IACvD,CACI,GAAIukC,GAAUxnC,KAAK24C,SAAS11C,EAExBukC,GAAQxD,QAERlmB,IAIR,MAAQy9B,GAAQz9B,GAWpB09B,WAAY,SAAUC,GAEDhyC,SAAbgyC,IAA0BA,GAAW,EAEzC,KAAK,GAAIx4C,GAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,OAAQD,IAC1C,CACI,GAAIukC,GAAUxnC,KAAK24C,SAAS11C,EAE5B,IAAIukC,EAAQxD,SAAWyX,EAEnB,MAAOjU,GAIf,MAAO,OAeXkU,yBAA0B,SAAUN,GAEhC,IAAK,GAAIn4C,GAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,OAAQD,IAC1C,CACI,GAAIukC,GAAUxnC,KAAK24C,SAAS11C,EAE5B,IAAIukC,EAAQ4T,aAAeA,EAEvB,MAAO5T,GAIf,MAAO,OAcXmU,iBAAkB,SAAUC,GAExB,IAAK,GAAI34C,GAAI,EAAGA,EAAIjD,KAAK24C,SAASz1C,OAAQD,IAC1C,CACI,GAAIukC,GAAUxnC,KAAK24C,SAAS11C,EAE5B,IAAIukC,EAAQoU,YAAcA,EAEtB,MAAOpU,GAIf,MAAO,OAYXqU,iBAAkB,SAAU3gC,EAAessB,EAASnT,GAEjC5qB,SAAX4qB,IAAwBA,EAAS,GAAI/L,GAAOlnB,MAEhD,IAAI6D,GAAKiW,EAAcnZ,eACnB6T,EAAK,GAAK3Q,EAAGP,EAAIO,EAAGJ,EAAII,EAAGL,GAAKK,EAAGN,EAEvC,OAAO0vB,GAAON,MACV9uB,EAAGJ,EAAI+Q,EAAK4xB,EAAQniC,GAAKJ,EAAGL,EAAIgR,EAAK4xB,EAAQliC,GAAKL,EAAGF,GAAKE,EAAGL,EAAIK,EAAGH,GAAKG,EAAGJ,GAAK+Q,EACjF3Q,EAAGP,EAAIkR,EAAK4xB,EAAQliC,GAAKL,EAAGN,EAAIiR,EAAK4xB,EAAQniC,IAAMJ,EAAGF,GAAKE,EAAGP,EAAIO,EAAGH,GAAKG,EAAGN,GAAKiR,IAa1FkmC,QAAS,SAAU5gC,EAAessB,EAASuU,GAEvC,IAAK7gC,EAAc8gC,aAEf,OAAO,CAOX,IAJAh8C,KAAK67C,iBAAiB3gC,EAAessB,EAASxnC,KAAKy5C,aAEnDsC,EAAW/nB,SAASh0B,KAAKy5C,aAErBv+B,EAAcxZ,SAAWwZ,EAAcxZ,QAAQ4yB,SAE/C,MAAQpZ,GAAcxZ,QAAQ4yB,SAASt0B,KAAKy5C,YAAYp0C,EAAGrF,KAAKy5C,YAAYn0C,EAE3E,IAAI4V,YAAyBoN,GAAO2zB,WACzC,CACI,GAAIt1C,GAAQuU,EAAcvU,MACtBC,EAASsU,EAActU,OACvB8F,GAAM/F,EAAQuU,EAAchT,OAAO7C,CAEvC,IAAIrF,KAAKy5C,YAAYp0C,GAAKqH,GAAM1M,KAAKy5C,YAAYp0C,EAAIqH,EAAK/F,EAC1D,CACI,GAAIgG,IAAM/F,EAASsU,EAAchT,OAAO5C,CAExC,IAAItF,KAAKy5C,YAAYn0C,GAAKqH,GAAM3M,KAAKy5C,YAAYn0C,EAAIqH,EAAK/F,EAEtD,OAAO,OAId,IAAIsU,YAAyBjb,MAAKwH,OACvC,CACI,GAAId,GAAQuU,EAAcpT,QAAQkE,MAAMrF,MACpCC,EAASsU,EAAcpT,QAAQkE,MAAMpF,OACrC8F,GAAM/F,EAAQuU,EAAchT,OAAO7C,CAEvC,IAAIrF,KAAKy5C,YAAYp0C,GAAKqH,GAAM1M,KAAKy5C,YAAYp0C,EAAIqH,EAAK/F,EAC1D,CACI,GAAIgG,IAAM/F,EAASsU,EAAchT,OAAO5C,CAExC,IAAItF,KAAKy5C,YAAYn0C,GAAKqH,GAAM3M,KAAKy5C,YAAYn0C,EAAIqH,EAAK/F,EAEtD,OAAO,OAId,IAAIsU,YAAyBoN,GAAO4zB,SAErC,IAAK,GAAIj5C,GAAI,EAAGA,EAAIiY,EAAcihC,aAAaj5C,OAAQD,IACvD,CACI,GAAI2N,GAAOsK,EAAcihC,aAAal5C,EAEtC,IAAK2N,EAAKwrC,MAMNxrC,EAAKyrC,OAASzrC,EAAKyrC,MAAM/nB,SAASt0B,KAAKy5C,YAAYp0C,EAAGrF,KAAKy5C,YAAYn0C,GAEvE,OAAO,EAOnB,IAAK,GAAIrC,GAAI,EAAGitB,EAAMhV,EAAclY,SAASE,OAAYgtB,EAAJjtB,EAASA,IAE1D,GAAIjD,KAAK87C,QAAQ5gC,EAAclY,SAASC,GAAIukC,EAASuU,GAEjD,OAAO,CAIf,QAAO,GASXpB,kBAAmB,WAIf36C,KAAK44C,cAAc0D,4BAM3Bh0B,EAAOosB,MAAM7xC,UAAUC,YAAcwlB,EAAOosB,MAQ5CtxC,OAAOC,eAAeilB,EAAOosB,MAAM7xC,UAAW,KAE1CS,IAAK,WACD,MAAOtD,MAAK45C,IAGhBp2C,IAAK,SAAUC,GACXzD,KAAK45C,GAAK/4C,KAAKouB,MAAMxrB,MAW7BL,OAAOC,eAAeilB,EAAOosB,MAAM7xC,UAAW,KAE1CS,IAAK,WACD,MAAOtD,MAAK65C,IAGhBr2C,IAAK,SAAUC,GACXzD,KAAK65C,GAAKh5C,KAAKouB,MAAMxrB,MAW7BL,OAAOC,eAAeilB,EAAOosB,MAAM7xC,UAAW,cAE1CS,IAAK,WACD,MAAQtD,MAAKk3C,SAAW,GAAKl3C,KAAK05C,aAAe15C,KAAKk3C,YAW9D9zC,OAAOC,eAAeilB,EAAOosB,MAAM7xC,UAAW,yBAE1CS,IAAK,WACD,MAAOtD,MAAK24C,SAASz1C,OAASlD,KAAKk7C,yBAW3C93C,OAAOC,eAAeilB,EAAOosB,MAAM7xC,UAAW,uBAE1CS,IAAK,WACD,MAAOtD,MAAKk7C,yBAWpB93C,OAAOC,eAAeilB,EAAOosB,MAAM7xC,UAAW,UAE1CS,IAAK,WACD,MAAOtD,MAAKE,KAAKk/B,OAAOrmB,KAAK1T,EAAIrF,KAAKqF,KAW9CjC,OAAOC,eAAeilB,EAAOosB,MAAM7xC,UAAW,UAE1CS,IAAK,WACD,MAAOtD,MAAKE,KAAKk/B,OAAOrmB,KAAKzT,EAAItF,KAAKsF,KAyB9CgjB,EAAO+xB,MAAQ,SAAUn6C,GAKrBF,KAAKE,KAAOA,EAMZF,KAAKs/B,MAAQp/B,EAAKo/B,MAKlBt/B,KAAKuiC,gBAAkBviC,KAAKE,KAK5BF,KAAKu8C,kBAAoB,KAKzBv8C,KAAKw8C,gBAAkB,KAKvBx8C,KAAKy8C,iBAAmB,KAKxBz8C,KAAK08C,kBAAoB,KAKzB18C,KAAK28C,mBAAqB,KAK1B38C,KAAK48C,SAAU,EASf58C,KAAK68C,OAAS,GAMd78C,KAAK88C,WAAa,EAOlB98C,KAAKm3C,SAAU,EAMfn3C,KAAK+8C,QAAS,EAMd/8C,KAAKg9C,eAAgB,EAMrBh9C,KAAKi9C,YAAc,GAAI30B,GAAO0Y,OAQ9BhhC,KAAK6pC,MAAQ,KAMb7pC,KAAKk9C,aAAe,KAMpBl9C,KAAKm9C,aAAe,KAMpBn9C,KAAKo9C,WAAa,KAMlBp9C,KAAKq9C,YAAc,KAMnBr9C,KAAKs9C,aAAe,KAMpBt9C,KAAKu9C,cAAgB,KAOrBv9C,KAAKw9C,YAAc,MAQvBl1B,EAAO+xB,MAAMoD,UAAY,GAMzBn1B,EAAO+xB,MAAMqD,YAAc,EAM3Bp1B,EAAO+xB,MAAMsD,cAAgB,EAM7Br1B,EAAO+xB,MAAMuD,aAAe,EAM5Bt1B,EAAO+xB,MAAMwD,YAAc,EAM3Bv1B,EAAO+xB,MAAMyD,eAAiB,EAM9Bx1B,EAAO+xB,MAAM0D,SAAW,EAMxBz1B,EAAO+xB,MAAM2D,WAAa,GAE1B11B,EAAO+xB,MAAMx3C,WAMTuI,MAAO,WAEH,KAAIpL,KAAKE,KAAKkqC,OAAO6T,SAAWj+C,KAAKE,KAAKkqC,OAAOmL,UAAW,IAMlC,OAAtBv1C,KAAKk9C,aAAT,CAMA,GAAItX,GAAQ5lC,IAEZA,MAAKk9C,aAAe,SAAUrT,GAC1B,MAAOjE,GAAMsY,YAAYrU,IAG7B7pC,KAAKm9C,aAAe,SAAUtT,GAC1B,MAAOjE,GAAMuY,YAAYtU,IAG7B7pC,KAAKo9C,WAAa,SAAUvT,GACxB,MAAOjE,GAAMwY,UAAUvU,IAG3B7pC,KAAKq+C,iBAAmB,SAAUxU,GAC9B,MAAOjE,GAAM0Y,gBAAgBzU,IAGjC7pC,KAAKu+C,kBAAoB,SAAU1U,GAC/B,MAAOjE,GAAM4Y,iBAAiB3U,IAGlC7pC,KAAKq9C,YAAc,SAAUxT,GACzB,MAAOjE,GAAM6Y,WAAW5U,IAG5B7pC,KAAKs9C,aAAe,SAAUzT,GAC1B,MAAOjE,GAAM8Y,YAAY7U,IAG7B7pC,KAAKu9C,cAAgB,SAAU1T,GAC3B,MAAOjE,GAAM+Y,aAAa9U,GAG9B,IAAIr5B,GAASxQ,KAAKE,KAAKsQ,MAEvBA,GAAOu5B,iBAAiB,YAAa/pC,KAAKk9C,cAAc,GACxD1sC,EAAOu5B,iBAAiB,YAAa/pC,KAAKm9C,cAAc,GACxD3sC,EAAOu5B,iBAAiB,UAAW/pC,KAAKo9C,YAAY,GAE/Cp9C,KAAKE,KAAKkqC,OAAOsL,WAElBjjC,OAAOs3B,iBAAiB,UAAW/pC,KAAKq+C,kBAAkB,GAC1D5rC,OAAOs3B,iBAAiB,WAAY/pC,KAAKu+C,mBAAmB,GAC5D/tC,EAAOu5B,iBAAiB,YAAa/pC,KAAKs9C,cAAc,GACxD9sC,EAAOu5B,iBAAiB,WAAY/pC,KAAKq9C,aAAa,GAG1D,IAAIuB,GAAa5+C,KAAKE,KAAKkqC,OAAOwU,UAE9BA,KAEApuC,EAAOu5B,iBAAiB6U,EAAY5+C,KAAKu9C,eAAe,GAErC,eAAfqB,EAEA5+C,KAAKw9C,YAAc,GAAItxB,GAAgB,GAAG,GAAI,GAE1B,mBAAf0yB,IAEL5+C,KAAKw9C,YAAc,GAAItxB,GAAgB,EAAG,OAWtDgyB,YAAa,SAAUrU,GAEnB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGN71C,KAAKu8C,mBAELv8C,KAAKu8C,kBAAkB72C,KAAK1F,KAAKuiC,gBAAiBsH,GAGjD7pC,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,UAKjCtN,EAAkB,WAAI,EAEtB7pC,KAAKs/B,MAAMuZ,aAAaztC,MAAMy+B,KASlCsU,YAAa,SAAUtU,GAEnB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGN71C,KAAK6+C,mBAEL7+C,KAAK6+C,kBAAkBn5C,KAAK1F,KAAKuiC,gBAAiBsH,GAGjD7pC,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,UAKjCtN,EAAkB,WAAI,EAEtB7pC,KAAKs/B,MAAMuZ,aAAawC,KAAKxR,KASjCuU,UAAW,SAAUvU,GAEjB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGN71C,KAAKw8C,iBAELx8C,KAAKw8C,gBAAgB92C,KAAK1F,KAAKuiC,gBAAiBsH,GAG/C7pC,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,UAKjCtN,EAAkB,WAAI,EAEtB7pC,KAAKs/B,MAAMuZ,aAAa7tC,KAAK6+B,KAUjCyU,gBAAiB,SAAUzU,GAElB7pC,KAAKs/B,MAAMuZ,aAAaiG,aAErB9+C,KAAKw8C,iBAELx8C,KAAKw8C,gBAAgB92C,KAAK1F,KAAKuiC,gBAAiBsH,GAGpDA,EAAkB,WAAI,EAEtB7pC,KAAKs/B,MAAMuZ,aAAa7tC,KAAK6+B,KAWrC2U,iBAAkB,SAAU3U,GAExB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGV71C,KAAKs/B,MAAMuZ,aAAaiG,YAAa,EAEhC9+C,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,UAajCn3C,KAAKs/B,MAAMuZ,aAAa7tC,KAAK6+B,GAC7B7pC,KAAKs/B,MAAMuZ,aAAakG,WAAW/zC,KAAK6+B,GACxC7pC,KAAKs/B,MAAMuZ,aAAamG,YAAYh0C,KAAK6+B,KAU7C4U,WAAY,SAAU5U,GAElB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGV71C,KAAKs/B,MAAMuZ,aAAaiG,YAAa,EAEjC9+C,KAAKy8C,kBAELz8C,KAAKy8C,iBAAiB/2C,KAAK1F,KAAKuiC,gBAAiBsH,GAGhD7pC,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,SAK7Bn3C,KAAKg9C,gBAELnT,EAAkB,WAAI,EAEtB7pC,KAAKs/B,MAAMuZ,aAAa7tC,KAAK6+B,KAWrC6U,YAAa,SAAU7U,GAEnB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGV71C,KAAKs/B,MAAMuZ,aAAaiG,YAAa,EAEjC9+C,KAAK08C,mBAEL18C,KAAK08C,kBAAkBh3C,KAAK1F,KAAKuiC,gBAAiBsH,IAW1D8U,aAAc,SAAU9U,GAEhB7pC,KAAKw9C,cACL3T,EAAQ7pC,KAAKw9C,YAAYyB,UAAUpV,IAGvC7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAIV71C,KAAK88C,WAAax0B,EAAOznB,KAAKu4B,OAAOyQ,EAAMqV,OAAQ,GAAI,GAEnDl/C,KAAK28C,oBAEL38C,KAAK28C,mBAAmBj3C,KAAK1F,KAAKuiC,gBAAiBsH,IAW3DsV,mBAAoB,WAEhB,GAAIn/C,KAAKE,KAAKkqC,OAAO6S,YACrB,CACI,GAAImC,GAAUp/C,KAAKE,KAAKsQ,MAExB4uC,GAAQD,mBAAqBC,EAAQD,oBAAsBC,EAAQC,uBAAyBD,EAAQE,yBAEpGF,EAAQD,oBAER,IAAIvZ,GAAQ5lC,IAEZA,MAAKu/C,mBAAqB,SAAU1V,GAChC,MAAOjE,GAAM4Z,kBAAkB3V,IAGnC55B,SAAS85B,iBAAiB,oBAAqB/pC,KAAKu/C,oBAAoB,GACxEtvC,SAAS85B,iBAAiB,uBAAwB/pC,KAAKu/C,oBAAoB,GAC3EtvC,SAAS85B,iBAAiB,0BAA2B/pC,KAAKu/C,oBAAoB,KAWtFC,kBAAmB,SAAU3V,GAEzB,GAAIuV,GAAUp/C,KAAKE,KAAKsQ,MAEpBP,UAASwvC,qBAAuBL,GAAWnvC,SAASyvC,wBAA0BN,GAAWnvC,SAAS0vC,2BAA6BP,GAG/Hp/C,KAAK+8C,QAAS,EACd/8C,KAAKi9C,YAAYja,UAAS,EAAM6G,KAKhC7pC,KAAK+8C,QAAS,EACd/8C,KAAKi9C,YAAYja,UAAS,EAAO6G,KASzC+V,mBAAoB,WAEhB3vC,SAAS4vC,gBAAkB5vC,SAAS4vC,iBAAmB5vC,SAAS6vC,oBAAsB7vC,SAAS8vC,sBAE/F9vC,SAAS4vC,kBAET5vC,SAASg7B,oBAAoB,oBAAqBjrC,KAAKu/C,oBAAoB,GAC3EtvC,SAASg7B,oBAAoB,uBAAwBjrC,KAAKu/C,oBAAoB,GAC9EtvC,SAASg7B,oBAAoB,0BAA2BjrC,KAAKu/C,oBAAoB,IAQrFv0C,KAAM,WAEF,GAAIwF,GAASxQ,KAAKE,KAAKsQ,MAEvBA,GAAOy6B,oBAAoB,YAAajrC,KAAKk9C,cAAc,GAC3D1sC,EAAOy6B,oBAAoB,YAAajrC,KAAKm9C,cAAc,GAC3D3sC,EAAOy6B,oBAAoB,UAAWjrC,KAAKo9C,YAAY,GACvD5sC,EAAOy6B,oBAAoB,YAAajrC,KAAKs9C,cAAc,GAC3D9sC,EAAOy6B,oBAAoB,WAAYjrC,KAAKq9C,aAAa,EAEzD,IAAIuB,GAAa5+C,KAAKE,KAAKkqC,OAAOwU,UAE9BA,IAEApuC,EAAOy6B,oBAAoB2T,EAAY5+C,KAAKu9C,eAAe,GAG/D9qC,OAAOw4B,oBAAoB,UAAWjrC,KAAKq+C,kBAAkB,GAE7DpuC,SAASg7B,oBAAoB,oBAAqBjrC,KAAKu/C,oBAAoB,GAC3EtvC,SAASg7B,oBAAoB,uBAAwBjrC,KAAKu/C,oBAAoB,GAC9EtvC,SAASg7B,oBAAoB,0BAA2BjrC,KAAKu/C,oBAAoB,KAMzFj3B,EAAO+xB,MAAMx3C,UAAUC,YAAcwlB,EAAO+xB,MAoC5CnuB,EAAgBrpB,aAChBqpB,EAAgBrpB,UAAUC,YAAcopB,EAExCA,EAAgBrpB,UAAUo8C,UAAY,SAAUpV,GAG5C,IAAK3d,EAAgB8zB,iBAAmBnW,EACxC,CACI,GAAIoW,GAAa,SAAUxtB,GAEvB,MAAO,YACH,GAAI4iB,GAAIr1C,KAAKusB,cAAckG,EAC3B,OAAoB,kBAAN4iB,GAAmBA,EAAIA,EAAElmB,KAAKnvB,KAAKusB,gBAKzD,KAAK,GAAIkE,KAAQoZ,GAEPpZ,IAAQvE,GAAgBrpB,WAE1BO,OAAOC,eAAe6oB,EAAgBrpB,UAAW4tB,GAC7CntB,IAAK28C,EAAWxvB,IAI5BvE,GAAgB8zB,iBAAkB,EAItC,MADAhgD,MAAKusB,cAAgBsd,EACd7pC,MAIXoD,OAAO88C,iBAAiBh0B,EAAgBrpB,WACpCkS,MAAUtR,MAAO,SACjB2oB,WAAe9oB,IAAK,WAAc,MAAOtD,MAAKssB,aAC9C4yB,QACI57C,IAAK,WACD,MAAQtD,MAAKqsB,cAAgBrsB,KAAKusB,cAAcuwB,YAAc98C,KAAKusB,cAAc4zB,SAAY,IAGrGC,QACI98C,IAAK,WACD,MAAQtD,MAAKqsB,aAAersB,KAAKusB,cAAc8zB,aAAgB,IAGvEC,QAAY78C,MAAO,KAyBvB6kB,EAAOiyB,UAAY,SAAUr6C,GAKzBF,KAAKE,KAAOA,EAMZF,KAAKs/B,MAAQp/B,EAAKo/B,MAKlBt/B,KAAKuiC,gBAAkBviC,KAAKE,KAK5BF,KAAKugD,oBAAsB,KAK3BvgD,KAAKwgD,oBAAsB,KAK3BxgD,KAAKygD,kBAAoB,KAKzBzgD,KAAK48C,SAAU,EAQf58C,KAAK68C,OAAS,GAQd78C,KAAK6pC,MAAQ,KAOb7pC,KAAKm3C,SAAU,EAMfn3C,KAAK0gD,iBAAmB,KAMxB1gD,KAAK2gD,iBAAmB,KAMxB3gD,KAAK4gD,eAAiB,KAMtB5gD,KAAK6gD,qBAAuB,KAM5B7gD,KAAK8gD,gBAAkB,KAMvB9gD,KAAK+gD,iBAAmB,MAI5Bz4B,EAAOiyB,UAAU13C,WAMbuI,MAAO,WAEH,GAA8B,OAA1BpL,KAAK0gD,iBAAT,CAMA,GAAI9a,GAAQ5lC,IAEZ,IAAIA,KAAKE,KAAKkqC,OAAO4O,UACrB,CACIh5C,KAAK0gD,iBAAmB,SAAU7W,GAC9B,MAAOjE,GAAMob,cAAcnX,IAG/B7pC,KAAK2gD,iBAAmB,SAAU9W,GAC9B,MAAOjE,GAAMqb,cAAcpX,IAG/B7pC,KAAK4gD,eAAiB,SAAU/W,GAC5B,MAAOjE,GAAMsb,YAAYrX,IAG7B7pC,KAAK6gD,qBAAuB,SAAUhX,GAClC,MAAOjE,GAAMub,kBAAkBtX,IAGnC7pC,KAAK8gD,gBAAkB,SAAUjX,GAC7B,MAAOjE,GAAMwb,aAAavX,IAG9B7pC,KAAK+gD,iBAAmB,SAAUlX,GAC9B,MAAOjE,GAAMyb,cAAcxX,GAG/B,IAAIr5B,GAASxQ,KAAKE,KAAKsQ,MAEvBA,GAAOu5B,iBAAiB,gBAAiB/pC,KAAK0gD,kBAAkB,GAChElwC,EAAOu5B,iBAAiB,gBAAiB/pC,KAAK2gD,kBAAkB,GAChEnwC,EAAOu5B,iBAAiB,cAAe/pC,KAAK4gD,gBAAgB,GAG5DpwC,EAAOu5B,iBAAiB,cAAe/pC,KAAK0gD,kBAAkB,GAC9DlwC,EAAOu5B,iBAAiB,cAAe/pC,KAAK2gD,kBAAkB,GAC9DnwC,EAAOu5B,iBAAiB,YAAa/pC,KAAK4gD,gBAAgB,GAE1DpwC,EAAO6K,MAAM,uBAAyB,OACtC7K,EAAO6K,MAAM,oBAAsB,OAE9Brb,KAAKE,KAAKkqC,OAAOsL,WAElBjjC,OAAOs3B,iBAAiB,cAAe/pC,KAAK6gD,sBAAsB,GAClErwC,EAAOu5B,iBAAiB,gBAAiB/pC,KAAK+gD,kBAAkB,GAChEvwC,EAAOu5B,iBAAiB,eAAgB/pC,KAAK8gD,iBAAiB,GAG9DruC,OAAOs3B,iBAAiB,YAAa/pC,KAAK6gD,sBAAsB,GAChErwC,EAAOu5B,iBAAiB,cAAe/pC,KAAK+gD,kBAAkB,GAC9DvwC,EAAOu5B,iBAAiB,aAAc/pC,KAAK8gD,iBAAiB,OAYxEE,cAAe,SAAUnX,GAErB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGN71C,KAAKugD,qBAELvgD,KAAKugD,oBAAoB76C,KAAK1F,KAAKuiC,gBAAiBsH,GAGnD7pC,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,UAKjCtN,EAAMuR,WAAavR,EAAM+R,UAEC,UAAtB/R,EAAMyX,aAAiD,IAAtBzX,EAAMyX,YAEvCthD,KAAKs/B,MAAMuZ,aAAaztC,MAAMy+B,GAI9B7pC,KAAKs/B,MAAM2b,aAAapR,KAUhCoX,cAAe,SAAUpX,GAErB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGN71C,KAAKwgD,qBAELxgD,KAAKwgD,oBAAoB96C,KAAK1F,KAAKuiC,gBAAiBsH,GAGnD7pC,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,UAKjCtN,EAAMuR,WAAavR,EAAM+R,UAEC,UAAtB/R,EAAMyX,aAAiD,IAAtBzX,EAAMyX,YAEvCthD,KAAKs/B,MAAMuZ,aAAawC,KAAKxR,GAI7B7pC,KAAKs/B,MAAM6b,cAActR,KAUjCqX,YAAa,SAAUrX,GAEnB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGN71C,KAAKygD,mBAELzgD,KAAKygD,kBAAkB/6C,KAAK1F,KAAKuiC,gBAAiBsH,GAGjD7pC,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,UAKjCtN,EAAMuR,WAAavR,EAAM+R,UAEC,UAAtB/R,EAAMyX,aAAiD,IAAtBzX,EAAMyX,YAEvCthD,KAAKs/B,MAAMuZ,aAAa7tC,KAAK6+B,GAI7B7pC,KAAKs/B,MAAMgc,YAAYzR,KAW/BsX,kBAAmB,SAAUtX,GAEzB,GAA2B,UAAtBA,EAAMyX,aAAiD,IAAtBzX,EAAMyX,aAAgCthD,KAAKs/B,MAAMuZ,aAAaiG,WAKpG,CACI,GAAItX,GAAUxnC,KAAKs/B,MAAMoc,yBAAyB7R,EAAMuR,WAEpD5T,IAAWA,EAAQsX,YAEnB9+C,KAAKkhD,YAAYrX,OARrB7pC,MAAKkhD,YAAYrX,IAoBzBuX,aAAc,SAAUvX,GASpB,GAPA7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGgB,UAAtBhM,EAAMyX,aAAiD,IAAtBzX,EAAMyX,YAEvCthD,KAAKs/B,MAAMuZ,aAAaiG,YAAa,MAGzC,CACI,GAAItX,GAAUxnC,KAAKs/B,MAAMoc,yBAAyB7R,EAAMuR,WAEpD5T,KAEAA,EAAQsX,YAAa,GAIzB9+C,KAAKs/B,MAAMoH,MAAM+V,kBAEjBz8C,KAAKs/B,MAAMoH,MAAM+V,iBAAiB/2C,KAAK1F,KAAKs/B,MAAMoH,MAAMnE,gBAAiBsH,GAGxE7pC,KAAKs/B,MAAM6X,SAAYn3C,KAAKm3C,SAK7Bn3C,KAAKs/B,MAAMoH,MAAMsW,gBAEjBnT,EAAkB,WAAI,EAElBrC,EAEAA,EAAQx8B,KAAK6+B,GAIb7pC,KAAKs/B,MAAMuZ,aAAa7tC,KAAK6+B,KAYzCwX,cAAe,SAAUxX,GASrB,GAPA7pC,KAAK6pC,MAAQA,EAET7pC,KAAK48C,SAEL/S,EAAMgM,iBAGgB,UAAtBhM,EAAMyX,aAAiD,IAAtBzX,EAAMyX,YAEvCthD,KAAKs/B,MAAMuZ,aAAaiG,YAAa,MAGzC,CACI,GAAItX,GAAUxnC,KAAKs/B,MAAMoc,yBAAyB7R,EAAMuR,WAEpD5T,KAEAA,EAAQsX,YAAa,GAIzB9+C,KAAKs/B,MAAMoH,MAAMgW,mBAEjB18C,KAAKs/B,MAAMoH,MAAMgW,kBAAkBh3C,KAAK1F,KAAKs/B,MAAMoH,MAAMnE,gBAAiBsH,IASlF7+B,KAAM,WAEF,GAAIwF,GAASxQ,KAAKE,KAAKsQ,MAEvBA,GAAOy6B,oBAAoB,gBAAiBjrC,KAAK0gD,kBAAkB,GACnElwC,EAAOy6B,oBAAoB,gBAAiBjrC,KAAK2gD,kBAAkB,GACnEnwC,EAAOy6B,oBAAoB,cAAejrC,KAAK4gD,gBAAgB,GAG/DpwC,EAAOy6B,oBAAoB,cAAejrC,KAAK0gD,kBAAkB,GACjElwC,EAAOy6B,oBAAoB,cAAejrC,KAAK2gD,kBAAkB,GACjEnwC,EAAOy6B,oBAAoB,YAAajrC,KAAK4gD,gBAAgB,GAE7DnuC,OAAOw4B,oBAAoB,cAAejrC,KAAK6gD,sBAAsB,GACrErwC,EAAOy6B,oBAAoB,gBAAiBjrC,KAAK+gD,kBAAkB,GACnEvwC,EAAOy6B,oBAAoB,eAAgBjrC,KAAK8gD,iBAAiB,GAGjEruC,OAAOw4B,oBAAoB,YAAajrC,KAAK6gD,sBAAsB,GACnErwC,EAAOy6B,oBAAoB,cAAejrC,KAAK+gD,kBAAkB,GACjEvwC,EAAOy6B,oBAAoB,aAAcjrC,KAAK8gD,iBAAiB,KAMvEx4B,EAAOiyB,UAAU13C,UAAUC,YAAcwlB,EAAOiyB,UAgChDjyB,EAAOi5B,aAAe,SAAU3/C,EAAQ4/C,GAKpCxhD,KAAK4B,OAASA,EAKd5B,KAAKE,KAAO0B,EAAO1B,KAMnBF,KAAK6pC,MAAQ,KAMb7pC,KAAKyhD,QAAS,EAMdzhD,KAAK0hD,MAAO,EAMZ1hD,KAAK2hD,SAAW,EAMhB3hD,KAAK4hD,OAAS,EAQd5hD,KAAK6hD,QAAU,EAQf7hD,KAAK8hD,QAAS,EAQd9hD,KAAK+hD,UAAW,EAQhB/hD,KAAKgiD,SAAU,EAMfhiD,KAAKyD,MAAQ,EAKbzD,KAAKwhD,WAAaA,EAQlBxhD,KAAKm5C,OAAS,GAAI7wB,GAAO0Y,OAQzBhhC,KAAKo5C,KAAO,GAAI9wB,GAAO0Y,OAQvBhhC,KAAKiiD,QAAU,GAAI35B,GAAO0Y,QAI9B1Y,EAAOi5B,aAAa1+C,WAWhBuI,MAAO,SAAUy+B,EAAOpmC,GAEhBzD,KAAKyhD,SAKTzhD,KAAKyhD,QAAS,EACdzhD,KAAK0hD,MAAO,EACZ1hD,KAAK2hD,SAAW3hD,KAAKE,KAAKw/B,KAAKA,KAC/B1/B,KAAK6hD,QAAU,EAEf7hD,KAAK6pC,MAAQA,EACb7pC,KAAKyD,MAAQA,EAETomC,IAEA7pC,KAAK8hD,OAASjY,EAAMiY,OACpB9hD,KAAK+hD,SAAWlY,EAAMkY,SACtB/hD,KAAKgiD,QAAUnY,EAAMmY,SAGzBhiD,KAAKm5C,OAAOnW,SAAShjC,KAAMyD,KAa/BuH,KAAM,SAAU6+B,EAAOpmC,GAEfzD,KAAK0hD,OAKT1hD,KAAKyhD,QAAS,EACdzhD,KAAK0hD,MAAO,EACZ1hD,KAAK4hD,OAAS5hD,KAAKE,KAAKw/B,KAAKA,KAE7B1/B,KAAK6pC,MAAQA,EACb7pC,KAAKyD,MAAQA,EAETomC,IAEA7pC,KAAK8hD,OAASjY,EAAMiY,OACpB9hD,KAAK+hD,SAAWlY,EAAMkY,SACtB/hD,KAAKgiD,QAAUnY,EAAMmY,SAGzBhiD,KAAKo5C,KAAKpW,SAAShjC,KAAMyD,KAW7By+C,SAAU,SAAUz+C,GAEhBzD,KAAKyD,MAAQA,EAEbzD,KAAKiiD,QAAQjf,SAAShjC,KAAMyD,IAYhC0+C,YAAa,SAAUC,GAInB,MAFAA,GAAWA,GAAY,IAEfpiD,KAAKyhD,QAAWzhD,KAAK2hD,SAAWS,EAAYpiD,KAAKE,KAAKw/B,KAAKA,MAYvE2iB,aAAc,SAAUD,GAIpB,MAFAA,GAAWA,GAAY,IAEfpiD,KAAK0hD,MAAS1hD,KAAK4hD,OAASQ,EAAYpiD,KAAKE,KAAKw/B,KAAKA,MASnET,MAAO,WAEHj/B,KAAKyhD,QAAS,EACdzhD,KAAK0hD,MAAO,EAEZ1hD,KAAK2hD,SAAW3hD,KAAKE,KAAKw/B,KAAKA,KAC/B1/B,KAAK6hD,QAAU,EAEf7hD,KAAK8hD,QAAS,EACd9hD,KAAK+hD,UAAW,EAChB/hD,KAAKgiD,SAAU,GAUnBj/C,QAAS,WAEL/C,KAAKm5C,OAAOxT,UACZ3lC,KAAKo5C,KAAKzT,UACV3lC,KAAKiiD,QAAQtc,UAEb3lC,KAAK4B,OAAS,KACd5B,KAAKE,KAAO,OAMpBooB,EAAOi5B,aAAa1+C,UAAUC,YAAcwlB,EAAOi5B,aAUnDn+C,OAAOC,eAAeilB,EAAOi5B,aAAa1+C,UAAW,YAEjDS,IAAK,WAED,MAAItD,MAAK0hD,KAEE,GAGJ1hD,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK2hD,YAqB1Cr5B,EAAO2xB,QAAU,SAAU/5C,EAAM0V,EAAI0sC,GAKjCtiD,KAAKE,KAAOA,EAKZF,KAAK4V,GAAKA,EAMV5V,KAAK+U,KAAOuT,EAAO+F,QAMnBruB,KAAK6oC,QAAS,EAMd7oC,KAAKo7C,WAAa,EAMlBp7C,KAAK47C,UAAY,KAKjB57C,KAAKsiD,YAAcA,GAAgBh6B,EAAO4xB,YAAYC,OAAS7xB,EAAO4xB,YAAYqI,QAMlFviD,KAAKiE,OAAS,KASdjE,KAAK68C,OAAS,KAWd78C,KAAK++C,WAAa,GAAIz2B,GAAOi5B,aAAavhD,KAAMsoB,EAAO2xB,QAAQyD,aAa/D19C,KAAKwiD,aAAe,GAAIl6B,GAAOi5B,aAAavhD,KAAMsoB,EAAO2xB,QAAQ0D,eAajE39C,KAAKg/C,YAAc,GAAI12B,GAAOi5B,aAAavhD,KAAMsoB,EAAO2xB,QAAQ2D,cAahE59C,KAAKyiD,WAAa,GAAIn6B,GAAOi5B,aAAavhD,KAAMsoB,EAAO2xB,QAAQ4D,aAa/D79C,KAAK0iD,cAAgB,GAAIp6B,GAAOi5B,aAAavhD,KAAMsoB,EAAO2xB,QAAQ6D,gBAalE99C,KAAK2iD,aAAe,GAAIr6B,GAAOi5B,aAAavhD,KAAMsoB,EAAO2xB,QAAQ2I,eAOjE5iD,KAAK6iD,WAAY,EAMjB7iD,KAAK8iD,YAML9iD,KAAK+iD,UAAY,EAMjB/iD,KAAKgjD,aAAc,EAKnBhjD,KAAK8+C,YAAa,EAKlB9+C,KAAKijD,QAAU,GAKfjjD,KAAKkjD,QAAU,GAKfljD,KAAKmjD,MAAQ,GAKbnjD,KAAKojD,MAAQ,GAKbpjD,KAAKqjD,QAAU,GAKfrjD,KAAKsjD,QAAU,GAMftjD,KAAKujD,aAAe,EAMpBvjD,KAAKwjD,aAAe,EAMpBxjD,KAAKyjD,UAAY,EAMjBzjD,KAAK0jD,UAAY,EAMjB1jD,KAAKqF,EAAI,GAMTrF,KAAKsF,EAAI,GAKTtF,KAAK2jD,QAAkB,IAAP/tC,EAQhB5V,KAAKyhD,QAAS,EAQdzhD,KAAK0hD,MAAO,EAMZ1hD,KAAK2hD,SAAW,EAMhB3hD,KAAK4hD,OAAS,EAMd5hD,KAAK4jD,gBAAkB,EAMvB5jD,KAAK6jD,aAAe,EAMpB7jD,KAAK8jD,iBAAmBnoB,OAAOC,UAM/B57B,KAAK+jD,aAAe,KAMpB/jD,KAAKgkC,QAAS,EAMdhkC,KAAK4T,OAAQ,EAKb5T,KAAKmB,SAAW,GAAImnB,GAAOlnB,MAK3BpB,KAAKgkD,aAAe,GAAI17B,GAAOlnB,MAK/BpB,KAAKikD,WAAa,GAAI37B,GAAOlnB,MAO7BpB,KAAKu3C,OAAS,GAAIjvB,GAAOiL,OAAO,EAAG,EAAG,IAOtCvzB,KAAKkkD,kBAAoB,KAQzBlkD,KAAKmkD,wBAA0B,MASnC77B,EAAO2xB,QAAQwD,UAAY,EAO3Bn1B,EAAO2xB,QAAQyD,YAAc,EAO7Bp1B,EAAO2xB,QAAQ2D,aAAe,EAO9Bt1B,EAAO2xB,QAAQ0D,cAAgB,EAQ/Br1B,EAAO2xB,QAAQ4D,YAAc,EAQ7Bv1B,EAAO2xB,QAAQ6D,eAAiB,GAOhCx1B,EAAO2xB,QAAQ2I,cAAgB,GAE/Bt6B,EAAO2xB,QAAQp3C,WAQXuhD,aAAc,WAEVpkD,KAAKyhD,QAAS,EACdzhD,KAAK0hD,MAAO,EAER1hD,KAAK2jD,UAEL3jD,KAAK++C,WAAW9f,QAChBj/B,KAAKwiD,aAAavjB,QAClBj/B,KAAKg/C,YAAY/f,QACjBj/B,KAAKyiD,WAAWxjB,QAChBj/B,KAAK0iD,cAAczjB,QACnBj/B,KAAK2iD,aAAa1jB,UAa1BolB,mBAAoB,SAAUC,EAASza,GAI/BvhB,EAAO2xB,QAAQyD,YAAc4G,GAE7BtkD,KAAK++C,WAAW3zC,MAAMy+B,GAGtBvhB,EAAO2xB,QAAQ2D,aAAe0G,GAE9BtkD,KAAKg/C,YAAY5zC,MAAMy+B,GAGvBvhB,EAAO2xB,QAAQ0D,cAAgB2G,GAE/BtkD,KAAKwiD,aAAap3C,MAAMy+B,GAGxBvhB,EAAO2xB,QAAQ4D,YAAcyG,GAE7BtkD,KAAKyiD,WAAWr3C,MAAMy+B,GAGtBvhB,EAAO2xB,QAAQ6D,eAAiBwG,GAEhCtkD,KAAK0iD,cAAct3C,MAAMy+B,GAGzBvhB,EAAO2xB,QAAQ2I,cAAgB0B,GAE/BtkD,KAAK2iD,aAAav3C,MAAMy+B,IAahC0a,iBAAkB,SAAU1H,EAAQhT,GAI5BgT,IAAWv0B,EAAO+xB,MAAMqD,aAExB19C,KAAK++C,WAAW/zC,KAAK6+B,GAGrBgT,IAAWv0B,EAAO+xB,MAAMuD,cAExB59C,KAAKg/C,YAAYh0C,KAAK6+B,GAGtBgT,IAAWv0B,EAAO+xB,MAAMsD,eAExB39C,KAAKwiD,aAAax3C,KAAK6+B,GAGvBgT,IAAWv0B,EAAO+xB,MAAMwD,aAExB79C,KAAKyiD,WAAWz3C,KAAK6+B,GAGrBgT,IAAWv0B,EAAO+xB,MAAMyD,gBAExB99C,KAAK0iD,cAAc13C,KAAK6+B,GAGb,IAAXgT,GAEA78C,KAAK2iD,aAAa33C,KAAK6+B,IAa/B2a,cAAe,SAAU3a,GAErB7pC,KAAK68C,OAAShT,EAAMgT,MAEpB,IAAI4H,GAAgD,SAAxC5a,EAAM90B,KAAK2vC,cAAcl9B,OAAO,GAEtB/d,UAAlBogC,EAAMya,QAEFG,EAEAzkD,KAAKqkD,mBAAmBxa,EAAMya,QAASza,GAIvC7pC,KAAKukD,iBAAiB1a,EAAMgT,OAAQhT,GAMpC4a,EAEAzkD,KAAK++C,WAAW3zC,MAAMy+B,IAItB7pC,KAAK++C,WAAW/zC,KAAK6+B,GACrB7pC,KAAKg/C,YAAYh0C,KAAK6+B,IAQR,IAAlBA,EAAMya,SAAiBza,EAAMmY,SAAWhiD,KAAK++C,WAAW0C,SAExDzhD,KAAK++C,WAAW/zC,KAAK6+B,GACrB7pC,KAAKg/C,YAAY5zC,MAAMy+B,IAG3B7pC,KAAK0hD,MAAO,EACZ1hD,KAAKyhD,QAAS,GAEVzhD,KAAK++C,WAAW0C,QAAUzhD,KAAKg/C,YAAYyC,QAAUzhD,KAAKwiD,aAAaf,QAAUzhD,KAAKyiD,WAAWhB,QAAUzhD,KAAK0iD,cAAcjB,QAAUzhD,KAAK2iD,aAAalB,UAE1JzhD,KAAK0hD,MAAO,EACZ1hD,KAAKyhD,QAAS,IAUtBr2C,MAAO,SAAUy+B,GAEb,GAAIvK,GAAQt/B,KAAKE,KAAKo/B,KA2DtB,OAzDIuK,GAAiB,YAEjB7pC,KAAK47C,UAAY/R,EAAM+R,WAG3B57C,KAAKo7C,WAAavR,EAAMuR,WACxBp7C,KAAKiE,OAAS4lC,EAAM5lC,OAEhBjE,KAAK2jD,QAEL3jD,KAAKwkD,cAAc3a,IAInB7pC,KAAKyhD,QAAS,EACdzhD,KAAK0hD,MAAO,GAGhB1hD,KAAKgkC,QAAS,EACdhkC,KAAK8+C,YAAa,EAClB9+C,KAAK4T,OAAQ,EAEb5T,KAAK8iD,YACL9iD,KAAKkkD,kBAAoB,KACzBlkD,KAAKmkD,wBAA0B,KAG/BnkD,KAAK8jD,iBAAmB9jD,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK2hD,SACnD3hD,KAAK2hD,SAAW3hD,KAAKE,KAAKw/B,KAAKA,KAC/B1/B,KAAK6iD,WAAY,EAGjB7iD,KAAKq7C,KAAKxR,GAAO,GAGjB7pC,KAAKgkD,aAAajwB,MAAM/zB,KAAKqF,EAAGrF,KAAKsF,IAEjCg6B,EAAM8X,qBAAuB9uB,EAAOosB,MAAMoF,uBAC1Cxa,EAAM8X,qBAAuB9uB,EAAOosB,MAAM2C,qBACzC/X,EAAM8X,qBAAuB9uB,EAAOosB,MAAMqF,uBAAuD,IAA9Bza,EAAMqlB,uBAE1ErlB,EAAMj6B,EAAIrF,KAAKqF,EACfi6B,EAAMh6B,EAAItF,KAAKsF,EACfg6B,EAAMn+B,SAAS4yB,MAAM/zB,KAAKqF,EAAGrF,KAAKsF,GAClCg6B,EAAM6Z,OAAOnW,SAAShjC,KAAM6pC,GAC5BvK,EAAM0b,WAAWh7C,KAAKqF,EAAGrF,KAAKsF,IAGlCtF,KAAKgjD,aAAc,EAEnBhjD,KAAK6jD,eAEqB,OAAtB7jD,KAAK+jD,cAEL/jD,KAAK+jD,aAAaa,gBAAgB5kD,MAG/BA,MAQX4+B,OAAQ,WAEJ,GAAIU,GAAQt/B,KAAKE,KAAKo/B,KAElBt/B,MAAKgkC,SAGDhkC,KAAK4T,QAED0rB,EAAMka,iBAAiB7I,MAAQ,GAE/B3wC,KAAK6kD,2BAA0B,GAGnC7kD,KAAK4T,OAAQ,GAGb5T,KAAK6iD,aAAc,GAAS7iD,KAAKoiD,UAAY9iB,EAAMqY,YAE/CrY,EAAM8X,qBAAuB9uB,EAAOosB,MAAMoF,uBAC1Cxa,EAAM8X,qBAAuB9uB,EAAOosB,MAAM2C,qBACzC/X,EAAM8X,qBAAuB9uB,EAAOosB,MAAMqF,uBAAuD,IAA9Bza,EAAMqlB,sBAE1ErlB,EAAMga,OAAOtW,SAAShjC,MAG1BA,KAAK6iD,WAAY,GAIjBvjB,EAAMwY,sBAAwB93C,KAAKE,KAAKw/B,KAAKA,MAAQ1/B,KAAK+iD,YAE1D/iD,KAAK+iD,UAAY/iD,KAAKE,KAAKw/B,KAAKA,KAAOJ,EAAMyY,WAE7C/3C,KAAK8iD,SAAS/+C,MACVsB,EAAGrF,KAAKmB,SAASkE,EACjBC,EAAGtF,KAAKmB,SAASmE,IAGjBtF,KAAK8iD,SAAS5/C,OAASo8B,EAAM0Y,aAE7Bh4C,KAAK8iD,SAASgC,WAc9BzJ,KAAM,SAAUxR,EAAOkb,GAEnB,GAAIzlB,GAAQt/B,KAAKE,KAAKo/B,KAEtB,KAAIA,EAAM0lB,WAAV,CAyDA,GApDkBv7C,SAAds7C,IAA2BA,GAAY,GAEtBt7C,SAAjBogC,EAAMgT,SAEN78C,KAAK68C,OAAShT,EAAMgT,QAGpBkI,GAAa/kD,KAAK2jD,SAElB3jD,KAAKwkD,cAAc3a,GAGvB7pC,KAAKijD,QAAUpZ,EAAMoZ,QACrBjjD,KAAKkjD,QAAUrZ,EAAMqZ,QAErBljD,KAAKmjD,MAAQtZ,EAAMsZ,MACnBnjD,KAAKojD,MAAQvZ,EAAMuZ,MAEnBpjD,KAAKqjD,QAAUxZ,EAAMwZ,QACrBrjD,KAAKsjD,QAAUzZ,EAAMyZ,QAEjBtjD,KAAK2jD,SAAWrkB,EAAMoH,MAAMqW,SAAWgI,IAEvC/kD,KAAKujD,aAAe1Z,EAAM4Z,WAAa5Z,EAAMob,cAAgBpb,EAAMqb,iBAAmB,EACtFllD,KAAKwjD,aAAe3Z,EAAM6Z,WAAa7Z,EAAMsb,cAAgBtb,EAAMub,iBAAmB,EAEtFplD,KAAKyjD,WAAazjD,KAAKujD,aACvBvjD,KAAK0jD,WAAa1jD,KAAKwjD,cAG3BxjD,KAAKqF,GAAKrF,KAAKmjD,MAAQnjD,KAAKE,KAAKmB,MAAMgY,OAAOhU,GAAKi6B,EAAMj+B,MAAMgE,EAC/DrF,KAAKsF,GAAKtF,KAAKojD,MAAQpjD,KAAKE,KAAKmB,MAAMgY,OAAO/T,GAAKg6B,EAAMj+B,MAAMiE,EAE/DtF,KAAKmB,SAAS4yB,MAAM/zB,KAAKqF,EAAGrF,KAAKsF,GACjCtF,KAAKu3C,OAAOlyC,EAAIrF,KAAKqF,EACrBrF,KAAKu3C,OAAOjyC,EAAItF,KAAKsF,GAEjBg6B,EAAM8X,qBAAuB9uB,EAAOosB,MAAMoF,uBAC1Cxa,EAAM8X,qBAAuB9uB,EAAOosB,MAAM2C,qBACzC/X,EAAM8X,qBAAuB9uB,EAAOosB,MAAMqF,uBAAuD,IAA9Bza,EAAMqlB,uBAE1ErlB,EAAMsZ,cAAgB54C,KACtBs/B,EAAMj6B,EAAIrF,KAAKqF,EACfi6B,EAAMh6B,EAAItF,KAAKsF,EACfg6B,EAAMn+B,SAAS4yB,MAAMuL,EAAMj6B,EAAGi6B,EAAMh6B,GACpCg6B,EAAMiY,OAAOlyC,EAAIi6B,EAAMj6B,EACvBi6B,EAAMiY,OAAOjyC,EAAIg6B,EAAMh6B,GAG3BtF,KAAK8+C,WAAa9+C,KAAKE,KAAKmB,MAAMmF,OAAO8tB,SAASt0B,KAAKmjD,MAAOnjD,KAAKojD,OAG/DpjD,KAAKE,KAAKigC,OAEV,MAAOngC,KAKX,KAFA,GAAIiD,GAAIq8B,EAAM2X,cAAc/zC,OAErBD,KAEHq8B,EAAM2X,cAAch0C,GAAGosC,SAAS3pC,KAAK45B,EAAM2X,cAAch0C,GAAGmK,QAASpN,KAAMA,KAAKqF,EAAGrF,KAAKsF,EAAGy/C,EAgB/F,OAZ0B,QAAtB/kD,KAAK+jD,cAAyB/jD,KAAK+jD,aAAasB,aAAc,EAE1DrlD,KAAK+jD,aAAanlB,OAAO5+B,SAAU,IAEnCA,KAAK+jD,aAAe,MAGnBzkB,EAAMka,iBAAiB7I,MAAQ,GAEpC3wC,KAAK6kD,0BAA0BE,GAG5B/kD,OAYX6kD,0BAA2B,SAAUE,GAYjC,IATA,GAAIO,GAAuB3pB,OAAOC,UAC9B2pB,EAAyB,GACzBC,EAAkB,KAKlBC,EAAczlD,KAAKE,KAAKo/B,MAAMka,iBAAiBkM,MAE5CD,GAGHA,EAAYE,SAAU,EAElBF,EAAYG,cAAcL,EAAwBD,GAAsB,KAGxEG,EAAYE,SAAU,GAEjBZ,GAAaU,EAAYI,iBAAiB7lD,MAAM,KAC/C+kD,GAAaU,EAAYK,iBAAiB9lD,MAAM,MAElDslD,EAAuBG,EAAYtjC,OAAOytB,cAC1C2V,EAAyBE,EAAYM,WACrCP,EAAkBC,IAI1BA,EAAczlD,KAAKE,KAAKo/B,MAAMka,iBAAiB/L,IASnD,KAFA,GAAIgY,GAAczlD,KAAKE,KAAKo/B,MAAMka,iBAAiBkM,MAE5CD,IAEEA,EAAYE,SACbF,EAAYG,cAAcL,EAAwBD,GAAsB,KAEnEP,GAAaU,EAAYI,iBAAiB7lD,MAAM,KAC/C+kD,GAAaU,EAAYK,iBAAiB9lD,MAAM,MAElDslD,EAAuBG,EAAYtjC,OAAOytB,cAC1C2V,EAAyBE,EAAYM,WACrCP,EAAkBC,GAI1BA,EAAczlD,KAAKE,KAAKo/B,MAAMka,iBAAiB/L,IA4CnD,OAxCwB,QAApB+X,EAGIxlD,KAAK+jD,eAEL/jD,KAAK+jD,aAAaiC,mBAAmBhmD,MACrCA,KAAK+jD,aAAe,MAKE,OAAtB/jD,KAAK+jD,cAGL/jD,KAAK+jD,aAAeyB,EACpBA,EAAgBS,oBAAoBjmD,OAKhCA,KAAK+jD,eAAiByB,EAGlBA,EAAgB5mB,OAAO5+B,SAAU,IAEjCA,KAAK+jD,aAAe,OAMxB/jD,KAAK+jD,aAAaiC,mBAAmBhmD,MAGrCA,KAAK+jD,aAAeyB,EACpBxlD,KAAK+jD,aAAakC,oBAAoBjmD,OAKpB,OAAtBA,KAAK+jD,cAUjBmC,MAAO,SAAUrc,GAEb7pC,KAAK8+C,YAAa,EAClB9+C,KAAKq7C,KAAKxR,GAAO,IAUrB7+B,KAAM,SAAU6+B,GAEZ,GAAIvK,GAAQt/B,KAAKE,KAAKo/B,KAEtB,OAAIt/B,MAAKgjD,aAAehjD,KAAK8+C,eAEzBjV,GAAMgM,kBAIV71C,KAAK4hD,OAAS5hD,KAAKE,KAAKw/B,KAAKA,MAEzBJ,EAAM8X,qBAAuB9uB,EAAOosB,MAAMoF,uBAC1Cxa,EAAM8X,qBAAuB9uB,EAAOosB,MAAM2C,qBACzC/X,EAAM8X,qBAAuB9uB,EAAOosB,MAAMqF,uBAAuD,IAA9Bza,EAAMqlB,uBAE1ErlB,EAAM8Z,KAAKpW,SAAShjC,KAAM6pC,GAGtB7pC,KAAKoiD,UAAY,GAAKpiD,KAAKoiD,UAAY9iB,EAAMmY,UAGzCz3C,KAAK4hD,OAAS5hD,KAAK4jD,gBAAkBtkB,EAAMoY,cAG3CpY,EAAM+Z,MAAMrW,SAAShjC,MAAM,GAK3Bs/B,EAAM+Z,MAAMrW,SAAShjC,MAAM,GAG/BA,KAAK4jD,gBAAkB5jD,KAAK4hD,SAIhC5hD,KAAK2jD,QAEL3jD,KAAKwkD,cAAc3a,IAInB7pC,KAAKyhD,QAAS,EACdzhD,KAAK0hD,MAAO,GAIZ1hD,KAAK4V,GAAK,IAEV5V,KAAKgkC,QAAS,GAGlBhkC,KAAK8+C,WAAa9+C,KAAKE,KAAKmB,MAAMmF,OAAO8tB,SAASuV,EAAMsZ,MAAOtZ,EAAMuZ,OACrEpjD,KAAK47C,UAAY,KACjB57C,KAAKo7C,WAAa,KAElBp7C,KAAKikD,WAAWlwB,MAAM/zB,KAAKqF,EAAGrF,KAAKsF,GAE/BtF,KAAK2jD,WAAY,GAEjBrkB,EAAM6mB,kBAGV7mB,EAAMka,iBAAiBhK,QAAQ,mBAAoBxvC,MAE/CA,KAAKkkD,oBAELlkD,KAAKmkD,wBAA0BnkD,KAAK+jD,cAGxC/jD,KAAK+jD,aAAe,KAEb/jD,OAYXmiD,YAAa,SAAUC,GAInB,MAFAA,GAAWA,GAAYpiD,KAAKE,KAAKo/B,MAAMsY,gBAE/B53C,KAAKyhD,UAAW,GAASzhD,KAAK2hD,SAAWS,EAAYpiD,KAAKE,KAAKw/B,KAAKA,MAYhF2iB,aAAc,SAAUD,GAIpB,MAFAA,GAAWA,GAAYpiD,KAAKE,KAAKo/B,MAAMuY,iBAE/B73C,KAAK0hD,MAAS1hD,KAAK4hD,OAASQ,EAAYpiD,KAAKE,KAAKw/B,KAAKA,MAqBnE0mB,mBAAoB,SAAU3zB,EAAM4c,EAAU9M,EAAiB8jB,GAE3D,GAAKrmD,KAAKyhD,OAAV,CAOA,IAAK,GAFD6E,GAAetmD,KAAKkkD,kBAAoBlkD,KAAKkkD,sBAExCjhD,EAAI,EAAGA,EAAIqjD,EAAYpjD,OAAQD,IAEpC,GAAIqjD,EAAYrjD,GAAGwvB,OAASA,EAC5B,CACI6zB,EAAY19C,OAAO3F,EAAG,EACtB,OAIRqjD,EAAYviD,MACR0uB,KAAMA,EACNsxB,aAAc/jD,KAAK+jD,aACnB1U,SAAUA,EACV9M,gBAAiBA,EACjB8jB,aAAcA,MAUtB/J,wBAAyB,WAErB,GAAIgK,GAActmD,KAAKkkD,iBAEvB,IAAKoC,EAAL,CAKA,IAAK,GAAIrjD,GAAI,EAAGA,EAAIqjD,EAAYpjD,OAAQD,IACxC,CACI,GAAIsjD,GAAaD,EAAYrjD,EAEzBsjD,GAAWxC,eAAiB/jD,KAAKmkD,yBAEjCoC,EAAWlX,SAASpoC,MAAMs/C,EAAWhkB,gBAAiBgkB,EAAWF,cAIzErmD,KAAKkkD,kBAAoB,KACzBlkD,KAAKmkD,wBAA0B,OAQnCllB,MAAO,WAECj/B,KAAK2jD,WAAY,IAEjB3jD,KAAKgkC,QAAS,GAGlBhkC,KAAK47C,UAAY,KACjB57C,KAAKo7C,WAAa,KAClBp7C,KAAK4T,OAAQ,EACb5T,KAAK6jD,aAAe,EACpB7jD,KAAK6iD,WAAY,EACjB7iD,KAAK8iD,SAAS5/C,OAAS,EACvBlD,KAAKgjD,aAAc,EAEnBhjD,KAAKokD,eAEDpkD,KAAK+jD,cAEL/jD,KAAK+jD,aAAayC,iBAAiBxmD,MAGvCA,KAAK+jD,aAAe,MAQxB0C,cAAe,WAEXzmD,KAAKyjD,UAAY,EACjBzjD,KAAK0jD,UAAY,IAMzBp7B,EAAO2xB,QAAQp3C,UAAUC,YAAcwlB,EAAO2xB,QAW9C72C,OAAOC,eAAeilB,EAAO2xB,QAAQp3C,UAAW,YAE5CS,IAAK,WAED,MAAItD,MAAK0hD,KAEE,GAGJ1hD,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK2hD,YAY1Cv+C,OAAOC,eAAeilB,EAAO2xB,QAAQp3C,UAAW,UAE5CS,IAAK,WAED,MAAOtD,MAAKE,KAAKuE,MAAM26B,OAAO/5B,EAAIrF,KAAKqF,KAY/CjC,OAAOC,eAAeilB,EAAO2xB,QAAQp3C,UAAW,UAE5CS,IAAK,WAED,MAAOtD,MAAKE,KAAKuE,MAAM26B,OAAO95B,EAAItF,KAAKsF,KAgB/CgjB,EAAO4xB,aASHC,OAAQ,EAMRoI,QAAS,GAmBbj6B,EAAOgyB,MAAQ,SAAUp6C,GAKrBF,KAAKE,KAAOA,EAOZF,KAAKm3C,SAAU,EASfn3C,KAAK0mD,sBAKL1mD,KAAKuiC,gBAAkBviC,KAAKE,KAK5BF,KAAK2mD,mBAAqB,KAK1B3mD,KAAK4mD,kBAAoB,KAKzB5mD,KAAK6mD,iBAAmB,KAKxB7mD,KAAK8mD,mBAAqB,KAK1B9mD,KAAK+mD,mBAAqB,KAK1B/mD,KAAKgnD,oBAAsB,KAM3BhnD,KAAK61C,gBAAiB,EAMtB71C,KAAK6pC,MAAQ,KAMb7pC,KAAKinD,cAAgB,KAMrBjnD,KAAKknD,aAAe,KAMpBlnD,KAAKmnD,YAAc,KAMnBnnD,KAAKonD,cAAgB,KAMrBpnD,KAAKqnD,cAAgB,KAMrBrnD,KAAKsnD,eAAiB,KAMtBtnD,KAAKknD,aAAe,MAIxB5+B,EAAOgyB,MAAMz3C,WAMTuI,MAAO,WAEH,GAA2B,OAAvBpL,KAAKinD,cAAT,CAMA,GAAIrhB,GAAQ5lC,IAERA,MAAKE,KAAKkqC,OAAO2O,QAEjB/4C,KAAKinD,cAAgB,SAAUpd,GAC3B,MAAOjE,GAAM2hB,aAAa1d,IAG9B7pC,KAAKknD,aAAe,SAAUrd,GAC1B,MAAOjE,GAAM4hB,YAAY3d,IAG7B7pC,KAAKmnD,YAAc,SAAUtd,GACzB,MAAOjE,GAAM6hB,WAAW5d,IAG5B7pC,KAAKonD,cAAgB,SAAUvd,GAC3B,MAAOjE,GAAM8hB,aAAa7d,IAG9B7pC,KAAKqnD,cAAgB,SAAUxd,GAC3B,MAAOjE,GAAM+hB,aAAa9d,IAG9B7pC,KAAKsnD,eAAiB,SAAUzd,GAC5B,MAAOjE,GAAMgiB,cAAc/d,IAG/B7pC,KAAKE,KAAKsQ,OAAOu5B,iBAAiB,aAAc/pC,KAAKinD,eAAe,GACpEjnD,KAAKE,KAAKsQ,OAAOu5B,iBAAiB,YAAa/pC,KAAKknD,cAAc,GAClElnD,KAAKE,KAAKsQ,OAAOu5B,iBAAiB,WAAY/pC,KAAKmnD,aAAa,GAChEnnD,KAAKE,KAAKsQ,OAAOu5B,iBAAiB,cAAe/pC,KAAKsnD,gBAAgB,GAEjEtnD,KAAKE,KAAKkqC,OAAOsL,WAElB11C,KAAKE,KAAKsQ,OAAOu5B,iBAAiB,aAAc/pC,KAAKonD,eAAe,GACpEpnD,KAAKE,KAAKsQ,OAAOu5B,iBAAiB,aAAc/pC,KAAKqnD,eAAe,OAUhFQ,uBAAwB,WAEpB7nD,KAAK8nD,mBAAqB,SAAUje,GAChCA,EAAMgM,kBAGV5lC,SAAS85B,iBAAiB,YAAa/pC,KAAK8nD,oBAAoB,IAkBpEC,qBAAsB,SAAU1Y,EAAUjiC,EAAS46C,GAEjCv+C,SAAVu+C,IAAuBA,GAAQ,GAEnChoD,KAAK0mD,mBAAmB3iD,MAAOsrC,SAAUA,EAAUjiC,QAASA,EAAS46C,MAAOA,KAYhFC,wBAAyB,SAAU5Y,EAAUjiC,GAIzC,IAFA,GAAInK,GAAIjD,KAAK0mD,mBAAmBxjD,OAEzBD,KAEH,GAAIjD,KAAK0mD,mBAAmBzjD,GAAGosC,WAAaA,GAAYrvC,KAAK0mD,mBAAmBzjD,GAAGmK,UAAYA,EAG3F,MADApN,MAAK0mD,mBAAmB99C,OAAO3F,EAAG,IAC3B,CAIf,QAAO,GASXskD,aAAc,SAAU1d,GAIpB,IAFA,GAAI5mC,GAAIjD,KAAK0mD,mBAAmBxjD,OAEzBD,KACP,CACI,GAAIilD,GAAKloD,KAAK0mD,mBAAmBzjD,IAE5BilD,EAAGF,OAASE,EAAG7Y,SAAS3pC,KAAKwiD,EAAG96C,QAASpN,KAAM6pC,IAEhD7pC,KAAK0mD,mBAAmB99C,OAAO3F,EAAG,GAM1C,GAFAjD,KAAK6pC,MAAQA,EAER7pC,KAAKE,KAAKo/B,MAAM6X,SAAYn3C,KAAKm3C,QAAtC,CAKIn3C,KAAK2mD,oBAEL3mD,KAAK2mD,mBAAmBjhD,KAAK1F,KAAKuiC,gBAAiBsH,GAGnD7pC,KAAK61C,gBAELhM,EAAMgM,gBAMV,KAAK,GAAI5yC,GAAI,EAAGA,EAAI4mC,EAAMse,eAAejlD,OAAQD,IAE7CjD,KAAKE,KAAKo/B,MAAM2b,aAAapR,EAAMse,eAAellD,MAW1D2kD,cAAe,SAAU/d,GASrB,GAPA7pC,KAAK6pC,MAAQA,EAET7pC,KAAKgnD,qBAELhnD,KAAKgnD,oBAAoBthD,KAAK1F,KAAKuiC,gBAAiBsH,GAGnD7pC,KAAKE,KAAKo/B,MAAM6X,SAAYn3C,KAAKm3C,QAAtC,CAKIn3C,KAAK61C,gBAELhM,EAAMgM,gBAKV,KAAK,GAAI5yC,GAAI,EAAGA,EAAI4mC,EAAMse,eAAejlD,OAAQD,IAE7CjD,KAAKE,KAAKo/B,MAAMgc,YAAYzR,EAAMse,eAAellD,MAWzDykD,aAAc,SAAU7d,GAEpB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK8mD,oBAEL9mD,KAAK8mD,mBAAmBphD,KAAK1F,KAAKuiC,gBAAiBsH,GAGlD7pC,KAAKE,KAAKo/B,MAAM6X,SAAYn3C,KAAKm3C,SAKlCn3C,KAAK61C,gBAELhM,EAAMgM,kBAWd8R,aAAc,SAAU9d,GAEpB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK+mD,oBAEL/mD,KAAK+mD,mBAAmBrhD,KAAK1F,KAAKuiC,gBAAiBsH,GAGnD7pC,KAAK61C,gBAELhM,EAAMgM,kBAUd2R,YAAa,SAAU3d,GAEnB7pC,KAAK6pC,MAAQA,EAET7pC,KAAK4mD,mBAEL5mD,KAAK4mD,kBAAkBlhD,KAAK1F,KAAKuiC,gBAAiBsH,GAGlD7pC,KAAK61C,gBAELhM,EAAMgM,gBAGV,KAAK,GAAI5yC,GAAI,EAAGA,EAAI4mC,EAAMse,eAAejlD,OAAQD,IAE7CjD,KAAKE,KAAKo/B,MAAM6b,cAActR,EAAMse,eAAellD,KAU3DwkD,WAAY,SAAU5d,GAIlB,IAFA,GAAI5mC,GAAIjD,KAAK0mD,mBAAmBxjD,OAEzBD,KACP,CACI,GAAIilD,GAAKloD,KAAK0mD,mBAAmBzjD,EAE7BilD,GAAGF,OAASE,EAAG7Y,SAAS3pC,KAAKwiD,EAAG96C,QAASpN,KAAM6pC,IAE/C7pC,KAAK0mD,mBAAmB99C,OAAO3F,EAAG,GAI1CjD,KAAK6pC,MAAQA,EAET7pC,KAAK6mD,kBAEL7mD,KAAK6mD,iBAAiBnhD,KAAK1F,KAAKuiC,gBAAiBsH,GAGjD7pC,KAAK61C,gBAELhM,EAAMgM,gBAMV,KAAK,GAAI5yC,GAAI,EAAGA,EAAI4mC,EAAMse,eAAejlD,OAAQD,IAE7CjD,KAAKE,KAAKo/B,MAAMgc,YAAYzR,EAAMse,eAAellD,KASzD+H,KAAM,WAEEhL,KAAKE,KAAKkqC,OAAO2O,QAEjB/4C,KAAKE,KAAKsQ,OAAOy6B,oBAAoB,aAAcjrC,KAAKinD,eACxDjnD,KAAKE,KAAKsQ,OAAOy6B,oBAAoB,YAAajrC,KAAKknD,cACvDlnD,KAAKE,KAAKsQ,OAAOy6B,oBAAoB,WAAYjrC,KAAKmnD,aACtDnnD,KAAKE,KAAKsQ,OAAOy6B,oBAAoB,aAAcjrC,KAAKonD,eACxDpnD,KAAKE,KAAKsQ,OAAOy6B,oBAAoB,aAAcjrC,KAAKqnD,eACxDrnD,KAAKE,KAAKsQ,OAAOy6B,oBAAoB,cAAejrC,KAAKsnD,mBAOrEh/B,EAAOgyB,MAAMz3C,UAAUC,YAAcwlB,EAAOgyB,MAe5ChyB,EAAO8/B,aAAe,SAAUjmC,GAK5BniB,KAAKmiB,OAASA,EAKdniB,KAAKE,KAAOiiB,EAAOjiB,KAMnBF,KAAKm3C,SAAU,EAMfn3C,KAAK2lD,SAAU,EASf3lD,KAAK+lD,WAAa,EAMlB/lD,KAAKqoD,eAAgB,EAMrBroD,KAAKsoD,gBAAiB,EAMtBtoD,KAAKqlD,WAAY,EAMjBrlD,KAAKuoD,qBAAsB,EAM3BvoD,KAAKwoD,mBAAoB,EAMzBxoD,KAAK6tC,YAAa,EAMlB7tC,KAAKyoD,WAAa,KAMlBzoD,KAAK0oD,YAAa,EAMlB1oD,KAAK2oD,eAAgB,EAMrB3oD,KAAK4oD,MAAQ,EAMb5oD,KAAK6oD,MAAQ,EAMb7oD,KAAK8oD,YAAc,EAMnB9oD,KAAK+oD,YAAc,EAUnB/oD,KAAKgpD,kBAAmB,EAUxBhpD,KAAKipD,mBAAoB,EAMzBjpD,KAAKkpD,kBAAoB,IAMzBlpD,KAAKmpD,WAAY,EAMjBnpD,KAAKopD,WAAa,KAMlBppD,KAAKqpD,aAAe,KAKpBrpD,KAAKspD,YAAa,EAKlBtpD,KAAKupD,WAAa,GAAIjhC,GAAOlnB,MAK7BpB,KAAKwpD,gBAAiB,EAKtBxpD,KAAKypD,eAAiB,GAAInhC,GAAOlnB,MAKjCpB,KAAK0pD,UAAY,GAAIphC,GAAOlnB,MAM5BpB,KAAK2pD,WAAa,GAAIrhC,GAAOlnB,MAM7BpB,KAAK4pD,YAAa,EAMlB5pD,KAAK6pD,aAAc,EAMnB7pD,KAAK8pD,WAAa,GAAIxhC,GAAOlnB,MAM7BpB,KAAK+pD,gBAEL/pD,KAAK+pD,aAAahmD,MACd6R,GAAI,EACJvQ,EAAG,EACHC,EAAG,EACHm8C,QAAQ,EACRC,MAAM,EACNsI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTxI,SAAU,EACVC,OAAQ,EACRwI,aAAc,EACd/E,WAAW,KAKnB/8B,EAAO8/B,aAAavlD,WAShBuI,MAAO,SAAUo5B,EAAU6jB,GAMvB,GAJA7jB,EAAWA,GAAY,EACD/6B,SAAlB4+C,IAA+BA,GAAgB,GAG/CroD,KAAKm3C,WAAY,EACrB,CAEIn3C,KAAKE,KAAKo/B,MAAMka,iBAAiB1iB,IAAI92B,MACrCA,KAAKqoD,cAAgBA,EACrBroD,KAAK+lD,WAAavhB,CAElB,KAAK,GAAIvhC,GAAI,EAAO,GAAJA,EAAQA,IAEpBjD,KAAK+pD,aAAa9mD,IACd2S,GAAI3S,EACJoC,EAAG,EACHC,EAAG,EACHm8C,QAAQ,EACRC,MAAM,EACNsI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTxI,SAAU,EACVC,OAAQ,EACRwI,aAAc,EACd/E,WAAW,EAInBrlD,MAAKyoD,WAAa,GAAIngC,GAAOlnB,MAC7BpB,KAAKm3C,SAAU,EACfn3C,KAAK6pD,aAAc,EASvB,MALA7pD,MAAKmiB,OAAO4qB,OAAOsd,eAAevzB,IAAI92B,KAAKsqD,aAActqD,MACzDA,KAAKmiB,OAAO4qB,OAAOwd,mBAAmBzzB,IAAI92B,KAAKwqD,iBAAkBxqD,MAEjEA,KAAKyqD,SAAU,EAERzqD,KAAKmiB,QAUhBmoC,aAAc,WAENtqD,KAAK4pD,YAKL5pD,KAAK6pD,cAAgB7pD,KAAKm3C,SAE1Bn3C,KAAKoL,SAWbo/C,iBAAkB,WAEVxqD,KAAK4pD,aAKL5pD,KAAKm3C,SAELn3C,KAAK6pD,aAAc,EACnB7pD,KAAKgL,QAILhL,KAAK6pD,aAAc,IAS3B5qB,MAAO,WAEHj/B,KAAKm3C,SAAU,EACfn3C,KAAKyqD,SAAU,CAEf,KAAK,GAAIxnD,GAAI,EAAO,GAAJA,EAAQA,IAEpBjD,KAAK+pD,aAAa9mD,IACd2S,GAAI3S,EACJoC,EAAG,EACHC,EAAG,EACHm8C,QAAQ,EACRC,MAAM,EACNsI,QAAQ,EACRC,OAAO,EACPC,SAAU,EACVC,QAAS,EACTxI,SAAU,EACVC,OAAQ,EACRwI,aAAc,EACd/E,WAAW,IASvBr6C,KAAM,WAGEhL,KAAKm3C,WAAY,IAOjBn3C,KAAKm3C,SAAU,EACfn3C,KAAKE,KAAKo/B,MAAMka,iBAAiB3oC,OAAO7Q,QAShD+C,QAAS,WAED/C,KAAKmiB,SAEDniB,KAAKsoD,iBAELtoD,KAAKE,KAAKsQ,OAAO6K,MAAMwwB,OAAS;AAChC7rC,KAAKsoD,gBAAiB,GAG1BtoD,KAAKm3C,SAAU,EAEfn3C,KAAKE,KAAKo/B,MAAMka,iBAAiB3oC,OAAO7Q,MAExCA,KAAK+pD,aAAa7mD,OAAS,EAC3BlD,KAAKopD,WAAa,KAClBppD,KAAKqpD,aAAe,KACpBrpD,KAAKmiB,OAAS,OAgBtByjC,cAAe,SAAU8E,EAAWC,EAAiBC,GAIjD,MAF4BnhD,UAAxBmhD,IAAqCA,GAAsB,IAE1D5qD,KAAKm3C,SAAmC,IAAxBn3C,KAAKmiB,OAAO9gB,MAAMgE,GAAmC,IAAxBrF,KAAKmiB,OAAO9gB,MAAMiE,GAAWtF,KAAK+lD,WAAa/lD,KAAKE,KAAKo/B,MAAMia,eAEtG,GAINqR,IAAwB5qD,KAAKipD,oBAAqBjpD,KAAKgpD,oBAKxDhpD,KAAK+lD,WAAa2E,GAAc1qD,KAAK+lD,aAAe2E,GAAa1qD,KAAKmiB,OAAOytB,cAAgB+a,IAEtF,GALA,GAkBfE,eAAgB,WAEZ,MAAQ7qD,MAAKipD,mBAAqBjpD,KAAKgpD,kBAY3C8B,SAAU,SAAUlP,GAIhB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAWv2C,GAYxC0lD,SAAU,SAAUnP,GAIhB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAWt2C,GAYxC0lD,YAAa,SAAUpP,GAInB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAW6F,QAYxCwJ,UAAW,SAAUrP,GAIjB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAW8F,MAWxCwJ,gBAAiB,SAAUtP,GAIvB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAW+F,UAWxCwJ,cAAe,SAAUvP,GAIrB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAWgG,QAWxCwJ,YAAa,SAAUxP,GAEnB,IAAK57C,KAAKm3C,QAEN,OAAO,CAGX,IAAkB1tC,SAAdmyC,EACJ,CACI,IAAK,GAAI34C,GAAI,EAAO,GAAJA,EAAQA,IAEpB,GAAIjD,KAAK+pD,aAAa9mD,GAAG+mD,OAErB,OAAO,CAIf,QAAO,EAIP,MAAOhqD,MAAK+pD,aAAanO,GAAWoO,QAY5CqB,WAAY,SAAUzP,GAElB,IAAK57C,KAAKm3C,QAEN,OAAO,CAGX,IAAkB1tC,SAAdmyC,EAYA,MAAO57C,MAAK+pD,aAAanO,GAAWqO,KAVpC,KAAK,GAAIhnD,GAAI,EAAO,GAAJA,EAAQA,IAEpB,GAAIjD,KAAK+pD,aAAa9mD,GAAGgnD,MAErB,OAAO,GAkBvBqB,gBAAiB,SAAU1P,GAIvB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAWsO,UAWxCqB,eAAgB,SAAU3P,GAItB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAWuO,SAWxCqB,eAAgB,SAAU5P,GAItB,MAFAA,GAAYA,GAAa,EAElB57C,KAAK+pD,aAAanO,GAAWyJ,WAaxCQ,iBAAkB,SAAUre,EAASikB,GAEjC,MAAKjkB,GAAQia,QAAWzhD,KAAKm3C,SAAYn3C,KAAKmiB,QAAWniB,KAAKmiB,OAAOvgB,QAAW5B,KAAKmiB,OAAO1gB,SAAYzB,KAAKmiB,OAAOvgB,OAAOH,SAMvHzB,KAAKE,KAAKo/B,MAAMwc,QAAQ97C,KAAKmiB,OAAQqlB,EAASxnC,KAAK8pD,aAElCrgD,SAAbgiD,IAEAA,GAAW,IAGVA,GAAYzrD,KAAKipD,kBAEXjpD,KAAK0rD,WAAW1rD,KAAK8pD,WAAWzkD,EAAGrF,KAAK8pD,WAAWxkD,IAInD,IAjBJ,GAkCfwgD,iBAAkB,SAAUte,EAASikB,GAEjC,MAAKzrD,MAAKm3C,SAAYn3C,KAAKmiB,QAAWniB,KAAKmiB,OAAOvgB,QAAW5B,KAAKmiB,OAAO1gB,SAAYzB,KAAKmiB,OAAOvgB,OAAOH,SAMpGzB,KAAKE,KAAKo/B,MAAMwc,QAAQ97C,KAAKmiB,OAAQqlB,EAASxnC,KAAK8pD,aAElCrgD,SAAbgiD,IAEAA,GAAW,IAGVA,GAAYzrD,KAAKgpD,iBAEXhpD,KAAK0rD,WAAW1rD,KAAK8pD,WAAWzkD,EAAGrF,KAAK8pD,WAAWxkD,IAInD,IAjBJ,GAmCfomD,WAAY,SAAUrmD,EAAGC,EAAGkiC,GAGxB,GAAIxnC,KAAKmiB,OAAOra,QAAQ+D,YAAY2C,OACpC,CACI,GAAU,OAANnJ,GAAoB,OAANC,EAClB,CAEItF,KAAKE,KAAKo/B,MAAMuc,iBAAiB77C,KAAKmiB,OAAQqlB,EAASxnC,KAAK8pD,WAE5D,IAAIzkD,GAAIrF,KAAK8pD,WAAWzkD,EACpBC,EAAItF,KAAK8pD,WAAWxkD,EAgB5B,GAb6B,IAAzBtF,KAAKmiB,OAAOja,OAAO7C,IAEnBA,IAAMrF,KAAKmiB,OAAOra,QAAQkE,MAAMrF,MAAQ3G,KAAKmiB,OAAOja,OAAO7C,GAGlC,IAAzBrF,KAAKmiB,OAAOja,OAAO5C,IAEnBA,IAAMtF,KAAKmiB,OAAOra,QAAQkE,MAAMpF,OAAS5G,KAAKmiB,OAAOja,OAAO5C,GAGhED,GAAKrF,KAAKmiB,OAAOra,QAAQkE,MAAM3G,EAC/BC,GAAKtF,KAAKmiB,OAAOra,QAAQkE,MAAM1G,EAE3BtF,KAAKmiB,OAAOra,QAAQ8F,OAEpBvI,GAAKrF,KAAKmiB,OAAOra,QAAQ8F,KAAKvI,EAC9BC,GAAKtF,KAAKmiB,OAAOra,QAAQ8F,KAAKtI,EAG1BD,EAAIrF,KAAKmiB,OAAOra,QAAQoF,KAAK7H,GAAKA,EAAIrF,KAAKmiB,OAAOra,QAAQoF,KAAK+kB,OAAS3sB,EAAItF,KAAKmiB,OAAOra,QAAQoF,KAAK5H,GAAKA,EAAItF,KAAKmiB,OAAOra,QAAQoF,KAAK2nB,QAIvI,MAFA70B,MAAK2rD,IAAMtmD,EACXrF,KAAK4rD,IAAMtmD,GACJ,CAIftF,MAAK2rD,IAAMtmD,EACXrF,KAAK4rD,IAAMtmD,EAEXtF,KAAKE,KAAKo/B,MAAM0X,WAAWpwB,UAAU,EAAG,EAAG,EAAG,GAC9C5mB,KAAKE,KAAKo/B,MAAM0X,WAAW3oC,UAAUrO,KAAKmiB,OAAOra,QAAQ+D,YAAY2C,OAAQnJ,EAAGC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAElG,IAAIyK,GAAM/P,KAAKE,KAAKo/B,MAAM0X,WAAWrmC,aAAa,EAAG,EAAG,EAAG,EAE3D,IAAIZ,EAAIa,KAAK,IAAM5Q,KAAKkpD,kBAEpB,OAAO,EAIf,OAAO,GAWXtqB,OAAQ,SAAU4I,GAEd,MAAoB,QAAhBxnC,KAAKmiB,QAA0C1Y,SAAvBzJ,KAAKmiB,OAAOvgB,OAMnC5B,KAAKm3C,SAAYn3C,KAAKmiB,OAAO1gB,SAAYzB,KAAKmiB,OAAOvgB,OAAOH,QAM7DzB,KAAKmpD,WAAanpD,KAAK6rD,oBAAsBrkB,EAAQ5xB,GAE9C5V,KAAK8rD,WAAWtkB,GAElBxnC,KAAK+pD,aAAaviB,EAAQ5xB,IAAIo0C,OAE/BhqD,KAAK8lD,iBAAiBte,IAEtBxnC,KAAK+pD,aAAaviB,EAAQ5xB,IAAIvQ,EAAImiC,EAAQniC,EAAIrF,KAAKmiB,OAAO9c,EAC1DrF,KAAK+pD,aAAaviB,EAAQ5xB,IAAItQ,EAAIkiC,EAAQliC,EAAItF,KAAKmiB,OAAO7c,GACnD,IAIPtF,KAAKgmD,mBAAmBxe,IACjB,GAXV,QARDxnC,KAAKgmD,mBAAmBxe,IACjB,GATX,QAuCJye,oBAAqB,SAAUze,GAE3B,GAAoB,OAAhBxnC,KAAKmiB,OAAT,CAMA,GAAIvR,GAAO5Q,KAAK+pD,aAAaviB,EAAQ5xB,GAErC,IAAIhF,EAAKo5C,UAAW,GAASxiB,EAAQ5zB,MACrC,CACI,GAAIm4C,GAAan7C,EAAKo5C,UAAW,CAEjCp5C,GAAKo5C,QAAS,EACdp5C,EAAKq5C,OAAQ,EACbr5C,EAAKs5C,SAAWlqD,KAAKE,KAAKw/B,KAAKA,KAC/B9uB,EAAKvL,EAAImiC,EAAQniC,EAAIrF,KAAKmiB,OAAO9c,EACjCuL,EAAKtL,EAAIkiC,EAAQliC,EAAItF,KAAKmiB,OAAO7c,EAE7BtF,KAAKqoD,eAAiBz3C,EAAKy0C,aAAc,IAEzCrlD,KAAKE,KAAKsQ,OAAO6K,MAAMwwB,OAAS,UAChC7rC,KAAKsoD,gBAAiB,GAGtByD,GAAa/rD,KAAKmiB,QAAUniB,KAAKmiB,OAAO4qB,QAExC/sC,KAAKmiB,OAAO4qB,OAAOif,qBAAqBhsD,KAAKmiB,OAAQqlB,MAajEwe,mBAAoB,SAAUxe,GAE1B,GAAoB,OAAhBxnC,KAAKmiB,OAAT,CAMA,GAAIvR,GAAO5Q,KAAK+pD,aAAaviB,EAAQ5xB,GAErChF,GAAKo5C,QAAS,EACdp5C,EAAKq5C,OAAQ,EACbr5C,EAAKu5C,QAAUnqD,KAAKE,KAAKw/B,KAAKA,KAE1B1/B,KAAKqoD,eAAiBz3C,EAAKy0C,aAAc,IAEzCrlD,KAAKE,KAAKsQ,OAAO6K,MAAMwwB,OAAS,UAChC7rC,KAAKsoD,gBAAiB,GAGtBtoD,KAAKmiB,QAAUniB,KAAKmiB,OAAO4qB,QAE3B/sC,KAAKmiB,OAAO4qB,OAAOkf,oBAAoBjsD,KAAKmiB,OAAQqlB,KAY5Dod,gBAAiB,SAAUpd,GAEvB,GAAoB,OAAhBxnC,KAAKmiB,OAAT,CAMA,GAAIvR,GAAO5Q,KAAK+pD,aAAaviB,EAAQ5xB,GAErC,KAAKhF,EAAK6wC,QAAU7wC,EAAKo5C,OACzB,CACI,GAAIhqD,KAAKipD,oBAAsBjpD,KAAK0rD,WAAW,KAAM,KAAMlkB,GAEvD,MAGJ52B,GAAK6wC,QAAS,EACd7wC,EAAK8wC,MAAO,EACZ9wC,EAAK+wC,SAAW3hD,KAAKE,KAAKw/B,KAAKA,KAE3B1/B,KAAKmiB,QAAUniB,KAAKmiB,OAAO4qB,QAE3B/sC,KAAKmiB,OAAO4qB,OAAOmf,qBAAqBlsD,KAAKmiB,OAAQqlB,GAIzDA,EAAQ5zB,OAAQ,EAGZ5T,KAAKmpD,WAAanpD,KAAKqlD,aAAc,GAErCrlD,KAAKmsD,UAAU3kB,GAGfxnC,KAAK6tC,YAEL7tC,KAAKmiB,OAAO0rB,gBAYxB2Y,iBAAkB,SAAUhf,GAExB,GAAoB,OAAhBxnC,KAAKmiB,OAAT,CAMA,GAAIvR,GAAO5Q,KAAK+pD,aAAaviB,EAAQ5xB,GAGrC,IAAIhF,EAAK6wC,QAAUja,EAAQka,KAC3B,CACI9wC,EAAK6wC,QAAS,EACd7wC,EAAK8wC,MAAO,EACZ9wC,EAAKgxC,OAAS5hD,KAAKE,KAAKw/B,KAAKA,KAC7B9uB,EAAKw5C,aAAex5C,EAAKgxC,OAAShxC,EAAK+wC,QAGvC,IAAIqI,GAAShqD,KAAK8lD,iBAAiBte,EAE/BxnC,MAAKmiB,QAAUniB,KAAKmiB,OAAO4qB,SAE3B/sC,KAAKmiB,OAAO4qB,OAAOqf,mBAAmBpsD,KAAKmiB,OAAQqlB,EAASwiB,GAGxDA,IAEAA,EAAShqD,KAAK8lD,iBAAiBte,KAIvC52B,EAAKo5C,OAASA,GAETA,GAAUhqD,KAAKqoD,gBAEhBroD,KAAKE,KAAKsQ,OAAO6K,MAAMwwB,OAAS,UAChC7rC,KAAKsoD,gBAAiB,GAI1B9gB,EAAQ5zB,OAAQ,EAGZ5T,KAAKmpD,WAAanpD,KAAKqlD,WAAarlD,KAAK6rD,oBAAsBrkB,EAAQ5xB,IAEvE5V,KAAKqsD,SAAS7kB,MAY1BskB,WAAY,SAAUtkB,EAAS8kB,GAE3B,GAAI9kB,EAAQka,KAGR,MADA1hD,MAAKqsD,SAAS7kB,IACP,CAGO/9B,UAAd6iD,IAEAA,GAAY,EAGhB,IAAI76B,GAAKzxB,KAAKusD,eAAe/kB,EAAQniC,GAAKrF,KAAK2pD,WAAWtkD,EAAIrF,KAAKupD,WAAWlkD,EAC1EmnD,EAAKxsD,KAAKysD,eAAejlB,EAAQliC,GAAKtF,KAAK2pD,WAAWrkD,EAAItF,KAAKupD,WAAWjkD,CA+D9E,OA7DItF,MAAKmiB,OAAO+pB,eAERlsC,KAAKuoD,sBAELvoD,KAAKmiB,OAAOgqB,aAAa9mC,EAAIosB,GAG7BzxB,KAAKwoD,oBAELxoD,KAAKmiB,OAAOgqB,aAAa7mC,EAAIknD,GAG7BxsD,KAAKopD,YAELppD,KAAK0sD,kBAGL1sD,KAAKqpD,cAELrpD,KAAK2sD,oBAGL3sD,KAAK0oD,aAEL1oD,KAAKmiB,OAAOgqB,aAAa9mC,EAAIxE,KAAKuzB,OAAOp0B,KAAKmiB,OAAOgqB,aAAa9mC,EAAKrF,KAAK8oD,YAAc9oD,KAAK4oD,OAAU5oD,KAAK4oD,OAAS5oD,KAAK4oD,MAAS5oD,KAAK8oD,YAAc9oD,KAAK4oD,MAC7J5oD,KAAKmiB,OAAOgqB,aAAa7mC,EAAIzE,KAAKuzB,OAAOp0B,KAAKmiB,OAAOgqB,aAAa7mC,EAAKtF,KAAK+oD,YAAc/oD,KAAK6oD,OAAU7oD,KAAK6oD,OAAS7oD,KAAK6oD,MAAS7oD,KAAK+oD,YAAc/oD,KAAK6oD,MAC7J7oD,KAAK0pD,UAAUlmD,IAAIxD,KAAKmiB,OAAOgqB,aAAa9mC,EAAGrF,KAAKmiB,OAAOgqB,aAAa7mC,MAKxEtF,KAAKuoD,sBAELvoD,KAAKmiB,OAAO9c,EAAIosB,GAGhBzxB,KAAKwoD,oBAELxoD,KAAKmiB,OAAO7c,EAAIknD,GAGhBxsD,KAAKopD,YAELppD,KAAK0sD,kBAGL1sD,KAAKqpD,cAELrpD,KAAK2sD,oBAGL3sD,KAAK0oD,aAEL1oD,KAAKmiB,OAAO9c,EAAIxE,KAAKuzB,OAAOp0B,KAAKmiB,OAAO9c,EAAKrF,KAAK8oD,YAAc9oD,KAAK4oD,OAAU5oD,KAAK4oD,OAAS5oD,KAAK4oD,MAAS5oD,KAAK8oD,YAAc9oD,KAAK4oD,MACnI5oD,KAAKmiB,OAAO7c,EAAIzE,KAAKuzB,OAAOp0B,KAAKmiB,OAAO7c,EAAKtF,KAAK+oD,YAAc/oD,KAAK6oD,OAAU7oD,KAAK6oD,OAAS7oD,KAAK6oD,MAAS7oD,KAAK+oD,YAAc/oD,KAAK6oD,MACnI7oD,KAAK0pD,UAAUlmD,IAAIxD,KAAKmiB,OAAO9c,EAAGrF,KAAKmiB,OAAO7c,KAItDtF,KAAKmiB,OAAO4qB,OAAO6f,aAAa5pB,SAAShjC,KAAKmiB,OAAQqlB,EAAS/V,EAAI+6B,EAAIxsD,KAAK0pD,UAAW4C,IAEhF,GAYXO,SAAU,SAAUjR,EAAWkR,GAK3B,MAHAlR,GAAYA,GAAa,EACzBkR,EAAQA,GAAS,IAET9sD,KAAK+pD,aAAanO,GAAWoO,QAAUhqD,KAAK+sD,aAAanR,GAAakR,GAYlFE,QAAS,SAAUpR,EAAWkR,GAK1B,MAHAlR,GAAYA,GAAa,EACzBkR,EAAQA,GAAS,IAET9sD,KAAK+pD,aAAanO,GAAWqO,OAAUjqD,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK+pD,aAAanO,GAAWuO,QAAU2C,GAYhH3K,YAAa,SAAUvG,EAAWkR,GAK9B,MAHAlR,GAAYA,GAAa,EACzBkR,EAAQA,GAAS,IAET9sD,KAAK+pD,aAAanO,GAAW6F,QAAUzhD,KAAKoqD,aAAaxO,GAAakR,GAYlFzK,aAAc,SAAUzG,EAAWkR,GAK/B,MAHAlR,GAAYA,GAAa,EACzBkR,EAAQA,GAAS,IAET9sD,KAAK+pD,aAAanO,GAAW8F,MAAS1hD,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK+pD,aAAanO,GAAWgG,OAASkL,GAW9GC,aAAc,SAAUnR,GAIpB,MAFAA,GAAYA,GAAa,EAErB57C,KAAK+pD,aAAanO,GAAWoO,OAEtBhqD,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK+pD,aAAanO,GAAWsO,SAGvD,IAWXE,aAAc,SAAUxO,GAIpB,MAFAA,GAAYA,GAAa,EAErB57C,KAAK+pD,aAAanO,GAAW6F,OAEtBzhD,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK+pD,aAAanO,GAAW+F,SAGvD,IAsBXsL,WAAY,SAAUC,EAAYrf,EAAYsf,EAAcC,EAAgBhE,EAAYC,GAEjE5/C,SAAfyjD,IAA4BA,GAAa,GAC1BzjD,SAAfokC,IAA4BA,GAAa,GACxBpkC,SAAjB0jD,IAA8BA,GAAe,GAC1B1jD,SAAnB2jD,IAAgCA,EAAiB,KAClC3jD,SAAf2/C,IAA4BA,EAAa,MACxB3/C,SAAjB4/C,IAA8BA,EAAe,MAEjDrpD,KAAK2pD,WAAa,GAAIrhC,GAAOlnB,MAC7BpB,KAAKmpD,WAAY,EACjBnpD,KAAK6tC,WAAaA,EAClB7tC,KAAKupD,WAAa,GAAIjhC,GAAOlnB,MAC7BpB,KAAKwpD,eAAiB0D,EAEtBltD,KAAKipD,kBAAoBkE,EACzBntD,KAAKkpD,kBAAoBkE,EAErBhE,IAEAppD,KAAKopD,WAAaA,GAGlBC,IAEArpD,KAAKqpD,aAAeA,IAW5BgE,YAAa,WAET,GAAIrtD,KAAK+pD,aAEL,IAAK,GAAI9mD,GAAI,EAAO,GAAJA,EAAQA,IAEpBjD,KAAK+pD,aAAa9mD,GAAGoiD,WAAY,CAIzCrlD,MAAKmpD,WAAY,EACjBnpD,KAAKqlD,WAAY,EACjBrlD,KAAK6rD,kBAAoB,IAU7BM,UAAW,SAAU3kB,GAEjB,GAAIniC,GAAIrF,KAAKmiB,OAAO9c,EAChBC,EAAItF,KAAKmiB,OAAO7c,CAMpB,IAJAtF,KAAKqlD,WAAY,EACjBrlD,KAAK6rD,kBAAoBrkB,EAAQ5xB,GACjC5V,KAAK+pD,aAAaviB,EAAQ5xB,IAAIyvC,WAAY,EAEtCrlD,KAAKmiB,OAAO+pB,cAERlsC,KAAKwpD,gBAELxpD,KAAKmiB,OAAO0U,SAAS2Q,EAAQniC,EAAGmiC,EAAQliC,GACxCtF,KAAK2pD,WAAW51B,MAAM/zB,KAAKmiB,OAAOgqB,aAAa9mC,EAAImiC,EAAQniC,EAAGrF,KAAKmiB,OAAOgqB,aAAa7mC,EAAIkiC,EAAQliC,IAInGtF,KAAK2pD,WAAW51B,MAAM/zB,KAAKmiB,OAAOgqB,aAAa9mC,EAAImiC,EAAQniC,EAAGrF,KAAKmiB,OAAOgqB,aAAa7mC,EAAIkiC,EAAQliC,OAI3G,CACI,GAAItF,KAAKwpD,eACT,CACI,GAAIhjD,GAASxG,KAAKmiB,OAAOtc,WAEzB7F,MAAKmiB,OAAO9c,EAAIrF,KAAKusD,eAAe/kB,EAAQniC,IAAMrF,KAAKmiB,OAAO9c,EAAImB,EAAOy1B,SACzEj8B,KAAKmiB,OAAO7c,EAAItF,KAAKysD,eAAejlB,EAAQliC,IAAMtF,KAAKmiB,OAAO7c,EAAIkB,EAAO01B,SAG7El8B,KAAK2pD,WAAW51B,MAAM/zB,KAAKmiB,OAAO9c,EAAIrF,KAAKusD,eAAe/kB,EAAQniC,GAAIrF,KAAKmiB,OAAO7c,EAAItF,KAAKysD,eAAejlB,EAAQliC,IAGtHtF,KAAK8rD,WAAWtkB,GAAS,GAErBxnC,KAAK6tC,aAEL7tC,KAAK4pD,YAAa,EAClB5pD,KAAKmiB,OAAO0rB,cAGhB7tC,KAAKypD,eAAejmD,IAAI6B,EAAGC,GAC3BtF,KAAKmiB,OAAO4qB,OAAOugB,qBAAqBttD,KAAKmiB,OAAQqlB,EAASniC,EAAGC,IAUrEinD,eAAgB,SAAUlnD,GAQtB,MANIrF,MAAKspD,aAELjkD,GAAKrF,KAAKE,KAAKmB,MAAMksD,KAAKC,YAAYnoD,EACtCA,GAAKrF,KAAKE,KAAKmB,MAAMksD,KAAKE,mBAAmBpoD,GAG1CA,GAUXonD,eAAgB,SAAUnnD,GAQtB,MANItF,MAAKspD,aAELhkD,GAAKtF,KAAKE,KAAKmB,MAAMksD,KAAKC,YAAYloD,EACtCA,GAAKtF,KAAKE,KAAKmB,MAAMksD,KAAKE,mBAAmBnoD,GAG1CA,GAUX+mD,SAAU,SAAU7kB,GAEhBxnC,KAAKqlD,WAAY,EACjBrlD,KAAK6rD,kBAAoB,GACzB7rD,KAAK+pD,aAAaviB,EAAQ5xB,IAAIyvC,WAAY,EAC1CrlD,KAAK4pD,YAAa,EAEd5pD,KAAK2oD,gBAED3oD,KAAKmiB,OAAO+pB,eAEZlsC,KAAKmiB,OAAOgqB,aAAa9mC,EAAIxE,KAAKuzB,OAAOp0B,KAAKmiB,OAAOgqB,aAAa9mC,EAAKrF,KAAK8oD,YAAc9oD,KAAK4oD,OAAU5oD,KAAK4oD,OAAS5oD,KAAK4oD,MAAS5oD,KAAK8oD,YAAc9oD,KAAK4oD,MAC7J5oD,KAAKmiB,OAAOgqB,aAAa7mC,EAAIzE,KAAKuzB,OAAOp0B,KAAKmiB,OAAOgqB,aAAa7mC,EAAKtF,KAAK+oD,YAAc/oD,KAAK6oD,OAAU7oD,KAAK6oD,OAAS7oD,KAAK6oD,MAAS7oD,KAAK+oD,YAAc/oD,KAAK6oD,QAI7J7oD,KAAKmiB,OAAO9c,EAAIxE,KAAKuzB,OAAOp0B,KAAKmiB,OAAO9c,EAAKrF,KAAK8oD,YAAc9oD,KAAK4oD,OAAU5oD,KAAK4oD,OAAS5oD,KAAK4oD,MAAS5oD,KAAK8oD,YAAc9oD,KAAK4oD,MACnI5oD,KAAKmiB,OAAO7c,EAAIzE,KAAKuzB,OAAOp0B,KAAKmiB,OAAO7c,EAAKtF,KAAK+oD,YAAc/oD,KAAK6oD,OAAU7oD,KAAK6oD,OAAS7oD,KAAK6oD,MAAS7oD,KAAK+oD,YAAc/oD,KAAK6oD,QAI3I7oD,KAAKmiB,OAAO4qB,OAAO2gB,oBAAoB1tD,KAAKmiB,OAAQqlB,GAEhDxnC,KAAK8lD,iBAAiBte,MAAa,GAEnCxnC,KAAKgmD,mBAAmBxe,IAYhCmmB,YAAa,SAAUC,EAAiBC,GAEZpkD,SAApBmkD,IAAiCA,GAAkB,GACjCnkD,SAAlBokD,IAA+BA,GAAgB,GAEnD7tD,KAAKuoD,oBAAsBqF,EAC3B5tD,KAAKwoD,kBAAoBqF,GAgB7BC,WAAY,SAAUlF,EAAOC,EAAOkF,EAAQC,EAAWlF,EAAaC,GAEjDt/C,SAAXskD,IAAwBA,GAAS,GACnBtkD,SAAdukD,IAA2BA,GAAY,GACvBvkD,SAAhBq/C,IAA6BA,EAAc,GAC3Br/C,SAAhBs/C,IAA6BA,EAAc,GAE/C/oD,KAAK4oD,MAAQA,EACb5oD,KAAK6oD,MAAQA,EACb7oD,KAAK8oD,YAAcA,EACnB9oD,KAAK+oD,YAAcA,EACnB/oD,KAAK0oD,WAAaqF,EAClB/tD,KAAK2oD,cAAgBqF,GASzBC,YAAa,WAETjuD,KAAK0oD,YAAa,EAClB1oD,KAAK2oD,eAAgB,GAUzB+D,gBAAiB,WAET1sD,KAAKmiB,OAAO+pB,eAERlsC,KAAKmiB,OAAOgqB,aAAa9mC,EAAIrF,KAAKopD,WAAWl3B,KAE7ClyB,KAAKmiB,OAAOgqB,aAAa9mC,EAAIrF,KAAKopD,WAAWl3B,KAEvClyB,KAAKmiB,OAAOgqB,aAAa9mC,EAAIrF,KAAKmiB,OAAOxb,MAAS3G,KAAKopD,WAAWn3B,QAExEjyB,KAAKmiB,OAAOgqB,aAAa9mC,EAAIrF,KAAKopD,WAAWn3B,MAAQjyB,KAAKmiB,OAAOxb,OAGjE3G,KAAKmiB,OAAOgqB,aAAa7mC,EAAItF,KAAKopD,WAAWx0B,IAE7C50B,KAAKmiB,OAAOgqB,aAAa7mC,EAAItF,KAAKopD,WAAWx0B,IAEvC50B,KAAKmiB,OAAOgqB,aAAa7mC,EAAItF,KAAKmiB,OAAOvb,OAAU5G,KAAKopD,WAAWv0B,SAEzE70B,KAAKmiB,OAAOgqB,aAAa7mC,EAAItF,KAAKopD,WAAWv0B,OAAS70B,KAAKmiB,OAAOvb,UAKlE5G,KAAKmiB,OAAO+P,KAAOlyB,KAAKopD,WAAWl3B,KAEnClyB,KAAKmiB,OAAO9c,EAAIrF,KAAKopD,WAAW/jD,EAAIrF,KAAKmiB,OAAOa,QAE3ChjB,KAAKmiB,OAAO8P,MAAQjyB,KAAKopD,WAAWn3B,QAEzCjyB,KAAKmiB,OAAO9c,EAAIrF,KAAKopD,WAAWn3B,OAASjyB,KAAKmiB,OAAOxb,MAAQ3G,KAAKmiB,OAAOa,UAGzEhjB,KAAKmiB,OAAOyS,IAAM50B,KAAKopD,WAAWx0B,IAElC50B,KAAKmiB,OAAO7c,EAAItF,KAAKopD,WAAWx0B,IAAM50B,KAAKmiB,OAAOc,QAE7CjjB,KAAKmiB,OAAO0S,OAAS70B,KAAKopD,WAAWv0B,SAE1C70B,KAAKmiB,OAAO7c,EAAItF,KAAKopD,WAAWv0B,QAAU70B,KAAKmiB,OAAOvb,OAAS5G,KAAKmiB,OAAOc,YAWvF0pC,kBAAmB,WAEX3sD,KAAKmiB,OAAO+pB,eAAiBlsC,KAAKqpD,aAAand,eAE3ClsC,KAAKmiB,OAAOgqB,aAAa9mC,EAAIrF,KAAKqpD,aAAald,aAAa9mC,EAE5DrF,KAAKmiB,OAAOgqB,aAAa9mC,EAAIrF,KAAKqpD,aAAald,aAAa9mC,EAEtDrF,KAAKmiB,OAAOgqB,aAAa9mC,EAAIrF,KAAKmiB,OAAOxb,MAAU3G,KAAKqpD,aAAald,aAAa9mC,EAAIrF,KAAKqpD,aAAa1iD,QAE9G3G,KAAKmiB,OAAOgqB,aAAa9mC,EAAKrF,KAAKqpD,aAAald,aAAa9mC,EAAIrF,KAAKqpD,aAAa1iD,MAAS3G,KAAKmiB,OAAOxb,OAGxG3G,KAAKmiB,OAAOgqB,aAAa7mC,EAAItF,KAAKqpD,aAAald,aAAa7mC,EAE5DtF,KAAKmiB,OAAOgqB,aAAa7mC,EAAItF,KAAKqpD,aAAald,aAAa7mC,EAEtDtF,KAAKmiB,OAAOgqB,aAAa7mC,EAAItF,KAAKmiB,OAAOvb,OAAW5G,KAAKqpD,aAAald,aAAa7mC,EAAItF,KAAKqpD,aAAaziD,SAE/G5G,KAAKmiB,OAAOgqB,aAAa7mC,EAAKtF,KAAKqpD,aAAald,aAAa7mC,EAAItF,KAAKqpD,aAAaziD,OAAU5G,KAAKmiB,OAAOvb,UAKzG5G,KAAKmiB,OAAO+P,KAAOlyB,KAAKqpD,aAAan3B,KAErClyB,KAAKmiB,OAAO9c,EAAIrF,KAAKqpD,aAAan3B,KAAOlyB,KAAKmiB,OAAOa,QAEhDhjB,KAAKmiB,OAAO8P,MAAQjyB,KAAKqpD,aAAap3B,QAE3CjyB,KAAKmiB,OAAO9c,EAAIrF,KAAKqpD,aAAap3B,OAASjyB,KAAKmiB,OAAOxb,MAAQ3G,KAAKmiB,OAAOa,UAG3EhjB,KAAKmiB,OAAOyS,IAAM50B,KAAKqpD,aAAaz0B,IAEpC50B,KAAKmiB,OAAO7c,EAAItF,KAAKqpD,aAAaz0B,IAAM50B,KAAKmiB,OAAOc,QAE/CjjB,KAAKmiB,OAAO0S,OAAS70B,KAAKqpD,aAAax0B,SAE5C70B,KAAKmiB,OAAO7c,EAAItF,KAAKqpD,aAAax0B,QAAU70B,KAAKmiB,OAAOvb,OAAS5G,KAAKmiB,OAAOc,aA0B7FqF,EAAO8/B,aAAavlD,UAAUC,YAAcwlB,EAAO8/B,aAQnD9/B,EAAO4lC,UAAY,aAanB5lC,EAAO4lC,UAAUC,MAAQ,aAEzB7lC,EAAO4lC,UAAUC,MAAMtrD,WAenB2xB,OAEIlxB,IAAK,WAED,MAAOglB,GAAOznB,KAAKutD,UAAU9lC,EAAOznB,KAAKy4B,SAASt5B,KAAKuB,YAI3DiC,IAAK,SAASC,GAEVzD,KAAKuB,SAAW+mB,EAAOznB,KAAKm0B,SAAS1M,EAAOznB,KAAKutD,UAAU3qD,OAmBvE6kB,EAAO4lC,UAAUG,UAAY,aAE7B/lC,EAAO4lC,UAAUG,UAAUxrD,WAiBvByrD,KAAM,SAAU77B,EAAM87B,EAAWC,EAAMC,GAEnC,MAAIzuD,MAAK0uD,WAEE1uD,KAAK0uD,WAAWJ,KAAK77B,EAAM87B,EAAWC,EAAMC,GAFvD,SAqBRnmC,EAAO4lC,UAAUS,SAAW,aAE5BrmC,EAAO4lC,UAAUS,SAAS9rD,WAatB+rD,UAAU,EASVC,UAEIvrD,IAAK,WASD,MAPKtD,MAAK4uD,UAAa5uD,KAAK8uD,mBAExB9uD,KAAKuC,QAAQyxB,SAASh0B,KAAK6F,aAC3B7F,KAAKuC,QAAQ8C,GAAKrF,KAAKE,KAAKk/B,OAAOrmB,KAAK1T,EACxCrF,KAAKuC,QAAQ+C,GAAKtF,KAAKE,KAAKk/B,OAAOrmB,KAAKzT,GAGrCtF,KAAKE,KAAKuE,MAAM26B,OAAOrmB,KAAKgc,WAAW/0B,KAAKuC,YAmB/D+lB,EAAO4lC,UAAUa,OAAS,aAE1BzmC,EAAO4lC,UAAUa,OAAOlsD,WAUpBmgB,SAEI1f,IAAK,WAED,MAAOtD,MAAKkI,OAAO7C,EAAIrF,KAAK2G,QAcpCsc,SAEI3f,IAAK,WAED,MAAOtD,MAAKkI,OAAO5C,EAAItF,KAAK4G,SAapCsrB,MAEI5uB,IAAK,WAED,MAAOtD,MAAKqF,EAAIrF,KAAKgjB,UAa7BiP,OAEI3uB,IAAK,WAED,MAAQtD,MAAKqF,EAAIrF,KAAK2G,MAAS3G,KAAKgjB,UAa5C4R,KAEItxB,IAAK,WAED,MAAOtD,MAAKsF,EAAItF,KAAKijB,UAa7B4R,QAEIvxB,IAAK,WAED,MAAQtD,MAAKsF,EAAItF,KAAK4G,OAAU5G,KAAKijB,WAmBjDqF,EAAO4lC,UAAUc,WAAa,aAY9B1mC,EAAO4lC,UAAUc,WAAWnsD,UAAUgrC,WAAa,WAO/C,MALI7tC,MAAK4B,QAEL5B,KAAK4B,OAAOisC,WAAW7tC,MAGpBA,MAcXsoB,EAAO4lC,UAAUc,WAAWnsD,UAAUkrC,WAAa,WAO/C,MALI/tC,MAAK4B,QAEL5B,KAAK4B,OAAOmsC,WAAW/tC,MAGpBA,MAcXsoB,EAAO4lC,UAAUc,WAAWnsD,UAAUmrC,OAAS,WAO3C,MALIhuC,MAAK4B,QAEL5B,KAAK4B,OAAOosC,OAAOhuC,MAGhBA,MAcXsoB,EAAO4lC,UAAUc,WAAWnsD,UAAUorC,SAAW,WAO7C,MALIjuC,MAAK4B,QAEL5B,KAAK4B,OAAOqsC,SAASjuC,MAGlBA,MAeXsoB,EAAO4lC,UAAUe,KAAO,aAUxB3mC,EAAO4lC,UAAUe,KAAKC,QAAU,SAAUC,GAGtC7mC,EAAOgI,MAAMwC,eAAe9yB,KAAMsoB,EAAO4lC,UAAUe,KAAKpsD,WAExD7C,KAAKmvD,aAEL,KAAK,GAAIlsD,GAAI,EAAGA,EAAIksD,EAAWjsD,OAAQD,IACvC,CACI,GAAI2S,GAAKu5C,EAAWlsD,GAChB+vB,GAAU,CAEH,aAAPpd,IAEAod,GAAU,GAGd1K,EAAOgI,MAAMwC,eAAe9yB,KAAMsoB,EAAO4lC,UAAUt4C,GAAI/S,UAAWmwB,GAElEhzB,KAAKmvD,WAAWv5C,IAAM,IAa9B0S,EAAO4lC,UAAUe,KAAKn7C,KAAO,SAAU5T,EAAMmF,EAAGC,EAAGoP,EAAK1I,GAEpDhM,KAAKE,KAAOA,EAEZF,KAAK0U,IAAMA,EAEX1U,KAAKmB,SAASqC,IAAI6B,EAAGC,GACrBtF,KAAKyE,MAAQ,GAAI6jB,GAAOlnB,MAAMiE,EAAGC,GACjCtF,KAAKovD,iBAAmB,GAAI9mC,GAAOlnB,MAAMiE,EAAGC,GAE5CtF,KAAK+sC,OAAS,GAAIzkB,GAAO+mC,OAAOrvD,MAEhCA,KAAKuC,QAAU,GAAI+lB,GAAO9lB,UAEtBxC,KAAKmvD,WAAWG,cAGhBtvD,KAAK4sC,KAAO5sC,KAAK4sC,MAGjB5sC,KAAKmvD,WAAWd,YAEhBruD,KAAK0uD,WAAa,GAAIpmC,GAAOinC,iBAAiBvvD,OAG9CA,KAAKmvD,WAAWK,aAAuB,OAAR96C,GAE/B1U,KAAKixC,YAAYv8B,EAAK1I,GAGtBhM,KAAKmvD,WAAWM,gBAEhBzvD,KAAKmsC,aAAe,GAAI7jB,GAAOlnB,MAAMiE,EAAGC,KAKhDgjB,EAAO4lC,UAAUe,KAAK9oD,UAAY,WAE9B,GAAInG,KAAK2rC,eAGL,WADA3rC,MAAK+C,SAOT,IAHA/C,KAAKovD,iBAAiB5rD,IAAIxD,KAAKyE,MAAMY,EAAGrF,KAAKyE,MAAMa,GACnDtF,KAAK0vD,iBAAmB1vD,KAAKuB,UAExBvB,KAAK6oC,SAAW7oC,KAAK4B,OAAOinC,OAG7B,MADA7oC,MAAK4vC,cAAgB,IACd,CAGX5vC,MAAKyE,MAAMsvB,MAAM/zB,KAAKE,KAAKk/B,OAAO/5B,EAAIrF,KAAK+B,eAAe+C,GAAI9E,KAAKE,KAAKk/B,OAAO95B,EAAItF,KAAK+B,eAAegD,IAEnG/E,KAAKyB,UAELzB,KAAK4vC,cAAgB5vC,KAAKE,KAAK2B,MAAMinC,wBAGrC9oC,KAAK8H,UAEL9H,KAAK8H,QAAQoG,gBAAiB,GAG9BlO,KAAK0uD,YAEL1uD,KAAK0uD,WAAW9vB,SAGhB5+B,KAAK4sC,MAEL5sC,KAAK4sC,KAAKzmC,WAGd,KAAK,GAAIlD,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAGkD,WAGrB,QAAO,GAIXmiB,EAAO4lC,UAAUe,KAAKpsD,WAMlB3C,KAAM,KAQNuyB,KAAM,GAON08B,cAUA73C,EAAG,EAQHy1B,OAAQtjC,OAQRilD,WAAYjlD,OAUZiL,IAAK,GAQLjQ,MAAO,KAOP4+B,OAAO,EAOP+rB,iBAAkB,KAOlBM,iBAAkB,EAQlB9f,cAAe,EAQf+f,OAAO,EAWPhkB,gBAAgB,EAMhBppC,QAAS,KAMTqtD,SAAS,EAaT/mB,QAEIvlC,IAAK,WAED,MAAOtD,MAAK4vD,SAIhBpsD,IAAK,SAAUC,GAEPA,GAEAzD,KAAK4vD,SAAU,EAEX5vD,KAAK4sC,MAAQ5sC,KAAK4sC,KAAK73B,OAASuT,EAAOgjB,QAAQukB,MAE/C7vD,KAAK4sC,KAAKjF,aAGd3nC,KAAKyB,SAAU,IAIfzB,KAAK4vD,SAAU,EAEX5vD,KAAK4sC,MAAQ5sC,KAAK4sC,KAAK73B,OAASuT,EAAOgjB,QAAQukB,MAE/C7vD,KAAK4sC,KAAKkjB,kBAGd9vD,KAAKyB,SAAU,KAc3Bm9B,OAAQ,aAUR8J,WAAY,WAEJ1oC,KAAK+vD,cAEL/vD,KAAK0U,IAAI5N,SAGT9G,KAAKmvD,WAAWG,aAEhBhnC,EAAO4lC,UAAUoB,YAAY5mB,WAAWhjC,KAAK1F,MAG7CA,KAAKmvD,WAAWM,eAEhBnnC,EAAO4lC,UAAUuB,cAAc/mB,WAAWhjC,KAAK1F,KAGnD,KAAK,GAAIiD,GAAI,EAAGA,EAAIjD,KAAKgD,SAASE,OAAQD,IAEtCjD,KAAKgD,SAASC,GAAGylC,eAmB7BpgB,EAAO4lC,UAAU8B,KAAO,aAExB1nC,EAAO4lC,UAAU8B,KAAKntD,WASlBotD,SAAU,KAMVC,MAAO,KAmBPhjD,KAAM,SAASijD,EAAMz9B,GAEJjpB,SAATipB,IAAsBA,GAAO,GAE7By9B,GAEIz9B,GAA0B,OAAlB1yB,KAAKiwD,SAEbjwD,KAAKiwD,SAASl8B,MAAMo8B,EAAK9qD,EAAG8qD,EAAK7qD,EAAG6qD,EAAKxpD,MAAOwpD,EAAKvpD,QAEhD8rB,GAA0B,OAAlB1yB,KAAKiwD,SAElBjwD,KAAKiwD,SAAW,GAAI3nC,GAAO9lB,UAAU2tD,EAAK9qD,EAAG8qD,EAAK7qD,EAAG6qD,EAAKxpD,MAAOwpD,EAAKvpD,QAItE5G,KAAKiwD,SAAWE,EAGpBnwD,KAAKowD,eAILpwD,KAAKkwD,MAAQ,KACblwD,KAAKiwD,SAAW,KAEhBjwD,KAAKqwD,eAWbD,WAAY,WAER,GAAKpwD,KAAKiwD,SAAV,CAKAjwD,KAAKkwD,MAAQ5nC,EAAO9lB,UAAUowB,MAAM5yB,KAAKiwD,SAAUjwD,KAAKkwD,OACxDlwD,KAAKkwD,MAAM7qD,GAAKrF,KAAKswD,OAAOjrD,EAC5BrF,KAAKkwD,MAAM5qD,GAAKtF,KAAKswD,OAAOhrD,CAE5B,IAAIgJ,GAAKzN,KAAK+G,IAAI5H,KAAKswD,OAAOjrD,EAAGrF,KAAKkwD,MAAM7qD,GACxCkJ,EAAK1N,KAAK+G,IAAI5H,KAAKswD,OAAOhrD,EAAGtF,KAAKkwD,MAAM5qD,GACxC0I,EAAKnN,KAAKq2B,IAAIl3B,KAAKswD,OAAOr+B,MAAOjyB,KAAKkwD,MAAMj+B,OAAS3jB,EACrDL,EAAKpN,KAAKq2B,IAAIl3B,KAAKswD,OAAOz7B,OAAQ70B,KAAKkwD,MAAMr7B,QAAUtmB,CAE3DvO,MAAK8H,QAAQoF,KAAK7H,EAAIiJ,EACtBtO,KAAK8H,QAAQoF,KAAK5H,EAAIiJ,EACtBvO,KAAK8H,QAAQoF,KAAKvG,MAAQqH,EAC1BhO,KAAK8H,QAAQoF,KAAKtG,OAASqH,EAE3BjO,KAAK8H,QAAQkE,MAAMrF,MAAQ9F,KAAKq2B,IAAIlpB,EAAIhO,KAAKiwD,SAAStpD,OACtD3G,KAAK8H,QAAQkE,MAAMpF,OAAS/F,KAAKq2B,IAAIjpB,EAAIjO,KAAKiwD,SAASrpD,QAEvD5G,KAAK8H,QAAQnB,MAAQ3G,KAAK8H,QAAQkE,MAAMrF,MACxC3G,KAAK8H,QAAQlB,OAAS5G,KAAK8H,QAAQkE,MAAMpF,OAEzC5G,KAAK8H,QAAQyiB,gBAiBrBjC,EAAO4lC,UAAUqC,MAAQ,aAEzBjoC,EAAO4lC,UAAUqC,MAAM1tD,WAUnBu9C,QAEI98C,IAAK,WAED,MAAOtD,MAAKyE,MAAMY,EAAIrF,KAAKovD,iBAAiB/pD,IAcpD65C,QAEI57C,IAAK,WAED,MAAOtD,MAAKyE,MAAMa,EAAItF,KAAKovD,iBAAiB9pD,IAYpDg7C,QAEIh9C,IAAK,WAED,MAAOtD,MAAKuB,SAAWvB,KAAK0vD,oBAmBxCpnC,EAAO4lC,UAAUsC,QAAU,aAE3BloC,EAAO4lC,UAAUsC,QAAQ3tD,WAQrB4uC,cAAc,EAed1uC,QAAS,SAAU8uC,EAAiB4e,GAEhC,GAAkB,OAAdzwD,KAAKE,OAAiBF,KAAKyxC,aAA/B,CAEwBhoC,SAApBooC,IAAiCA,GAAkB,GAChCpoC,SAAnBgnD,IAAgCA,GAAiB,GAErDzwD,KAAKyxC,cAAe,EAEhBzxC,KAAK+sC,QAEL/sC,KAAK+sC,OAAO2jB,mBAAmB1wD,MAG/BA,KAAK4B,SAED5B,KAAK4B,iBAAkB0mB,GAAO4iB,MAE9BlrC,KAAK4B,OAAOiP,OAAO7Q,MAInBA,KAAK4B,OAAO+G,YAAY3I,OAI5BA,KAAKs/B,OAELt/B,KAAKs/B,MAAMv8B,UAGX/C,KAAK0uD,YAEL1uD,KAAK0uD,WAAW3rD,UAGhB/C,KAAK4sC,MAEL5sC,KAAK4sC,KAAK7pC,UAGV/C,KAAK+sC,QAEL/sC,KAAK+sC,OAAOhqC,SAGhB,IAAIE,GAAIjD,KAAKgD,SAASE,MAEtB,IAAI2uC,EAEA,KAAO5uC,KAEHjD,KAAKgD,SAASC,GAAGF,QAAQ8uC,OAK7B,MAAO5uC,KAEHjD,KAAK2I,YAAY3I,KAAKgD,SAASC,GAInCjD,MAAKkwD,QAELlwD,KAAKkwD,MAAQ,MAGblwD,KAAKswD,SAELtwD,KAAKswD,OAAS,MAGdhoC,EAAOqoC,OAAS3wD,KAAK0U,cAAe4T,GAAOqoC,OAE3C3wD,KAAK0U,IAAIk8C,eAAe//C,OAAO7Q,KAAK6wD,YAAa7wD,MAGjDsoB,EAAOwoC,YAAc9wD,KAAK+wD,UAE1B/wD,KAAK+wD,YAGT/wD,KAAKyrC,OAAQ,EACbzrC,KAAK6oC,QAAS,EACd7oC,KAAKyB,SAAU,EAEfzB,KAAKiI,QAAU,KACfjI,KAAKmL,KAAO,KACZnL,KAAKE,KAAO,KAGZF,KAAK2B,YAAa,EAEd3B,KAAKyF,oBAELzF,KAAKyF,kBAAoB,KACzBzF,KAAK2F,yBAA2B,MAIpC3F,KAAK0B,QAAU,KACf1B,KAAK4B,OAAS,KACd5B,KAAK6B,MAAQ,KACb7B,KAAK+B,eAAiB,KACtB/B,KAAKsC,WAAa,KAClBtC,KAAKuC,QAAU,KACfvC,KAAKyC,eAAiB,KACtBzC,KAAK0C,MAAQ,KAEb1C,KAAKmD,uBAGDstD,GAEAzwD,KAAK8H,QAAQ/E,SAAQ,GAGzB/C,KAAKyxC,cAAe,EACpBzxC,KAAK2rC,gBAAiB,KA4B9BrjB,EAAO+mC,OAAS,SAAUltC,GAKtBniB,KAAK4B,OAASugB,GAMlBmG,EAAO+mC,OAAOxsD,WAOVE,QAAS,WAEL/C,KAAKgxD,QAAU,KAEXhxD,KAAKixD,YAAwBjxD,KAAKixD,WAAWtrB,UAC7C3lC,KAAKkxD,iBAAwBlxD,KAAKkxD,gBAAgBvrB,UAClD3lC,KAAKmxD,qBAAwBnxD,KAAKmxD,oBAAoBxrB,UACtD3lC,KAAKoxD,qBAAwBpxD,KAAKoxD,oBAAoBzrB,UACtD3lC,KAAKqxD,WAAwBrxD,KAAKqxD,UAAU1rB,UAC5C3lC,KAAKsxD,YAAwBtxD,KAAKsxD,WAAW3rB,UAC7C3lC,KAAKuxD,gBAAwBvxD,KAAKuxD,eAAe5rB,UACjD3lC,KAAKwxD,gBAAwBxxD,KAAKwxD,eAAe7rB,UAEjD3lC,KAAKyxD,cAAwBzxD,KAAKyxD,aAAa9rB,UAC/C3lC,KAAK0xD,aAAwB1xD,KAAK0xD,YAAY/rB,UAC9C3lC,KAAK2xD,cAAwB3xD,KAAK2xD,aAAahsB,UAC/C3lC,KAAK4xD,YAAwB5xD,KAAK4xD,WAAWjsB,UAC7C3lC,KAAK6xD,cAAwB7xD,KAAK6xD,aAAalsB,UAC/C3lC,KAAK8xD,eAAwB9xD,KAAK8xD,cAAcnsB,UAChD3lC,KAAK+xD,aAAwB/xD,KAAK+xD,YAAYpsB,UAE9C3lC,KAAKgyD,mBAAwBhyD,KAAKgyD,kBAAkBrsB,UACpD3lC,KAAKiyD,sBAAwBjyD,KAAKiyD,qBAAqBtsB,UACvD3lC,KAAKkyD,kBAAwBlyD,KAAKkyD,iBAAiBvsB,WAS3D0kB,eAAgB,KAKhBE,mBAAoB,KAKpB4H,mBAAoB,KAKpBnmB,UAAW,KAKXomB,SAAU,KAKVC,UAAW,KAKXC,cAAe,KAKfC,cAAe,KAKfC,YAAa,KAKbC,WAAY,KAKZC,YAAa,KAKbC,UAAW,KAKXC,YAAa,KAKbhG,aAAc,KAKdiG,WAAY,KAKZC,iBAAkB,KAKlBC,oBAAqB,KAKrBC,gBAAiB,MAIrB1qC,EAAO+mC,OAAOxsD,UAAUC,YAAcwlB,EAAO+mC,MAK7C,KAAK,GAAI5+B,KAAQnI,GAAO+mC,OAAOxsD,UAEtBylB,EAAO+mC,OAAOxsD,UAAUwvB,eAAe5B,IACjB,IAAvBA,EAAKtnB,QAAQ,OACqB,OAAlCmf,EAAO+mC,OAAOxsD,UAAU4tB,KAK5B,SAAWA,EAAMwiC,GACb,YAGA7vD,QAAOC,eAAeilB,EAAO+mC,OAAOxsD,UAAW4tB,GAC3CntB,IAAK,WACD,MAAOtD,MAAKizD,KAAajzD,KAAKizD,GAAW,GAAI3qC,GAAO0Y,WAK5D1Y,EAAO+mC,OAAOxsD,UAAU4tB,EAAO,aAAe,WAC1C,MAAOzwB,MAAKizD,GAAWjzD,KAAKizD,GAASjwB,SAAS/7B,MAAMjH,KAAKizD,GAAUvjC,WAAa,OAGrFe,EAAM,IAAMA,EAgBnBnI,GAAO4lC,UAAUuB,cAAgB,aAQjCnnC,EAAO4lC,UAAUuB,cAAc/mB,WAAa,WAEpC1oC,KAAKksC,gBAELlsC,KAAKmB,SAASkE,GAAKrF,KAAKE,KAAKk/B,OAAOrmB,KAAK1T,EAAIrF,KAAKmsC,aAAa9mC,GAAKrF,KAAKE,KAAKk/B,OAAO/9B,MAAMgE,EAC3FrF,KAAKmB,SAASmE,GAAKtF,KAAKE,KAAKk/B,OAAOrmB,KAAKzT,EAAItF,KAAKmsC,aAAa7mC,GAAKtF,KAAKE,KAAKk/B,OAAO/9B,MAAMiE,IAKnGgjB,EAAO4lC,UAAUuB,cAAc5sD,WAM3BqwD,gBAAgB,EAmBhBhnB,eAEI5oC,IAAK,WAED,MAAOtD,MAAKkzD,gBAIhB1vD,IAAK,SAAUC,GAEPA,GAEAzD,KAAKkzD,gBAAiB,EACtBlzD,KAAKmsC,aAAa3oC,IAAIxD,KAAKqF,EAAGrF,KAAKsF,IAInCtF,KAAKkzD,gBAAiB,IAalC/mB,aAAc,GAAI7jB,GAAOlnB,OAiB7BknB,EAAO4lC,UAAUiF,OAAS,aAE1B7qC,EAAO4lC,UAAUiF,OAAOtwD,WAUpBuwD,OAAQ,EASRC,UAAW,IAWXC,OAAQ,SAAUtkB,GAYd,MAVIhvC,MAAKyrC,QAELzrC,KAAKozD,QAAUpkB,EAEXhvC,KAAKozD,QAAU,GAEfpzD,KAAKuzD,QAINvzD,MAYXwzD,UAAW,SAAUxkB,GASjB,MAPAhvC,MAAKozD,OAASpkB,EAEVhvC,KAAKozD,OAASpzD,KAAKqzD,YAEnBrzD,KAAKozD,OAASpzD,KAAKqzD,WAGhBrzD,MAWXyzD,KAAM,SAAUzkB,GAYZ,MAVIhvC,MAAKyrC,QAELzrC,KAAKozD,QAAUpkB,EAEXhvC,KAAKozD,OAASpzD,KAAKqzD,YAEnBrzD,KAAKozD,OAASpzD,KAAKqzD,YAIpBrzD,OAiBfsoB,EAAO4lC,UAAUwF,SAAW,aAE5BprC,EAAO4lC,UAAUwF,SAAS7wD,WAYtBgsD,UAEIvrD,IAAK,WAED,MAAOtD,MAAKE,KAAKuE,MAAM26B,OAAOrmB,KAAKgc,WAAW/0B,KAAKuC,YAmB/D+lB,EAAO4lC,UAAUyF,aAAe,aAEhCrrC,EAAO4lC,UAAUyF,aAAa9wD,WAU1By8B,MAAO,KAcPs0B,cAEItwD,IAAK,WAED,MAAQtD,MAAKs/B,OAASt/B,KAAKs/B,MAAM6X,SAIrC3zC,IAAK,SAAUC,GAEPA,EAEmB,OAAfzD,KAAKs/B,OAELt/B,KAAKs/B,MAAQ,GAAIhX,GAAO8/B,aAAapoD,MACrCA,KAAKs/B,MAAMl0B,SAENpL,KAAKs/B,QAAUt/B,KAAKs/B,MAAM6X,SAE/Bn3C,KAAKs/B,MAAMl0B,QAKXpL,KAAKs/B,OAASt/B,KAAKs/B,MAAM6X,SAEzBn3C,KAAKs/B,MAAMt0B,UAuB/Bsd,EAAO4lC,UAAU2F,QAAU,aAQ3BvrC,EAAO4lC,UAAU2F,QAAQ1tD,UAAY,WAGjC,IAAInG,KAAK4uD,UAAY5uD,KAAK8uD,oBAEtB9uD,KAAKuC,QAAQyxB,SAASh0B,KAAK6F,aAE3B7F,KAAKuC,QAAQ8C,GAAKrF,KAAKE,KAAKk/B,OAAOrmB,KAAK1T,EACxCrF,KAAKuC,QAAQ+C,GAAKtF,KAAKE,KAAKk/B,OAAOrmB,KAAKzT,EAEpCtF,KAAK4uD,WAGD5uD,KAAKE,KAAKuE,MAAM26B,OAAOrmB,KAAKgc,WAAW/0B,KAAKuC,UAE5CvC,KAAK2B,YAAa,EAClB3B,KAAKE,KAAKuE,MAAM26B,OAAOtB,eAIvB99B,KAAK2B,YAAa,GAItB3B,KAAK8uD,kBAGL,GAAI9uD,KAAK8zD,mBAAqB9zD,KAAKE,KAAKuE,MAAM+B,OAAOuuB,WAAW/0B,KAAKuC,SAEjEvC,KAAK8zD,mBAAoB,EACzB9zD,KAAK+sC,OAAOgnB,uBAAuB/zD,UAElC,KAAKA,KAAK8zD,oBAAsB9zD,KAAKE,KAAKuE,MAAM+B,OAAOuuB,WAAW/0B,KAAKuC,WAGxEvC,KAAK8zD,mBAAoB,EACzB9zD,KAAK+sC,OAAOinB,uBAAuBh0D,MAE/BA,KAAKi0D,iBAGL,MADAj0D,MAAKuzD,QACE,CAMvB,QAAO,GAIXjrC,EAAO4lC,UAAU2F,QAAQhxD,WAmBrBisD,kBAAkB,EAQlBmF,iBAAiB,EAMjBH,mBAAmB,EAQnBI,SAEI5wD,IAAK,WAED,MAAOtD,MAAKE,KAAKuE,MAAM+B,OAAOuuB,WAAW/0B,KAAK6F,gBAmB1DyiB,EAAO4lC,UAAUiG,SAAW,aAQ5B7rC,EAAO4lC,UAAUiG,SAAShuD,UAAY,WAElC,MAAInG,MAAKo0D,SAAW,IAEhBp0D,KAAKo0D,UAAYp0D,KAAKE,KAAKw/B,KAAK20B,iBAE5Br0D,KAAKo0D,UAAY,IAEjBp0D,KAAKuzD,QACE,IAIR,GAIXjrC,EAAO4lC,UAAUiG,SAAStxD,WAatB4oC,OAAO,EAeP2oB,SAAU,EAaVE,OAAQ,SAAUlB,GAkBd,MAhBe3pD,UAAX2pD,IAAwBA,EAAS,KAErCpzD,KAAKyrC,OAAQ,EACbzrC,KAAK6oC,QAAS,EACd7oC,KAAKyB,SAAU,EAEe,kBAAnBzB,MAAKwzD,WAEZxzD,KAAKwzD,UAAUJ,GAGfpzD,KAAK+sC,QAEL/sC,KAAK+sC,OAAOwnB,mBAAmBv0D,MAG5BA,MAiBXuzD,KAAM,WAWF,MATAvzD,MAAKyrC,OAAQ,EACbzrC,KAAK6oC,QAAS,EACd7oC,KAAKyB,SAAU,EAEXzB,KAAK+sC,QAEL/sC,KAAK+sC,OAAOynB,kBAAkBx0D,MAG3BA,OAiBfsoB,EAAO4lC,UAAUsB,YAAc,aAE/BlnC,EAAO4lC,UAAUsB,YAAY3sD,WAMzBktD,cAAc,EAMdO,OAAQ,KAuBRrf,YAAa,SAAUv8B,EAAK1I,EAAOyoD,GAE3B//C,IAAQ4T,EAAOyG,eAEfra,EAAM1I,EACNA,EAAQ,GAIRA,EAAQA,GAAS,GAGhByoD,GAAmChrD,SAAlBgrD,IAAgCz0D,KAAK0uD,YAEvD1uD,KAAK0uD,WAAW1jD,OAGpBhL,KAAK0U,IAAMA,EACX1U,KAAK+vD,cAAe,CACpB,IAAI1wB,GAAQr/B,KAAKE,KAAKm/B,MAElBhV,GAAW,EACXsrB,GAAY31C,KAAK8H,QAAQ+D,YAAYvF,SAEzC,IAAIgiB,EAAO5hB,eAAiBgO,YAAe4T,GAAO5hB,cAE9C1G,KAAK0U,IAAMA,EAAIA,IACf1U,KAAKiM,WAAWyI,OAEf,IAAI4T,EAAOosC,YAAchgD,YAAe4T,GAAOosC,WAEhD10D,KAAK+vD,cAAe,EAEpB/vD,KAAKiM,WAAWyI,EAAI5M,SAEhBu3B,EAAMs1B,aAAajgD,EAAIA,IAAK4T,EAAOgsB,MAAMvmB,cAEzC1D,GAAYrqB,KAAK0uD,WAAWkG,cAAcv1B,EAAMw1B,aAAangD,EAAIA,IAAK4T,EAAOgsB,MAAMvmB,YAAa/hB,QAGnG,IAAIsc,EAAOqoC,OAASj8C,YAAe4T,GAAOqoC,MAC/C,CACI3wD,KAAK+vD,cAAe,CAGpB,IAAI3jD,GAAQsI,EAAI5M,QAAQsE,KACxBpM,MAAKiM,WAAWyI,EAAI5M,SACpB9H,KAAKqqB,SAAS3V,EAAI5M,QAAQkE,MAAM4mB,SAChCle,EAAIk8C,eAAe95B,IAAI92B,KAAK6wD,YAAa7wD,MACzCA,KAAK8H,QAAQsE,MAAQA,MAEpB,IAAIsI,YAAezU,MAAKsL,QAEzBvL,KAAKiM,WAAWyI,OAGpB,CACI,GAAIogD,GAAMz1B,EAAMhU,SAAS3W,GAAK,EAE9B1U,MAAK0U,IAAMogD,EAAIpgD,IACf1U,KAAKiM,WAAW,GAAIhM,MAAKsL,QAAQupD,EAAIC,OAEzB,cAARrgD,EAEA1U,KAAK8H,QAAQ+D,YAAYM,YAAa,EAItCnM,KAAK8H,QAAQ+D,YAAYM,YAAa,EAG1Cke,GAAYrqB,KAAK0uD,WAAWkG,cAAcE,EAAIE,UAAWhpD,GAGzDqe,IAEArqB,KAAKswD,OAAShoC,EAAO9lB,UAAUowB,MAAM5yB,KAAK8H,QAAQkE,QAGjD2pC,IAED31C,KAAK8H,QAAQ+D,YAAYvF,UAAY,IAa7C+jB,SAAU,SAAUre,GAEhBhM,KAAKswD,OAAStkD,EAEdhM,KAAK8H,QAAQkE,MAAM3G,EAAI2G,EAAM3G,EAC7BrF,KAAK8H,QAAQkE,MAAM1G,EAAI0G,EAAM1G,EAC7BtF,KAAK8H,QAAQkE,MAAMrF,MAAQqF,EAAMrF,MACjC3G,KAAK8H,QAAQkE,MAAMpF,OAASoF,EAAMpF,OAElC5G,KAAK8H,QAAQoF,KAAK7H,EAAI2G,EAAM3G,EAC5BrF,KAAK8H,QAAQoF,KAAK5H,EAAI0G,EAAM1G,EAC5BtF,KAAK8H,QAAQoF,KAAKvG,MAAQqF,EAAMrF,MAChC3G,KAAK8H,QAAQoF,KAAKtG,OAASoF,EAAMpF,OAE7BoF,EAAMipD,SAEFj1D,KAAK8H,QAAQ8F,MAEb5N,KAAK8H,QAAQ8F,KAAKvI,EAAI2G,EAAMkpD,kBAC5Bl1D,KAAK8H,QAAQ8F,KAAKtI,EAAI0G,EAAMmpD,kBAC5Bn1D,KAAK8H,QAAQ8F,KAAKjH,MAAQqF,EAAMopD,YAChCp1D,KAAK8H,QAAQ8F,KAAKhH,OAASoF,EAAMqpD,aAIjCr1D,KAAK8H,QAAQ8F,MAASvI,EAAG2G,EAAMkpD,kBAAmB5vD,EAAG0G,EAAMmpD,kBAAmBxuD,MAAOqF,EAAMopD,YAAaxuD,OAAQoF,EAAMqpD,aAG1Hr1D,KAAK8H,QAAQnB,MAAQqF,EAAMopD,YAC3Bp1D,KAAK8H,QAAQlB,OAASoF,EAAMqpD,YAC5Br1D,KAAK8H,QAAQkE,MAAMrF,MAAQqF,EAAMopD,YACjCp1D,KAAK8H,QAAQkE,MAAMpF,OAASoF,EAAMqpD,cAE5BrpD,EAAMipD,SAAWj1D,KAAK8H,QAAQ8F,OAEpC5N,KAAK8H,QAAQ8F,KAAO,MAGpB5N,KAAKiwD,UAELjwD,KAAKowD,aAGTpwD,KAAK8H,QAAQoG,gBAAiB,EAE9BlO,KAAK8H,QAAQyiB,aAETvqB,KAAK2iB,gBAEL3iB,KAAKs1D,gBAAiB,IAgB9BzE,YAAa,SAAUjvD,EAAQ+E,EAAOC,GAElC5G,KAAK8H,QAAQkE,MAAMjE,OAAOpB,EAAOC,GACjC5G,KAAK8H,QAAQuiB,SAASrqB,KAAK8H,QAAQkE,QASvCqkD,WAAY,WAEJrwD,KAAKswD,QAELtwD,KAAKqqB,SAASrqB,KAAKswD,SAkB3BtkD,OAEI1I,IAAK,WACD,MAAOtD,MAAK0uD,WAAW1iD,OAG3BxI,IAAK,SAAUC,GACXzD,KAAK0uD,WAAW1iD,MAAQvI,IAkBhC8xD,WAEIjyD,IAAK,WACD,MAAOtD,MAAK0uD,WAAW6G,WAG3B/xD,IAAK,SAAUC,GACXzD,KAAK0uD,WAAW6G,UAAY9xD,KAkBxC6kB,EAAO4lC,UAAUsH,QAAU,aAE3BltC,EAAO4lC,UAAUsH,QAAQ3yD,WAerB4yD,QAAS,SAAUv6C,GAEf,MAAOoN,GAAO9lB,UAAUuyB,WAAW/0B,KAAK6F,YAAaqV,EAAcrV,eAkB3EyiB,EAAO4lC,UAAUoB,YAAc,aAQ/BhnC,EAAO4lC,UAAUoB,YAAYnpD,UAAY,WAErC,MAAInG,MAAK2vD,OAAS3vD,KAAK6oC,QAEnB7oC,KAAKyE,MAAMsvB,MAAM/zB,KAAK4B,OAAOT,SAASkE,EAAIrF,KAAKmB,SAASkE,EAAGrF,KAAK4B,OAAOT,SAASmE,EAAItF,KAAKmB,SAASmE,GAClGtF,KAAK+B,eAAe+C,GAAK9E,KAAKyE,MAAMY,EACpCrF,KAAK+B,eAAegD,GAAK/E,KAAKyE,MAAMa,EAEpCtF,KAAKovD,iBAAiB5rD,IAAIxD,KAAKyE,MAAMY,EAAGrF,KAAKyE,MAAMa,GACnDtF,KAAK0vD,iBAAmB1vD,KAAKuB,SAEzBvB,KAAK4sC,MAEL5sC,KAAK4sC,KAAKzmC,YAGdnG,KAAK2vD,OAAQ,GAEN,IAGX3vD,KAAKovD,iBAAiB5rD,IAAIxD,KAAKyE,MAAMY,EAAGrF,KAAKyE,MAAMa,GACnDtF,KAAK0vD,iBAAmB1vD,KAAKuB,SAExBvB,KAAK4vD,SAAY5vD,KAAK4B,OAAOinC,QAM3B,GAJH7oC,KAAK4vC,cAAgB,IACd,KAaftnB,EAAO4lC,UAAUoB,YAAY5mB,WAAa,WAElC1oC,KAAK6oC,QAAU7oC,KAAK4sC,MAEpB5sC,KAAK4sC,KAAKlE,cAKlBpgB,EAAO4lC,UAAUoB,YAAYzsD,WAqBzB+pC,KAAM,KAONvnC,GAEI/B,IAAK,WAED,MAAOtD,MAAKmB,SAASkE,GAIzB7B,IAAK,SAAUC,GAEXzD,KAAKmB,SAASkE,EAAI5B,EAEdzD,KAAK4sC,OAAS5sC,KAAK4sC,KAAKh5B,QAExB5T,KAAK4sC,KAAK8oB,QAAS,KAY/BpwD,GAEIhC,IAAK,WAED,MAAOtD,MAAKmB,SAASmE,GAIzB9B,IAAK,SAAUC,GAEXzD,KAAKmB,SAASmE,EAAI7B,EAEdzD,KAAK4sC,OAAS5sC,KAAK4sC,KAAKh5B,QAExB5T,KAAK4sC,KAAK8oB,QAAS,MAoBnCptC,EAAO4lC,UAAUyH,MAAQ,aAkBzBrtC,EAAO4lC,UAAUyH,MAAM9yD,UAAUo8B,MAAQ,SAAU55B,EAAGC,EAAG8tD,GA+BrD,MA7Be3pD,UAAX2pD,IAAwBA,EAAS,GAErCpzD,KAAKyE,MAAMjB,IAAI6B,EAAGC,GAClBtF,KAAKmB,SAASqC,IAAI6B,EAAGC,GAErBtF,KAAK2vD,OAAQ,EACb3vD,KAAK6oC,QAAS,EACd7oC,KAAKyB,SAAU,EACfzB,KAAK2B,YAAa,EAEd3B,KAAKmvD,WAAW0E,UAEhB7zD,KAAK8zD,mBAAoB,GAGzB9zD,KAAKmvD,WAAWgF,WAEhBn0D,KAAKyrC,OAAQ,EACbzrC,KAAKozD,OAASA,GAGdpzD,KAAKmvD,WAAWG,aAEZtvD,KAAK4sC,MAEL5sC,KAAK4sC,KAAK3N,MAAM55B,EAAGC,GAAG,GAAO,GAI9BtF,MAeXsoB,EAAO4lC,UAAU0H,YAAc,aAE/BttC,EAAO4lC,UAAU0H,YAAY/yD,WAMzB4C,kBAAmB,KAMnBE,yBAA0B3F,KAU1B61D,SAAU,KAUVC,SAAU,KASVC,eAAgB,SAAU9wD,GAElBjF,KAAK61D,WAED5wD,EAAGP,EAAI1E,KAAK61D,SAASxwD,IAErBJ,EAAGP,EAAI1E,KAAK61D,SAASxwD,GAGrBJ,EAAGJ,EAAI7E,KAAK61D,SAASvwD,IAErBL,EAAGJ,EAAI7E,KAAK61D,SAASvwD,IAIzBtF,KAAK81D,WAED7wD,EAAGP,EAAI1E,KAAK81D,SAASzwD,IAErBJ,EAAGP,EAAI1E,KAAK81D,SAASzwD,GAGrBJ,EAAGJ,EAAI7E,KAAK81D,SAASxwD,IAErBL,EAAGJ,EAAI7E,KAAK81D,SAASxwD,KA+BjC0wD,eAAgB,SAAU3rD,EAAME,EAAMC,EAAMC,GAE3BhB,SAATc,EAGAA,EAAOC,EAAOC,EAAOJ,EAEPZ,SAATe,IAGLA,EAAOC,EAAOF,EACdA,EAAOF,GAGE,OAATA,EAEArK,KAAK61D,SAAW,KAIZ71D,KAAK61D,SAEL71D,KAAK61D,SAASryD,IAAI6G,EAAME,GAIxBvK,KAAK61D,SAAW,GAAIvtC,GAAOlnB,MAAMiJ,EAAME,GAIlC,OAATC,EAEAxK,KAAK81D,SAAW,KAIZ91D,KAAK81D,SAEL91D,KAAK81D,SAAStyD,IAAIgH,EAAMC,GAIxBzK,KAAK81D,SAAW,GAAIxtC,GAAOlnB,MAAMoJ,EAAMC,GAIzB,OAAlBzK,KAAK61D,SAEL71D,KAAKyF,kBAAoB,MAIzBzF,KAAKyF,kBAAoBzF,KAAK+1D,eAC9B/1D,KAAK2F,yBAA2B3F,QAiB5CsoB,EAAO4lC,UAAU+H,SAAW,aAE5B3tC,EAAO4lC,UAAU+H,SAASpzD,WAWtB8yC,UAEIryC,IAAK,WAED,OAAQtD,KAAK8H,QAAQ+D,YAAYvF,WAIrC9C,IAAK,SAAUC,GAEPA,EAEIzD,KAAK8H,UAEL9H,KAAK8H,QAAQ+D,YAAYvF,UAAY,GAKrCtG,KAAK8H,UAEL9H,KAAK8H,QAAQ+D,YAAYvF,UAAY,MAyBzDgiB,EAAO8rB,kBAAoB,SAAUl0C,GAMjCF,KAAKE,KAAOA,EAMZF,KAAKyE,MAAQzE,KAAKE,KAAKuE,OAI3B6jB,EAAO8rB,kBAAkBvxC,WASrBqzD,SAAU,SAAUC,GAEhB,MAAOn2D,MAAKyE,MAAMqyB,IAAIq/B,IAoB1BvsC,MAAO,SAAUvkB,EAAGC,EAAGoP,EAAK1I,EAAO2lC,GAI/B,MAFcloC,UAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,OAEjCktC,EAAM7a,IAAI,GAAIxO,GAAOjY,MAAMrQ,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK1I,KAmB5DmW,OAAQ,SAAU9c,EAAGC,EAAGoP,EAAK1I,EAAO2lC,GAIhC,MAFcloC,UAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,OAEjCktC,EAAMvpC,OAAO/C,EAAGC,EAAGoP,EAAK1I,IAyBnCoqD,SAAU,SAAU/wD,EAAGC,EAAGoP,EAAK2hD,EAAM1kB,GAEnBloC,SAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,MAExC,IAAI+rB,GAAM,GAAIlI,GAAOguC,SAASt2D,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK2hD,EAIpD,OAFA1kB,GAAM7a,IAAItG,GAEHA,GAaX+lC,MAAO,SAAUJ,GAEb,MAAOn2D,MAAKE,KAAKy/B,OAAOv3B,OAAO+tD,IAenCxkB,MAAO,SAAU/vC,EAAQ6wB,EAAM0Y,EAAYC,EAAYC,GAEnD,MAAO,IAAI/iB,GAAO4iB,MAAMlrC,KAAKE,KAAM0B,EAAQ6wB,EAAM0Y,EAAYC,EAAYC,IAiB7EmrB,aAAc,SAAUnrB,EAAiBzpC,EAAQ6wB,EAAM0Y,GAEnD,MAAO,IAAI7iB,GAAO4iB,MAAMlrC,KAAKE,KAAM0B,EAAQ6wB,EAAM0Y,GAAY,EAAME,IAevEzgC,YAAa,SAAUhJ,EAAQ6wB,EAAM0Y,GAMjC,MAJe1hC,UAAX7H,IAAwBA,EAAS,MACxB6H,SAATgpB,IAAsBA,EAAO,SACdhpB,SAAf0hC,IAA4BA,GAAa,GAEtC,GAAI7iB,GAAOvZ,YAAY/O,KAAKE,KAAM0B,EAAQ6wB,EAAM0Y,IAc3DsrB,MAAO,SAAU/hD,EAAK2oB,EAAQmxB,EAAMkI,GAEhC,MAAO12D,MAAKE,KAAKu/B,MAAM3I,IAAIpiB,EAAK2oB,EAAQmxB,EAAMkI,IAclDj3B,MAAO,SAAU/qB,EAAK2oB,EAAQmxB,EAAMkI,GAEhC,MAAO12D,MAAKE,KAAKu/B,MAAM3I,IAAIpiB,EAAK2oB,EAAQmxB,EAAMkI,IAWlDC,YAAa,SAAUjiD,GAEnB,MAAO1U,MAAKE,KAAKu/B,MAAMm3B,UAAUliD,IAiBrCmiD,WAAY,SAAUxxD,EAAGC,EAAGqB,EAAOC,EAAQ8N,EAAK1I,EAAO2lC,GAInD,MAFcloC,UAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,OAEjCktC,EAAM7a,IAAI,GAAIxO,GAAO2zB,WAAWj8C,KAAKE,KAAMmF,EAAGC,EAAGqB,EAAOC,EAAQ8N,EAAK1I,KAkBhF8qD,KAAM,SAAUzxD,EAAGC,EAAGoP,EAAK1I,EAAO2uB,EAAQgX,GAItC,MAFcloC,UAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,OAEjCktC,EAAM7a,IAAI,GAAIxO,GAAOyuC,KAAK/2D,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK1I,EAAO2uB,KAelEq8B,KAAM,SAAU3xD,EAAGC,EAAG0xD,EAAM37C,EAAOs2B,GAI/B,MAFcloC,UAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,OAEjCktC,EAAM7a,IAAI,GAAIxO,GAAO2uC,KAAKj3D,KAAKE,KAAMmF,EAAGC,EAAG0xD,EAAM37C,KAoB5DwhC,OAAQ,SAAUx3C,EAAGC,EAAGoP,EAAK26B,EAAU9M,EAAiB20B,EAAWC,EAAUC,EAAWC,EAAS1lB,GAI7F,MAFcloC,UAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,OAEjCktC,EAAM7a,IAAI,GAAIxO,GAAOgvC,OAAOt3D,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK26B,EAAU9M,EAAiB20B,EAAWC,EAAUC,EAAWC,KAaxHt5C,SAAU,SAAU1Y,EAAGC,EAAGqsC,GAItB,MAFcloC,UAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,OAEjCktC,EAAM7a,IAAI,GAAIxO,GAAO4zB,SAASl8C,KAAKE,KAAMmF,EAAGC,KAiBvDiyD,QAAS,SAAUlyD,EAAGC,EAAGkyD,GAErB,MAAOx3D,MAAKE,KAAK0/B,UAAU9I,IAAI,GAAIxO,GAAOssB,UAAU6iB,OAAOC,QAAQ13D,KAAKE,KAAMmF,EAAGC,EAAGkyD,KA0BxFG,UAAW,SAAUC,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,GAEzG,MAAO,IAAI9vC,GAAO+vC,UAAUr4D,KAAKE,KAAM03D,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,IAgCnIE,WAAY,SAAUjzD,EAAGC,EAAGsyD,EAAMZ,EAAMh2C,EAAM2wB,GAI1C,MAFcloC,UAAVkoC,IAAuBA,EAAQ3xC,KAAKyE,OAEjCktC,EAAM7a,IAAI,GAAIxO,GAAOwoC,WAAW9wD,KAAKE,KAAMmF,EAAGC,EAAGsyD,EAAMZ,EAAMh2C,KAqBxEu3C,QAAS,SAAU7jD,EAAK8jD,EAAWC,EAAY9xD,EAAOC,GAElD,MAAO,IAAI0hB,GAAOowC,QAAQ14D,KAAKE,KAAMwU,EAAK8jD,EAAWC,EAAY9xD,EAAOC,IAc5EH,cAAe,SAAUE,EAAOC,EAAQ8N,EAAKikD,IAE7BlvD,SAARiL,GAA6B,KAARA,KAAcA,EAAM1U,KAAKE,KAAK4/B,IAAI84B,QACxCnvD,SAAfkvD,IAA4BA,GAAa,EAE7C,IAAI7wD,GAAU,GAAIwgB,GAAO5hB,cAAc1G,KAAKE,KAAMyG,EAAOC,EAAQ8N,EAOjE,OALIikD,IAEA34D,KAAKE,KAAKm/B,MAAMw5B,iBAAiBnkD,EAAK5M,GAGnCA,GAcXgxD,MAAO,SAAUpkD,EAAKqkD,GAElB,MAAO,IAAIzwC,GAAOqoC,MAAM3wD,KAAKE,KAAMwU,EAAKqkD,IAgB5CC,WAAY,SAAUryD,EAAOC,EAAQ8N,EAAKikD,GAEnBlvD,SAAfkvD,IAA4BA,GAAa,IACjClvD,SAARiL,GAA6B,KAARA,KAAcA,EAAM1U,KAAKE,KAAK4/B,IAAI84B,OAE3D,IAAI9wD,GAAU,GAAIwgB,GAAOosC,WAAW10D,KAAKE,KAAMwU,EAAK/N,EAAOC,EAO3D,OALI+xD,IAEA34D,KAAKE,KAAKm/B,MAAM45B,cAAcvkD,EAAK5M,GAGhCA,GAYX8c,OAAQ,SAAUA,GAEd,GAAI2K,GAAO5uB,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,UAAW,GAE7C9K,EAAS,GAAI0D,GAAOie,OAAO3hB,GAAQ5kB,KAAKE,KAI5C,OAFA0kB,GAAO9Q,KAAK7M,MAAM2d,EAAQ2K,GAEnB3K,GAcX6jB,OAAQ,SAAUA,GAEd,MAAOzoC,MAAKE,KAAKooC,QAAQxR,IAAI2R,KAMrCngB,EAAO8rB,kBAAkBvxC,UAAUC,YAAcwlB,EAAO8rB,kBAgBxD9rB,EAAO+rB,kBAAoB,SAAUn0C,GAMjCF,KAAKE,KAAOA,EAMZF,KAAKyE,MAAQzE,KAAKE,KAAKuE,OAI3B6jB,EAAO+rB,kBAAkBxxC,WAerB+mB,MAAO,SAAUvkB,EAAGC,EAAGoP,EAAK1I,GAExB,MAAO,IAAIsc,GAAOjY,MAAMrQ,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK1I,IAclDmW,OAAQ,SAAU9c,EAAGC,EAAGoP,EAAK1I,GAEzB,MAAO,IAAIsc,GAAO7gB,OAAOzH,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK1I,IAanDuqD,MAAO,SAAU/lC,GAEb,MAAO,IAAIlI,GAAO4wC,MAAM1oC,EAAKxwB,KAAKE,KAAMF,KAAKE,KAAKy/B,SAetDgS,MAAO,SAAU/vC,EAAQ6wB,EAAM0Y,EAAYC,EAAYC,GAEnD,MAAO,IAAI/iB,GAAO4iB,MAAMlrC,KAAKE,KAAM0B,EAAQ6wB,EAAM0Y,EAAYC,EAAYC,IAa7EzgC,YAAa,SAAUhJ,EAAQ6wB,EAAM0Y,GAKjC,MAHa1hC,UAATgpB,IAAsBA,EAAO,SACdhpB,SAAf0hC,IAA4BA,GAAa,GAEtC,GAAI7iB,GAAOvZ,YAAY/O,KAAKE,KAAM0B,EAAQ6wB,EAAM0Y,IAc3DsrB,MAAO,SAAU/hD,EAAK2oB,EAAQmxB,EAAMkI,GAEhC,MAAO12D,MAAKE,KAAKu/B,MAAM3I,IAAIpiB,EAAK2oB,EAAQmxB,EAAMkI,IAWlDC,YAAa,SAAUjiD,GAEnB,MAAO1U,MAAKE,KAAKu/B,MAAMm3B,UAAUliD,IAcrC+qB,MAAO,SAAU/qB,EAAK2oB,EAAQmxB,EAAMkI,GAEhC,MAAO12D,MAAKE,KAAKu/B,MAAM3I,IAAIpiB,EAAK2oB,EAAQmxB,EAAMkI,IAgBlDG,WAAY,SAAUxxD,EAAGC,EAAGqB,EAAOC,EAAQ8N,EAAK1I,GAE5C,MAAO,IAAIsc,GAAO2zB,WAAWj8C,KAAKE,KAAMmF,EAAGC,EAAGqB,EAAOC,EAAQ8N,EAAK1I,IAgBtE8qD,KAAM,SAAUzxD,EAAGC,EAAGoP,EAAK1I,EAAO2uB,GAE9B,MAAO,IAAIrS,GAAOyuC,KAAK/2D,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK1I,EAAO2uB,IAcxDq8B,KAAM,SAAU3xD,EAAGC,EAAG0xD,EAAM37C,GAExB,MAAO,IAAIiN,GAAO2uC,KAAKj3D,KAAKE,KAAMmF,EAAGC,EAAG0xD,EAAM37C,IAmBlDwhC,OAAQ,SAAUx3C,EAAGC,EAAGoP,EAAK26B,EAAU9M,EAAiB20B,EAAWC,EAAUC,EAAWC,GAEpF,MAAO,IAAI/uC,GAAOgvC,OAAOt3D,KAAKE,KAAMmF,EAAGC,EAAGoP,EAAK26B,EAAU9M,EAAiB20B,EAAWC,EAAUC,EAAWC,IAY9Gt5C,SAAU,SAAU1Y,EAAGC,GAEnB,MAAO,IAAIgjB,GAAO4zB,SAASl8C,KAAKE,KAAMmF,EAAGC,IAiB7CiyD,QAAS,SAAUlyD,EAAGC,EAAGkyD,GAErB,MAAO,IAAIlvC,GAAOssB,UAAU6iB,OAAOC,QAAQ13D,KAAKE,KAAMmF,EAAGC,EAAGkyD;EA0BhEG,UAAW,SAAUC,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,GAEzG,MAAO,IAAI9vC,GAAO+vC,UAAUr4D,KAAKE,KAAM03D,EAAMC,EAAgBC,EAAiBC,EAAOC,EAAaC,EAAUC,EAAUC,EAASC,IAgCnIE,WAAY,SAAUjzD,EAAGC,EAAGsyD,EAAMZ,EAAMh2C,EAAMm4C,GAE1C,MAAO,IAAI7wC,GAAOwoC,WAAW9wD,KAAKE,KAAMmF,EAAGC,EAAGsyD,EAAMZ,EAAMh2C,EAAMm4C,IAoBpEZ,QAAS,SAAU7jD,EAAK8jD,EAAWC,EAAY9xD,EAAOC,GAElD,MAAO,IAAI0hB,GAAOowC,QAAQ14D,KAAKE,KAAMwU,EAAK8jD,EAAWC,EAAY9xD,EAAOC,IAc5EH,cAAe,SAAUE,EAAOC,EAAQ8N,EAAKikD,IAE7BlvD,SAARiL,GAA6B,KAARA,KAAcA,EAAM1U,KAAKE,KAAK4/B,IAAI84B,QACxCnvD,SAAfkvD,IAA4BA,GAAa,EAE7C,IAAI7wD,GAAU,GAAIwgB,GAAO5hB,cAAc1G,KAAKE,KAAMyG,EAAOC,EAAQ8N,EAOjE,OALIikD,IAEA34D,KAAKE,KAAKm/B,MAAMw5B,iBAAiBnkD,EAAK5M,GAGnCA,GAgBXkxD,WAAY,SAAUryD,EAAOC,EAAQ8N,EAAKikD,GAEnBlvD,SAAfkvD,IAA4BA,GAAa,IACjClvD,SAARiL,GAA6B,KAARA,KAAcA,EAAM1U,KAAKE,KAAK4/B,IAAI84B,OAE3D,IAAI9wD,GAAU,GAAIwgB,GAAOosC,WAAW10D,KAAKE,KAAMwU,EAAK/N,EAAOC,EAO3D,OALI+xD,IAEA34D,KAAKE,KAAKm/B,MAAM45B,cAAcvkD,EAAK5M,GAGhCA,GAYX8c,OAAQ,SAAUA,GAEd,GAAI2K,GAAO5uB,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,UAAW,GAE7C9K,EAAS,GAAI0D,GAAOie,OAAO3hB,GAAQ5kB,KAAKE,KAI5C,OAFA0kB,GAAO9Q,KAAK7M,MAAM2d,EAAQ2K,GAEnB3K,IAMf0D,EAAO+rB,kBAAkBxxC,UAAUC,YAAcwlB,EAAO+rB,kBA6CxD/rB,EAAO7gB,OAAS,SAAUvH,EAAMmF,EAAGC,EAAGoP,EAAK1I,GAEvC3G,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACToP,EAAMA,GAAO,KACb1I,EAAQA,GAAS,KAMjBhM,KAAK+U,KAAOuT,EAAO4E,OAMnBltB,KAAKwrC,YAAcljB,EAAO4E,OAE1BjtB,KAAKwH,OAAO/B,KAAK1F,KAAMC,KAAK0O,aAAwB,WAEpD2Z,EAAO4lC,UAAUe,KAAKn7C,KAAKpO,KAAK1F,KAAME,EAAMmF,EAAGC,EAAGoP,EAAK1I,IAI3Dsc,EAAO7gB,OAAO5E,UAAYO,OAAOgF,OAAOnI,KAAKwH,OAAO5E,WACpDylB,EAAO7gB,OAAO5E,UAAUC,YAAcwlB,EAAO7gB,OAE7C6gB,EAAO4lC,UAAUe,KAAKC,QAAQxpD,KAAK4iB,EAAO7gB,OAAO5E,WAC7C,QACA,YACA,WACA,SACA,aACA,OACA,QACA,UACA,gBACA,SACA,WACA,eACA,UACA,WACA,cACA,UACA,cACA,QACA,cACA,aAGJylB,EAAO7gB,OAAO5E,UAAUu2D,iBAAmB9wC,EAAO4lC,UAAUoB,YAAYnpD,UACxEmiB,EAAO7gB,OAAO5E,UAAUw2D,kBAAoB/wC,EAAO4lC,UAAUiG,SAAShuD,UACtEmiB,EAAO7gB,OAAO5E,UAAUy2D,iBAAmBhxC,EAAO4lC,UAAU2F,QAAQ1tD,UACpEmiB,EAAO7gB,OAAO5E,UAAU02D,cAAgBjxC,EAAO4lC,UAAUe,KAAK9oD,UAS9DmiB,EAAO7gB,OAAO5E,UAAUsD,UAAY,WAEhC,MAAKnG,MAAKo5D,oBAAuBp5D,KAAKq5D,qBAAwBr5D,KAAKs5D,mBAK5Dt5D,KAAKu5D,iBAHD,GAyCfjxC,EAAOjY,MAAQ,SAAUnQ,EAAMmF,EAAGC,EAAGoP,EAAK1I,GAEtC3G,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACToP,EAAMA,GAAO,KACb1I,EAAQA,GAAS,KAMjBhM,KAAK+U,KAAOuT,EAAO8E,MAEnBntB,KAAKwH,OAAO/B,KAAK1F,KAAMC,KAAK0O,aAAwB,WAEpD2Z,EAAO4lC,UAAUe,KAAKn7C,KAAKpO,KAAK1F,KAAME,EAAMmF,EAAGC,EAAGoP,EAAK1I,IAI3Dsc,EAAOjY,MAAMxN,UAAYO,OAAOgF,OAAOnI,KAAKwH,OAAO5E,WACnDylB,EAAOjY,MAAMxN,UAAUC,YAAcwlB,EAAOjY,MAE5CiY,EAAO4lC,UAAUe,KAAKC,QAAQxpD,KAAK4iB,EAAOjY,MAAMxN,WAC5C,QACA,YACA,WACA,SACA,aACA,OACA,UACA,gBACA,eACA,WACA,cACA,UACA,QACA,aAGJylB,EAAOjY,MAAMxN,UAAUy2D,iBAAmBhxC,EAAO4lC,UAAU2F,QAAQ1tD,UACnEmiB,EAAOjY,MAAMxN,UAAU02D,cAAgBjxC,EAAO4lC,UAAUe,KAAK9oD,UAQ7DmiB,EAAOjY,MAAMxN,UAAUsD,UAAY,WAE/B,MAAKnG,MAAKs5D,mBAKHt5D,KAAKu5D,iBAHD,GAyCfjxC,EAAOgvC,OAAS,SAAUp3D,EAAMmF,EAAGC,EAAGoP,EAAK26B,EAAU9M,EAAiB20B,EAAWC,EAAUC,EAAWC,GAElGhyD,EAAIA,GAAK,EACTC,EAAIA,GAAK,EACToP,EAAMA,GAAO,KACb26B,EAAWA,GAAY,KACvB9M,EAAkBA,GAAmBviC,KAErCsoB,EAAOjY,MAAM3K,KAAK1F,KAAME,EAAMmF,EAAGC,EAAGoP,EAAKyiD,GAOzCn3D,KAAK+U,KAAOuT,EAAO6E,OAMnBntB,KAAKwrC,YAAcljB,EAAO4E,OAO1BltB,KAAKw5D,aAAe,KAOpBx5D,KAAKy5D,YAAc,KAOnBz5D,KAAK05D,aAAe,KAOpB15D,KAAK25D,WAAa,KAOlB35D,KAAK45D,YAAc,KAOnB55D,KAAK65D,WAAa,KAOlB75D,KAAK85D,YAAc,KAOnB95D,KAAK+5D,UAAY,KAOjB/5D,KAAKg6D,kBAAoB,GAOzBh6D,KAAKi6D,iBAAmB,GAOxBj6D,KAAKk6D,kBAAoB,GAOzBl6D,KAAKm6D,gBAAkB,GAMvBn6D,KAAKwyD,YAAc,GAAIlqC,GAAO0Y,OAM9BhhC,KAAKyyD,WAAa,GAAInqC,GAAO0Y,OAM7BhhC,KAAK0yD,YAAc,GAAIpqC,GAAO0Y,OAM9BhhC,KAAK2yD,UAAY,GAAIrqC,GAAO0Y,OAS5BhhC,KAAKo6D,iBAAkB,EASvBp6D,KAAKq6D,yBAA2B/xC,EAAO4xB,YAAYY,MAOnD96C,KAAKs6D,cAAe,EAUpBt6D,KAAKu6D,UAAW,EAEhBv6D,KAAK4zD,cAAe,EAEpB5zD,KAAKs/B,MAAMl0B,MAAM,GAAG,GAEpBpL,KAAKs/B,MAAM+oB,eAAgB,EAE3BroD,KAAKw6D,UAAUtD,EAAWC,EAAUC,EAAWC,GAE9B,OAAbhoB,GAEArvC,KAAK2yD,UAAU77B,IAAIuY,EAAU9M,GAIjCviC,KAAK+sC,OAAOylB,YAAY17B,IAAI92B,KAAKy6D,mBAAoBz6D,MACrDA,KAAK+sC,OAAO0lB,WAAW37B,IAAI92B,KAAK06D,kBAAmB16D,MACnDA,KAAK+sC,OAAO2lB,YAAY57B,IAAI92B,KAAK26D,mBAAoB36D,MACrDA,KAAK+sC,OAAO4lB,UAAU77B,IAAI92B,KAAK46D,iBAAkB56D,MAEjDA,KAAK+sC,OAAOolB,mBAAmBr7B,IAAI92B,KAAK66D,iBAAkB76D,OAI9DsoB,EAAOgvC,OAAOz0D,UAAYO,OAAOgF,OAAOkgB,EAAOjY,MAAMxN,WACrDylB,EAAOgvC,OAAOz0D,UAAUC,YAAcwlB,EAAOgvC,MAG7C,IAAIwD,GAAa,OACbC,EAAY,MACZC,EAAa,OACbC,EAAW,IAOf3yC,GAAOgvC,OAAOz0D,UAAUq4D,YAAc,WAElCl7D,KAAKw6D,UAAU,KAAM,KAAM,KAAM,OAUrClyC,EAAOgvC,OAAOz0D,UAAUg4D,iBAAmB,WAEvC76D,KAAK4zD,cAAe,GAaxBtrC,EAAOgvC,OAAOz0D,UAAUs4D,cAAgB,SAAUh5B,EAAOn2B,EAAOovD,GAE5D,GAAIC,GAAW,MAAQl5B,EAAQ,OAEjB,QAAVn2B,GAEAhM,KAAKq7D,GAAYrvD,EAEbovD,GAEAp7D,KAAKs7D,iBAAiBn5B,IAK1BniC,KAAKq7D,GAAY,MAazB/yC,EAAOgvC,OAAOz0D,UAAUy4D,iBAAmB,SAAUn5B,GAEjD,GAAIniC,KAAKs6D,aAEL,OAAO,CAGX,IAAIe,GAAW,MAAQl5B,EAAQ,QAC3Bn2B,EAAQhM,KAAKq7D,EAEjB,OAAqB,gBAAVrvD,IAEPhM,KAAKu1D,UAAYvpD,GACV,GAEe,gBAAVA,IAEZhM,KAAKgM,MAAQA,GACN,IAIA,GAiBfsc,EAAOgvC,OAAOz0D,UAAU23D,UAAY,SAAUtD,EAAWC,EAAUC,EAAWC,GAE1Er3D,KAAKm7D,cAAcL,EAAY5D,EAAWl3D,KAAKs/B,MAAM8rB,eACrDprD,KAAKm7D,cAAcJ,EAAW5D,GAAWn3D,KAAKs/B,MAAM8rB,eACpDprD,KAAKm7D,cAAcH,EAAY5D,EAAWp3D,KAAKs/B,MAAM0rB,eACrDhrD,KAAKm7D,cAAcF,EAAU5D,EAASr3D,KAAKs/B,MAAM2rB,cAarD3iC,EAAOgvC,OAAOz0D,UAAU04D,cAAgB,SAAUp5B,EAAO1C,EAAO+7B,GAE5D,GAAIC,GAAW,KAAOt5B,EAAQ,QAC1Bu5B,EAAY,KAAOv5B,EAAQ,aAE3B1C,aAAiBnX,GAAOqzC,OAASl8B,YAAiBnX,GAAOszC,aAEzD57D,KAAKy7D,GAAYh8B,EACjBz/B,KAAK07D,GAA+B,gBAAXF,GAAsBA,EAAS,KAIxDx7D,KAAKy7D,GAAY,KACjBz7D,KAAK07D,GAAa,KAa1BpzC,EAAOgvC,OAAOz0D,UAAUg5D,eAAiB,SAAU15B,GAE/C,GAAIs5B,GAAW,KAAOt5B,EAAQ,QAC1B1C,EAAQz/B,KAAKy7D,EAEjB,IAAIh8B,EACJ,CACI,GAAIi8B,GAAY,KAAOv5B,EAAQ,cAC3Bq5B,EAASx7D,KAAK07D,EAGlB,OADAj8B,GAAM6uB,KAAKkN,IACJ,EAIP,OAAO,GAsBflzC,EAAOgvC,OAAOz0D,UAAUi5D,UAAY,SAAUC,EAAWC,EAAYC,EAAWC,EAAYC,EAAUC,EAAWC,EAASC,GAEtHt8D,KAAKu7D,cAAcT,EAAYiB,EAAWC,GAC1Ch8D,KAAKu7D,cAAcR,EAAWoB,EAAUC,GACxCp8D,KAAKu7D,cAAcP,EAAYiB,EAAWC,GAC1Cl8D,KAAKu7D,cAAcN,EAAUoB,EAASC,IAY1Ch0C,EAAOgvC,OAAOz0D,UAAU05D,aAAe,SAAU98B,EAAO+7B,GAEpDx7D,KAAKu7D,cAAcT,EAAYr7B,EAAO+7B,IAY1ClzC,EAAOgvC,OAAOz0D,UAAU25D,YAAc,SAAU/8B,EAAO+7B,GAEnDx7D,KAAKu7D,cAAcR,EAAWt7B,EAAO+7B,IAYzClzC,EAAOgvC,OAAOz0D,UAAU45D,aAAe,SAAUh9B,EAAO+7B,GAEpDx7D,KAAKu7D,cAAcP,EAAYv7B,EAAO+7B,IAY1ClzC,EAAOgvC,OAAOz0D,UAAU65D,WAAa,SAAUj9B,EAAO+7B,GAElDx7D,KAAKu7D,cAAcN,EAAUx7B,EAAO+7B,IAYxClzC,EAAOgvC,OAAOz0D,UAAU43D,mBAAqB,SAAUt4C,EAAQqlB,GAEvDA,EAAQ6a,iBACPriD,KAAKq6D,yBAA2B7yB,EAAQ8a,eAAiB9a,EAAQ8a,cAMtEtiD,KAAKs7D,iBAAiBR,KAElB96D,KAAKo6D,iBAAoB5yB,EAAQmc,WAKrC3jD,KAAK67D,eAAef,GAEhB96D,KAAKwyD,aAELxyD,KAAKwyD,YAAYxvB,SAAShjC,KAAMwnC,MAaxClf,EAAOgvC,OAAOz0D,UAAU63D,kBAAoB,SAAUv4C,EAAQqlB,GAE1DxnC,KAAKs7D,iBAAiBP,GAEtB/6D,KAAK67D,eAAed,GAEhB/6D,KAAKyyD,YAELzyD,KAAKyyD,WAAWzvB,SAAShjC,KAAMwnC,IAYvClf,EAAOgvC,OAAOz0D,UAAU83D,mBAAqB,SAAUx4C,EAAQqlB,GAE3DxnC,KAAKs7D,iBAAiBN,GAEtBh7D,KAAK67D,eAAeb,GAEhBh7D,KAAK0yD,aAEL1yD,KAAK0yD,YAAY1vB,SAAShjC,KAAMwnC,IAYxClf,EAAOgvC,OAAOz0D,UAAU+3D,iBAAmB,SAAUz4C,EAAQqlB,EAASwiB,GAUlE,GARAhqD,KAAK67D,eAAeZ,GAGhBj7D,KAAK2yD,WAEL3yD,KAAK2yD,UAAU3vB,SAAShjC,KAAMwnC,EAASwiB,IAGvChqD,KAAKs6D,aAKT,GAAIt6D,KAAKu6D,YAAa,IAASv6D,KAAKu6D,SAAW/yB,EAAQ8a,eAAiB9a,EAAQ8a,YAE5EtiD,KAAKs7D,iBAAiBP,OAG1B,CACI,GAAI4B,GAAY38D,KAAKs7D,iBAAiBL,EACjC0B,KAGG3S,EAEAhqD,KAAKs7D,iBAAiBR,GAItB96D,KAAKs7D,iBAAiBP,MA6BtCzyC,EAAOvZ,YAAc,SAAU7O,EAAM0B,EAAQ6wB,EAAM0Y,IAEhC1hC,SAAX7H,GAAmC,OAAXA,KAAmBA,EAAS1B,EAAKuE,OAE7DxE,KAAK8O,YAAYrJ,KAAK1F,MAEtBsoB,EAAO4iB,MAAMxlC,KAAK1F,KAAME,EAAM0B,EAAQ6wB,EAAM0Y,GAM5CnrC,KAAK+U,KAAOuT,EAAO6F,aAIvB7F,EAAOvZ,YAAYlM,UAAYylB,EAAOgI,MAAMiC,QAAO,EAAMjK,EAAOvZ,YAAYlM,UAAW5C,KAAK8O,YAAYlM,UAAWylB,EAAO4iB,MAAMroC,WAEhIylB,EAAOvZ,YAAYlM,UAAUC,YAAcwlB,EAAOvZ,YAElDuZ,EAAO2zB,WAAa,aA8BpB3zB,EAAOsqB,OAAS,WAOZ5yC,KAAK48D,cAAgB,EAOrB58D,KAAK68D,aAAc,EAQnB78D,KAAK88D,SAAU,EAMf98D,KAAK62C,KAAM,EAMX72C,KAAK+8D,WAAa,EAMlB/8D,KAAK01C,UAAW,EAMhB11C,KAAKqqC,aAAc,EAMnBrqC,KAAK42C,SAAU,EAMf52C,KAAKg9D,MAAO,EAMZh9D,KAAKi9D,YAAa,EAMlBj9D,KAAKk9D,UAAW,EAMhBl9D,KAAKm9D,QAAS,EAMdn9D,KAAKo9D,WAAY,EAMjBp9D,KAAKi+C,SAAU,EAMfj+C,KAAKq9D,UAAW,EAMhBr9D,KAAKs9D,OAAQ,EAMbt9D,KAAKu9D,OAAQ,EAMbv9D,KAAKw9D,SAAU,EAMfx9D,KAAKy9D,cAAe,EAQpBz9D,KAAKwQ,QAAS,EAMdxQ,KAAK09D,kBAAoB,KAMzB19D,KAAKw1C,OAAQ,EAMbx1C,KAAK29D,MAAO,EAMZ39D,KAAK49D,YAAa,EAMlB59D,KAAK69D,cAAe,EAMpB79D,KAAK89D,QAAS,EAMd99D,KAAK+9D,OAAQ,EAMb/9D,KAAKi9C,aAAc,EAMnBj9C,KAAKg+D,YAAa,EAMlBh+D,KAAKi+D,WAAY,EAMjBj+D,KAAKk+D,cAAe,EAMpBl+D,KAAKm+D,YAAa,EAQlBn+D,KAAK+4C,OAAQ,EAMb/4C,KAAKg5C,WAAY,EAOjBh5C,KAAK4+C,WAAa,KAQlB5+C,KAAKo+D,OAAQ,EAMbp+D,KAAKu1C,QAAS,EAMdv1C,KAAKq+D,cAAgB,EAMrBr+D,KAAKs+D,UAAW,EAMhBt+D,KAAKu+D,SAAU,EAMfv+D,KAAKw+D,eAAiB,EAMtBx+D,KAAKy+D,IAAK,EAMVz+D,KAAK0+D,UAAY,EAMjB1+D,KAAK2+D,SAAU,EAMf3+D,KAAK4+D,eAAiB,EAMtB5+D,KAAK6+D,MAAO,EAMZ7+D,KAAK8+D,cAAe,EAMpB9+D,KAAK++D,QAAS,EAMd/+D,KAAKg/D,OAAQ,EAMbh/D,KAAKi/D,QAAS,EAMdj/D,KAAKk/D,cAAgB,EAMrBl/D,KAAKm/D,QAAS,EAMdn/D,KAAKo/D,MAAO,EAQZp/D,KAAKq/D,WAAY,EAMjBr/D,KAAKs1C,UAAW,EAMhBt1C,KAAKs/D,KAAM,EAMXt/D,KAAKu/D,MAAO,EAMZv/D,KAAKw/D,KAAM,EAMXx/D,KAAKy/D,KAAM,EAOXz/D,KAAK0/D,KAAM,EAMX1/D,KAAK2/D,MAAO,EAMZ3/D,KAAK4/D,OAAQ,EAQb5/D,KAAK6/D,UAAW,EAMhB7/D,KAAK8/D,WAAY,EAMjB9/D,KAAK+/D,UAAW,EAMhB//D,KAAKggE,WAAY,EAMjBhgE,KAAKigE,UAAW,EAMhBjgE,KAAKkgE,UAAW,EAQhBlgE,KAAKmgE,QAAS,EAMdngE,KAAKogE,SAAU,EAMfpgE,KAAKqgE,MAAO,EAQZrgE,KAAKsgE,WAAa,EAMlBtgE,KAAKugE,cAAe,EAMpBvgE,KAAKwgE,eAAgB,EAMrBxgE,KAAKygE,cAAe,EAMpBzgE,KAAK0gE,YAAa,EAMlB1gE,KAAK2gE,kBAAoB,GAMzB3gE,KAAK4gE,iBAAmB,GAMxB5gE,KAAK6gE,oBAAqB,GAM9Bv4C,EAAOsqB,OAAS,GAAItqB,GAAOsqB,OAc3BtqB,EAAOsqB,OAAOkuB,cAAgB,GAAIx4C,GAAO0Y,OAgBzC1Y,EAAOsqB,OAAOoB,UAAY,SAAU3E,EAAUjiC,EAAS2zD,GAEnD,GAAIC,GAAahhE,KAAKihE,WAEtB,IAAIjhE,KAAK48D,gBAAkBoE,EAEvB3xB,EAAS3pC,KAAK0H,EAASpN,UAEtB,IAAIghE,EAAWE,UAAYH,EAE5BC,EAAWG,OAASH,EAAWG,WAC/BH,EAAWG,OAAOp9D,MAAMsrC,EAAUjiC,QAGtC,CACI4zD,EAAWE,SAAWF,EAAW7xC,KAAKnvB,MACtCghE,EAAWG,OAASH,EAAWG,WAC/BH,EAAWG,OAAOp9D,MAAMsrC,EAAUjiC,GAElC,IAAIwpC,GAAoC,mBAAnBnkC,QAAOmkC,QACxBlB,EAAWjtB,UAAsB,UAET,cAAxBxY,SAASmxD,YAAqD,gBAAxBnxD,SAASmxD,WAG/C3uD,OAAO4uD,WAAWL,EAAWE,SAAU,GAElCtqB,IAAYlB,EAIjBzlC,SAAS85B,iBAAiB,cAAei3B,EAAWE,UAAU,IAI9DjxD,SAAS85B,iBAAiB,mBAAoBi3B,EAAWE,UAAU,GACnEzuD,OAAOs3B,iBAAiB,OAAQi3B,EAAWE,UAAU,MAajE54C,EAAOsqB,OAAOquB,YAAc,WAExB,GAAID,GAAahhE,KAAKihE,WAEtB,IAAKhxD,SAAS28B,MAIT,IAAK5sC,KAAK48D,cACf,CACI58D,KAAK48D,cAAgBn2B,KAAKsN,MAE1B9jC,SAASg7B,oBAAoB,cAAe+1B,EAAWE,UACvDjxD,SAASg7B,oBAAoB,mBAAoB+1B,EAAWE,UAC5DzuD,OAAOw4B,oBAAoB,OAAQ+1B,EAAWE,UAE9ClhE,KAAKshE,cACLthE,KAAK68D,aAAc,EAEnB78D,KAAK8gE,cAAc99B,SAAShjC,KAG5B,KADA,GAAIuD,GACIA,EAAOy9D,EAAWG,OAAOrc,SACjC,CACI,GAAIzV,GAAW9rC,EAAK,GAChB6J,EAAU7J,EAAK,EACnB8rC,GAAS3pC,KAAK0H,EAASpN,MAI3BA,KAAKihE,YAAc,KACnBjhE,KAAKshE,YAAc,KACnBthE,KAAK8gE,cAAgB,UA1BrBruD,QAAO4uD,WAAWL,EAAWE,SAAU,KAsC/C54C,EAAOsqB,OAAO0uB,YAAc,WAOxB,QAASC,KAEL,GAAIjpC,GAAK7P,UAAU+4C,SAEf,oBAAmBC,KAAKnpC,GAExB8R,EAAOs3B,MAAO,EAET,SAASD,KAAKnpC,IAAO,kBAAkBmpC,KAAKnpC,IAAO,sBAAsBmpC,KAAKnpC,GAEnF8R,EAAOu3B,QAAS,EAIX,UAAUF,KAAKnpC,GAEpB8R,EAAO6T,SAAU,EAEZ,OAAOwjB,KAAKnpC,GAEjB8R,EAAOizB,UAAW,EAEb,kBAAkBoE,KAAKnpC,IAE5B8R,EAAOyM,KAAM,EACZpuB,UAAoB,WAAEm5C,MAAM,YAC7Bx3B,EAAO2yB,WAAarrC,SAASmwC,OAAOC,GAAI,KAEnC,QAAQL,KAAKnpC,GAElB8R,EAAOkzB,OAAQ,EAEV,SAASmE,KAAKnpC,GAEnB8R,EAAOmzB,OAAQ,EAEV,UAAUkE,KAAKnpC,KAEpB8R,EAAOozB,SAAU,IAGjB,iBAAiBiE,KAAKnpC,IAAO,YAAYmpC,KAAKnpC,MAE9C8R,EAAO6T,SAAU,EACjB7T,EAAOyM,KAAM,EACbzM,EAAOmzB,OAAQ,EACfnzB,EAAOozB,SAAU,EACjBpzB,EAAOqzB,cAAe,EAG1B,IAAI2B,GAAO,OAAOqC,KAAKnpC,IAEnB8R,EAAOozB,SAAWpzB,EAAOmzB,OAAUnzB,EAAOkzB,QAAU8B,GAASh1B,EAAOizB,YAEpEjzB,EAAO0yB,SAAU,IAIjB1yB,EAAOqzB,cAAkB,cAAcgE,KAAKnpC,IAAS,SAASmpC,KAAKnpC,MAEnE8R,EAAO0yB,SAAU,GAQzB,QAASiF,KAEL33B,EAAO55B,SAAWiC,OAAiC,0BAAK23B,EAAOsL,QAE/D,KACItL,EAAOyzB,eAAiBA,aAAamE,QACvC,MAAOC,GACL73B,EAAOyzB,cAAe,EAG1BzzB,EAAOuzB,QAASlrD,OAAa,MAAOA,OAAmB,YAAOA,OAAiB,UAAOA,OAAa,MACnG23B,EAAOwzB,aAAenrD,OAA0B,kBAEhD23B,EAAOoL,MAAQ,WAAgB,IAAM,GAAIhlC,GAASP,SAASoB,cAAe,SAAyE,OAA7Bb,GAAOmY,cAAe,IAAiBlW,OAAOyvD,wBAA2B1xD,EAAOE,WAAY,UAAaF,EAAOE,WAAY,uBAA4B,MAAO4hB,GAAM,OAAO,MAClS8X,EAAOoL,QAAUpL,EAAOoL,MAExBpL,EAAO0zB,SAAWrrD,OAAe,OAEjC23B,EAAO6S,YAAc,sBAAwBhtC,WAAY,yBAA2BA,WAAY,4BAA8BA,UAE9Hm6B,EAAO+zB,WAAsC,eAAxBluD,SAASkyD,YAA+B,GAAQ,EAErE15C,UAAUy1C,aAAez1C,UAAUy1C,cAAgBz1C,UAAU25C,oBAAsB35C,UAAU45C,iBAAmB55C,UAAU65C,gBAAkB75C,UAAU85C,cAEtJ9vD,OAAO+vD,IAAM/vD,OAAO+vD,KAAO/vD,OAAOgwD,WAAahwD,OAAOiwD,QAAUjwD,OAAOkwD,MAEvEv4B,EAAO8zB,aAAe9zB,EAAO8zB,gBAAkBz1C,UAAUy1C,gBAAkBzrD,OAAO+vD,IAG9Ep4B,EAAOm0B,SAAWn0B,EAAOo0B,eAAiB,KAE1Cp0B,EAAO8zB,cAAe,IAOrB9zB,EAAOyM,MAAQzM,EAAOq0B,IAAMr0B,EAAOm0B,SAAWn0B,EAAOmL,UAEtDnL,EAAOszB,mBAAoB,IAI3BtzB,EAAO60B,QAAU70B,EAAO00B,gBAExB10B,EAAOszB,mBAAoB,GAQnC,QAASkF,MAED,gBAAkB3yD,UAAS4yD,iBAAoBpwD,OAAOgW,UAAUq6C,gBAAkBrwD,OAAOgW,UAAUq6C,gBAAkB,KAErH14B,EAAO2O,OAAQ,IAGftmC,OAAOgW,UAAUs6C,kBAAoBtwD,OAAOgW,UAAUu6C,kBAEtD54B,EAAO4O,WAAY,GAGlB5O,EAAOsL,WAGJ,WAAajjC,SAAW23B,EAAOq0B,IAAM,cAAgBhsD,QAGrD23B,EAAOwU,WAAa,QAEf,gBAAkBnsC,QAGvB23B,EAAOwU,WAAa,aAEfxU,EAAOm0B,SAAW,oBAAsB9rD,UAG7C23B,EAAOwU,WAAa,mBAShC,QAASqkB,KAeL,IAAK,GAbDC,IACA,oBACA,oBACA,0BACA,0BACA,sBACA,sBACA,uBACA,wBAGA9jB,EAAUnvC,SAASoB,cAAc,OAE5BpO,EAAI,EAAGA,EAAIigE,EAAGhgE,OAAQD,IAE3B,GAAIm8C,EAAQ8jB,EAAGjgE,IACf,CACImnC,EAAOs2B,YAAa,EACpBt2B,EAAOu2B,kBAAoBuC,EAAGjgE,EAC9B,OAIR,GAAIkgE,IACA,mBACA,iBACA,yBACA,uBACA,qBACA,mBACA,sBACA,oBAGJ,IAAI/4B,EAAOs2B,WAEP,IAAK,GAAIz9D,GAAI,EAAGA,EAAIkgE,EAAIjgE,OAAQD,IAE5B,GAAIgN,SAASkzD,EAAIlgE,IACjB,CACImnC,EAAOw2B,iBAAmBuC,EAAIlgE,EAC9B,OAMRwP,OAAgB,SAAK2wD,QAA8B,uBAEnDh5B,EAAOy2B,oBAAqB,GAQpC,QAASwC,KAEL,GAAI/qC,GAAK7P,UAAU+4C,SA4FnB,IA1FI,QAAQC,KAAKnpC,GAEb8R,EAAOg0B,OAAQ,EAEV,YAAYqD,KAAKnpC,GAEtB8R,EAAOy0B,MAAO,EAET,gBAAgB4C,KAAKnpC,KAAQ8R,EAAOqzB,cAEzCrzB,EAAOmL,QAAS,EAChBnL,EAAOi0B,cAAgB3sC,SAASmwC,OAAOC,GAAI,KAEtC,WAAWL,KAAKnpC,GAErB8R,EAAOk0B,UAAW,EAEb,kBAAkBmD,KAAKnpC,IAE5B8R,EAAOm0B,SAAU,EACjBn0B,EAAOo0B,eAAiB9sC,SAASmwC,OAAOC,GAAI,KAEvC,cAAcL,KAAKnpC,IAAO8R,EAAOyM,IAEtCzM,EAAO00B,cAAe,EAEjB,mBAAmB2C,KAAKnpC,IAE7B8R,EAAOq0B,IAAK,EACZr0B,EAAOs0B,UAAYhtC,SAASmwC,OAAOC,GAAI,KAElC,SAASL,KAAKnpC,GAEnB8R,EAAO20B,QAAS,EAEX,QAAQ0C,KAAKnpC,GAElB8R,EAAO40B,OAAQ,EAEV,gBAAgByC,KAAKnpC,KAAQ8R,EAAOqzB,cAEzCrzB,EAAO60B,QAAS,EAEZ,mBAAmBwC,KAAKnpC,KAExB8R,EAAO80B,cAAgBxtC,SAASmwC,OAAOC,GAAI,MAG1C,uCAAuCL,KAAKnpC,KAEjD8R,EAAOq0B,IAAK,EACZr0B,EAAOu0B,SAAU,EACjBv0B,EAAOw0B,eAAiBltC,SAASmwC,OAAOC,GAAI,IAC5C13B,EAAOs0B,UAAYhtC,SAASmwC,OAAOyB,GAAI,KAIvC,OAAO7B,KAAKnpC,KAEZ8R,EAAOg1B,MAAO,GAId32C,UAAsB,aAEtB2hB,EAAO+0B,QAAS,GAGU,mBAAnB1sD,QAAOmkC,UAEdxM,EAAOwM,SAAU,GAGE,mBAAZ2sB,UAA8C,mBAAZC,WAEzCp5B,EAAO4yB,MAAO,GAGd5yB,EAAO4yB,MAAoC,gBAArBuG,SAAQE,WAE9Br5B,EAAO6yB,aAAesG,QAAQE,SAAS,eAEvCr5B,EAAO8yB,WAAaqG,QAAQE,SAASvG,UAGrCz0C,UAAsB,aAEtB2hB,EAAOsL,UAAW,GAGlBtL,EAAOsL,SAEP,IACItL,EAAOC,YAAmC,mBAAbC,UAEjC,MAAM23B,GAEF73B,EAAOC,aAAc,EAIA,mBAAlB53B,QAAO0qD,SAEd/yB,EAAO+yB,QAAS,GAGhB,YAAYsE,KAAKnpC,KAEjB8R,EAAOgzB,WAAY,GAQ3B,QAASsG,KAEL,GAAIC,GAAe1zD,SAASoB,cAAc,SACtCL,GAAS,CAEb,MACQA,IAAW2yD,EAAaC,eAEpBD,EAAaC,YAAY,8BAA8B5wC,QAAQ,OAAQ,MAEvEoX,EAAOy1B,UAAW,GAGlB8D,EAAaC,YAAY,mCAAmC5wC,QAAQ,OAAQ,MAG5EoX,EAAO01B,WAAY,EACnB11B,EAAO21B,UAAW,GAGlB4D,EAAaC,YAAY,oCAAoC5wC,QAAQ,OAAQ,MAE7EoX,EAAO41B,WAAY,GAGnB2D,EAAaC,YAAY,4BAA4B5wC,QAAQ,OAAQ,MAErEoX,EAAO61B,UAAW,GAGlB0D,EAAaC,YAAY,+CAA+C5wC,QAAQ,OAAQ,MAExFoX,EAAO81B,UAAW,IAG5B,MAAO5tC,KAMb,QAASuxC,KAELz5B,EAAOi1B,YAAe5sD,OAAe,MACrC23B,EAAOkL,YAAc7iC,OAAqB,eAAKA,OAA2B,mBAC1E,IAAIqxD,GAAe7zD,SAASoB,cAAc,SACtCL,GAAS,CAEb,KACI,IAAIA,IAAW8yD,EAAaF,eAEpBE,EAAaF,YAAY,8BAA8B5wC,QAAQ,OAAQ,MAEvEoX,EAAOk1B,KAAM,IAGbwE,EAAaF,YAAY,4BAA4B5wC,QAAQ,OAAQ,KAAO8wC,EAAaF,YAAY,eAAe5wC,QAAQ,OAAQ,OAEpIoX,EAAOm1B,MAAO,GAGduE,EAAaF,YAAY,eAAe5wC,QAAQ,OAAQ,MAExDoX,EAAOo1B,KAAM,GAMbsE,EAAaF,YAAY,yBAAyB5wC,QAAQ,OAAQ,MAElEoX,EAAOq1B,KAAM,IAGbqE,EAAaF,YAAY,iBAAmBE,EAAaF,YAAY,cAAc5wC,QAAQ,OAAQ,OAEnGoX,EAAOs1B,KAAM,GAGboE,EAAaF,YAAY,+BAA+B5wC,QAAQ,OAAQ,MAExEoX,EAAOu1B,MAAO,GAG0C,KAAxDmE,EAAaF,YAAY,4BAEzB,GAAIx5B,EAAOy0B,KAEPz0B,EAAOw1B,OAAQ,MAEd,IAAIx1B,EAAO60B,QAAU70B,EAAO80B,eAAiB,GAE1C,uBAAuBuC,KAAKh5C,UAAU+4C,WAC1C,CACI,GAAIuC,GAAQryC,SAASmwC,OAAOC,GAAI,IAC5BkC,EAAQtyC,SAASmwC,OAAOoC,GAAI,KAEjB,KAAVF,GAAgBC,GAAS,IAAOD,EAAQ,MAEzC35B,EAAOw1B,OAAQ,IAMrC,MAAOttC,KAQb,QAAS4xC,KAEL95B,EAAOk2B,WAAa7tD,OAAyB,kBAAK,EAClD23B,EAAO+1B,OAAgE,IAAvD13C,UAAU+4C,UAAU9c,cAAcv7C,QAAQ,UAC1DihC,EAAOg2B,QAAgC,GAArBh2B,EAAOk2B,YAAmBl2B,EAAO+1B,OACnD/1B,EAAOi2B,KAA4D,IAArD53C,UAAU+4C,UAAU9c,cAAcv7C,QAAQ,QAE/B,mBAAdg7D,WAEP/5B,EAAO4zB,YAAa,EAIpB5zB,EAAO4zB,YAAa,EAGG,mBAAhBt9D,cAAqD,mBAAfgrB,aAAqD,mBAAhBjrB,eAElF2pC,EAAOm2B,aAAe6D,IACtBh6B,EAAOo2B,cAAgBp2B,EAAOm2B,cAGlCn2B,EAAOq2B,aAAuC,mBAAhB//D,cAA4D,mBAAtB2jE,oBAA2D,mBAAfC,aAAsD,OAAxBl6B,EAAOm2B,cAAyBgE,IAE9K97C,UAAU+7C,QAAU/7C,UAAU+7C,SAAW/7C,UAAUg8C,eAAiBh8C,UAAUi8C,YAAcj8C,UAAUk8C,UAElGl8C,UAAU+7C,UAEVp6B,EAAO6zB,WAAY,GAU3B,QAASmG,KAEL,GAAI1/D,GAAI,GAAIhE,aAAY,GACpBiE,EAAI,GAAI+mB,YAAWhnB,GACnBE,EAAI,GAAInE,aAAYiE,EAOxB,OALAC,GAAE,GAAK,IACPA,EAAE,GAAK,IACPA,EAAE,GAAK,IACPA,EAAE,GAAK,IAEK,YAARC,EAAE,IAEK,EAGC,YAARA,EAAE,IAEK,EAKA,KAUf,QAAS2/D,KAEL,GAA0B96D,SAAtB46D,kBAEA,OAAO,CAGX,IAAIO,GAAO3kE,KAAKwQ,WAAWrI,OAAOpI,KAAM,EAAG,GACvC6kE,EAAMD,EAAKl0D,WAAW,KAE1B,KAAKm0D,EAED,OAAO,CAGX,IAAIj7C,GAAQi7C,EAAIC,gBAAgB,EAAG,EAInC,OAFA7kE,MAAKwQ,WAAWI,OAAO7Q,MAEhB4pB,EAAMhZ,eAAgByzD,mBAOjC,QAASU,KAEL,GACIC,GADAC,EAAKh1D,SAASoB,cAAc,KAE5B6zD,GACAC,gBAAmB,oBACnBC,WAAc,eACdC,YAAe,gBACfC,aAAgB,iBAChB71D,UAAa,YAIjBQ,UAAS28B,KAAK24B,aAAaN,EAAI,KAE/B,KAAK,GAAIh1C,KAAKi1C,GAEUz7D,SAAhBw7D,EAAG5pD,MAAM4U,KAETg1C,EAAG5pD,MAAM4U,GAAK,2BACd+0C,EAAQvyD,OAAO+yD,iBAAiBP,GAAIQ,iBAAiBP,EAAWj1C,IAIxEhgB,UAAS28B,KAAKjkC,YAAYs8D,GAC1B76B,EAAO2zB,MAAmBt0D,SAAVu7D,GAAuBA,EAAM9hE,OAAS,GAAe,SAAV8hE,EAlkB/D,GAAI56B,GAASpqC,IAukBbuhE,KACA8B,IACAQ,IACAH,IACAqB,IACAb,IACAnC,IACAkB,IACAL,KAYJt6C,EAAOsqB,OAAO8yB,aAAe,SAAU3wD,GAEnC,MAAa,QAATA,GAAkB/U,KAAKw/D,KAEhB,EAEO,QAATzqD,IAAmB/U,KAAKs/D,KAAOt/D,KAAKu/D,OAElC,EAEO,QAATxqD,GAAkB/U,KAAK0/D,KAErB,EAEO,SAAT3qD,GAAmB/U,KAAKu/D,MAEtB,EAEO,QAATxqD,GAAkB/U,KAAKy/D,KAErB,EAEO,SAAT1qD,GAAmB/U,KAAK2/D,MAEtB,EAEO,QAAT5qD,GAAkB/U,KAAK4/D,OAErB,GAGJ,GAYXt3C,EAAOsqB,OAAO+yB,aAAe,SAAU5wD,GAEnC,MAAa,SAATA,IAAoB/U,KAAKggE,WAAahgE,KAAKigE,WAEpC,EAEO,QAATlrD,IAAmB/U,KAAK+/D,UAAY//D,KAAK8/D,YAEvC,EAEQ,QAAT/qD,GAA2B,QAATA,IAAmB/U,KAAK6/D,SAIlC,SAAT9qD,GAAmB/U,KAAKkgE,UAEtB,GAGJ,GAPI,GAmBf53C,EAAOsqB,OAAOgzB,cAAgB,WAE1B,MAAInzD,QAAOC,SAAWD,OAAOC,QAAiB,SAEnC,EAGPD,OAAOC,UAEPA,QAAQmzD,UACRnzD,QAAQozD,aAEJpzD,QAAQqI,OAERrI,QAAQqI,QAGRrI,QAAkB,UAEXA,QAAkB,SAAExP,OAAS,GAIrC,GAgBXolB,EAAOsqB,OAAOmzB,sBAAwB,WAElC,GAAIC,GAAUvzD,OAAOgW,UAAU+4C,UAAUI,MAAM,iCAC/C,OAAOoE,IAAWA,EAAQ,GAAK,KAiBnC19C,EAAOC,QAaHngB,OAAQ,SAAUxG,EAAQ+E,EAAOC,EAAQgP,EAAIqwD,GAKzC,GAHAt/D,EAAQA,GAAS,IACjBC,EAASA,GAAU,IAEF6C,SAAbw8D,EAEA,GAAIz1D,GAASvQ,KAAKwQ,WAAWrI,OAAOxG,EAAQ+E,EAAOC,OAInD,IAAI4J,GAASP,SAASoB,cAAc,SAYxC,OATkB,gBAAPuE,IAA0B,KAAPA,IAE1BpF,EAAOoF,GAAKA,GAGhBpF,EAAO7J,MAAQA,EACf6J,EAAO5J,OAASA,EAChB4J,EAAO6K,MAAM6qD,QAAU,QAEhB11D,GAYX24B,mBAAoB,SAAU34B,EAAQ+H,GAMlC,MAJAA,GAAQA,GAAS,aAEjB/H,EAAO6K,MAAM8qD,gBAAkB5tD,EAExB/H,GAYX+4B,eAAgB,SAAU/4B,EAAQ/M,GAQ9B,MANAA,GAAQA,GAAS,OAEjB+M,EAAO6K,MAAM+qD,cAAgB3iE,EAC7B+M,EAAO6K,MAAM,mBAAqB5X,EAClC+M,EAAO6K,MAAM,gBAAkB5X,EAExB+M,GAYX84B,cAAe,SAAU94B,EAAQ/M,GAY7B,MAVAA,GAAQA,GAAS,OAEjB+M,EAAO6K,MAAM,yBAA2B5X,EACxC+M,EAAO6K,MAAM,uBAAyB5X,EACtC+M,EAAO6K,MAAM,sBAAwB5X,EACrC+M,EAAO6K,MAAM,oBAAsB5X,EACnC+M,EAAO6K,MAAM,mBAAqB5X,EAClC+M,EAAO6K,MAAM,eAAiB5X,EAC9B+M,EAAO6K,MAAM,+BAAiC,mBAEvC7K,GAcXolC,SAAU,SAAUplC,EAAQ5O,EAAQykE,GAEhC,GAAIpiE,EA+BJ,OA7BuBwF,UAAnB48D,IAAgCA,GAAiB,GAEjDzkE,IAEsB,gBAAXA,GAGPqC,EAASgM,SAASq2D,eAAe1kE,GAEV,gBAAXA,IAA2C,IAApBA,EAAOwwB,WAG1CnuB,EAASrC,IAKZqC,IAEDA,EAASgM,SAAS28B,MAGlBy5B,GAAkBpiE,EAAOoX,QAEzBpX,EAAOoX,MAAMkrD,SAAW,UAG5BtiE,EAAOuiE,YAAYh2D,GAEZA,GAUXkmC,cAAe,SAAUlmC,GAEjBA,EAAOi2D,YAEPj2D,EAAOi2D,WAAW99D,YAAY6H,IAkBtCzC,aAAc,SAAUX,EAASs5D,EAAYC,EAAYzjD,EAAQE,EAAQwjD,EAAOC,GAI5E,MAFAz5D,GAAQW,aAAamV,EAAQ0jD,EAAOC,EAAOzjD,EAAQsjD,EAAYC,GAExDv5D,GAgBX05D,oBAAqB,SAAU15D,EAAS3J,GAEpC,GAAI42B,GAAI/R,EAAOC,OAAOC,mBAAmBpb,EAOzC,OALIitB,KAEAjtB,EAAQitB,GAAK52B,GAGV2J,GAWXob,mBAAoB,SAAUpb,GAE1B,GAAI25D,IAAW,IAAK,UAAW,MAAO,OAAQ,KAE9C,KAAK,GAAIC,KAAUD,GACnB,CACI,GAAI1sC,GAAI0sC,EAAOC,GAAU,sBAEzB,IAAI3sC,IAAKjtB,GAEL,MAAOitB,GAIf,MAAO,OAWX4sC,oBAAqB,SAAU75D,GAE3B,GAAIitB,GAAI/R,EAAOC,OAAOC,mBAAmBpb,EAEzC,OAAIitB,GAEOjtB,EAAQitB,GAFnB,QAeJ6sC,uBAAwB,SAAU12D,GAI9B,IAAK,GAFD22D,IAAU,gBAAiB,cAAe,mBAAoB,4BAA6B,oBAAqB,aAE3GlkE,EAAI,EAAGA,EAAIkkE,EAAMjkE,OAAQD,IAE9BuN,EAAO6K,MAAM,mBAAqB8rD,EAAMlkE,EAK5C,OAFAuN,GAAO6K,MAAM+rD,oBAAsB,mBAE5B52D,GAYX62D,yBAA0B,SAAU72D,GAKhC,MAHAA,GAAO6K,MAAM,mBAAqB,OAClC7K,EAAO6K,MAAM+rD,oBAAsB,UAE5B52D,IAoBf8X,EAAO2sB,sBAAwB,SAAS/0C,EAAMonE,GAElB79D,SAApB69D,IAAiCA,GAAkB,GAKvDtnE,KAAKE,KAAOA,EAMZF,KAAKyyC,WAAY,EAKjBzyC,KAAKsnE,gBAAkBA,CASvB,KAAK,GAPDC,IACA,KACA,MACA,SACA,KAGKliE,EAAI,EAAGA,EAAIkiE,EAAQrkE,SAAWuP,OAAO+0D,sBAAuBniE,IAEjEoN,OAAO+0D,sBAAwB/0D,OAAO80D,EAAQliE,GAAK,yBACnDoN,OAAOg1D,qBAAuBh1D,OAAO80D,EAAQliE,GAAK,uBAOtDrF,MAAK0nE,eAAgB,EAMrB1nE,KAAK2nE,QAAU,KAMf3nE,KAAK4nE,WAAa,MAItBt/C,EAAO2sB,sBAAsBpyC,WAMzBuI,MAAO,WAEHpL,KAAKyyC,WAAY,CAEjB,IAAI7M,GAAQ5lC,MAEPyS,OAAO+0D,uBAAyBxnE,KAAKsnE,iBAEtCtnE,KAAK0nE,eAAgB,EAErB1nE,KAAK2nE,QAAU,WACX,MAAO/hC,GAAMiiC,oBAGjB7nE,KAAK4nE,WAAan1D,OAAO4uD,WAAWrhE,KAAK2nE,QAAS,KAIlD3nE,KAAK0nE,eAAgB,EAErB1nE,KAAK2nE,QAAU,SAAUjoC,GACrB,MAAOkG,GAAMkiC,UAAUpoC,IAG3B1/B,KAAK4nE,WAAan1D,OAAO+0D,sBAAsBxnE,KAAK2nE,WAU5DG,UAAW,SAAUC,GAGjB/nE,KAAKE,KAAK0+B,OAAO/9B,KAAKouB,MAAM84C,IAE5B/nE,KAAK4nE,WAAan1D,OAAO+0D,sBAAsBxnE,KAAK2nE,UAQxDE,iBAAkB,WAEd7nE,KAAKE,KAAK0+B,OAAO6H,KAAKsN,OAEtB/zC,KAAK4nE,WAAan1D,OAAO4uD,WAAWrhE,KAAK2nE,QAAS3nE,KAAKE,KAAKw/B,KAAKsoC,aAQrEh9D,KAAM,WAEEhL,KAAK0nE,cAELO,aAAajoE,KAAK4nE,YAIlBn1D,OAAOg1D,qBAAqBznE,KAAK4nE,YAGrC5nE,KAAKyyC,WAAY,GASrBy1B,aAAc,WACV,MAAOloE,MAAK0nE,eAQhBS,MAAO,WACH,MAAQnoE,MAAK0nE,iBAAkB,IAKvCp/C,EAAO2sB,sBAAsBpyC,UAAUC,YAAcwlB,EAAO2sB,sBAkB5D3sB,EAAOznB,MAOHunE,IAAe,EAAVvnE,KAAKC,GAWVunE,WAAY,SAAU3jE,EAAGC,EAAG2jE,GAIxB,MAFgB7+D,UAAZ6+D,IAAyBA,EAAU,MAEhCznE,KAAKq0B,IAAIxwB,EAAIC,GAAK2jE,GAa7BC,cAAe,SAAU7jE,EAAGC,EAAG2jE,GAI3B,MAFgB7+D,UAAZ6+D,IAAyBA,EAAU,MAE5B3jE,EAAI2jE,EAAR5jE,GAaX8jE,iBAAkB,SAAU9jE,EAAGC,EAAG2jE,GAI9B,MAFgB7+D,UAAZ6+D,IAAyBA,EAAU,MAEhC5jE,EAAIC,EAAI2jE,GAYnBG,UAAW,SAAUC,EAAKJ,GAItB,MAFgB7+D,UAAZ6+D,IAAyBA,EAAU,MAEhCznE,KAAKgH,KAAK6gE,EAAMJ,IAY3BK,WAAY,SAAUD,EAAKJ,GAIvB,MAFgB7+D,UAAZ6+D,IAAyBA,EAAU,MAEhCznE,KAAKouB,MAAMy5C,EAAMJ,IAW5BM,QAAS,WAKL,IAAK,GAHDC,GAAM,EACN34C,EAAMR,UAAUxsB,OAEXD,EAAI,EAAOitB,EAAJjtB,EAASA,IAErB4lE,IAASn5C,UAAUzsB,EAGvB,OAAO4lE,GAAM34C,GASjB44C,MAAO,SAAU/jC,GACb,MAAOA,GAAI,GAcfgkC,OAAQ,SAAUzpC,EAAO0pC,EAAK59D,GAI1B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAAR49D,EACO1pC,GAGXA,GAASl0B,EACTk0B,EAAQ0pC,EAAMnoE,KAAKuzB,MAAMkL,EAAQ0pC,GAE1B59D,EAAQk0B,IAgBnB2pC,YAAa,SAAU3pC,EAAO0pC,EAAK59D,GAI/B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAAR49D,EACO1pC,GAGXA,GAASl0B,EACTk0B,EAAQ0pC,EAAMnoE,KAAKouB,MAAMqQ,EAAQ0pC,GAE1B59D,EAAQk0B,IAgBnB4pC,WAAY,SAAU5pC,EAAO0pC,EAAK59D,GAI9B,MAFc3B,UAAV2B,IAAuBA,EAAQ,GAEvB,IAAR49D,EACO1pC,GAGXA,GAASl0B,EACTk0B,EAAQ0pC,EAAMnoE,KAAKgH,KAAKy3B,EAAQ0pC,GAEzB59D,EAAQk0B,IAuCnB6pC,QAAS,SAAU1lE,EAAO2lE,EAAOrU,GAEftrD,SAAV2/D,IAAuBA,EAAQ,GACtB3/D,SAATsrD,IAAsBA,EAAO,GAEjC,IAAIvwD,GAAI3D,KAAKwoE,IAAItU,GAAOqU,EAExB,OAAOvoE,MAAKuzB,MAAM3wB,EAAQe,GAAKA,GAWnC8kE,QAAS,SAAU7lE,EAAO2lE,EAAOrU,GAEftrD,SAAV2/D,IAAuBA,EAAQ,GACtB3/D,SAATsrD,IAAsBA,EAAO,GAEjC,IAAIvwD,GAAI3D,KAAKwoE,IAAItU,GAAOqU,EAExB,OAAOvoE,MAAKouB,MAAMxrB,EAAQe,GAAKA,GAWnC+kE,OAAQ,SAAU9lE,EAAO2lE,EAAOrU,GAEdtrD,SAAV2/D,IAAuBA,EAAQ,GACtB3/D,SAATsrD,IAAsBA,EAAO,GAEjC,IAAIvwD,GAAI3D,KAAKwoE,IAAItU,GAAOqU,EAExB,OAAOvoE,MAAKgH,KAAKpE,EAAQe,GAAKA,GAalCglE,aAAc,SAAU98D,EAAIC,EAAIC,EAAIC,GAChC,MAAOhM,MAAK2E,MAAMqH,EAAKF,EAAIC,EAAKF,IAepC+8D,cAAe,SAAU/8D,EAAIC,EAAIC,EAAIC,GACjC,MAAOhM,MAAK2E,MAAMoH,EAAKF,EAAIG,EAAKF,IAUpC+8D,mBAAoB,SAAUC,EAAQC,GAClC,MAAO/oE,MAAK2E,MAAMokE,EAAOtkE,EAAIqkE,EAAOrkE,EAAGskE,EAAOvkE,EAAIskE,EAAOtkE,IAU7DwkE,oBAAqB,SAAUF,EAAQC,GACnC,MAAO/oE,MAAK2E,MAAMokE,EAAOvkE,EAAIskE,EAAOtkE,EAAGukE,EAAOtkE,EAAIqkE,EAAOrkE,IAS7DwkE,aAAc,SAAUC,GACpB,MAAO/pE,MAAKgqE,eAAeD,EAAWlpE,KAAKC,IAAI,IASnDkpE,eAAgB,SAAUD,GAGtB,MADAA,IAAuB,EAAIlpE,KAAKC,GACzBipE,GAAY,EAAIA,EAAWA,EAAW,EAAIlpE,KAAKC,IAa1DmpE,OAAQ,SAAUxmE,EAAOurC,EAAQpnC,GAC7B,MAAO/G,MAAKq2B,IAAIzzB,EAAQurC,EAAQpnC,IAYpCsiE,OAAQ,SAAUzmE,EAAOurC,EAAQ9X,GAC7B,MAAOr2B,MAAK+G,IAAInE,EAAQurC,EAAQ9X,IAcpCW,KAAM,SAAUp0B,EAAOyzB,EAAKtvB,GAExB,GAAImC,GAAQnC,EAAMsvB,CAElB,IAAa,GAATntB,EAEA,MAAO,EAGX,IAAIiH,IAAUvN,EAAQyzB,GAAOntB,CAO7B,OALa,GAATiH,IAEAA,GAAUjH,GAGPiH,EAASkmB,GAepBizC,UAAW,SAAU1mE,EAAOurC,EAAQpnC,GAEhC,GAAIwiE,EAMJ,OALA3mE,GAAQ5C,KAAKq0B,IAAIzxB,GACjBurC,EAASnuC,KAAKq0B,IAAI8Z,GAClBpnC,EAAM/G,KAAKq0B,IAAIttB,GACfwiE,GAAQ3mE,EAAQurC,GAAUpnC,GAa9ByiE,MAAO,SAAUtlC,GAEb,SAAc,EAAJA,IAUdulC,OAAQ,SAAUvlC,GAEd,QAAa,EAAJA,IAYb7N,IAAK,WAED,GAAyB,IAArBxH,UAAUxsB,QAAwC,gBAAjBwsB,WAAU,GAE3C,GAAI9e,GAAO8e,UAAU,OAIrB,IAAI9e,GAAO8e,SAGf,KAAK,GAAIzsB,GAAI,EAAGi0B,EAAM,EAAGhH,EAAMtf,EAAK1N,OAAYgtB,EAAJjtB,EAASA,IAE7C2N,EAAK3N,GAAK2N,EAAKsmB,KAEfA,EAAMj0B,EAId,OAAO2N,GAAKsmB,IAahBtvB,IAAK,WAED,GAAyB,IAArB8nB,UAAUxsB,QAAwC,gBAAjBwsB,WAAU,GAE3C,GAAI9e,GAAO8e,UAAU,OAIrB,IAAI9e,GAAO8e,SAGf,KAAK,GAAIzsB,GAAI,EAAG2E,EAAM,EAAGsoB,EAAMtf,EAAK1N,OAAYgtB,EAAJjtB,EAASA,IAE7C2N,EAAK3N,GAAK2N,EAAKhJ,KAEfA,EAAM3E,EAId,OAAO2N,GAAKhJ,IAWhB2iE,YAAa,SAAUx7B,GAEnB,GAAyB,IAArBrf,UAAUxsB,QAAwC,gBAAjBwsB,WAAU,GAE3C,GAAI9e,GAAO8e,UAAU,OAIrB,IAAI9e,GAAO8e,UAAUN,MAAM,EAG/B,KAAK,GAAInsB,GAAI,EAAGi0B,EAAM,EAAGhH,EAAMtf,EAAK1N,OAAYgtB,EAAJjtB,EAASA,IAE7C2N,EAAK3N,GAAG8rC,GAAYn+B,EAAKsmB,GAAK6X,KAE9B7X,EAAMj0B,EAId,OAAO2N,GAAKsmB,GAAK6X,IAWrBy7B,YAAa,SAAUz7B,GAEnB,GAAyB,IAArBrf,UAAUxsB,QAAwC,gBAAjBwsB,WAAU,GAE3C,GAAI9e,GAAO8e,UAAU,OAIrB,IAAI9e,GAAO8e,UAAUN,MAAM,EAG/B,KAAK,GAAInsB,GAAI,EAAG2E,EAAM,EAAGsoB,EAAMtf,EAAK1N,OAAYgtB,EAAJjtB,EAASA,IAE7C2N,EAAK3N,GAAG8rC,GAAYn+B,EAAKhJ,GAAKmnC,KAE9BnnC,EAAM3E,EAId,OAAO2N,GAAKhJ,GAAKmnC,IAYrBqf,UAAW,SAAU55B,EAAOi2C,GAExB,MAAOA,GAAUzqE,KAAK63B,KAAKrD,GAAQ3zB,KAAKC,GAAID,KAAKC,IAAMd,KAAK63B,KAAKrD,EAAO,KAAM,MAYlFk2C,oBAAqB,SAAUr1B,EAAGs1B,GAE9B,GAAI9wC,GAAIwb,EAAEnyC,OAAS,EACfsuB,EAAIqI,EAAI8wC,EACR1nE,EAAIpC,KAAKouB,MAAMuC,EAEnB,OAAQ,GAAJm5C,EAEO3qE,KAAK4qE,OAAOv1B,EAAE,GAAIA,EAAE,GAAI7jB,GAG/Bm5C,EAAI,EAEG3qE,KAAK4qE,OAAOv1B,EAAExb,GAAIwb,EAAExb,EAAI,GAAIA,EAAIrI,GAGpCxxB,KAAK4qE,OAAOv1B,EAAEpyC,GAAIoyC,EAAEpyC,EAAI,EAAI42B,EAAIA,EAAI52B,EAAI,GAAIuuB,EAAIvuB,IAY3D4nE,oBAAqB,SAAUx1B,EAAGs1B,GAK9B,IAAK,GAHDhmE,GAAI,EACJogC,EAAIsQ,EAAEnyC,OAAS,EAEVD,EAAI,EAAQ8hC,GAAL9hC,EAAQA,IAEpB0B,GAAK9D,KAAKwoE,IAAI,EAAIsB,EAAG5lC,EAAI9hC,GAAKpC,KAAKwoE,IAAIsB,EAAG1nE,GAAKoyC,EAAEpyC,GAAKjD,KAAK8qE,UAAU/lC,EAAG9hC,EAG5E,OAAO0B,IAYXomE,wBAAyB,SAAU11B,EAAGs1B,GAElC,GAAI9wC,GAAIwb,EAAEnyC,OAAS,EACfsuB,EAAIqI,EAAI8wC,EACR1nE,EAAIpC,KAAKouB,MAAMuC,EAEnB,OAAI6jB,GAAE,KAAOA,EAAExb,IAEH,EAAJ8wC,IAEA1nE,EAAIpC,KAAKouB,MAAMuC,EAAIqI,GAAK,EAAI8wC,KAGzB3qE,KAAKgrE,WAAW31B,GAAGpyC,EAAI,EAAI42B,GAAKA,GAAIwb,EAAEpyC,GAAIoyC,GAAGpyC,EAAI,GAAK42B,GAAIwb,GAAGpyC,EAAI,GAAK42B,GAAIrI,EAAIvuB,IAI7E,EAAJ0nE,EAEOt1B,EAAE,IAAMr1C,KAAKgrE,WAAW31B,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAAK7jB,GAAK6jB,EAAE,IAG/Ds1B,EAAI,EAEGt1B,EAAExb,IAAM75B,KAAKgrE,WAAW31B,EAAExb,GAAIwb,EAAExb,GAAIwb,EAAExb,EAAI,GAAIwb,EAAExb,EAAI,GAAIrI,EAAIqI,GAAKwb,EAAExb,IAGvE75B,KAAKgrE,WAAW31B,EAAEpyC,EAAIA,EAAI,EAAI,GAAIoyC,EAAEpyC,GAAIoyC,EAAMpyC,EAAI,EAAR42B,EAAYA,EAAI52B,EAAI,GAAIoyC,EAAMpyC,EAAI,EAAR42B,EAAYA,EAAI52B,EAAI,GAAIuuB,EAAIvuB,IAc/G2nE,OAAQ,SAAUK,EAAInvC,EAAI7L,GACtB,OAAQ6L,EAAKmvC,GAAMh7C,EAAIg7C,GAU3BH,UAAW,SAAU/lC,EAAG9hC,GACpB,MAAOjD,MAAKkrE,UAAUnmC,GAAK/kC,KAAKkrE,UAAUjoE,GAAKjD,KAAKkrE,UAAUnmC,EAAI9hC,IAQtEioE,UAAY,SAAUznE,GAElB,GAAc,IAAVA,EAEA,MAAO,EAKX,KAFA,GAAI0nE,GAAM1nE,IAEFA,GAEJ0nE,GAAO1nE,CAGX,OAAO0nE,IAgBXH,WAAY,SAAUC,EAAInvC,EAAIC,EAAIqvC,EAAIn7C,GAElC,GAAIo7C,GAAiB,IAAXtvC,EAAKkvC,GAAWK,EAAiB,IAAXF,EAAKtvC,GAAWyvC,EAAKt7C,EAAIA,EAAGu7C,EAAKv7C,EAAIs7C,CAErE,QAAQ,EAAIzvC,EAAK,EAAIC,EAAKsvC,EAAKC,GAAME,GAAM,GAAK1vC,EAAK,EAAIC,EAAK,EAAIsvC,EAAKC,GAAMC,EAAKF,EAAKp7C,EAAI6L,GAY/F2vC,WAAY,SAAU/mE,EAAGC,GACrB,MAAO9D,MAAKq0B,IAAIxwB,EAAIC,IAUxB+mE,kBAAmB,SAAUjoE,GAGzB,MAAQA,GAAQ,EAAK5C,KAAKgH,KAAKpE,GAAS5C,KAAKouB,MAAMxrB,IAiBvDkoE,gBAAiB,SAAUzoE,EAAQ0oE,EAAcC,EAAcC,GAEtCriE,SAAjBmiE,IAA8BA,EAAe,GAC5BniE,SAAjBoiE,IAA8BA,EAAe,GAC/BpiE,SAAdqiE,IAA2BA,EAAY,EAS3C,KAAK,GAPD3mE,GAAMymE,EACNxmE,EAAMymE,EACNE,EAAMD,EAAYjrE,KAAKC,GAAKoC,EAE5B8oE,KACAC,KAEKrnE,EAAI,EAAO1B,EAAJ0B,EAAYA,IAExBQ,GAAOD,EAAM4mE,EACb5mE,GAAOC,EAAM2mE,EAEbC,EAASpnE,GAAKQ,EACd6mE,EAASrnE,GAAKO,CAIlB,QAASA,IAAK8mE,EAAU7mE,IAAK4mE,EAAU9oE,OAAQA,IAcnDixB,SAAU,SAAUznB,EAAIC,EAAIC,EAAIC,GAE5B,GAAIc,GAAKjB,EAAKE,EACViB,EAAKlB,EAAKE,CAEd,OAAOhM,MAAK0E,KAAKoI,EAAKA,EAAKE,EAAKA,IAepCq+D,WAAY,SAAUx/D,EAAIC,EAAIC,EAAIC,GAE9B,GAAIc,GAAKjB,EAAKE,EACViB,EAAKlB,EAAKE,CAEd,OAAOc,GAAKA,EAAKE,EAAKA,GAe1Bs+D,YAAa,SAAUz/D,EAAIC,EAAIC,EAAIC,EAAIw8D,GAInC,MAFY5/D,UAAR4/D,IAAqBA,EAAM,GAExBxoE,KAAK0E,KAAK1E,KAAKwoE,IAAIz8D,EAAKF,EAAI28D,GAAOxoE,KAAKwoE,IAAIx8D,EAAKF,EAAI08D,KAahEjwC,MAAO,SAAU/zB,EAAGX,EAAGC,GACnB,MAAaD,GAAJW,EAAUX,EAAQW,EAAIV,EAAMA,EAAIU,GAY7C+mE,YAAa,SAAU/mE,EAAGX,GACtB,MAAWA,GAAJW,EAAQX,EAAIW,GAavBgnE,OAAQ,SAAU3nE,EAAGC,EAAG83B,GACpB,MAAQ57B,MAAKq0B,IAAIxwB,EAAIC,IAAM83B,GAc/B6vC,UAAW,SAAUjnE,EAAGyyB,EAAIC,EAAIC,EAAIC,GAChC,MAAOD,IAAO3yB,EAAIyyB,IAASG,EAAKD,IAASD,EAAKD,IAYlDy0C,WAAY,SAAUlnE,EAAG6xB,EAAKtvB,GAE1B,MADAvC,GAAIxE,KAAK+G,IAAI,EAAG/G,KAAKq2B,IAAI,GAAI7xB,EAAI6xB,IAAQtvB,EAAMsvB,KACxC7xB,EAAIA,GAAK,EAAI,EAAIA,IAY5BmnE,aAAc,SAAUnnE,EAAG6xB,EAAKtvB,GAE5B,MADAvC,GAAIxE,KAAK+G,IAAI,EAAG/G,KAAKq2B,IAAI,GAAI7xB,EAAI6xB,IAAQtvB,EAAMsvB,KACxC7xB,EAAIA,EAAIA,GAAKA,GAAS,EAAJA,EAAQ,IAAM,KAY3ConE,KAAM,SAAUpnE,GACZ,MAAa,GAAJA,EAAU,GAASA,EAAI,EAAM,EAAI,GAY9CqnE,QAAS,SAAUhoE,EAAGC,EAAGowD,GAIrB,MAFatrD,UAATsrD,IAAsBA,EAAO,GAE7BrwD,EAAIC,GAAKowD,EAAOpwD,EAET,EAEEowD,EAAJrwD,GAAYqwD,EAAOrwD,EAEjB,GAICA,EAAIqwD,GAAQpwD,GAOhC,IAAIgoE,GAAwB9rE,KAAKC,GAAK,IAClC8rE,EAAwB,IAAM/rE,KAAKC,EASvCwnB,GAAOznB,KAAKm0B,SAAW,SAAmB63C,GACtC,MAAOA,GAAUF,GAUrBrkD,EAAOznB,KAAKy4B,SAAW,SAAmBmxC,GACtC,MAAOA,GAAUmC,GAyBrBtkD,EAAOwrB,oBAAsB,SAAUg5B,GAErBrjE,SAAVqjE,IAAuBA,MAM3B9sE,KAAK4E,EAAI,EAMT5E,KAAK+sE,GAAK,EAMV/sE,KAAKioB,GAAK,EAMVjoB,KAAKkoB,GAAK,EAEW,gBAAV4kD,GAEP9sE,KAAKmiC,MAAM2qC,GAIX9sE,KAAKgtE,IAAIF,IAKjBxkD,EAAOwrB,oBAAoBjxC,WASvBi9B,IAAK,WAED,GAAI7P,GAAI,QAAUjwB,KAAK+sE,GAAc,uBAAT/sE,KAAK4E,CAOjC,OALA5E,MAAK4E,EAAQ,EAAJqrB,EACTjwB,KAAK+sE,GAAK/sE,KAAKioB,GACfjoB,KAAKioB,GAAKjoB,KAAKkoB,GACfloB,KAAKkoB,GAAK+H,EAAIjwB,KAAK4E,EAEZ5E,KAAKkoB,IAWhB8kD,IAAK,SAAUF,GAQX,GALA9sE,KAAK+sE,GAAK/sE,KAAKosC,KAAK,KACpBpsC,KAAKioB,GAAKjoB,KAAKosC,KAAKpsC,KAAK+sE,IACzB/sE,KAAKkoB,GAAKloB,KAAKosC,KAAKpsC,KAAKioB,IACzBjoB,KAAK4E,EAAI,EAEJkoE,EAML,IAAK,GAAI7pE,GAAI,EAAGA,EAAI6pE,EAAM5pE,QAAuB,MAAZ4pE,EAAM7pE,GAAaA,IACxD,CACI,GAAIgxC,GAAO64B,EAAM7pE,EAEjBjD,MAAK+sE,IAAM/sE,KAAKosC,KAAK6H,GACrBj0C,KAAK+sE,OAAS/sE,KAAK+sE,GAAK,GACxB/sE,KAAKioB,IAAMjoB,KAAKosC,KAAK6H,GACrBj0C,KAAKioB,OAASjoB,KAAKioB,GAAK,GACxBjoB,KAAKkoB,IAAMloB,KAAKosC,KAAK6H,GACrBj0C,KAAKkoB,OAASloB,KAAKkoB,GAAK,KAahCkkB,KAAM,SAAUx7B,GAEZ,GAAIiS,GAAG5f,EAAG8hC,CAIV,KAHAA,EAAI,WACJn0B,EAAOA,EAAK2W,WAEPtkB,EAAI,EAAGA,EAAI2N,EAAK1N,OAAQD,IACzB8hC,GAAKn0B,EAAKq8D,WAAWhqE,GACrB4f,EAAI,mBAAsBkiB,EAC1BA,EAAIliB,IAAM,EACVA,GAAKkiB,EACLliB,GAAKkiB,EACLA,EAAIliB,IAAM,EACVA,GAAKkiB,EACLA,GAAS,WAAJliB,CAGT,OAAmB,yBAAXkiB,IAAM,IAUlBmoC,QAAS,WAEL,MAA8B,YAAvBltE,KAAK8/B,IAAI74B,MAAMjH,OAU1BmtE,KAAM,WAEF,MAAOntE,MAAK8/B,IAAI74B,MAAMjH,MAAgD,wBAAhB,QAAvBA,KAAK8/B,IAAI74B,MAAMjH,MAAmB,IAUrEotE,KAAM,WAEF,MAAOptE,MAAKktE,UAAYltE,KAAKmtE,QAYjCE,eAAgB,SAAUn2C,EAAKtvB,GAE3B,MAAO/G,MAAKouB,MAAMjvB,KAAKstE,YAAY,EAAG1lE,EAAMsvB,EAAM,GAAKA,IAa3Dob,QAAS,SAAUpb,EAAKtvB,GAEpB,MAAO5H,MAAKqtE,eAAen2C,EAAKtvB,IAYpC0lE,YAAa,SAAUp2C,EAAKtvB,GAExB,MAAO5H,MAAKmtE,QAAUvlE,EAAMsvB,GAAOA,GAUvCq2C,OAAQ,WAEJ,MAAO,GAAI,EAAIvtE,KAAKmtE,QAUxBvU,KAAM,WAEF,GAAIl0D,GAAI,GACJC,EAAI,EAER,KAAKA,EAAID,EAAI,GAAIA,IAAM,GAAIC,IAAKD,EAAI,EAAQ,EAAJA,EAAM,GAAO,GAAFA,EAAO,EAAE1E,KAAKmtE,QAAY,GAAFzoE,EAAO,GAAK,GAAK,GAAG6iB,SAAS,IAAM,KAI9G,MAAO5iB,IAWX6oE,KAAM,SAAUC,GAEZ,MAAOA,GAAIztE,KAAKqtE,eAAe,EAAGI,EAAIvqE,OAAS,KAUnDupE,KAAM,WAEF,MAAOzsE,MAAKwtE,MAAM,GAAI,KAW1BE,aAAc,SAAUD,GAEpB,MAAOA,MAAO5sE,KAAKwoE,IAAIrpE,KAAKmtE,OAAQ,IAAMM,EAAIvqE,OAAS,GAAK,MAYhEyqE,UAAW,SAAUz2C,EAAKtvB,GAEtB,MAAO5H,MAAKstE,YAAYp2C,GAAO,UAActvB,GAAO,YAUxD4sB,MAAO,WAEH,MAAOx0B,MAAKqtE,eAAe,KAAM,MAqBrClrC,MAAO,SAAUA,GAYb,MAVqB,gBAAVA,IAAsBA,EAAMy/B,MAAM,WAEzCz/B,EAAQA,EAAMxR,MAAM,KAEpB3wB,KAAK4E,EAAIgpE,WAAWzrC,EAAM,IAC1BniC,KAAK+sE,GAAKa,WAAWzrC,EAAM,IAC3BniC,KAAKioB,GAAK2lD,WAAWzrC,EAAM,IAC3BniC,KAAKkoB,GAAK0lD,WAAWzrC,EAAM,MAGvB,OAAQniC,KAAK4E,EAAG5E,KAAK+sE,GAAI/sE,KAAKioB,GAAIjoB,KAAKkoB,IAAI/V,KAAK,OAMhEmW,EAAOwrB,oBAAoBjxC,UAAUC,YAAcwlB,EAAOwrB,oBAwB1DxrB,EAAOulD,SAAW,SAASxoE,EAAGC,EAAGqB,EAAOC,EAAQknE,EAAYC,EAAW3vD,GAMnEpe,KAAK8tE,WAAa,GAMlB9tE,KAAK+tE,UAAY,EAKjB/tE,KAAKoe,MAAQ,EAKbpe,KAAKwG,UAKLxG,KAAKguE,WAKLhuE,KAAKiuE,SAMLjuE,KAAKkuE,UAELluE,KAAKi/B,MAAM55B,EAAGC,EAAGqB,EAAOC,EAAQknE,EAAYC,EAAW3vD,IAI3DkK,EAAOulD,SAAShrE,WAcZo8B,MAAO,SAAU55B,EAAGC,EAAGqB,EAAOC,EAAQknE,EAAYC,EAAW3vD,GAEzDpe,KAAK8tE,WAAaA,GAAc,GAChC9tE,KAAK+tE,UAAYA,GAAa,EAC9B/tE,KAAKoe,MAAQA,GAAS,EAEtBpe,KAAKwG,QACDnB,EAAGxE,KAAKuzB,MAAM/uB,GACdC,EAAGzE,KAAKuzB,MAAM9uB,GACdqB,MAAOA,EACPC,OAAQA,EACRunE,SAAUttE,KAAKouB,MAAMtoB,EAAQ,GAC7BynE,UAAWvtE,KAAKouB,MAAMroB,EAAS,GAC/BqrB,MAAOpxB,KAAKuzB,MAAM/uB,GAAKxE,KAAKouB,MAAMtoB,EAAQ,GAC1CkuB,OAAQh0B,KAAKuzB,MAAM9uB,GAAKzE,KAAKouB,MAAMroB,EAAS,IAGhD5G,KAAKguE,QAAQ9qE,OAAS,EACtBlD,KAAKiuE,MAAM/qE,OAAS,GAUxBmrE,SAAU,SAAU18B,GAEhBA,EAAM5hB,QAAQ/vB,KAAKsuE,gBAAiBtuE,MAAM,IAU9CsuE,gBAAiB,SAAUnsD,GAEnBA,EAAOyqB,MAAQzqB,EAAO0mB,QAEtB7oC,KAAKuuE,OAAOpsD,EAAOyqB,OAU3Bjc,MAAO,WAGH3wB,KAAKiuE,MAAM,GAAK,GAAI3lD,GAAOulD,SAAS7tE,KAAKwG,OAAOyrB,MAAOjyB,KAAKwG,OAAOlB,EAAGtF,KAAKwG,OAAO2nE,SAAUnuE,KAAKwG,OAAO4nE,UAAWpuE,KAAK8tE,WAAY9tE,KAAK+tE,UAAY/tE,KAAKoe,MAAQ,GAGlKpe,KAAKiuE,MAAM,GAAK,GAAI3lD,GAAOulD,SAAS7tE,KAAKwG,OAAOnB,EAAGrF,KAAKwG,OAAOlB,EAAGtF,KAAKwG,OAAO2nE,SAAUnuE,KAAKwG,OAAO4nE,UAAWpuE,KAAK8tE,WAAY9tE,KAAK+tE,UAAY/tE,KAAKoe,MAAQ,GAG9Jpe,KAAKiuE,MAAM,GAAK,GAAI3lD,GAAOulD,SAAS7tE,KAAKwG,OAAOnB,EAAGrF,KAAKwG,OAAOquB,OAAQ70B,KAAKwG,OAAO2nE,SAAUnuE,KAAKwG,OAAO4nE,UAAWpuE,KAAK8tE,WAAY9tE,KAAK+tE,UAAY/tE,KAAKoe,MAAQ,GAGnKpe,KAAKiuE,MAAM,GAAK,GAAI3lD,GAAOulD,SAAS7tE,KAAKwG,OAAOyrB,MAAOjyB,KAAKwG,OAAOquB,OAAQ70B,KAAKwG,OAAO2nE,SAAUnuE,KAAKwG,OAAO4nE,UAAWpuE,KAAK8tE,WAAY9tE,KAAK+tE,UAAY/tE,KAAKoe,MAAQ,IAU3KmwD,OAAQ,SAAU3hC,GAEd,GACIlkC,GADAzF,EAAI,CAIR,IAAqB,MAAjBjD,KAAKiuE,MAAM,KAEXvlE,EAAQ1I,KAAK8tC,SAASlB,GAER,KAAVlkC,GAGA,WADA1I,MAAKiuE,MAAMvlE,GAAO6lE,OAAO3hC,EAOjC,IAFA5sC,KAAKguE,QAAQjqE,KAAK6oC,GAEd5sC,KAAKguE,QAAQ9qE,OAASlD,KAAK8tE,YAAc9tE,KAAKoe,MAAQpe,KAAK+tE,UAS3D,IANqB,MAAjB/tE,KAAKiuE,MAAM,IAEXjuE,KAAK2wB,QAIF1tB,EAAIjD,KAAKguE,QAAQ9qE,QAEpBwF,EAAQ1I,KAAK8tC,SAAS9tC,KAAKguE,QAAQ/qE,IAErB,KAAVyF,EAGA1I,KAAKiuE,MAAMvlE,GAAO6lE,OAAOvuE,KAAKguE,QAAQplE,OAAO3F,EAAG,GAAG,IAInDA,KAchB6qC,SAAU,SAAUqiB,GAGhB,GAAIznD,GAAQ,EA8BZ,OA5BIynD,GAAK9qD,EAAIrF,KAAKwG,OAAOyrB,OAASk+B,EAAKl+B,MAAQjyB,KAAKwG,OAAOyrB,MAEnDk+B,EAAK7qD,EAAItF,KAAKwG,OAAOquB,QAAUs7B,EAAKt7B,OAAS70B,KAAKwG,OAAOquB,OAGzDnsB,EAAQ,EAEHynD,EAAK7qD,EAAItF,KAAKwG,OAAOquB,SAG1BnsB,EAAQ,GAGPynD,EAAK9qD,EAAIrF,KAAKwG,OAAOyrB,QAGtBk+B,EAAK7qD,EAAItF,KAAKwG,OAAOquB,QAAUs7B,EAAKt7B,OAAS70B,KAAKwG,OAAOquB,OAGzDnsB,EAAQ,EAEHynD,EAAK7qD,EAAItF,KAAKwG,OAAOquB,SAG1BnsB,EAAQ,IAITA,GAWX8lE,SAAU,SAAUhgE,GAEhB,GAAIA,YAAkB8Z,GAAO9lB,UAEzB,GAAIisE,GAAgBzuE,KAAKguE,QAErBtlE,EAAQ1I,KAAK8tC,SAASt/B,OAG9B,CACI,IAAKA,EAAOo+B,KAER,MAAO5sC,MAAKkuE,MAGhB,IAAIO,GAAgBzuE,KAAKguE,QAErBtlE,EAAQ1I,KAAK8tC,SAASt/B,EAAOo+B,MAoBrC,MAjBI5sC,MAAKiuE,MAAM,KAGG,KAAVvlE,EAEA+lE,EAAgBA,EAAch/C,OAAOzvB,KAAKiuE,MAAMvlE,GAAO8lE,SAAShgE,KAKhEigE,EAAgBA,EAAch/C,OAAOzvB,KAAKiuE,MAAM,GAAGO,SAAShgE,IAC5DigE,EAAgBA,EAAch/C,OAAOzvB,KAAKiuE,MAAM,GAAGO,SAAShgE,IAC5DigE,EAAgBA,EAAch/C,OAAOzvB,KAAKiuE,MAAM,GAAGO,SAAShgE,IAC5DigE,EAAgBA,EAAch/C,OAAOzvB,KAAKiuE,MAAM,GAAGO,SAAShgE,MAI7DigE,GAQX1zD,MAAO,WAEH/a,KAAKguE,QAAQ9qE,OAAS,CAItB,KAFA,GAAID,GAAIjD,KAAKiuE,MAAM/qE,OAEZD,KAEHjD,KAAKiuE,MAAMhrE,GAAG8X,QACd/a,KAAKiuE,MAAMrlE,OAAO3F,EAAG,EAGzBjD,MAAKiuE,MAAM/qE,OAAS,IAK5BolB,EAAOulD,SAAShrE,UAAUC,YAAcwlB,EAAOulD,QAiD/C,IAAIa,GAAU,YAEdpmD,GAAOwsB,IAAM45B,EAEbpmD,EAAOwsB,IAAIjyC,WACP8rE,YAAY,EAEZC,YAAaF,EACbG,gBAAiBH,EACjBI,kBAAmBJ,EACnBK,eAAgBL,EAChBM,UAAWN,GAGfpmD,EAAOwsB,IAAIjyC,UAAUC,YAAcwlB,EAAOwsB,IAa1CxsB,EAAOmsB,aAAe,aAEtBnsB,EAAOmsB,aAAa5xC,UAAU+7B,OAAS,aACvCtW,EAAOmsB,aAAa5xC,UAAUugC,UAAY,aAE1C9a,EAAOmsB,aAAa5xC,UAAUC,YAAcwlB,EAAOmsB,aAuCnDnsB,EAAOksB,KAAO,SAAUt0C,GAMpBF,KAAKE,KAAOA,EAOZF,KAAK0/B,KAAO,EAOZ1/B,KAAKivE,SAAW,EAchBjvE,KAAK+zC,IAAM,EAcX/zC,KAAKq2C,QAAU,EAafr2C,KAAKkvE,UAAY,EAajBlvE,KAAKmvE,eAAiB,EAAI,GAO1BnvE,KAAKq0D,iBAAoB,EAAI,GAAM,IAOnCr0D,KAAKg2C,eAAiB,EAAM,GAW5Bh2C,KAAKovE,YAAc,GAYnBpvE,KAAKqvE,aAAervE,KAAKm2C,WASzBn2C,KAAKk2C,WAAa,EAOlBl2C,KAAKsvE,gBAAiB,EAStBtvE,KAAKuvE,OAAS,EASdvvE,KAAKwvE,IAAM,EASXxvE,KAAKyvE,OAAS,IASdzvE,KAAK0vE,OAAS,EAUd1vE,KAAK2vE,MAAQ,IASb3vE,KAAK4vE,MAAQ,EAOb5vE,KAAK6vE,cAAgB,EAMrB7vE,KAAKgoE,WAAa,EAMlBhoE,KAAK8vE,aAAe,EAMpB9vE,KAAK+sC,OAAS,GAAIzkB,GAAOynD,MAAM/vE,KAAKE,MAAM,GAM1CF,KAAKgwE,YAAc,EAMnBhwE,KAAKiwE,oBAAsB,EAM3BjwE,KAAKkwE,SAAW,EAMhBlwE,KAAKmwE,gBAAkB,EAMvBnwE,KAAKowE,cAAgB,EAMrBpwE,KAAKqwE,cAAe,EAMpBrwE,KAAKswE,YAIThoD,EAAOksB,KAAK3xC,WAQRi/B,KAAM,WAEF9hC,KAAKkwE,SAAWzpC,KAAKsN,MACrB/zC,KAAK0/B,KAAO+G,KAAKsN,MACjB/zC,KAAK+sC,OAAO3hC,QACZpL,KAAK8vE,aAAe9vE,KAAK0/B,MAW7B5I,IAAK,SAAUy5C,GAIX,MAFAvwE,MAAKswE,QAAQvsE,KAAKwsE,GAEXA,GAWXnoE,OAAQ,SAAUooE,GAEM/mE,SAAhB+mE,IAA6BA,GAAc,EAE/C,IAAID,GAAQ,GAAIjoD,GAAOynD,MAAM/vE,KAAKE,KAAMswE,EAIxC,OAFAxwE,MAAKswE,QAAQvsE,KAAKwsE,GAEXA,GASXntC,UAAW,WAEP,IAAK,GAAIngC,GAAI,EAAGA,EAAIjD,KAAKswE,QAAQptE,OAAQD,IAErCjD,KAAKswE,QAAQrtE,GAAGF,SAGpB/C,MAAKswE,WAELtwE,KAAK+sC,OAAO3J,aAShB/a,QAAS,WAGL,GAAIooD,GAAkBzwE,KAAK0/B,IAG3B1/B,MAAK0/B,KAAO+G,KAAKsN,MAGjB/zC,KAAKkvE,UAAYlvE,KAAK0/B,KAAO+wC,GAWjC7xC,OAAQ,SAAUc,GAGd,GAAI+wC,GAAkBzwE,KAAK0/B,IAG3B1/B,MAAK0/B,KAAO+G,KAAKsN,MAGjB/zC,KAAKkvE,UAAYlvE,KAAK0/B,KAAO+wC,EAG7BzwE,KAAKivE,SAAWjvE,KAAK+zC,IAIrB/zC,KAAK+zC,IAAMrU,EAGX1/B,KAAKq2C,QAAUr2C,KAAK+zC,IAAM/zC,KAAKivE,SAE3BjvE,KAAKE,KAAKwyC,IAAIg1B,gBAKd1nE,KAAKgoE,WAAannE,KAAKouB,MAAMpuB,KAAK+G,IAAI,EAAI,IAAS5H,KAAKovE,aAAgBpvE,KAAK8vE,aAAepwC,KAG5F1/B,KAAK8vE,aAAepwC,EAAO1/B,KAAKgoE,YAKhChoE,KAAKsvE,gBAELtvE,KAAK0wE,uBAIJ1wE,KAAKE,KAAKigC,SAGXngC,KAAK+sC,OAAOnO,OAAO5+B,KAAK0/B,MAEpB1/B,KAAKswE,QAAQptE,QAEblD,KAAK2wE,iBAajBA,aAAc,WAMV,IAHA,GAAI1tE,GAAI,EACJitB,EAAMlwB,KAAKswE,QAAQptE,OAEZgtB,EAAJjtB,GAECjD,KAAKswE,QAAQrtE,GAAG27B,OAAO5+B,KAAK0/B,MAE5Bz8B,KAKAjD,KAAKswE,QAAQ1nE,OAAO3F,EAAG,GACvBitB,MAaZwgD,qBAAsB,WAGlB1wE,KAAKgwE,cACLhwE,KAAKiwE,qBAAuBjwE,KAAKq2C,QAG7Br2C,KAAKgwE,aAAkC,EAAnBhwE,KAAKovE,cAGzBpvE,KAAKqvE,aAAiF,EAAlExuE,KAAKouB,MAAM,KAAOjvB,KAAKiwE,oBAAsBjwE,KAAKgwE,cACtEhwE,KAAKgwE,YAAc,EACnBhwE,KAAKiwE,oBAAsB,GAG/BjwE,KAAK2vE,MAAQ9uE,KAAKq2B,IAAIl3B,KAAK2vE,MAAO3vE,KAAKq2C,SACvCr2C,KAAK4vE,MAAQ/uE,KAAK+G,IAAI5H,KAAK4vE,MAAO5vE,KAAKq2C,SAEvCr2C,KAAKuvE,SAEDvvE,KAAK+zC,IAAM/zC,KAAKmwE,gBAAkB,MAElCnwE,KAAKwvE,IAAM3uE,KAAKuzB,MAAqB,IAAdp0B,KAAKuvE,QAAkBvvE,KAAK+zC,IAAM/zC,KAAKmwE;AAC9DnwE,KAAKyvE,OAAS5uE,KAAKq2B,IAAIl3B,KAAKyvE,OAAQzvE,KAAKwvE,KACzCxvE,KAAK0vE,OAAS7uE,KAAK+G,IAAI5H,KAAK0vE,OAAQ1vE,KAAKwvE,KACzCxvE,KAAKmwE,gBAAkBnwE,KAAK+zC,IAC5B/zC,KAAKuvE,OAAS,IAWtB3kC,WAAY,WAER5qC,KAAKowE,cAAgB3pC,KAAKsN,MAE1B/zC,KAAK+sC,OAAO/K,OAIZ,KAFA,GAAI/+B,GAAIjD,KAAKswE,QAAQptE,OAEdD,KAEHjD,KAAKswE,QAAQrtE,GAAG2tE,UAWxB/lC,YAAa,WAGT7qC,KAAK0/B,KAAO+G,KAAKsN,MAEjB/zC,KAAK6vE,cAAgB7vE,KAAK0/B,KAAO1/B,KAAKowE,cAEtCpwE,KAAK+sC,OAAO7K,QAIZ,KAFA,GAAIj/B,GAAIjD,KAAKswE,QAAQptE,OAEdD,KAEHjD,KAAKswE,QAAQrtE,GAAG4tE,WAWxBnpC,oBAAqB,WACjB,MAAqC,MAA7B1nC,KAAK0/B,KAAO1/B,KAAKkwE,WAU7BY,aAAc,SAAUC,GACpB,MAAO/wE,MAAK0/B,KAAOqxC,GAUvBC,oBAAqB,SAAUD,GAC3B,MAA6B,MAArB/wE,KAAK0/B,KAAOqxC,IAQxB9xC,MAAO,WAEHj/B,KAAKkwE,SAAWlwE,KAAK0/B,KACrB1/B,KAAKojC,cAcbhgC,OAAOC,eAAeilB,EAAOksB,KAAK3xC,UAAW,cAEzCS,IAAK,WAED,MAAOtD,MAAKovE,aAIhB5rE,IAAK,SAAUC,GAEXzD,KAAKovE,YAAc3rE,EAInBzD,KAAKmvE,eAAiB,EAAI1rE,EAE1BzD,KAAKq0D,iBAAyC,IAAtBr0D,KAAKmvE,eAE7BnvE,KAAKg2C,eAAiB,EAAMvyC,KAMpC6kB,EAAOksB,KAAK3xC,UAAUC,YAAcwlB,EAAOksB,KAsB3ClsB,EAAOynD,MAAQ,SAAU7vE,EAAMswE,GAEP/mE,SAAhB+mE,IAA6BA,GAAc,GAM/CxwE,KAAKE,KAAOA,EAUZF,KAAKixE,SAAU,EAMfjxE,KAAKwwE,YAAcA,EAOnBxwE,KAAKkxE,SAAU,EAMflxE,KAAKq2C,QAAU,EAKfr2C,KAAK+sC,UASL/sC,KAAKmxE,WAAa,GAAI7oD,GAAO0Y,OAO7BhhC,KAAKoxE,SAAW,EAKhBpxE,KAAKqxE,QAAU,IAOfrxE,KAAKmgC,QAAS,EAMdngC,KAAKozC,aAAc,EAOnBpzC,KAAKkwE,SAAW,EAMhBlwE,KAAKowE,cAAgB,EAMrBpwE,KAAKsxE,YAAc,EAMnBtxE,KAAKuxE,KAAO9qC,KAAKsN,MAMjB/zC,KAAKuoC,KAAO,EAMZvoC,KAAKwxE,QAAU,EAMfxxE,KAAKwoC,GAAK,EAMVxoC,KAAKyxE,MAAQ,EAMbzxE,KAAK0xE,SAAW,GASpBppD,EAAOynD,MAAM4B,OAAS,IAOtBrpD,EAAOynD,MAAM6B,OAAS,IAOtBtpD,EAAOynD,MAAM8B,KAAO,IAOpBvpD,EAAOynD,MAAM+B,QAAU,IAEvBxpD,EAAOynD,MAAMltE,WAiBTuF,OAAQ,SAAU0kD,EAAO0B,EAAMujB,EAAa1iC,EAAU9M,EAAiBhT,GAEnEu9B,EAAQjsD,KAAKuzB,MAAM04B,EAEnB,IAAIklB,GAAOllB,CAIPklB,IAFc,IAAdhyE,KAAKuxE,KAEGvxE,KAAKE,KAAKw/B,KAAKA,KAIf1/B,KAAKuxE,IAGjB,IAAI1nC,GAAQ,GAAIvhB,GAAO2pD,WAAWjyE,KAAM8sD,EAAOklB,EAAMD,EAAavjB,EAAMnf,EAAU9M,EAAiBhT,EAQnG,OANAvvB,MAAK+sC,OAAOhpC,KAAK8lC,GAEjB7pC,KAAKqwC,QAELrwC,KAAKkxE,SAAU,EAERrnC,GAmBX/S,IAAK,SAAUg2B,EAAOzd,EAAU9M,GAE5B,MAAOviC,MAAKoI,OAAO0kD,GAAO,EAAO,EAAGzd,EAAU9M,EAAiB5hC,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,UAAW,KAqBzGpZ,OAAQ,SAAUw2C,EAAOilB,EAAa1iC,EAAU9M,GAE5C,MAAOviC,MAAKoI,OAAO0kD,GAAO,EAAOilB,EAAa1iC,EAAU9M,EAAiB5hC,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,UAAW,KAmBnH8+B,KAAM,SAAU1B,EAAOzd,EAAU9M,GAE7B,MAAOviC,MAAKoI,OAAO0kD,GAAO,EAAM,EAAGzd,EAAU9M,EAAiB5hC,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,UAAW,KASxGtkB,MAAO,SAAU0hD,GAEb,IAAI9sD,KAAKixE,QAAT,CAKAjxE,KAAKkwE,SAAWlwE,KAAKE,KAAKw/B,KAAKA,MAAQotB,GAAS,GAEhD9sD,KAAKixE,SAAU,CAEf,KAAK,GAAIhuE,GAAI,EAAGA,EAAIjD,KAAK+sC,OAAO7pC,OAAQD,IAEpCjD,KAAK+sC,OAAO9pC,GAAG+uE,KAAOhyE,KAAK+sC,OAAO9pC,GAAG6pD,MAAQ9sD,KAAKkwE,WAU1DllE,KAAM,SAAUknE,GAEZlyE,KAAKixE,SAAU,EAEKxnE,SAAhByoE,IAA6BA,GAAc,GAE3CA,IAEAlyE,KAAK+sC,OAAO7pC,OAAS,IAU7B2N,OAAQ,SAAUg5B,GAEd,IAAK,GAAI5mC,GAAI,EAAGA,EAAIjD,KAAK+sC,OAAO7pC,OAAQD,IAEpC,GAAIjD,KAAK+sC,OAAO9pC,KAAO4mC,EAGnB,MADA7pC,MAAK+sC,OAAO9pC,GAAGkvE,eAAgB,GACxB,CAIf,QAAO,GAUX9hC,MAAO,WAECrwC,KAAK+sC,OAAO7pC,OAAS,IAGrBlD,KAAK+sC,OAAOqD,KAAKpwC,KAAKywC,aAEtBzwC,KAAKoxE,SAAWpxE,KAAK+sC,OAAO,GAAGilC,OAUvCvhC,YAAa,SAAU/rC,EAAGC,GAEtB,MAAID,GAAEstE,KAAOrtE,EAAEqtE,KAEJ,GAEFttE,EAAEstE,KAAOrtE,EAAEqtE,KAET,EAGJ,GAUXI,mBAAoB,WAIhB,IAFApyE,KAAKwoC,GAAKxoC,KAAK+sC,OAAO7pC,OAEflD,KAAKwoC,MAEJxoC,KAAK+sC,OAAO/sC,KAAKwoC,IAAI2pC,eAErBnyE,KAAK+sC,OAAOnkC,OAAO5I,KAAKwoC,GAAI,EAIpCxoC,MAAKuoC,KAAOvoC,KAAK+sC,OAAO7pC,OACxBlD,KAAKwoC,GAAK,GAYd5J,OAAQ,SAAUc,GAEd,GAAI1/B,KAAKmgC,OAEL,OAAO,CAoBX,IAjBAngC,KAAKq2C,QAAU3W,EAAO1/B,KAAKuxE,KAC3BvxE,KAAKuxE,KAAO7xC,EAGR1/B,KAAKq2C,QAAUr2C,KAAKqxE,SAKpBrxE,KAAKqyE,aAAa3yC,EAAO1/B,KAAKq2C,SAGlCr2C,KAAKwxE,QAAU,EAGfxxE,KAAKoyE,qBAEDpyE,KAAKixE,SAAWjxE,KAAKuxE,MAAQvxE,KAAKoxE,UAAYpxE,KAAKuoC,KAAO,EAC9D,CACI,KAAOvoC,KAAKwoC,GAAKxoC,KAAKuoC,MAAQvoC,KAAKixE,SAE3BjxE,KAAKuxE,MAAQvxE,KAAK+sC,OAAO/sC,KAAKwoC,IAAIwpC,OAAShyE,KAAK+sC,OAAO/sC,KAAKwoC,IAAI2pC,eAGhEnyE,KAAK0xE,SAAY1xE,KAAKuxE,KAAOvxE,KAAK+sC,OAAO/sC,KAAKwoC,IAAIskB,OAAU9sD,KAAKuxE,KAAOvxE,KAAK+sC,OAAO/sC,KAAKwoC,IAAIwpC,MAEzFhyE,KAAK0xE,SAAW,IAEhB1xE,KAAK0xE,SAAW1xE,KAAKuxE,KAAOvxE,KAAK+sC,OAAO/sC,KAAKwoC,IAAIskB,OAGjD9sD,KAAK+sC,OAAO/sC,KAAKwoC,IAAIgmB,QAAS,GAE9BxuD,KAAK+sC,OAAO/sC,KAAKwoC,IAAIwpC,KAAOhyE,KAAK0xE,SACjC1xE,KAAK+sC,OAAO/sC,KAAKwoC,IAAI6G,SAASpoC,MAAMjH,KAAK+sC,OAAO/sC,KAAKwoC,IAAIjG,gBAAiBviC,KAAK+sC,OAAO/sC,KAAKwoC,IAAIjZ,OAE1FvvB,KAAK+sC,OAAO/sC,KAAKwoC,IAAIupC,YAAc,GAExC/xE,KAAK+sC,OAAO/sC,KAAKwoC,IAAIupC,cACrB/xE,KAAK+sC,OAAO/sC,KAAKwoC,IAAIwpC,KAAOhyE,KAAK0xE,SACjC1xE,KAAK+sC,OAAO/sC,KAAKwoC,IAAI6G,SAASpoC,MAAMjH,KAAK+sC,OAAO/sC,KAAKwoC,IAAIjG,gBAAiBviC,KAAK+sC,OAAO/sC,KAAKwoC,IAAIjZ,QAI/FvvB,KAAKwxE,UACLxxE,KAAK+sC,OAAO/sC,KAAKwoC,IAAI2pC,eAAgB,EACrCnyE,KAAK+sC,OAAO/sC,KAAKwoC,IAAI6G,SAASpoC,MAAMjH,KAAK+sC,OAAO/sC,KAAKwoC,IAAIjG,gBAAiBviC,KAAK+sC,OAAO/sC,KAAKwoC,IAAIjZ,OAGnGvvB,KAAKwoC,IASTxoC,MAAK+sC,OAAO7pC,OAASlD,KAAKwxE,QAE1BxxE,KAAKqwC,SAILrwC,KAAKkxE,SAAU,EACflxE,KAAKmxE,WAAWnuC,SAAShjC,OAIjC,MAAIA,MAAKkxE,SAAWlxE,KAAKwwE,aAEd,GAIA,GASfxuC,MAAO,WAEEhiC,KAAKixE,UAKVjxE,KAAKozC,aAAc,EAEfpzC,KAAKmgC,SAKTngC,KAAKowE,cAAgBpwE,KAAKE,KAAKw/B,KAAKA,KAEpC1/B,KAAKmgC,QAAS,KASlBywC,OAAQ,YAEA5wE,KAAKmgC,QAAWngC,KAAKixE,UAKzBjxE,KAAKowE,cAAgBpwE,KAAKE,KAAKw/B,KAAKA,KAEpC1/B,KAAKmgC,QAAS,IAUlBkyC,aAAc,SAAUC,GAEpB,IAAK,GAAIrvE,GAAI,EAAGA,EAAIjD,KAAK+sC,OAAO7pC,OAAQD,IAEpC,IAAKjD,KAAK+sC,OAAO9pC,GAAGkvE,cACpB,CAEI,GAAIliD,GAAIjwB,KAAK+sC,OAAO9pC,GAAG+uE,KAAOM,CAEtB,GAAJriD,IAEAA,EAAI,GAIRjwB,KAAK+sC,OAAO9pC,GAAG+uE,KAAOhyE,KAAKuxE,KAAOthD,EAI1C,GAAIprB,GAAI7E,KAAKoxE,SAAWkB,CAEhB,GAAJztE,EAEA7E,KAAKoxE,SAAWpxE,KAAKuxE,KAIrBvxE,KAAKoxE,SAAWpxE,KAAKuxE,KAAO1sE,GAUpCq9B,OAAQ,WAEJ,GAAKliC,KAAKmgC,OAAV,CAKA,GAAI4T,GAAM/zC,KAAKE,KAAKw/B,KAAKA,IACzB1/B,MAAKsxE,aAAev9B,EAAM/zC,KAAKuxE,KAC/BvxE,KAAKuxE,KAAOx9B,EAEZ/zC,KAAKqyE,aAAaryE,KAAKowE,eAEvBpwE,KAAKmgC,QAAS,EACdngC,KAAKozC,aAAc,IASvBy9B,QAAS,WAED7wE,KAAKozC,aAMLpzC,KAAKkiC,UAWbkB,UAAW,WAEPpjC,KAAKmxE,WAAW/tC,YAChBpjC,KAAK+sC,OAAO7pC,OAAS,EACrBlD,KAAKuoC,KAAO,EACZvoC,KAAKwoC,GAAK,GAUdzlC,QAAS,WAEL/C,KAAKmxE,WAAW/tC,YAChBpjC,KAAKixE,SAAU,EACfjxE,KAAK+sC,UACL/sC,KAAKuoC,KAAO,EACZvoC,KAAKwoC,GAAK,IAWlBplC,OAAOC,eAAeilB,EAAOynD,MAAMltE,UAAW,QAE1CS,IAAK,WACD,MAAOtD,MAAKoxE,YAUpBhuE,OAAOC,eAAeilB,EAAOynD,MAAMltE,UAAW,YAE1CS,IAAK,WAED,MAAItD,MAAKixE,SAAWjxE,KAAKoxE,SAAWpxE,KAAKuxE,KAE9BvxE,KAAKoxE,SAAWpxE,KAAKuxE,KAIrB,KAYnBnuE,OAAOC,eAAeilB,EAAOynD,MAAMltE,UAAW,UAE1CS,IAAK,WACD,MAAOtD,MAAK+sC,OAAO7pC,UAU3BE,OAAOC,eAAeilB,EAAOynD,MAAMltE,UAAW,MAE1CS,IAAK,WAED,MAAItD,MAAKixE,QAEEjxE,KAAKuxE,KAAOvxE,KAAKkwE,SAAWlwE,KAAKsxE,YAIjC,KAYnBluE,OAAOC,eAAeilB,EAAOynD,MAAMltE,UAAW,WAE1CS,IAAK,WAED,MAAItD,MAAKixE,QAEY,KAAVjxE,KAAKuyE,GAIL,KAOnBjqD,EAAOynD,MAAMltE,UAAUC,YAAcwlB,EAAOynD,MA2B5CznD,EAAO2pD,WAAa,SAAU1B,EAAOzjB,EAAOklB,EAAMD,EAAavjB,EAAMnf,EAAU9M,EAAiBhT,GAO5FvvB,KAAKuwE,MAAQA,EAKbvwE,KAAK8sD,MAAQA,EAKb9sD,KAAKgyE,KAAOA,EAKZhyE,KAAK+xE,YAAcA,EAAc,EAKjC/xE,KAAKwuD,KAAOA,EAKZxuD,KAAKqvC,SAAWA,EAKhBrvC,KAAKuiC,gBAAkBA,EAKvBviC,KAAKuvB,KAAOA,EAMZvvB,KAAKmyE,eAAgB,GAIzB7pD,EAAO2pD,WAAWpvE,UAAUC,YAAcwlB,EAAO2pD,WAgBjD3pD,EAAOinC,iBAAmB,SAAUptC,GAKhCniB,KAAKmiB,OAASA,EAKdniB,KAAKE,KAAOiiB,EAAOjiB,KASnBF,KAAKwyE,aAAe,KAMpBxyE,KAAKyyE,YAAc,KAMnBzyE,KAAK0yE,iBAAkB,EAMvB1yE,KAAK2yE,UAAW,EAOhB3yE,KAAK4yE,WAAa,KAMlB5yE,KAAK6yE,UAML7yE,KAAK8yE,kBAITxqD,EAAOinC,iBAAiB1sD,WAYpB+xD,cAAe,SAAUI,EAAWhpD,GAEhC,GAAkBvC,SAAdurD,EAEA,OAAO,CAGX,IAAIh1D,KAAK2yE,SAGL,IAAK,GAAII,KAAQ/yE,MAAK6yE,OAElB7yE,KAAK6yE,OAAOE,GAAMC,gBAAgBhe,EAwB1C,OApBAh1D,MAAK4yE,WAAa5d,EAEJvrD,SAAVuC,GAAiC,OAAVA,EAEvBhM,KAAKgM,MAAQ,EAIQ,gBAAVA,GAEPhM,KAAKu1D,UAAYvpD,EAIjBhM,KAAKgM,MAAQA,EAIrBhM,KAAK2yE,UAAW,GAET,GAaXM,cAAe,SAAUje,EAAWhpD,GAIhC,GAFAhM,KAAK4yE,WAAa5d,EAAUpiC,QAExB5yB,KAAK2yE,SAGL,IAAK,GAAII,KAAQ/yE,MAAK6yE,OAElB7yE,KAAK6yE,OAAOE,GAAMC,gBAAgBhzE,KAAK4yE,WAsB/C,OAlBcnpE,UAAVuC,GAAiC,OAAVA,EAEvBhM,KAAKgM,MAAQ,EAIQ,gBAAVA,GAEPhM,KAAKu1D,UAAYvpD,EAIjBhM,KAAKgM,MAAQA,EAIrBhM,KAAK2yE,UAAW,GAET,GAeX77C,IAAK,SAAUrE,EAAM88C,EAAQhhB,EAAWC,EAAM0kB,GAoC1C,MAlCA3D,GAASA,MACThhB,EAAYA,GAAa,GAEZ9kD,SAAT+kD,IAAsBA,GAAO,GAGT/kD,SAApBypE,IAIIA,EAFA3D,GAA+B,gBAAdA,GAAO,IAEN,GAIA,GAI1BvvE,KAAK8yE,iBAEL9yE,KAAK4yE,WAAWO,gBAAgB5D,EAAQ2D,EAAiBlzE,KAAK8yE,eAE9D9yE,KAAK6yE,OAAOpgD,GAAQ,GAAInK,GAAO+lC,UAAUruD,KAAKE,KAAMF,KAAKmiB,OAAQsQ,EAAMzyB,KAAK4yE,WAAY5yE,KAAK8yE,cAAevkB,EAAWC,GAEvHxuD,KAAKyyE,YAAczyE,KAAK6yE,OAAOpgD,GAK3BzyB,KAAKmiB,OAAOQ,gBAEZ3iB,KAAKmiB,OAAOmzC,gBAAiB,GAG1Bt1D,KAAK6yE,OAAOpgD,IAYvB2gD,eAAgB,SAAU7D,EAAQ2D,GAENzpE,SAApBypE,IAAiCA,GAAkB,EAEvD,KAAK,GAAIjwE,GAAI,EAAGA,EAAIssE,EAAOrsE,OAAQD,IAE/B,GAAIiwE,KAAoB,GAEpB,GAAI3D,EAAOtsE,GAAKjD,KAAK4yE,WAAWjiC,MAE5B,OAAO,MAKX,IAAI3wC,KAAK4yE,WAAWS,eAAe9D,EAAOtsE,OAAQ,EAE9C,OAAO,CAKnB,QAAO,GAiBXqrD,KAAM,SAAU77B,EAAM87B,EAAWC,EAAMC,GAEnC,MAAIzuD,MAAK6yE,OAAOpgD,GAERzyB,KAAKyyE,cAAgBzyE,KAAK6yE,OAAOpgD,GAE7BzyB,KAAKyyE,YAAYa,aAAc,GAE/BtzE,KAAKyyE,YAAYtyC,QAAS,EACnBngC,KAAKyyE,YAAYnkB,KAAKC,EAAWC,EAAMC,IAG3CzuD,KAAKyyE,aAIRzyE,KAAKyyE,aAAezyE,KAAKyyE,YAAYa,WAErCtzE,KAAKyyE,YAAYznE,OAGrBhL,KAAKyyE,YAAczyE,KAAK6yE,OAAOpgD,GAC/BzyB,KAAKyyE,YAAYtyC,QAAS,EAC1BngC,KAAKwyE,aAAexyE,KAAKyyE,YAAYD,aAC9BxyE,KAAKyyE,YAAYnkB,KAAKC,EAAWC,EAAMC,IAtBtD,QAoCJzjD,KAAM,SAAUynB,EAAM49B,GAEC5mD,SAAf4mD,IAA4BA,GAAa,IAEzCrwD,KAAKyyE,aAAgC,gBAAThgD,IAAqBA,IAASzyB,KAAKyyE,YAAYhgD,MAE3EzyB,KAAKyyE,YAAYznE,KAAKqlD,IAY9BzxB,OAAQ,WAEJ,MAAI5+B,MAAK0yE,kBAAoB1yE,KAAKmiB,OAAO1gB,SAE9B,EAGPzB,KAAKyyE,aAAezyE,KAAKyyE,YAAY7zC,UAErC5+B,KAAKwyE,aAAexyE,KAAKyyE,YAAYD,cAC9B,IAGJ,GAUX/kC,KAAM,SAAUF,GAERvtC,KAAKyyE,cAELzyE,KAAKyyE,YAAYhlC,KAAKF,GACtBvtC,KAAKwyE,aAAexyE,KAAKyyE,YAAYD,eAW7C9kC,SAAU,SAAUH,GAEZvtC,KAAKyyE,cAELzyE,KAAKyyE,YAAY/kC,SAASH,GAC1BvtC,KAAKwyE,aAAexyE,KAAKyyE,YAAYD,eAY7Ce,aAAc,SAAU9gD,GAEpB,MAAoB,gBAATA,IAEHzyB,KAAK6yE,OAAOpgD,GAELzyB,KAAK6yE,OAAOpgD,GAIpB,MASX+gD,aAAc,WAGVxzE,KAAKmiB,OAAOlW,WAAWhM,KAAK0O,aAAa3O,KAAKwyE,aAAa5Z,QAU/D71D,QAAS,WAEL,GAAIgwE,GAAO,IAEX,KAAK,GAAIA,KAAQ/yE,MAAK6yE,OAEd7yE,KAAK6yE,OAAOxgD,eAAe0gD,IAE3B/yE,KAAK6yE,OAAOE,GAAMhwE,SAI1B/C,MAAK6yE,UACL7yE,KAAK8yE,iBACL9yE,KAAK4yE,WAAa,KAClB5yE,KAAKyyE,YAAc,KACnBzyE,KAAKwyE,aAAe,KACpBxyE,KAAKmiB,OAAS,KACdniB,KAAKE,KAAO,OAMpBooB,EAAOinC,iBAAiB1sD,UAAUC,YAAcwlB,EAAOinC,iBAOvDnsD,OAAOC,eAAeilB,EAAOinC,iBAAiB1sD,UAAW,aAErDS,IAAK,WACD,MAAOtD,MAAK4yE,cAUpBxvE,OAAOC,eAAeilB,EAAOinC,iBAAiB1sD,UAAW,cAErDS,IAAK,WAED,MAAOtD,MAAK4yE,WAAWjiC,SAS/BvtC,OAAOC,eAAeilB,EAAOinC,iBAAiB1sD,UAAW,UAErDS,IAAK,WAED,MAAOtD,MAAKyyE,YAAYgB,UAI5BjwE,IAAK,SAAUC,GAEXzD,KAAKyyE,YAAYtyC,OAAS18B,KAUlCL,OAAOC,eAAeilB,EAAOinC,iBAAiB1sD,UAAW,QAErDS,IAAK,WAED,MAAItD,MAAKyyE,YAEEzyE,KAAKyyE,YAAYhgD,KAF5B,UAaRrvB,OAAOC,eAAeilB,EAAOinC,iBAAiB1sD,UAAW,SAErDS,IAAK,WAED,MAAItD,MAAKwyE,aAEExyE,KAAKwyE,aAAa9pE,MAF7B,QAOJlF,IAAK,SAAUC,GAEU,gBAAVA,IAAsBzD,KAAK4yE,YAAkD,OAApC5yE,KAAK4yE,WAAWc,SAASjwE,KAEzEzD,KAAKwyE,aAAexyE,KAAK4yE,WAAWc,SAASjwE,GAEzCzD,KAAKwyE,cAELxyE,KAAKmiB,OAAOkI,SAASrqB,KAAKwyE,kBAY1CpvE,OAAOC,eAAeilB,EAAOinC,iBAAiB1sD,UAAW,aAErDS,IAAK,WAED,MAAItD,MAAKwyE,aAEExyE,KAAKwyE,aAAa//C,KAF7B,QAOJjvB,IAAK,SAAUC,GAEU,gBAAVA,IAAsBzD,KAAK4yE,YAAwD,OAA1C5yE,KAAK4yE,WAAWe,eAAelwE,IAE/EzD,KAAKwyE,aAAexyE,KAAK4yE,WAAWe,eAAelwE,GAE/CzD,KAAKwyE,eAELxyE,KAAK4zE,YAAc5zE,KAAKwyE,aAAa9pE,MAErC1I,KAAKmiB,OAAOkI,SAASrqB,KAAKwyE,gBAK9B9/D,QAAQ2d,KAAK,yBAA2B5sB,MA2BpD6kB,EAAO+lC,UAAY,SAAUnuD,EAAM0B,EAAQ6wB,EAAMuiC,EAAWua,EAAQhhB,EAAWC,GAE9D/kD,SAAT+kD,IAAsBA,GAAO,GAKjCxuD,KAAKE,KAAOA,EAMZF,KAAKgxD,QAAUpvD,EAMf5B,KAAK4yE,WAAa5d,EAKlBh1D,KAAKyyB,KAAOA,EAMZzyB,KAAK6zE,WACL7zE,KAAK6zE,QAAU7zE,KAAK6zE,QAAQpkD,OAAO8/C,GAKnCvvE,KAAK8sD,MAAQ,IAAOyB,EAKpBvuD,KAAKwuD,KAAOA,EAKZxuD,KAAK8zE,UAAY,EAMjB9zE,KAAKyuD,gBAAiB,EAMtBzuD,KAAK+zE,YAAa,EAMlB/zE,KAAKszE,WAAY,EAMjBtzE,KAAKyzE,UAAW,EAOhBzzE,KAAKg0E,gBAAkB,EAOvBh0E,KAAK4zE,YAAc,EAOnB5zE,KAAKi0E,WAAa,EAOlBj0E,KAAKk0E,WAAa,EAKlBl0E,KAAKwyE,aAAexyE,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQ7zE,KAAK4zE,cAK/D5zE,KAAKm0E,QAAU,GAAI7rD,GAAO0Y,OAW1BhhC,KAAKo0E,SAAW,KAKhBp0E,KAAKmxE,WAAa,GAAI7oD,GAAO0Y,OAK7BhhC,KAAKq0E,OAAS,GAAI/rD,GAAO0Y,OAGzBhhC,KAAKE,KAAK6hC,QAAQjL,IAAI92B,KAAK+hC,QAAS/hC,MACpCA,KAAKE,KAAK+hC,SAASnL,IAAI92B,KAAKiiC,SAAUjiC,OAI1CsoB,EAAO+lC,UAAUxrD,WAWbyrD,KAAM,SAAUC,EAAWC,EAAMC,GAsC7B,MApCyB,gBAAdF,KAGPvuD,KAAK8sD,MAAQ,IAAOyB,GAGJ,iBAATC,KAGPxuD,KAAKwuD,KAAOA,GAGc,mBAAnBC,KAGPzuD,KAAKyuD,eAAiBA,GAG1BzuD,KAAKszE,WAAY,EACjBtzE,KAAK+zE,YAAa,EAClB/zE,KAAKmgC,QAAS,EACdngC,KAAK8zE,UAAY,EAEjB9zE,KAAKs0E,eAAiBt0E,KAAKE,KAAKw/B,KAAKA,KACrC1/B,KAAKu0E,eAAiBv0E,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK8sD,MAEjD9sD,KAAK4zE,YAAc,EACnB5zE,KAAKw0E,oBAAmB,GAAO,GAE/Bx0E,KAAKgxD,QAAQjkB,OAAO0nC,0BAA0Bz0E,KAAKgxD,QAAShxD,MAE5DA,KAAKm0E,QAAQnxC,SAAShjC,KAAKgxD,QAAShxD,MAEpCA,KAAKgxD,QAAQtC,WAAW+jB,YAAczyE,KACtCA,KAAKgxD,QAAQtC,WAAW8jB,aAAexyE,KAAKwyE,aAErCxyE,MASX2iC,QAAS,WAEL3iC,KAAKszE,WAAY,EACjBtzE,KAAK+zE,YAAa,EAClB/zE,KAAKmgC,QAAS,EACdngC,KAAK8zE,UAAY,EAEjB9zE,KAAKs0E,eAAiBt0E,KAAKE,KAAKw/B,KAAKA,KACrC1/B,KAAKu0E,eAAiBv0E,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK8sD,MAEjD9sD,KAAK4zE,YAAc,EAEnB5zE,KAAKwyE,aAAexyE,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQ7zE,KAAK4zE,cAE/D5zE,KAAKgxD,QAAQ3mC,SAASrqB,KAAKwyE,cAE3BxyE,KAAKgxD,QAAQtC,WAAW+jB,YAAczyE,KACtCA,KAAKgxD,QAAQtC,WAAW8jB,aAAexyE,KAAKwyE,aAE5CxyE,KAAKm0E,QAAQnxC,SAAShjC,KAAKgxD,QAAShxD,OAWxCqqB,SAAU,SAAS3b,EAASgmE,GAExB,GAAIC,EAQJ,IAN2BlrE,SAAvBirE,IAEAA,GAAqB,GAIF,gBAAZhmE,GAEP,IAAK,GAAIzL,GAAI,EAAGA,EAAIjD,KAAK6zE,QAAQ3wE,OAAQD,IAEjCjD,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQ5wE,IAAIwvB,OAAS/jB,IAEnDimE,EAAa1xE,OAIpB,IAAuB,gBAAZyL,GAEZ,GAAIgmE,EAEAC,EAAajmE,MAIb,KAAK,GAAIzL,GAAI,EAAGA,EAAIjD,KAAK6zE,QAAQ3wE,OAAQD,IAEjCjD,KAAK6zE,QAAQ5wE,KAAO0xE,IAEpBA,EAAa1xE,EAMzB0xE,KAGA30E,KAAK4zE,YAAce,EAAa,EAGhC30E,KAAKu0E,eAAiBv0E,KAAKE,KAAKw/B,KAAKA,KAErC1/B,KAAK4+B,WAab5zB,KAAM,SAAUqlD,EAAYukB,GAELnrE,SAAf4mD,IAA4BA,GAAa,GACpB5mD,SAArBmrE,IAAkCA,GAAmB,GAEzD50E,KAAKszE,WAAY,EACjBtzE,KAAK+zE,YAAa,EAClB/zE,KAAKmgC,QAAS,EAEVkwB,IAEArwD,KAAKwyE,aAAexyE,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQ,IAC1D7zE,KAAKgxD,QAAQ3mC,SAASrqB,KAAKwyE,eAG3BoC,IAEA50E,KAAKgxD,QAAQjkB,OAAO8nC,6BAA6B70E,KAAKgxD,QAAShxD,MAC/DA,KAAKmxE,WAAWnuC,SAAShjC,KAAKgxD,QAAShxD,QAU/C+hC,QAAS,WAED/hC,KAAKszE,YAELtzE,KAAKi0E,WAAaj0E,KAAKu0E,eAAiBv0E,KAAKE,KAAKw/B,KAAKA,OAU/DuC,SAAU,WAEFjiC,KAAKszE,YAELtzE,KAAKu0E,eAAiBv0E,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAKi0E,aAUzDr1C,OAAQ,WAEJ,MAAI5+B,MAAKyzE,UAEE,EAGPzzE,KAAKszE,WAAatzE,KAAKE,KAAKw/B,KAAKA,MAAQ1/B,KAAKu0E,gBAE9Cv0E,KAAKk0E,WAAa,EAGlBl0E,KAAKi0E,WAAaj0E,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAKu0E,eAE7Cv0E,KAAKs0E,eAAiBt0E,KAAKE,KAAKw/B,KAAKA,KAEjC1/B,KAAKi0E,WAAaj0E,KAAK8sD,QAGvB9sD,KAAKk0E,WAAarzE,KAAKouB,MAAMjvB,KAAKi0E,WAAaj0E,KAAK8sD,OACpD9sD,KAAKi0E,YAAej0E,KAAKk0E,WAAal0E,KAAK8sD,OAI/C9sD,KAAKu0E,eAAiBv0E,KAAKE,KAAKw/B,KAAKA,MAAQ1/B,KAAK8sD,MAAQ9sD,KAAKi0E,YAE/Dj0E,KAAK4zE,aAAe5zE,KAAKk0E,WAErBl0E,KAAK4zE,aAAe5zE,KAAK6zE,QAAQ3wE,OAE7BlD,KAAKwuD,MAGLxuD,KAAK4zE,aAAe5zE,KAAK6zE,QAAQ3wE,OACjClD,KAAKwyE,aAAexyE,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQ7zE,KAAK4zE,cAG3D5zE,KAAKwyE,cAELxyE,KAAKgxD,QAAQ3mC,SAASrqB,KAAKwyE,cAG/BxyE,KAAK8zE,YACL9zE,KAAKgxD,QAAQjkB,OAAO+nC,yBAAyB90E,KAAKgxD,QAAShxD,MAC3DA,KAAKq0E,OAAOrxC,SAAShjC,KAAKgxD,QAAShxD,MAE/BA,KAAKo0E,UAELp0E,KAAKo0E,SAASpxC,SAAShjC,KAAMA,KAAKwyE,gBAGzBxyE,KAAK4yE,aAIP,IAKX5yE,KAAKkpB,YACE,GAKJlpB,KAAKw0E,oBAAmB,KAIhC,GAgBXA,mBAAoB,SAAUO,EAAcC,GAIxC,GAFiBvrE,SAAburE,IAA0BA,GAAW,IAEpCh1E,KAAK4yE,WAGN,OAAO,CAIX,IAAI1hE,GAAMlR,KAAKwyE,aAAa9pE,KAS5B,OAPA1I,MAAKwyE,aAAexyE,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQ7zE,KAAK4zE,cAE3D5zE,KAAKwyE,eAAiBwC,IAAcA,GAAY9jE,IAAQlR,KAAKwyE,aAAa9pE,QAE1E1I,KAAKgxD,QAAQ3mC,SAASrqB,KAAKwyE,cAG3BxyE,KAAKo0E,UAAYW,GAEjB/0E,KAAKo0E,SAASpxC,SAAShjC,KAAMA,KAAKwyE,gBAGzBxyE,KAAK4yE,aAIP,GAWfnlC,KAAM,SAAUF,GAEK9jC,SAAb8jC,IAA0BA,EAAW,EAEzC,IAAIvhC,GAAQhM,KAAK4zE,YAAcrmC,CAE3BvhC,IAAShM,KAAK6zE,QAAQ3wE,SAElBlD,KAAKwuD,KAELxiD,GAAShM,KAAK6zE,QAAQ3wE,OAItB8I,EAAQhM,KAAK6zE,QAAQ3wE,OAAS,GAIlC8I,IAAUhM,KAAK4zE,cAEf5zE,KAAK4zE,YAAc5nE,EACnBhM,KAAKw0E,oBAAmB,KAWhC9mC,SAAU,SAAUH,GAEC9jC,SAAb8jC,IAA0BA,EAAW,EAEzC,IAAIvhC,GAAQhM,KAAK4zE,YAAcrmC,CAEnB,GAARvhC,IAEIhM,KAAKwuD,KAELxiD,EAAQhM,KAAK6zE,QAAQ3wE,OAAS8I,EAI9BA,KAIJA,IAAUhM,KAAK4zE,cAEf5zE,KAAK4zE,YAAc5nE,EACnBhM,KAAKw0E,oBAAmB,KAWhCxB,gBAAiB,SAAUhe,GAEvBh1D,KAAK4yE,WAAa5d,EAClBh1D,KAAKwyE,aAAexyE,KAAK4yE,WAAa5yE,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQ7zE,KAAK4zE,YAAc5zE,KAAK6zE,QAAQ3wE,SAAW,MAS3HH,QAAS,WAEA/C,KAAK4yE,aAMV5yE,KAAKE,KAAK6hC,QAAQlxB,OAAO7Q,KAAK+hC,QAAS/hC,MACvCA,KAAKE,KAAK+hC,SAASpxB,OAAO7Q,KAAKiiC,SAAUjiC,MAEzCA,KAAKE,KAAO,KACZF,KAAKgxD,QAAU,KACfhxD,KAAK6zE,QAAU,KACf7zE,KAAK4yE,WAAa,KAClB5yE,KAAKwyE,aAAe,KACpBxyE,KAAKszE,WAAY,EAEjBtzE,KAAKm0E,QAAQxuC,UACb3lC,KAAKq0E,OAAO1uC,UACZ3lC,KAAKmxE,WAAWxrC,UAEZ3lC,KAAKo0E,UAELp0E,KAAKo0E,SAASzuC,YAWtBzc,SAAU,WAENlpB,KAAK4zE,YAAc5zE,KAAK6zE,QAAQ3wE,OAAS,EACzClD,KAAKwyE,aAAexyE,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQ7zE,KAAK4zE,cAE/D5zE,KAAKszE,WAAY,EACjBtzE,KAAK+zE,YAAa,EAClB/zE,KAAKmgC,QAAS,EAEdngC,KAAKgxD,QAAQjkB,OAAO8nC,6BAA6B70E,KAAKgxD,QAAShxD,MAE/DA,KAAKmxE,WAAWnuC,SAAShjC,KAAKgxD,QAAShxD,MAEnCA,KAAKyuD,gBAELzuD,KAAKgxD,QAAQuC,SAOzBjrC,EAAO+lC,UAAUxrD,UAAUC,YAAcwlB,EAAO+lC,UAMhDjrD,OAAOC,eAAeilB,EAAO+lC,UAAUxrD,UAAW,UAE9CS,IAAK,WAED,MAAOtD,MAAKyzE,UAIhBjwE,IAAK,SAAUC,GAEXzD,KAAKyzE,SAAWhwE,EAEZA,EAGAzD,KAAKg0E,gBAAkBh0E,KAAKE,KAAKw/B,KAAKA,KAKlC1/B,KAAKszE,YAELtzE,KAAKu0E,eAAiBv0E,KAAKE,KAAKw/B,KAAKA,KAAO1/B,KAAK8sD,UAajE1pD,OAAOC,eAAeilB,EAAO+lC,UAAUxrD,UAAW,cAE9CS,IAAK,WACD,MAAOtD,MAAK6zE,QAAQ3wE,UAS5BE,OAAOC,eAAeilB,EAAO+lC,UAAUxrD,UAAW,SAE9CS,IAAK,WAED,MAA0B,QAAtBtD,KAAKwyE,aAEExyE,KAAKwyE,aAAa9pE,MAIlB1I,KAAK4zE,aAKpBpwE,IAAK,SAAUC,GAEXzD,KAAKwyE,aAAexyE,KAAK4yE,WAAWc,SAAS1zE,KAAK6zE,QAAQpwE,IAEhC,OAAtBzD,KAAKwyE,eAELxyE,KAAK4zE,YAAcnwE,EACnBzD,KAAKgxD,QAAQ3mC,SAASrqB,KAAKwyE,cAEvBxyE,KAAKo0E,UAELp0E,KAAKo0E,SAASpxC,SAAShjC,KAAMA,KAAKwyE,kBAYlDpvE,OAAOC,eAAeilB,EAAO+lC,UAAUxrD,UAAW,SAE9CS,IAAK,WAED,MAAOzC,MAAKuzB,MAAM,IAAOp0B,KAAK8sD,QAIlCtpD,IAAK,SAAUC,GAEPA,GAAS,IAETzD,KAAK8sD,MAAQ,IAAOrpD,MAWhCL,OAAOC,eAAeilB,EAAO+lC,UAAUxrD,UAAW,gBAE9CS,IAAK,WAED,MAA0B,QAAlBtD,KAAKo0E,UAIjB5wE,IAAK,SAAUC,GAEPA,GAA2B,OAAlBzD,KAAKo0E,SAEdp0E,KAAKo0E,SAAW,GAAI9rD,GAAO0Y,OAErBv9B,GAA2B,OAAlBzD,KAAKo0E,WAEpBp0E,KAAKo0E,SAASzuC,UACd3lC,KAAKo0E,SAAW,SAqB5B9rD,EAAO+lC,UAAU4mB,mBAAqB,SAAUjO,EAAQ57D,EAAOJ,EAAMkqE,EAAQC,GAE1D1rE,SAAXyrE,IAAwBA,EAAS,GAErC,IAAI7gD,MACAroB,EAAQ,EAEZ,IAAYhB,EAARI,EAEA,IAAK,GAAInI,GAAImI,EAAYJ,GAAL/H,EAAWA,IAKvB+I,EAHmB,gBAAZmpE,GAGC7sD,EAAOgI,MAAMuB,IAAI5uB,EAAEskB,WAAY4tD,EAAS,IAAK,GAI7ClyE,EAAEskB,WAGdvb,EAAQg7D,EAASh7D,EAAQkpE,EAEzB7gD,EAAOtwB,KAAKiI,OAKhB,KAAK,GAAI/I,GAAImI,EAAOnI,GAAK+H,EAAM/H,IAKvB+I,EAHmB,gBAAZmpE,GAGC7sD,EAAOgI,MAAMuB,IAAI5uB,EAAEskB,WAAY4tD,EAAS,IAAK,GAI7ClyE,EAAEskB,WAGdvb,EAAQg7D,EAASh7D,EAAQkpE,EAEzB7gD,EAAOtwB,KAAKiI,EAIpB,OAAOqoB,IAsBX/L,EAAO8sD,MAAQ,SAAU1sE,EAAOrD,EAAGC,EAAGqB,EAAOC,EAAQ6rB,GAKjDzyB,KAAK0I,MAAQA,EAKb1I,KAAKqF,EAAIA,EAKTrF,KAAKsF,EAAIA,EAKTtF,KAAK2G,MAAQA,EAKb3G,KAAK4G,OAASA,EAKd5G,KAAKyyB,KAAOA,EAKZzyB,KAAKi8B,QAAUp7B,KAAKouB,MAAMtoB,EAAQ,GAKlC3G,KAAKk8B,QAAUr7B,KAAKouB,MAAMroB,EAAS,GAKnC5G,KAAKm0B,SAAW7L,EAAOznB,KAAKszB,SAAS,EAAG,EAAGxtB,EAAOC,GAMlD5G,KAAKq1E,SAAU,EAMfr1E,KAAKs1E,kBAAoB,KAMzBt1E,KAAKi1D,SAAU,EAKfj1D,KAAKo1D,YAAczuD,EAKnB3G,KAAKq1D,YAAczuD,EAMnB5G,KAAKk1D,kBAAoB,EAMzBl1D,KAAKm1D,kBAAoB,EAMzBn1D,KAAKu1E,kBAAoB,EAMzBv1E,KAAKw1E,kBAAoB,EAKzBx1E,KAAKiyB,MAAQjyB,KAAKqF,EAAIrF,KAAK2G,MAK3B3G,KAAK60B,OAAS70B,KAAKsF,EAAItF,KAAK4G,QAIhC0hB,EAAO8sD,MAAMvyE,WASTkF,OAAQ,SAAUpB,EAAOC,GAErB5G,KAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,EACd5G,KAAKi8B,QAAUp7B,KAAKouB,MAAMtoB,EAAQ,GAClC3G,KAAKk8B,QAAUr7B,KAAKouB,MAAMroB,EAAS,GACnC5G,KAAKm0B,SAAW7L,EAAOznB,KAAKszB,SAAS,EAAG,EAAGxtB,EAAOC,GAClD5G,KAAKo1D,YAAczuD,EACnB3G,KAAKq1D,YAAczuD,EACnB5G,KAAKiyB,MAAQjyB,KAAKqF,EAAIsB,EACtB3G,KAAK60B,OAAS70B,KAAKsF,EAAIsB,GAgB3B6uE,QAAS,SAAUxgB,EAASygB,EAAaC,EAAcC,EAAOC,EAAOC,EAAWC,GAE5E/1E,KAAKi1D,QAAUA,EAEXA,IAEAj1D,KAAKo1D,YAAcsgB,EACnB11E,KAAKq1D,YAAcsgB,EACnB31E,KAAKi8B,QAAUp7B,KAAKouB,MAAMymD,EAAc,GACxC11E,KAAKk8B,QAAUr7B,KAAKouB,MAAM0mD,EAAe,GACzC31E,KAAKk1D,kBAAoB0gB,EACzB51E,KAAKm1D,kBAAoB0gB,EACzB71E,KAAKu1E,kBAAoBO,EACzB91E,KAAKw1E,kBAAoBO,IAYjCnjD,MAAO,WAEH,GAAIyB,GAAS,GAAI/L,GAAO8sD,MAAMp1E,KAAK0I,MAAO1I,KAAKqF,EAAGrF,KAAKsF,EAAGtF,KAAK2G,MAAO3G,KAAK4G,OAAQ5G,KAAKyyB,KAExF,KAAK,GAAIhC,KAAQzwB,MAETA,KAAKqyB,eAAe5B,KAEpB4D,EAAO5D,GAAQzwB,KAAKywB,GAI5B,OAAO4D,IAWX2hD,QAAS,SAAUpiD,GAWf,MATYnqB,UAARmqB,EAEAA,EAAM,GAAItL,GAAO9lB,UAAUxC,KAAKqF,EAAGrF,KAAKsF,EAAGtF,KAAK2G,MAAO3G,KAAK4G,QAI5DgtB,EAAIG,MAAM/zB,KAAKqF,EAAGrF,KAAKsF,EAAGtF,KAAK2G,MAAO3G,KAAK4G,QAGxCgtB,IAMftL,EAAO8sD,MAAMvyE,UAAUC,YAAcwlB,EAAO8sD,MAc5C9sD,EAAO2tD,UAAY,WAMfj2E,KAAK6zE,WAML7zE,KAAKk2E,gBAIT5tD,EAAO2tD,UAAUpzE,WASbszE,SAAU,SAAUnqE,GAWhB,MATAA,GAAMtD,MAAQ1I,KAAK6zE,QAAQ3wE,OAE3BlD,KAAK6zE,QAAQ9vE,KAAKiI,GAEC,KAAfA,EAAMymB,OAENzyB,KAAKk2E,YAAYlqE,EAAMymB,MAAQzmB,EAAMtD,OAGlCsD,GAWX0nE,SAAU,SAAUhrE,GAOhB,MALIA,IAAS1I,KAAK6zE,QAAQ3wE,SAEtBwF,EAAQ,GAGL1I,KAAK6zE,QAAQnrE,IAWxBirE,eAAgB,SAAUlhD,GAEtB,MAAsC,gBAA3BzyB,MAAKk2E,YAAYzjD,GAEjBzyB,KAAK6zE,QAAQ7zE,KAAKk2E,YAAYzjD,IAGlC,MAWX4gD,eAAgB,SAAU5gD,GAEtB,MAA8B,OAA1BzyB,KAAKk2E,YAAYzjD,IAEV,GAGJ,GAUXG,MAAO,WAKH,IAAK,GAHDyB,GAAS,GAAI/L,GAAO2tD,UAGfhzE,EAAI,EAAGA,EAAIjD,KAAK6zE,QAAQ3wE,OAAQD,IAErCoxB,EAAOw/C,QAAQ9vE,KAAK/D,KAAK6zE,QAAQ5wE,GAAG2vB,QAGxC,KAAK,GAAIpuB,KAAKxE,MAAKk2E,YAEXl2E,KAAKk2E,YAAY7jD,eAAe7tB,IAEhC6vB,EAAO6hD,YAAYnyE,KAAK/D,KAAKk2E,YAAY1xE,GAIjD,OAAO6vB,IAaX+hD,cAAe,SAAUhrE,EAAOtB,EAAKuqB,GAElB5qB,SAAX4qB,IAAwBA,KAE5B,KAAK,GAAIpxB,GAAImI,EAAYtB,GAAL7G,EAAUA,IAE1BoxB,EAAOtwB,KAAK/D,KAAK6zE,QAAQ5wE,GAG7B,OAAOoxB,IAcXgiD,UAAW,SAAU9G,EAAQ2D,EAAiB7+C,GAK1C,GAHwB5qB,SAApBypE,IAAiCA,GAAkB,GACxCzpE,SAAX4qB,IAAwBA,MAEb5qB,SAAX8lE,GAA0C,IAAlBA,EAAOrsE,OAG/B,IAAK,GAAID,GAAI,EAAGA,EAAIjD,KAAK6zE,QAAQ3wE,OAAQD,IAGrCoxB,EAAOtwB,KAAK/D,KAAK6zE,QAAQ5wE,QAM7B,KAAK,GAAIA,GAAI,EAAGA,EAAIssE,EAAOrsE,OAAQD,IAG3BiwE,EAGA7+C,EAAOtwB,KAAK/D,KAAK0zE,SAASnE,EAAOtsE,KAKjCoxB,EAAOtwB,KAAK/D,KAAK2zE,eAAepE,EAAOtsE,IAKnD,OAAOoxB,IAcX8+C,gBAAiB,SAAU5D,EAAQ2D,EAAiB7+C,GAKhD,GAHwB5qB,SAApBypE,IAAiCA,GAAkB,GACxCzpE,SAAX4qB,IAAwBA,MAEb5qB,SAAX8lE,GAA0C,IAAlBA,EAAOrsE,OAG/B,IAAK,GAAID,GAAI,EAAGA,EAAIjD,KAAK6zE,QAAQ3wE,OAAQD,IAErCoxB,EAAOtwB,KAAK/D,KAAK6zE,QAAQ5wE,GAAGyF,WAMhC,KAAK,GAAIzF,GAAI,EAAGA,EAAIssE,EAAOrsE,OAAQD,IAG3BiwE,GAAmBlzE,KAAK6zE,QAAQtE,EAAOtsE,IAEvCoxB,EAAOtwB,KAAK/D,KAAK6zE,QAAQtE,EAAOtsE,IAAIyF,OAIhC1I,KAAK2zE,eAAepE,EAAOtsE,KAE3BoxB,EAAOtwB,KAAK/D,KAAK2zE,eAAepE,EAAOtsE,IAAIyF,MAM3D,OAAO2rB,KAMf/L,EAAO2tD,UAAUpzE,UAAUC,YAAcwlB,EAAO2tD,UAOhD7yE,OAAOC,eAAeilB,EAAO2tD,UAAUpzE,UAAW,SAE9CS,IAAK,WACD,MAAOtD,MAAK6zE,QAAQ3wE,UAiB5BolB,EAAOguD,iBAeHC,YAAa,SAAUr2E,EAAMwU,EAAK8hE,EAAYC,EAAaC,EAAUC,EAAQC,GAEzE,GAAI9hB,GAAMpgD,CAOV,IALmB,gBAARA,KAEPogD,EAAM50D,EAAKm/B,MAAMhU,SAAS3W,IAGlB,OAARogD,EAEA,MAAO,KAGX,IAAInuD,GAAQmuD,EAAInuD,MACZC,EAASkuD,EAAIluD,MAEC,IAAd4vE,IAEAA,EAAa31E,KAAKouB,OAAOtoB,EAAQ9F,KAAKq2B,IAAI,GAAIs/C,KAG/B,GAAfC,IAEAA,EAAc51E,KAAKouB,OAAOroB,EAAS/F,KAAKq2B,IAAI,GAAIu/C,IAGpD,IAAII,GAAMh2E,KAAKouB,OAAOtoB,EAAQgwE,IAAWH,EAAaI,IAClDE,EAASj2E,KAAKouB,OAAOroB,EAAS+vE,IAAWF,EAAcG,IACvDjmC,EAAQkmC,EAAMC,CAQlB,IANiB,KAAbJ,IAEA/lC,EAAQ+lC,GAIE,IAAV/vE,GAA0B,IAAXC,GAAwB4vE,EAAR7vE,GAA+B8vE,EAAT7vE,GAAkC,IAAV+pC,EAG7E,MADAj+B,SAAQ2d,KAAK,wCAA0C3b,EAAM,uEACtD,IAQX,KAAK,GAJD9D,GAAO,GAAI0X,GAAO2tD,UAClB5wE,EAAIsxE,EACJrxE,EAAIqxE,EAEC1zE,EAAI,EAAO0tC,EAAJ1tC,EAAWA,IAEvB2N,EAAKulE,SAAS,GAAI7tD,GAAO8sD,MAAMnyE,EAAGoC,EAAGC,EAAGkxE,EAAYC,EAAa,KAEjEpxE,GAAKmxE,EAAaI,EAEdvxE,EAAImxE,EAAa7vE,IAEjBtB,EAAIsxE,EACJrxE,GAAKmxE,EAAcG,EAI3B,OAAOhmE,IAYXmmE,SAAU,SAAU72E,EAAM82E,GAGtB,IAAKA,EAAa,OAId,MAFAtkE,SAAQ2d,KAAK,iGACb3d,SAAQC,IAAIqkE,EAWhB,KAAK,GAFDC,GAJArmE,EAAO,GAAI0X,GAAO2tD,UAGlB1G,EAASyH,EAAa,OAGjB/zE,EAAI,EAAGA,EAAIssE,EAAOrsE,OAAQD,IAE/Bg0E,EAAWrmE,EAAKulE,SAAS,GAAI7tD,GAAO8sD,MAChCnyE,EACAssE,EAAOtsE,GAAG+I,MAAM3G,EAChBkqE,EAAOtsE,GAAG+I,MAAM1G,EAChBiqE,EAAOtsE,GAAG+I,MAAMuL,EAChBg4D,EAAOtsE,GAAG+I,MAAM6W,EAChB0sD,EAAOtsE,GAAGi0E,WAGV3H,EAAOtsE,GAAGgyD,SAEVgiB,EAASxB,QACLlG,EAAOtsE,GAAGgyD,QACVsa,EAAOtsE,GAAGk0E,WAAW5/D,EACrBg4D,EAAOtsE,GAAGk0E,WAAWt0D,EACrB0sD,EAAOtsE,GAAGm0E,iBAAiB/xE,EAC3BkqE,EAAOtsE,GAAGm0E,iBAAiB9xE,EAC3BiqE,EAAOtsE,GAAGm0E,iBAAiB7/D,EAC3Bg4D,EAAOtsE,GAAGm0E,iBAAiBv0D,EAKvC,OAAOjS,IAYXymE,cAAe,SAAUn3E,EAAM82E,GAG3B,GAAIM,IAAa,SAAU,YAAY,aAAa,YAAa,YAYjE,IAVAA,EAAUvnD,QAAS,SAASrb,GACxB,MAAKsiE,GAAKtiE,GAAV,QAEIhC,QAAQ2d,KAAK,oFAAsF3b,EAAM,cACzGhC,SAAQC,IAAIqkE,MAMQ,GAAzBA,EAAa,OAAE9zE,OAGd,MAFAwP,SAAQ2d,KAAK,uGACb3d,SAAQC,IAAIqkE,EAYhB,KAAK,GAFDC,GANArmE,EAAO,GAAI0X,GAAO2tD,UAElBsB,EAAaP,EAAiB,WAC9BQ,EAAYR,EAAgB,UAE5BzH,EAASyH,EAAa,OAAE,GAAU,MAG7B/zE,EAAI,EAAGA,EAAIssE,EAAOrsE,OAAQD,IAE/Bg0E,EAAWrmE,EAAKulE,SAAS,GAAI7tD,GAAO8sD,MAChCnyE,EACAssE,EAAOtsE,GAAGoC,EACVkqE,EAAOtsE,GAAGqC,EACVkyE,EACAD,EACA,SAAWt0E,IAIfg0E,EAASxB,SAAQ,EAGrB,OAAO7kE,IAYX6mE,aAAc,SAAUv3E,EAAM82E,GAG1B,IAAKA,EAAa,OAId,MAFAtkE,SAAQ2d,KAAK,sGACb3d,SAAQC,IAAIqkE,EAKhB,IAIIC,GAJArmE,EAAO,GAAI0X,GAAO2tD,UAGlB1G,EAASyH,EAAa,OAEtB/zE,EAAI,CAER,KAAK,GAAIyR,KAAO66D,GAEZ0H,EAAWrmE,EAAKulE,SAAS,GAAI7tD,GAAO8sD,MAChCnyE,EACAssE,EAAO76D,GAAK1I,MAAM3G,EAClBkqE,EAAO76D,GAAK1I,MAAM1G,EAClBiqE,EAAO76D,GAAK1I,MAAMuL,EAClBg4D,EAAO76D,GAAK1I,MAAM6W,EAClBnO,IAGA66D,EAAO76D,GAAKugD,SAEZgiB,EAASxB,QACLlG,EAAO76D,GAAKugD,QACZsa,EAAO76D,GAAKyiE,WAAW5/D,EACvBg4D,EAAO76D,GAAKyiE,WAAWt0D,EACvB0sD,EAAO76D,GAAK0iE,iBAAiB/xE,EAC7BkqE,EAAO76D,GAAK0iE,iBAAiB9xE,EAC7BiqE,EAAO76D,GAAK0iE,iBAAiB7/D,EAC7Bg4D,EAAO76D,GAAK0iE,iBAAiBv0D,GAIrC5f,GAGJ,OAAO2N,IAYX8mE,QAAS,SAAUx3E,EAAMy3E,GAGrB,IAAKA,EAAIC,qBAAqB,gBAG1B,WADAllE,SAAQ2d,KAAK,8FAoBjB,KAAK,GAbD4mD,GAEAxkD,EACAzmB,EACA3G,EACAC,EACAqB,EACAC,EACAixE,EACAC,EACAtB,EACAC,EAbA7lE,EAAO,GAAI0X,GAAO2tD,UAClB1G,EAASoI,EAAIC,qBAAqB,cAc7B30E,EAAI,EAAGA,EAAIssE,EAAOrsE,OAAQD,IAE/B+I,EAAQujE,EAAOtsE,GAAG4Q,WAElB4e,EAAOzmB,EAAMymB,KAAKhvB,MAClB4B,EAAIqsB,SAAS1lB,EAAM3G,EAAE5B,MAAO,IAC5B6B,EAAIosB,SAAS1lB,EAAM1G,EAAE7B,MAAO,IAC5BkD,EAAQ+qB,SAAS1lB,EAAMrF,MAAMlD,MAAO,IACpCmD,EAAS8qB,SAAS1lB,EAAMpF,OAAOnD,MAAO,IAEtCo0E,EAAS,KACTC,EAAS,KAEL9rE,EAAM6rE,SAENA,EAASh3E,KAAKq0B,IAAIxD,SAAS1lB,EAAM6rE,OAAOp0E,MAAO,KAC/Cq0E,EAASj3E,KAAKq0B,IAAIxD,SAAS1lB,EAAM8rE,OAAOr0E,MAAO,KAC/C+yE,EAAa9kD,SAAS1lB,EAAMwqE,WAAW/yE,MAAO,IAC9CgzE,EAAc/kD,SAAS1lB,EAAMyqE,YAAYhzE,MAAO,KAGpDwzE,EAAWrmE,EAAKulE,SAAS,GAAI7tD,GAAO8sD,MAAMnyE,EAAGoC,EAAGC,EAAGqB,EAAOC,EAAQ6rB,KAGnD,OAAXolD,GAA8B,OAAXC,IAEnBb,EAASxB,SAAQ,EAAM9uE,EAAOC,EAAQixE,EAAQC,EAAQtB,EAAYC,EAI1E,OAAO7lE,KAuCf0X,EAAOgsB,MAAQ,SAAUp0C,GAKrBF,KAAKE,KAAOA,EAMZF,KAAK+3E,gBAAiB,EAOtB/3E,KAAKg4E,QACDxnE,UACAoZ,SACA9hB,WACA23B,SACAq5B,SACA9B,QACAggB,QACAW,OACA93C,WACA04B,WACA0f,UACAjf,cACAkf,cACAtsE,UACAnF,kBAOJzG,KAAKm4E,WAMLn4E,KAAKo4E,aAAe,GAAI/nE,OAMxBrQ,KAAKq4E,SAAW,KAKhBr4E,KAAKs4E,cAAgB,GAAIhwD,GAAO0Y,OAMhChhC,KAAKu4E,aAELv4E,KAAKu4E,UAAUjwD,EAAOgsB,MAAM5nB,QAAU1sB,KAAKg4E,OAAOxnE,OAClDxQ,KAAKu4E,UAAUjwD,EAAOgsB,MAAMlnB,OAASptB,KAAKg4E,OAAOpuD,MACjD5pB,KAAKu4E,UAAUjwD,EAAOgsB,MAAMkkC,SAAWx4E,KAAKg4E,OAAOlwE,QACnD9H,KAAKu4E,UAAUjwD,EAAOgsB,MAAMmkC,OAASz4E,KAAKg4E,OAAOv4C,MACjDz/B,KAAKu4E,UAAUjwD,EAAOgsB,MAAMhnB,MAAQttB,KAAKg4E,OAAOhhB,KAChDh3D,KAAKu4E,UAAUjwD,EAAOgsB,MAAMokC,SAAW14E,KAAKg4E,OAAOn4C,QACnD7/B,KAAKu4E,UAAUjwD,EAAOgsB,MAAM3mB,SAAW3tB,KAAKg4E,OAAOzf,QACnDv4D,KAAKu4E,UAAUjwD,EAAOgsB,MAAMqkC,QAAU34E,KAAKg4E,OAAOC,OAClDj4E,KAAKu4E,UAAUjwD,EAAOgsB,MAAMvmB,YAAc/tB,KAAKg4E,OAAOhf,WACtDh5D,KAAKu4E,UAAUjwD,EAAOgsB,MAAMskC,YAAc54E,KAAKg4E,OAAOE,WACtDl4E,KAAKu4E,UAAUjwD,EAAOgsB,MAAMukC,MAAQ74E,KAAKg4E,OAAOhB,KAChDh3E,KAAKu4E,UAAUjwD,EAAOgsB,MAAMwkC,KAAO94E,KAAKg4E,OAAOL,IAC/C33E,KAAKu4E,UAAUjwD,EAAOgsB,MAAMxlB,OAAS9uB,KAAKg4E,OAAOlf,MACjD94D,KAAKu4E,UAAUjwD,EAAOgsB,MAAMykC,QAAU/4E,KAAKg4E,OAAOpsE,OAClD5L,KAAKu4E,UAAUjwD,EAAOgsB,MAAM0kC,gBAAkBh5E,KAAKg4E,OAAOvxE,cAE1DzG,KAAKi5E,kBACLj5E,KAAKk5E,mBAQT5wD,EAAOgsB,MAAM5nB,OAAS,EAMtBpE,EAAOgsB,MAAMlnB,MAAQ,EAMrB9E,EAAOgsB,MAAMkkC,QAAU,EAMvBlwD,EAAOgsB,MAAMmkC,MAAQ,EAMrBnwD,EAAOgsB,MAAMhnB,KAAO,EAMpBhF,EAAOgsB,MAAMokC,QAAU,EAMvBpwD,EAAOgsB,MAAM3mB,QAAU,EAMvBrF,EAAOgsB,MAAMqkC,OAAS,EAMtBrwD,EAAOgsB,MAAMvmB,WAAa,EAM1BzF,EAAOgsB,MAAMskC,WAAa,GAM1BtwD,EAAOgsB,MAAMukC,KAAO,GAMpBvwD,EAAOgsB,MAAMwkC,IAAM,GAMnBxwD,EAAOgsB,MAAMxlB,MAAQ,GAMrBxG,EAAOgsB,MAAMykC,OAAS,GAMtBzwD,EAAOgsB,MAAM0kC,eAAiB,GAE9B1wD,EAAOgsB,MAAMzxC,WAcTs2E,UAAW,SAAUzkE,EAAKlE,EAAQpD,GAEd3D,SAAZ2D,IAAyBA,EAAUoD,EAAOE,WAAW,OAEzD1Q,KAAKg4E,OAAOxnE,OAAOkE,IAASlE,OAAQA,EAAQpD,QAASA,IAczDgsE,SAAU,SAAU1kE,EAAKqkD,EAAKnoD,GAEtB5Q,KAAKq5E,cAAc3kE,IAEnB1U,KAAKs5E,YAAY5kE,EAGrB,IAAIogD,IACApgD,IAAKA,EACLqkD,IAAKA,EACLnoD,KAAMA,EACNmkD,KAAM,GAAI90D,MAAKgpB,YAAYrY,GAC3B5E,MAAO,GAAIsc,GAAO8sD,MAAM,EAAG,EAAG,EAAGxkE,EAAKjK,MAAOiK,EAAKhK,OAAQ8N,GAC1DsgD,UAAW,GAAI1sC,GAAO2tD,UAS1B,OANAnhB,GAAIE,UAAUmhB,SAAS,GAAI7tD,GAAO8sD,MAAM,EAAG,EAAG,EAAGxkE,EAAKjK,MAAOiK,EAAKhK,OAAQmyD,IAE1E/4D,KAAKg4E,OAAOpuD,MAAMlV,GAAOogD,EAEzB90D,KAAKu5E,YAAYxgB,EAAKjE,GAEfA,GAaXmkB,gBAAiB,WAEb,GAAInkB,GAAM,GAAIzkD,MAEdykD,GAAIxkD,IAAM,wKAEV,IAAIkgB,GAAMxwB,KAAKo5E,SAAS,YAAa,KAAMtkB,EAG3CtkC,GAAIukC,KAAK5oD,YAAa,EAEtBlM,KAAK0O,aAAwB,UAAI,GAAI1O,MAAKsL,QAAQilB,EAAIukC,OAa1DmkB,gBAAiB,WAEb,GAAIpkB,GAAM,GAAIzkD,MAEdykD,GAAIxkD,IAAM,4WAEV,IAAIkgB,GAAMxwB,KAAKo5E,SAAS,YAAa,KAAMtkB,EAE3C70D,MAAK0O,aAAwB,UAAI,GAAI1O,MAAKsL,QAAQilB,EAAIukC,OAc1DykB,SAAU,SAAU9kE,EAAKqkD,EAAKnoD,EAAM0kC,EAAUmkC,GAEzBhwE,SAAb6rC,IAA0BA,GAAW,EAAMmkC,GAAW,GACzChwE,SAAbgwE,IAA0BnkC,GAAW,EAAOmkC,GAAW,EAE3D,IAAIC,IAAU,CAEVD,KAEAC,GAAU,GAGd15E,KAAKg4E,OAAOv4C,MAAM/qB,IACdqkD,IAAKA,EACLnoD,KAAMA,EACN+oE,YAAY,EACZD,QAASA,EACTpkC,SAAUA,EACVmkC,SAAUA,EACV18B,OAAQ/8C,KAAKE,KAAKu/B,MAAMm6C,aAG5B55E,KAAKu5E,YAAYxgB,EAAK/4D,KAAKg4E,OAAOv4C,MAAM/qB,KAY5CmlE,QAAS,SAAUnlE,EAAKqkD,EAAKnoD,GAEzB5Q,KAAKg4E,OAAOhhB,KAAKtiD,IAASqkD,IAAKA,EAAKnoD,KAAMA,GAE1C5Q,KAAKu5E,YAAYxgB,EAAK/4D,KAAKg4E,OAAOhhB,KAAKtiD,KAa3ColE,eAAgB,SAAUplE,EAAKqkD,EAAKge,EAAU5gE,GAE1CnW,KAAKg4E,OAAOn4C,QAAQnrB,IAASqkD,IAAKA,EAAKnoD,KAAMmmE,EAAU5gE,OAAQA,GAE/DnW,KAAKu5E,YAAYxgB,EAAK/4D,KAAKg4E,OAAOn4C,QAAQnrB,KAa9CqlE,WAAY,SAAUrlE,EAAKqkD,EAAKihB,EAAS7jE,GAErCnW,KAAKg4E,OAAOzf,QAAQ7jD,IAASqkD,IAAKA,EAAKnoD,KAAMopE,EAAS7jE,OAAQA,GAE9DnW,KAAKu5E,YAAYxgB,EAAK/4D,KAAKg4E,OAAOzf,QAAQ7jD,KAW9CulE,UAAW,SAAUvlE,EAAKwlE,GAEtBl6E,KAAKg4E,OAAOC,OAAOvjE,GAAOwlE,GAa9BjhB,cAAe,SAAUvkD,EAAKskD,EAAYhE,GAYtC,MAVAgE,GAAWtkD,IAAMA,EAECjL,SAAdurD,IAEAA,EAAY,GAAI1sC,GAAO2tD,UACvBjhB,EAAUmhB,SAASnd,EAAWmhB,eAGlCn6E,KAAKg4E,OAAOhf,WAAWtkD,IAAS9D,KAAMooD,EAAYhE,UAAWA,GAEtDgE,GAgBXohB,cAAe,SAAU1lE,EAAKqkD,EAAKnoD,EAAMypE,EAAWC,EAAWriB,EAAUC,GAErE,GAAI1nC,IACAuoC,IAAKA,EACLnoD,KAAMA,EACNgnD,KAAM,KACN7C,KAAM,GAAI90D,MAAKgpB,YAAYrY,GAGdnH,UAAbwuD,IAA0BA,EAAW,GACxBxuD,SAAbyuD,IAA0BA,EAAW,GAEvB,SAAdoiB,EAEA9pD,EAAIonC,KAAOtvC,EAAOiyD,aAAaC,eAAeH,EAAW7pD,EAAIukC,KAAMkD,EAAUC,GAI7E1nC,EAAIonC,KAAOtvC,EAAOiyD,aAAaE,cAAcJ,EAAW7pD,EAAIukC,KAAMkD,EAAUC,GAGhFl4D,KAAKg4E,OAAOE,WAAWxjE,GAAO8b,EAE9BxwB,KAAKu5E,YAAYxgB,EAAKvoC,IAY1BkqD,QAAS,SAAUhmE,EAAKqkD,EAAKnoD,GAEzB5Q,KAAKg4E,OAAOhB,KAAKtiE,IAASqkD,IAAKA,EAAKnoD,KAAMA,GAE1C5Q,KAAKu5E,YAAYxgB,EAAK/4D,KAAKg4E,OAAOhB,KAAKtiE,KAY3CimE,OAAQ,SAAUjmE,EAAKqkD,EAAKnoD,GAExB5Q,KAAKg4E,OAAOL,IAAIjjE,IAASqkD,IAAKA,EAAKnoD,KAAMA,GAEzC5Q,KAAKu5E,YAAYxgB,EAAK/4D,KAAKg4E,OAAOL,IAAIjjE,KAa1CkmE,SAAU,SAAUlmE,EAAKqkD,EAAKnoD,EAAMiqE,GAEhC76E,KAAKg4E,OAAOlf,MAAMpkD,IAASqkD,IAAKA,EAAKnoD,KAAMA,EAAMiqE,OAAQA,EAAQ99B,QAAQ,GAEzE/8C,KAAKu5E,YAAYxgB,EAAK/4D,KAAKg4E,OAAOlf,MAAMpkD,KAY5ComE,UAAW,SAAUpmE,EAAKqkD,EAAKnoD,GAE3B5Q,KAAKg4E,OAAOpsE,OAAO8I,IAASqkD,IAAKA,EAAKnoD,KAAMA,GAE5C5Q,KAAKu5E,YAAYxgB,EAAK/4D,KAAKg4E,OAAOpsE,OAAO8I,KAW7CmkD,iBAAkB,SAAUnkD,EAAK5M,GAE7B9H,KAAKg4E,OAAOvxE,cAAciO,IAAS5M,QAASA,EAASkE,MAAO,GAAIsc,GAAO8sD,MAAM,EAAG,EAAG,EAAGttE,EAAQnB,MAAOmB,EAAQlB,OAAQ,GAAI,MAiB7Hm0E,eAAgB,SAAUrmE,EAAKqkD,EAAKnoD,EAAM4lE,EAAYC,EAAaC,EAAUC,EAAQC,GAEhEntE,SAAbitE,IAA0BA,EAAW,IAC1BjtE,SAAXktE,IAAwBA,EAAS,GACrBltE,SAAZmtE,IAAyBA,EAAU,EAEvC,IAAIpmD,IACA9b,IAAKA,EACLqkD,IAAKA,EACLnoD,KAAMA,EACN4lE,WAAYA,EACZC,YAAaA,EACbE,OAAQA,EACRC,QAASA,EACT7hB,KAAM,GAAI90D,MAAKgpB,YAAYrY,GAC3BokD,UAAW1sC,EAAOguD,gBAAgBC,YAAYv2E,KAAKE,KAAM0Q,EAAM4lE,EAAYC,EAAaC,EAAUC,EAAQC,GAG9G52E,MAAKg4E,OAAOpuD,MAAMlV,GAAO8b,EAEzBxwB,KAAKu5E,YAAYxgB,EAAKvoC,IAc1BwqD,gBAAiB,SAAUtmE,EAAKqkD,EAAKnoD,EAAMypE,EAAWlkE,GAElD,GAAIqa,IACA9b,IAAKA,EACLqkD,IAAKA,EACLnoD,KAAMA,EACNmkD,KAAM,GAAI90D,MAAKgpB,YAAYrY,GAG3BuF,KAAWmS,EAAOisB,OAAO0mC,2BAEzBzqD,EAAIwkC,UAAY1sC,EAAOguD,gBAAgBoB,QAAQ13E,KAAKE,KAAMm6E,EAAW3lE,GAEhEyB,IAAWmS,EAAOisB,OAAO2mC,yBAE9B1qD,EAAIwkC,UAAY1sC,EAAOguD,gBAAgBe,cAAcr3E,KAAKE,KAAMm6E,EAAW3lE,GAKvE/T,MAAMuR,QAAQmoE,EAAU9K,QAExB/+C,EAAIwkC,UAAY1sC,EAAOguD,gBAAgBS,SAAS/2E,KAAKE,KAAMm6E,EAAW3lE,GAItE8b,EAAIwkC,UAAY1sC,EAAOguD,gBAAgBmB,aAAaz3E,KAAKE,KAAMm6E,EAAW3lE,GAIlF1U,KAAKg4E,OAAOpuD,MAAMlV,GAAO8b,EAEzBxwB,KAAKu5E,YAAYxgB,EAAKvoC,IAc1B2qD,YAAa,SAAUzmE,GAEnB,GAAIkxB,GAAQ5lC,KAERy/B,EAAQz/B,KAAKo7E,SAAS1mE,EAEtB+qB,KAEAA,EAAM7uB,KAAKN,IAAMmvB,EAAMs5B,IAEvBt5B,EAAM7uB,KAAKm5B,iBAAiB,iBAAkB,WAC1C,MAAOnE,GAAMy1C,oBAAoB3mE,KAClC,GAEH+qB,EAAM7uB,KAAK2uB,SAWnB87C,oBAAqB,SAAU3mE,GAE3B,GAAI+qB,GAAQz/B,KAAKo7E,SAAS1mE,EAEtB+qB,KAEAA,EAAMsd,QAAS,EACf/8C,KAAKs4E,cAAct1C,SAAStuB,KAWpC4mE,YAAa,SAAU5mE,EAAKq6B,EAAUtrC,GAElC,GAAIg8B,GAAQz/B,KAAKo7E,SAAS1mE,EAEtB+qB,KAEAA,EAAMsP,GAAYtrC,IAY1B83E,aAAc,SAAU7mE,EAAK9D,GAEzB,GAAI6uB,GAAQz/B,KAAKo7E,SAAS1mE,EAE1B+qB,GAAM7uB,KAAOA,EACb6uB,EAAMi6C,SAAU,EAChBj6C,EAAMk6C,YAAa,GAWvB6B,eAAgB,SAAU9mE,GAEtB,GAAI+qB,GAAQz/B,KAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMmkC,MAAO,iBAElD,OAAIh5C,GAEOA,EAAMi6C,QAFjB,QAeJ+B,aAAc,SAAU/mE,GAEpB,GAAI+qB,GAAQz/B,KAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMmkC,MAAO,iBAElD,OAAIh5C,GAEQA,EAAMi6C,UAAY15E,KAAKE,KAAKu/B,MAAMm6C,YAF9C,QAmBJ8B,SAAU,SAAUr8C,EAAO3qB,GAEvB,MAAI1U,MAAKu4E,UAAUl5C,GAAO3qB,IAEf,GAGJ,GAcXinE,SAAU,SAAU5iB,GAEhB,MAAI/4D,MAAKm4E,QAAQn4E,KAAKu5E,YAAYxgB,KAEvB,GAGJ,GAWX6iB,eAAgB,SAAUlnE,GAEtB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAM5nB,OAAQhY,IAW9C2kE,cAAe,SAAU3kE,GAErB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMlnB,MAAO1Y,IAW7CmnE,gBAAiB,SAAUnnE,GAEvB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMkkC,QAAS9jE,IAW/ConE,cAAe,SAAUpnE,GAErB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMmkC,MAAO/jE,IAW7CqnE,aAAc,SAAUrnE,GAEpB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMhnB,KAAM5Y,IAW5CsnE,gBAAiB,SAAUtnE,GAEvB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMokC,QAAShkE,IAW/CunE,gBAAiB,SAAUvnE,GAEvB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAM3mB,QAASjZ,IAW/CwnE,eAAgB,SAAUxnE,GAEtB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMqkC,OAAQjkE,IAW9CynE,mBAAoB,SAAUznE,GAE1B,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMvmB,WAAYrZ,IAWlD0nE,mBAAoB,SAAU1nE,GAE1B,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMskC,WAAYlkE,IAWlD2nE,aAAc,SAAU3nE,GAEpB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMukC,KAAMnkE,IAW5C4nE,YAAa,SAAU5nE,GAEnB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMwkC,IAAKpkE,IAW3C6nE,cAAe,SAAU7nE,GAErB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMxlB,MAAOpa,IAW7C8nE,eAAgB,SAAU9nE,GAEtB,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAMykC,OAAQrkE,IAW9C+nE,sBAAuB,SAAU/nE,GAE7B,MAAO1U,MAAK07E,SAASpzD,EAAOgsB,MAAM0kC,eAAgBtkE,IAqBtDstD,QAAS,SAAUttD,EAAK2qB,EAAOoQ,EAAQV,GAEnC,MAAK/uC,MAAK07E,SAASr8C,EAAO3qB,GASLjL,SAAbslC,EAEO/uC,KAAKu4E,UAAUl5C,GAAO3qB,GAItB1U,KAAKu4E,UAAUl5C,GAAO3qB,GAAKq6B,IAblCU,GAEA/8B,QAAQ2d,KAAK,gBAAkBof,EAAS,UAAY/6B,EAAM,yBAe3D,OAeX6W,UAAW,SAAU7W,GAEjB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAM5nB,OAAQ,YAAa,WAoB/DrB,SAAU,SAAU3W,EAAKgoE,IAETjzE,SAARiL,GAA6B,OAARA,KAErBA,EAAM,aAGGjL,SAATizE,IAAsBA,GAAO,EAEjC,IAAI5nB,GAAM90D,KAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMlnB,MAAO,WAOhD,OALY,QAAR0nC,IAEAA,EAAM90D,KAAKgiE,QAAQ,YAAa15C,EAAOgsB,MAAMlnB,MAAO,aAGpDsvD,EAEO5nB,EAIAA,EAAIlkD,MAcnB+rE,gBAAiB,SAAUjoE,GAEvB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMkkC,QAAS,kBAAmB,UAetE4C,SAAU,SAAU1mE,GAEhB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMmkC,MAAO,aAejDmE,aAAc,SAAUloE,GAEpB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMmkC,MAAO,eAAgB,SAejEoE,QAAS,SAAUnoE,GAEf,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMhnB,KAAM,UAAW,SAmB3DwvD,eAAgB,SAAUpoE,EAAKyhD,EAAQ4mB,GAEnC,GAAInsE,GAAO5Q,KAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMokC,QAAS,iBAAkB,OAErE,IAAa,OAAT9nE,GAA4BnH,SAAX0sD,GAAmC,OAAXA,EAEzC,MAAOvlD,EAIP,IAAIA,EAAKulD,GACT,CACI,GAAI6mB,GAAWpsE,EAAKulD,EAGpB,KAAI6mB,IAAYD,EAmBZ,MAAOC,EAjBP,KAAK,GAAIC,KAAWD,GAMhB,GAHAC,EAAUD,EAASC,GAGfA,EAAQF,aAAeA,EAEvB,MAAOE,EAKfvqE,SAAQ2d,KAAK,kEAAoE0sD,EAAa,OAASroE,EAAM,SASjHhC,SAAQ2d,KAAK,qDAAuD3b,EAAM,MAAQyhD,EAAS,IAInG,OAAO,OAeX+mB,eAAgB,SAAUxoE,GAEtB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAM3mB,QAAS,mBAenDwvD,UAAW,SAAUzoE,GAEjB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMqkC,OAAQ,cAelDyE,cAAe,SAAU1oE,GAErB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMvmB,WAAY,gBAAiB,SAevEsvD,cAAe,SAAU3oE,GAErB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMskC,WAAY,kBAmBtD0E,QAAS,SAAU5oE,EAAKke,GAEpB,GAAIhiB,GAAO5Q,KAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMukC,KAAM,UAAW,OAE3D,OAAIjoE,GAEIgiB,EAEOtK,EAAOgI,MAAMiC,QAAO,EAAM3hB,GAI1BA,EAKJ,MAgBf2sE,OAAQ,SAAU7oE,GAEd,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMwkC,IAAK,SAAU,SAezD0E,SAAU,SAAU9oE,GAEhB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMxlB,MAAO,aAejD2uD,UAAW,SAAU/oE,GAEjB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMykC,OAAQ,YAAa,SAe/D2E,iBAAkB,SAAUhpE,GAExB,MAAO1U,MAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAM0kC,eAAgB,qBAgB1D2E,eAAgB,SAAUjpE,EAAK2qB,GAI3B,MAFc51B,UAAV41B,IAAuBA,EAAQ/W,EAAOgsB,MAAMlnB,OAEzCptB,KAAKgiE,QAAQttD,EAAK2qB,EAAO,iBAAkB,SAYtDq0C,SAAU,SAAUh/D,EAAK2qB,GAIrB,MAFc51B,UAAV41B,IAAuBA,EAAQ/W,EAAOgsB,MAAMlnB,OAEzCptB,KAAKgiE,QAAQttD,EAAK2qB,EAAO,WAAY,UAYhDu+C,cAAe,SAAUlpE,EAAK2qB,GAE1B,GAAIzuB,GAAO5Q,KAAK60D,aAAangD,EAAK2qB,EAElC,OAAIzuB,GAEOA,EAAK+/B,MAIL,GAiBfkkB,aAAc,SAAUngD,EAAK2qB,GAIzB,MAFc51B,UAAV41B,IAAuBA,EAAQ/W,EAAOgsB,MAAMlnB,OAEzCptB,KAAKgiE,QAAQttD,EAAK2qB,EAAO,eAAgB,cAYpDs1B,aAAc,SAAUjgD,EAAK2qB,GAIzB,MAFc51B,UAAV41B,IAAuBA,EAAQ/W,EAAOgsB,MAAMlnB,OAEM,OAA9CptB,KAAKgiE,QAAQttD,EAAK2qB,EAAO,GAAI,cAYzC2zC,gBAAiB,SAAUt+D,EAAKsgD,EAAW31B,GAEzB51B,SAAV41B,IAAuBA,EAAQ/W,EAAOgsB,MAAMlnB,OAE5CptB,KAAKu4E,UAAUl5C,GAAO3qB,KAEtB1U,KAAKu4E,UAAUl5C,GAAO3qB,GAAKsgD,UAAYA,IAc/C6oB,gBAAiB,SAAUnpE,EAAKhM,EAAO22B,GAEnC,GAAIzuB,GAAO5Q,KAAK60D,aAAangD,EAAK2qB,EAElC,OAAIzuB,GAEOA,EAAK8iE,SAAShrE,GAId,MAcfirE,eAAgB,SAAUj/D,EAAK+d,EAAM4M,GAEjC,GAAIzuB,GAAO5Q,KAAK60D,aAAangD,EAAK2qB,EAElC,OAAIzuB,GAEOA,EAAK+iE,eAAelhD,GAIpB,MAgBfqrD,eAAgB,SAAUppE,GAEtB,GAAIzU,KAAK0O,aAAa+F,GAElB,MAAOzU,MAAK0O,aAAa+F,EAIzB,IAAIqgD,GAAO/0D,KAAK+9E,mBAAmBrpE,EAEnC,OAAIqgD,GAEO,GAAI90D,MAAKsL,QAAQwpD,GAIjB,MAgBnBgpB,mBAAoB,SAAUrpE,GAE1B,GAAIzU,KAAK8oB,iBAAiBrU,GAEtB,MAAOzU,MAAK8oB,iBAAiBrU,EAI7B,IAAIogD,GAAM90D,KAAKgiE,QAAQttD,EAAK4T,EAAOgsB,MAAMlnB,MAAO,qBAEhD,OAAY,QAAR0nC,EAEOA,EAAIC,KAIJ,MAenBipB,OAAQ,SAAUjlB,GAEd,GAAIA,GAAM/4D,KAAKu5E,YAAYxgB,EAE3B,OAAIA,GAEO/4D,KAAKm4E,QAAQpf,IAIpBrmD,QAAQ2d,KAAK,sCAAwC0oC,EAAO;AACrD,OAYfklB,QAAS,SAAU5+C,GAED51B,SAAV41B,IAAuBA,EAAQ/W,EAAOgsB,MAAMlnB,MAEhD,IAAIwG,KAEJ,IAAI5zB,KAAKu4E,UAAUl5C,GAEf,IAAK,GAAI3qB,KAAO1U,MAAKu4E,UAAUl5C,GAEf,cAAR3qB,GAA+B,cAARA,GAEvBkf,EAAI7vB,KAAK2Q,EAKrB,OAAOkf,IAiBXsqD,aAAc,SAAUxpE,SAEb1U,MAAKg4E,OAAOxnE,OAAOkE,IAgB9B4kE,YAAa,SAAU5kE,EAAKypE,GAED10E,SAAnB00E,IAAgCA,GAAiB,EAErD,IAAIrpB,GAAM90D,KAAKqrB,SAAS3W,GAAK,EAEzBypE,IAAkBrpB,EAAIC,MAEtBD,EAAIC,KAAKhyD,gBAGN/C,MAAKg4E,OAAOpuD,MAAMlV,IAiB7B0pE,YAAa,SAAU1pE,SAEZ1U,MAAKg4E,OAAOv4C,MAAM/qB,IAa7B2pE,WAAY,SAAU3pE,SAEX1U,MAAKg4E,OAAOhhB,KAAKtiD,IAa5B4pE,cAAe,SAAU5pE,SAEd1U,MAAKg4E,OAAOn4C,QAAQnrB,IAa/B6pE,cAAe,SAAU7pE,SAEd1U,MAAKg4E,OAAOzf,QAAQ7jD,IAa/B8pE,aAAc,SAAU9pE,SAEb1U,MAAKg4E,OAAOC,OAAOvjE,IAa9B+pE,iBAAkB,SAAU/pE,SAEjB1U,MAAKg4E,OAAOhf,WAAWtkD,IAalCgqE,iBAAkB,SAAUhqE,SAEjB1U,MAAKg4E,OAAOE,WAAWxjE,IAalCiqE,WAAY,SAAUjqE,SAEX1U,MAAKg4E,OAAOhB,KAAKtiE,IAa5BkqE,UAAW,SAAUlqE,SAEV1U,MAAKg4E,OAAOL,IAAIjjE,IAa3BmqE,YAAa,SAAUnqE,SAEZ1U,MAAKg4E,OAAOlf,MAAMpkD,IAa7BoqE,aAAc,SAAUpqE,SAEb1U,MAAKg4E,OAAOpsE,OAAO8I,IAa9BqqE,oBAAqB,SAAUrqE,SAEpB1U,MAAKg4E,OAAOvxE,cAAciO,IAarCsqE,kBAAmB,SAAUtqE,SAElB1U,MAAKg4E,OAAOzB,YAAY7hE,IAanCuqE,mBAAoB,SAAUvqE,SAEnB1U,MAAKg4E,OAAOkH,MAAMxqE,IAW7BohC,gBAAiB,WAEb,IAAK,GAAIphC,KAAO1U,MAAKg4E,OAAOpuD,MAExB5pB,KAAKg4E,OAAOpuD,MAAMlV,GAAKqgD,KAAKp/C,gBAepC4jE,YAAa,SAAUxgB,EAAKnoD,GAExB,MAAK5Q,MAAK+3E,gBAKV/3E,KAAKo4E,aAAa9nE,IAAMtQ,KAAKE,KAAKq/B,KAAK4/C,QAAUpmB,EAEjD/4D,KAAKq4E,SAAWr4E,KAAKo4E,aAAa9nE,IAGlCtQ,KAAKo4E,aAAa9nE,IAAM,GAGpBM,IAEA5Q,KAAKm4E,QAAQn4E,KAAKq4E,UAAYznE,GAG3B5Q,KAAKq4E,UAhBD,MA0Bft1E,QAAS,WAEL,IAAK,GAAIE,GAAI,EAAGA,EAAIjD,KAAKu4E,UAAUr1E,OAAQD,IAC3C,CACI,GAAIo8B,GAAQr/B,KAAKu4E,UAAUt1E,EAE3B,KAAK,GAAIyR,KAAO2qB,GAEA,cAAR3qB,GAA+B,cAARA,IAEnB2qB,EAAM3qB,GAAc,SAEpB2qB,EAAM3qB,GAAK3R,gBAGRs8B,GAAM3qB,IAKzB1U,KAAKm4E,QAAU,KACfn4E,KAAKo4E,aAAe,KACpBp4E,KAAKq4E,SAAW,OAMxB/vD,EAAOgsB,MAAMzxC,UAAUC,YAAcwlB,EAAOgsB,MAuB5ChsB,EAAOisB,OAAS,SAAUr0C,GAOtBF,KAAKE,KAAOA,EAOZF,KAAKq/B,MAAQn/B,EAAKm/B,MAOlBr/B,KAAKk5C,aAAc,EAOnBl5C,KAAKo/E,WAAY,EAOjBp/E,KAAK8L,WAAY,EAUjB9L,KAAKq/E,cAAgB,KAOrBr/E,KAAK6pB,aAAc,EASnB7pB,KAAKm/E,QAAU,GAoBfn/E,KAAKs/E,KAAO,GAQZt/E,KAAKu/E,YAAc,GAAIj3D,GAAO0Y,OAO9BhhC,KAAKw/E,eAAiB,GAAIl3D,GAAO0Y,OAWjChhC,KAAKy/E,eAAiB,GAAIn3D,GAAO0Y,OAUjChhC,KAAK0/E,YAAc,GAAIp3D,GAAO0Y,OAa9BhhC,KAAK2/E,eAAiB,GAAIr3D,GAAO0Y,OAWjChhC,KAAK4/E,YAAc,GAAIt3D,GAAO0Y,OAU9BhhC,KAAK6/E,mBAAoB,EAMzB7/E,KAAK8/E,4BAA6B,EASlC9/E,KAAK+/E,gBAAiB,EAUtB//E,KAAKggF,qBAAuB,EAM5BhgF,KAAKigF,oBAAsB,EAU3BjgF,KAAKkgF,aAcLlgF,KAAKmgF,gBAQLngF,KAAKogF,gBAAkB,EASvBpgF,KAAKqgF,kBAAmB,EAOxBrgF,KAAKsgF,gBAAkB,EAOvBtgF,KAAKugF,gBAAkB,EAOvBvgF,KAAKwgF,iBAAmB,EAOxBxgF,KAAKygF,iBAAmB,GAQ5Bn4D,EAAOisB,OAAOmsC,yBAA2B,EAMzCp4D,EAAOisB,OAAOosC,wBAA0B,EAMxCr4D,EAAOisB,OAAO0mC,2BAA6B,EAM3C3yD,EAAOisB,OAAOqsC,yBAA2B,EAMzCt4D,EAAOisB,OAAOssC,oBAAsB,EAMpCv4D,EAAOisB,OAAO2mC,yBAA2B,EAEzC5yD,EAAOisB,OAAO1xC,WAcVi+E,iBAAkB,SAAU3+D,EAAQ4+D,GAEhCA,EAAYA,GAAa,EAEzB/gF,KAAKq/E,eAAkBl9D,OAAQA,EAAQ4+D,UAAWA,EAAWp6E,MAAOwb,EAAOxb,MAAOC,OAAQub,EAAOvb,OAAQupD,KAAM,MAE7F,IAAd4wB,EAGA/gF,KAAKq/E,cAAclvB,KAAO,GAAI7nC,GAAO9lB,UAAU,EAAG,EAAG,EAAG2f,EAAOvb,QAK/D5G,KAAKq/E,cAAclvB,KAAO,GAAI7nC,GAAO9lB,UAAU,EAAG,EAAG2f,EAAOxb,MAAO,GAGvEwb,EAAOjV,KAAKlN,KAAKq/E,cAAclvB,MAE/BhuC,EAAO1gB,SAAU,GAYrBsG,OAAQ,WAEA/H,KAAKq/E,eAAiBr/E,KAAKq/E,cAAcz4E,SAAW5G,KAAKq/E,cAAcl9D,OAAOvb,SAE9E5G,KAAKq/E,cAAclvB,KAAKvpD,OAAS5G,KAAKq/E,cAAcl9D,OAAOvb,SAenEo6E,eAAgB,SAAUjsE,EAAML,GAE5B,MAAO1U,MAAKihF,cAAclsE,EAAML,GAAO,IAe3CusE,cAAe,SAAUlsE,EAAML,GAI3B,IAAK,GAFDwsE,GAAY,GAEPj+E,EAAI,EAAGA,EAAIjD,KAAKkgF,UAAUh9E,OAAQD,IAC3C,CACI,GAAI06D,GAAO39D,KAAKkgF,UAAUj9E,EAE1B,IAAI06D,EAAK5oD,OAASA,GAAQ4oD,EAAKjpD,MAAQA,IAEnCwsE,EAAYj+E,GAGP06D,EAAKwjB,SAAWxjB,EAAKyjB,SAEtB,MAKZ,MAAOF,IAeXG,SAAU,SAAUtsE,EAAML,GAEtB,GAAI4sE,GAAYthF,KAAKihF,cAAclsE,EAAML,EAEzC,OAAI4sE,GAAY,IAEH54E,MAAO44E,EAAW3jB,KAAM39D,KAAKkgF,UAAUoB,KAG7C,GAgBXriD,MAAO,SAAU8b,EAAMm3B,GAECzoE,SAAhByoE,IAA6BA,GAAc,GAE3ClyE,KAAKk5C,cAKL6B,IAEA/6C,KAAKq/E,cAAgB,MAGzBr/E,KAAKo/E,WAAY,EAEjBp/E,KAAKogF,gBAAkB,EACvBpgF,KAAKkgF,UAAUh9E,OAAS,EACxBlD,KAAKmgF,aAAaj9E,OAAS,EAE3BlD,KAAKqgF,kBAAmB,EACxBrgF,KAAKugF,gBAAkB,EACvBvgF,KAAKsgF,gBAAkB,EACvBtgF,KAAKwgF,iBAAmB,EACxBxgF,KAAKygF,iBAAmB,EAEpBvO,IAEAlyE,KAAKu/E,YAAYn8C,YACjBpjC,KAAKw/E,eAAep8C,YACpBpjC,KAAKy/E,eAAer8C,YACpBpjC,KAAK0/E,YAAYt8C,YACjBpjC,KAAK2/E,eAAev8C,YACpBpjC,KAAK4/E,YAAYx8C,eAkBzBm+C,cAAe,SAAUxsE,EAAML,EAAKqkD,EAAKyoB,EAAYC,EAAWC,GAI5D,GAFkBj4E,SAAdg4E,IAA2BA,GAAY,GAE/Bh4E,SAARiL,GAA6B,KAARA,EAGrB,MADAhC,SAAQ2d,KAAK,kDAAoDtb,GAC1D/U,IAGX,IAAYyJ,SAARsvD,GAA6B,OAARA,EACzB,CACI,IAAI2oB,EAOA,MADAhvE,SAAQ2d,KAAK,8CAAgDtb,EAAO,SAAWL,GACxE1U,IALP+4D,GAAMrkD,EAAMgtE,EASpB,GAAI/jB,IACA5oD,KAAMA,EACNL,IAAKA,EACL4qE,KAAMt/E,KAAKs/E,KACXvmB,IAAKA,EACL4oB,UAAW3hF,KAAKigF,oBAAsB,EACtCrvE,KAAM,KACNwwE,SAAS,EACTD,QAAQ,EACRlf,OAAO,EAGX,IAAIuf,EAEA,IAAK,GAAI/wD,KAAQ+wD,GAEb7jB,EAAKltC,GAAQ+wD,EAAW/wD,EAIhC,IAAI6wD,GAAYthF,KAAKihF,cAAclsE,EAAML,EAEzC,IAAI+sE,GAAaH,EAAY,GAC7B,CACI,GAAIM,GAAc5hF,KAAKkgF,UAAUoB,EAE5BM,GAAYR,SAAYQ,EAAYT,QAMrCnhF,KAAKkgF,UAAUn8E,KAAK45D,GACpB39D,KAAKugF,mBALLvgF,KAAKkgF,UAAUoB,GAAa3jB,MAQb,KAAd2jB,IAELthF,KAAKkgF,UAAUn8E,KAAK45D,GACpB39D,KAAKugF,kBAGT,OAAOvgF,OAcX6hF,kBAAmB,SAAU9sE,EAAML,EAAKqkD,EAAKyoB,GAEzC,MAAOxhF,MAAKuhF,cAAcxsE,EAAML,EAAKqkD,EAAKyoB,GAAY,IA0B1DM,KAAM,SAAUptE,EAAKqkD,EAAKnoD,EAAM2xB,GAM5B,GAJY94B,SAARsvD,IAAqBA,EAAM,MAClBtvD,SAATmH,IAAsBA,EAAO,MACTnH,SAApB84B,IAAiCA,EAAkB,OAElDw2B,IAAQnoD,EAIT,MAFA8B,SAAQ2d,KAAK,qEAENrwB,IAGX,IAAI8hF,IACA/sE,KAAM,WACNL,IAAKA,EACLqkD,IAAKA,EACLumB,KAAMt/E,KAAKs/E,KACXqC,WAAW,EACX/wE,KAAM,KACNwwE,SAAS,EACTD,QAAQ,EACRlf,OAAO,EACP1/B,gBAAiBA,EAIjB3xB,KAEoB,gBAATA,KAEPA,EAAOioE,KAAKh+C,MAAMjqB,IAGtBkxE,EAAKlxE,KAAOA,MAGZkxE,EAAKX,QAAS,EAKlB,KAAK,GAAIl+E,GAAI,EAAGA,EAAIjD,KAAKkgF,UAAUh9E,OAAS,EAAGD,IAC/C,CACI,GAAI06D,GAAO39D,KAAKkgF,UAAUj9E,EAE1B,KAAK06D,IAAUA,EAAKwjB,SAAWxjB,EAAKyjB,SAAyB,aAAdzjB,EAAK5oD,KACpD,CACI/U,KAAKkgF,UAAUt3E,OAAO3F,EAAG,EAAG6+E,GAC5B9hF,KAAKsgF,iBACL,QAIR,MAAOtgF,OA2BX4pB,MAAO,SAAUlV,EAAKqkD,EAAK0oB,GAEvB,MAAOzhF,MAAKuhF,cAAc,QAAS7sE,EAAKqkD,EAAKtvD,OAAWg4E,EAAW,SA4BvEM,OAAQ,SAAU7uD,EAAM8uD,GAEpB,GAAIrhF,MAAMuR,QAAQ8vE,GAEd,IAAK,GAAI/+E,GAAI,EAAGA,EAAIiwB,EAAKhwB,OAAQD,IAE7BjD,KAAK4pB,MAAMsJ,EAAKjwB,GAAI++E,EAAK/+E,QAK7B,KAAK,GAAIA,GAAI,EAAGA,EAAIiwB,EAAKhwB,OAAQD,IAE7BjD,KAAK4pB,MAAMsJ,EAAKjwB,GAIxB,OAAOjD,OAyBXg3D,KAAM,SAAUtiD,EAAKqkD,EAAK0oB,GAEtB,MAAOzhF,MAAKuhF,cAAc,OAAQ7sE,EAAKqkD,EAAKtvD,OAAWg4E,EAAW,SA0BtEzK,KAAM,SAAUtiE,EAAKqkD,EAAK0oB,GAEtB,MAAOzhF,MAAKuhF,cAAc,OAAQ7sE,EAAKqkD,EAAKtvD,OAAWg4E,EAAW,UAyBtE71E,OAAQ,SAAU8I,EAAKqkD,EAAK0oB,GAExB,MAAOzhF,MAAKuhF,cAAc,SAAU7sE,EAAKqkD,EAAKtvD,OAAWg4E,EAAW,UAyBxE9J,IAAK,SAAUjjE,EAAKqkD,EAAK0oB,GAErB,MAAOzhF,MAAKuhF,cAAc,MAAO7sE,EAAKqkD,EAAKtvD,OAAWg4E,EAAW,SA6BrEQ,OAAQ,SAAUvtE,EAAKqkD,EAAK1pB,EAAU9M,GAMlC,MAJiB94B,UAAb4lC,IAA0BA,GAAW,GAErCA,KAAa,GAA6B5lC,SAApB84B,IAAiCA,EAAkBviC,MAEtEA,KAAKuhF,cAAc,SAAU7sE,EAAKqkD,GAAO4oB,WAAW,EAAMtyC,SAAUA,EAAU9M,gBAAiBA,IAAmB,EAAO,QA+BpI01C,OAAQ,SAAUvjE,EAAKqkD,EAAK1pB,EAAU9M,GAOlC,MALiB94B,UAAb4lC,IAA0BA,GAAW,GAGrCA,KAAa,GAA6B5lC,SAApB84B,IAAiCA,EAAkB8M,GAEtErvC,KAAKuhF,cAAc,SAAU7sE,EAAKqkD,GAAO1pB,SAAUA,EAAU9M,gBAAiBA,IAAmB,EAAO,SAoCnH2/C,YAAa,SAAUxtE,EAAKqkD,EAAKyd,EAAYC,EAAaC,EAAUC,EAAQC,GAMxE,MAJiBntE,UAAbitE,IAA0BA,EAAW,IAC1BjtE,SAAXktE,IAAwBA,EAAS,GACrBltE,SAAZmtE,IAAyBA,EAAU,GAEhC52E,KAAKuhF,cAAc,cAAe7sE,EAAKqkD,GAAOyd,WAAYA,EAAYC,YAAaA,EAAaC,SAAUA,EAAUC,OAAQA,EAAQC,QAASA,IAAW,EAAO,SA6B1KngB,MAAO,SAAU/hD,EAAKstE,EAAMG,GAExB,MAAIniF,MAAKE,KAAKu/B,MAAM2iD,QAETpiF,MAGQyJ,SAAf04E,IAA4BA,GAAa,GAEzB,gBAATH,KAEPA,GAAQA,IAGLhiF,KAAKuhF,cAAc,QAAS7sE,EAAKstE,GAAQ7mE,OAAQ,KAAMgnE,WAAYA,MA4B9ExrB,YAAa,SAAUjiD,EAAKstE,EAAMK,EAASC,EAAUH,GAEjD,MAAIniF,MAAKE,KAAKu/B,MAAM2iD,QAETpiF,MAGKyJ,SAAZ44E,IAAyBA,EAAU,MACtB54E,SAAb64E,IAA0BA,EAAW,MACtB74E,SAAf04E,IAA4BA,GAAa,GAE7CniF,KAAKy2D,MAAM/hD,EAAKstE,EAAMG,GAElBE,EAEAriF,KAAKg3E,KAAKtiE,EAAM,cAAe2tE,GAE1BC,GAEmB,gBAAbA,KAEPA,EAAWzJ,KAAKh+C,MAAMynD,IAG1BtiF,KAAKq/B,MAAMq7C,QAAQhmE,EAAM,cAAe,GAAI4tE,IAI5C5vE,QAAQ2d,KAAK,8FAGVrwB,OAgBXuiF,YAAa,SAAU7tE,EAAKstE,EAAMK,EAASC,EAAUH,GAEjD,MAAOniF,MAAK22D,YAAYjiD,EAAKstE,EAAMK,EAASC,EAAUH,IAiC1DrpB,MAAO,SAAUpkD,EAAKstE,EAAMQ,EAAWC,GAqBnC,MAnBkBh5E,UAAd+4E,IAIIA,EAFAxiF,KAAKE,KAAKkqC,OAAOm0B,QAEL,aAIA,kBAIL90D,SAAXg5E,IAAwBA,GAAS,GAEjB,gBAATT,KAEPA,GAAQA,IAGLhiF,KAAKuhF,cAAc,QAAS7sE,EAAKstE,GAAQ7mE,OAAQ,KAAMsnE,OAAQA,EAAQD,UAAWA,KAiC7FjqB,QAAS,SAAU7jD,EAAKqkD,EAAKnoD,EAAMuF,GAmB/B,GAjBY1M,SAARsvD,IAAqBA,EAAM,MAClBtvD,SAATmH,IAAsBA,EAAO,MAClBnH,SAAX0M,IAAwBA,EAASmS,EAAOowC,QAAQgqB,KAE/C3pB,GAAQnoD,IAILmoD,EAFA5iD,IAAWmS,EAAOowC,QAAQgqB,IAEpBhuE,EAAM,OAINA,EAAM,SAKhB9D,EACJ,CACI,OAAQuF,GAGJ,IAAKmS,GAAOowC,QAAQgqB,IAChB,KAGJ,KAAKp6D,GAAOowC,QAAQiqB,WAEI,gBAAT/xE,KAEPA,EAAOioE,KAAKh+C,MAAMjqB,IAK9B5Q,KAAKq/B,MAAM06C,WAAWrlE,EAAK,KAAM9D,EAAMuF,OAIvCnW,MAAKuhF,cAAc,UAAW7sE,EAAKqkD,GAAO5iD,OAAQA,GAGtD,OAAOnW,OAmCX6/B,QAAS,SAAUnrB,EAAKqkD,EAAKnoD,EAAMuF,GA0B/B,MAxBY1M,UAARsvD,IAAqBA,EAAM,MAClBtvD,SAATmH,IAAsBA,EAAO,MAClBnH,SAAX0M,IAAwBA,EAASmS,EAAOgjB,QAAQs3C,kBAE/C7pB,GAAQnoD,IAETmoD,EAAMrkD,EAAM,SAIZ9D,GAEoB,gBAATA,KAEPA,EAAOioE,KAAKh+C,MAAMjqB,IAGtB5Q,KAAKq/B,MAAMy6C,eAAeplE,EAAK,KAAM9D,EAAMuF,IAI3CnW,KAAKuhF,cAAc,UAAW7sE,EAAKqkD,GAAO5iD,OAAQA,IAG/CnW,MA0CXk4E,WAAY,SAAUxjE,EAAKmuE,EAAYC,EAAUzI,EAAWpiB,EAAUC,GAmBlE,IAjBmBzuD,SAAfo5E,GAA2C,OAAfA,KAE5BA,EAAanuE,EAAM,QAGNjL,SAAbq5E,IAA0BA,EAAW,MACvBr5E,SAAd4wE,IAA2BA,EAAY,MAE1B,OAAbyI,GAAmC,OAAdzI,IAErByI,EAAWpuE,EAAM,QAGJjL,SAAbwuD,IAA0BA,EAAW,GACxBxuD,SAAbyuD,IAA0BA,EAAW,GAGrC4qB,EAEA9iF,KAAKuhF,cAAc,aAAc7sE,EAAKmuE,GAAcC,SAAUA,EAAU7qB,SAAUA,EAAUC,SAAUA,QAKtG,IAAyB,gBAAdmiB,GACX,CACI,GAAIrD,GAAMW,CAEV,KAEIX,EAAO6B,KAAKh+C,MAAMw/C,GAEtB,MAAQ/nD,GAEJqlD,EAAM33E,KAAK+iF,SAAS1I,GAGxB,IAAK1C,IAAQX,EAET,KAAM,IAAInuE,OAAM,iDAGpB7I,MAAKuhF,cAAc,aAAc7sE,EAAKmuE,GAAcC,SAAU,KAAMzI,UAAWrD,GAAQW,EACnF2C,UAActD,EAAO,OAAS,MAAQ/e,SAAUA,EAAUC,SAAUA,IAIhF,MAAOl4D,OA4CXgjF,eAAgB,SAAUtuE,EAAKmuE,EAAYC,EAAUzI,GAEjD,MAAOr6E,MAAKk/E,MAAMxqE,EAAKmuE,EAAYC,EAAUzI,EAAW/xD,EAAOisB,OAAOmsC,2BA4C1EuC,cAAe,SAAUvuE,EAAKmuE,EAAYC,EAAUzI,GAEhD,MAAOr6E,MAAKk/E,MAAMxqE,EAAKmuE,EAAYC,EAAUzI,EAAW/xD,EAAOisB,OAAOosC,0BA4C1EuC,SAAU,SAAUxuE,EAAKmuE,EAAYC,EAAUzI,GAU3C,MARiB5wE,UAAbq5E,IAA0BA,EAAW,MACvBr5E,SAAd4wE,IAA2BA,EAAY,MAEtCyI,GAAazI,IAEdyI,EAAWpuE,EAAM,QAGd1U,KAAKk/E,MAAMxqE,EAAKmuE,EAAYC,EAAUzI,EAAW/xD,EAAOisB,OAAO0mC,6BA2C1EiE,MAAO,SAAUxqE,EAAKmuE,EAAYC,EAAUzI,EAAWlkE,GAwBnD,IAtBmB1M,SAAfo5E,GAA2C,OAAfA,KAE5BA,EAAanuE,EAAM,QAGNjL,SAAbq5E,IAA0BA,EAAW,MACvBr5E,SAAd4wE,IAA2BA,EAAY,MAC5B5wE,SAAX0M,IAAwBA,EAASmS,EAAOisB,OAAOmsC,0BAE9CoC,GAAazI,IAIVyI,EAFA3sE,IAAWmS,EAAOisB,OAAO0mC,2BAEdvmE,EAAM,OAINA,EAAM,SAKrBouE,EAEA9iF,KAAKuhF,cAAc,eAAgB7sE,EAAKmuE,GAAcC,SAAUA,EAAU3sE,OAAQA,QAGtF,CACI,OAAQA,GAGJ,IAAKmS,GAAOisB,OAAOmsC,yBAEU,gBAAdrG,KAEPA,EAAYxB,KAAKh+C,MAAMw/C,GAE3B,MAGJ,KAAK/xD,GAAOisB,OAAO0mC,2BAEf,GAAyB,gBAAdZ,GACX,CACI,GAAI1C,GAAM33E,KAAK+iF,SAAS1I,EAExB,KAAK1C,EAED,KAAM,IAAI9uE,OAAM,iDAGpBwxE,GAAY1C,GAKxB33E,KAAKuhF,cAAc,eAAgB7sE,EAAKmuE,GAAcC,SAAU,KAAMzI,UAAWA,EAAWlkE,OAAQA,IAIxG,MAAOnW,OAiBXmjF,cAAe,SAAU9zC,EAAU9M,GAE/BviC,KAAKigF,qBAEL,KACI5wC,EAAS3pC,KAAK68B,GAAmBviC,KAAMA,MACzC,QACEA,KAAKigF,sBAGT,MAAOjgF,OAcXojF,aAAc,SAAUruE,EAAML,GAE1B,GAAI2uE,GAAQrjF,KAAKqhF,SAAStsE,EAAML,EAOhC,OALI2uE,KAEAA,EAAM1lB,KAAKgkB,WAAY,GAGpB3hF,MAaXsjF,WAAY,SAAUvuE,EAAML,GAExB,GAAI2uE,GAAQrjF,KAAKqhF,SAAStsE,EAAML,EAE5B2uE,KAEKA,EAAMlC,QAAWkC,EAAMjC,SAExBphF,KAAKkgF,UAAUt3E,OAAOy6E,EAAM36E,MAAO,KAY/C06B,UAAW,WAEPpjC,KAAKkgF,UAAUh9E,OAAS,EACxBlD,KAAKmgF,aAAaj9E,OAAS,GAS/BkI,MAAO,WAECpL,KAAKo/E,YAKTp/E,KAAK8L,WAAY,EACjB9L,KAAKo/E,WAAY,EAEjBp/E,KAAKujF,iBAELvjF,KAAKwjF,qBAiBTA,iBAAkB,WAEd,IAAKxjF,KAAKo/E,UAIN,MAFA1sE,SAAQ2d,KAAK,uDACbrwB,MAAKyjF,iBAAgB,EAKzB,KAAK,GAAIxgF,GAAI,EAAGA,EAAIjD,KAAKmgF,aAAaj9E,OAAQD,IAC9C,CACI,GAAI06D,GAAO39D,KAAKmgF,aAAal9E,IAEzB06D,EAAKwjB,QAAUxjB,EAAKsE,SAEpBjiE,KAAKmgF,aAAav3E,OAAO3F,EAAG,GAC5BA,IAEA06D,EAAKyjB,SAAU,EACfzjB,EAAK+lB,WAAa,KAClB/lB,EAAKgmB,cAAgB,KAEjBhmB,EAAKsE,OAELjiE,KAAK4/E,YAAY58C,SAAS26B,EAAKjpD,IAAKipD,GAGtB,aAAdA,EAAK5oD,MAEL/U,KAAKygF,mBACLzgF,KAAK2/E,eAAe38C,SAAShjC,KAAK4jF,SAAUjmB,EAAKjpD,KAAMipD,EAAKsE,MAAOjiE,KAAKygF,iBAAkBzgF,KAAKugF,kBAE5E,aAAd5iB,EAAK5oD,MAAuB4oD,EAAKsE,QAGtCjiE,KAAKwgF,mBACLxgF,KAAKy/E,eAAez8C,SAAS26B,EAAKjpD,KAAMipD,EAAKsE,MAAOjiE,KAAKwgF,iBAAkBxgF,KAAKsgF,mBAW5F,IAAK,GAJDuD,IAAY,EAEZC,EAAgB9jF,KAAK+/E,eAAiBz3D,EAAOznB,KAAKu4B,MAAMp5B,KAAKggF,qBAAsB,EAAG,IAAM,EAEvF/8E,EAAIjD,KAAKogF,gBAAiBn9E,EAAIjD,KAAKkgF,UAAUh9E,OAAQD,IAC9D,CACI,GAAI06D,GAAO39D,KAAKkgF,UAAUj9E,EAuD1B,IApDkB,aAAd06D,EAAK5oD,OAAwB4oD,EAAKsE,OAAStE,EAAKwjB,QAAUl+E,IAAMjD,KAAKogF,kBAGrEpgF,KAAK+jF,YAAYpmB,GAEjB39D,KAAKwgF,mBACLxgF,KAAKy/E,eAAez8C,SAAS26B,EAAKjpD,KAAMipD,EAAKsE,MAAOjiE,KAAKwgF,iBAAkBxgF,KAAKsgF,kBAGhF3iB,EAAKwjB,QAAUxjB,EAAKsE,MAGhBh/D,IAAMjD,KAAKogF,kBAEXpgF,KAAKogF,gBAAkBn9E,EAAI,IAGzB06D,EAAKyjB,SAAWphF,KAAKmgF,aAAaj9E,OAAS4gF,IAG/B,aAAdnmB,EAAK5oD,MAAwB4oD,EAAK/sD,KAS5BizE,IAED7jF,KAAKqgF,mBAENrgF,KAAKqgF,kBAAmB,EACxBrgF,KAAKu/E,YAAYv8C,YAGrBhjC,KAAKmgF,aAAap8E,KAAK45D,GACvBA,EAAKyjB,SAAU,EACfphF,KAAK0/E,YAAY18C,SAAShjC,KAAK4jF,SAAUjmB,EAAKjpD,IAAKipD,EAAK5E,KAExD/4D,KAAKgkF,SAASrmB,KAjBd39D,KAAKmgF,aAAap8E,KAAK45D,GACvBA,EAAKyjB,SAAU,EAEfphF,KAAKgkF,SAASrmB,MAkBjBA,EAAKwjB,QAAUxjB,EAAKgkB,YAErBkC,GAAY,GAKZ7jF,KAAKmgF,aAAaj9E,QAAU4gF,GAC3BD,GAAa7jF,KAAKwgF,mBAAqBxgF,KAAKsgF,gBAE7C,MAQR,GAJAtgF,KAAKujF,iBAIDvjF,KAAKogF,iBAAmBpgF,KAAKkgF,UAAUh9E,OAEvClD,KAAKyjF,sBAEJ,KAAKzjF,KAAKmgF,aAAaj9E,OAC5B,CAGIwP,QAAQ2d,KAAK,6EAEb,IAAIuV,GAAQ5lC,IAEZqhE,YAAW,WACPz7B,EAAM69C,iBAAgB,IACvB,OAYXA,gBAAiB,SAAUQ,GAEnBjkF,KAAK8L,YAKT9L,KAAK8L,WAAY,EACjB9L,KAAKo/E,WAAY,EAGZ6E,GAAajkF,KAAKqgF,mBAEnBrgF,KAAKqgF,kBAAmB,EACxBrgF,KAAKu/E,YAAYv8C,YAGrBhjC,KAAKw/E,eAAex8C,WAEpBhjC,KAAKE,KAAKiiC,MAAMgB,eAEhBnjC,KAAKi/B,UAaTilD,cAAe,SAAUvmB,EAAMwmB,GAEN16E,SAAjB06E,IAA8BA,EAAe,IAEjDxmB,EAAKwjB,QAAS,EACdxjB,EAAKsE,QAAUkiB,EAEXA,IAEAxmB,EAAKwmB,aAAeA,EAEpBzxE,QAAQ2d,KAAK,mBAAqBstC,EAAK5oD,KAAO,IAAM4oD,EAAKjpD,IAAM,MAAayvE,IAIhFnkF,KAAKwjF,oBAWTO,YAAa,SAAUjC,GAEnB,GAAIsC,GAAWtC,EAAKlxE,KAAKkxE,EAAKptE,IAE9B,KAAK0vE,EAGD,WADA1xE,SAAQ2d,KAAK,mBAAqByxD,EAAKptE,IAAM,wCAIjD,KAAK,GAAIzR,GAAI,EAAGA,EAAImhF,EAASlhF,OAAQD,IACrC,CACI,GAAI06D,GAAOymB,EAASnhF,EAEpB,QAAQ06D,EAAK5oD,MAET,IAAK,QACD/U,KAAK4pB,MAAM+zC,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK8jB,UACpC,MAEJ,KAAK,OACDzhF,KAAKg3D,KAAK2G,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK8jB,UACnC,MAEJ,KAAK,OACDzhF,KAAKg3E,KAAKrZ,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK8jB,UACnC,MAEJ,KAAK,MACDzhF,KAAK23E,IAAIha,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK8jB,UAClC,MAEJ,KAAK,SACDzhF,KAAKiiF,OAAOtkB,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAKtuB,SAAUyyC,EAAKv/C,iBAAmBviC,KACvE,MAEJ,KAAK,SACDA,KAAKi4E,OAAOta,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAKtuB,SAAUyyC,EAAKv/C,iBAAmBviC,KACvE,MAEJ,KAAK,cACDA,KAAKkiF,YAAYvkB,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK6Y,WAAY7Y,EAAK8Y,YAAa9Y,EAAK+Y,SAAU/Y,EAAKgZ,OAAQhZ,EAAKiZ,QACzG,MAEJ,KAAK,QACD52E,KAAK84D,MAAM6E,EAAKjpD,IAAKipD,EAAKqkB,KAC1B,MAEJ,KAAK,QACDhiF,KAAKy2D,MAAMkH,EAAKjpD,IAAKipD,EAAKqkB,KAAMrkB,EAAKwkB,WACrC,MAEJ,KAAK,cACDniF,KAAKuiF,YAAY5kB,EAAKjpD,IAAKipD,EAAKqkB,KAAMrkB,EAAK0kB,QAAS1kB,EAAK2kB,SAAU3kB,EAAKwkB,WACxE,MAEJ,KAAK,UACDniF,KAAKu4D,QAAQoF,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAM0X,EAAOowC,QAAQiF,EAAKxnD,QAChE,MAEJ,KAAK,UACDnW,KAAK6/B,QAAQ89B,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAM0X,EAAOisB,OAAOopB,EAAKxnD,QAC/D,MAEJ,KAAK,aACDnW,KAAKk4E,WAAWva,EAAKjpD,IAAKipD,EAAKklB,WAAYllB,EAAKmlB,SAAUnlB,EAAK0c,UAAW1c,EAAK1F,SAAU0F,EAAKzF,SAC9F,MAEJ,KAAK,iBACDl4D,KAAKgjF,eAAerlB,EAAKjpD,IAAKipD,EAAKklB,WAAYllB,EAAKmlB,SAAUnlB,EAAK0c,UACnE,MAEJ,KAAK,gBACDr6E,KAAKijF,cAActlB,EAAKjpD,IAAKipD,EAAKklB,WAAYllB,EAAKmlB,SAAUnlB,EAAK0c,UAClE,MAEJ,KAAK,WACDr6E,KAAKkjF,SAASvlB,EAAKjpD,IAAKipD,EAAKklB,WAAYllB,EAAKmlB,SAAUnlB,EAAK0c,UAC7D,MAEJ,KAAK,QACDr6E,KAAKk/E,MAAMvhB,EAAKjpD,IAAKipD,EAAKklB,WAAYllB,EAAKmlB,SAAUnlB,EAAK0c,UAAW/xD,EAAOisB,OAAOopB,EAAKxnD,QACxF,MAEJ,KAAK,SACDnW,KAAK4L,OAAO+xD,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK8jB,cAkBrD4C,aAAc,SAAUtrB,EAAK4E,GAEzB,MAAK5E,GAKDA,EAAI6I,MAAM,8CAEH7I,EAIA/4D,KAAKm/E,QAAUxhB,EAAK2hB,KAAOvmB,GAT3B,GAuBfirB,SAAU,SAAUrmB,GAGhB,OAAQA,EAAK5oD,MAET,IAAK,WACD/U,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,OAAQ39D,KAAKukF,aACnE,MAEJ,KAAK,QACL,IAAK,cACL,IAAK,eACL,IAAK,aACDvkF,KAAKwkF,aAAa7mB,EAClB,MAEJ,KAAK,QACDA,EAAK5E,IAAM/4D,KAAKykF,YAAY9mB,EAAK5E,KAE7B4E,EAAK5E,IAGD/4D,KAAKE,KAAKu/B,MAAMilD,cAEhB1kF,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,cAAe39D,KAAKukF,cAErEvkF,KAAKE,KAAKu/B,MAAMklD,eAErB3kF,KAAK4kF,aAAajnB,GAKtB39D,KAAK6kF,UAAUlnB,EAAM,KAAM,kFAE/B,MAEJ,KAAK,QACDA,EAAK5E,IAAM/4D,KAAK8kF,YAAYnnB,EAAK5E,KAE7B4E,EAAK5E,IAED4E,EAAK8kB,OAELziF,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,cAAe39D,KAAKukF,cAI1EvkF,KAAK+kF,aAAapnB,GAKtB39D,KAAK6kF,UAAUlnB,EAAM,KAAM,kFAE/B,MAEJ,KAAK,OAED39D,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,OAAQ39D,KAAKglF,iBACnE,MAEJ,KAAK,MAEDhlF,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,OAAQ39D,KAAKilF,gBACnE,MAEJ,KAAK,UAEGtnB,EAAKxnD,SAAWmS,EAAOowC,QAAQiqB,WAE/B3iF,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,OAAQ39D,KAAKglF,kBAE9DrnB,EAAKxnD,SAAWmS,EAAOowC,QAAQgqB,IAEpC1iF,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,OAAQ39D,KAAKklF,iBAInEllF,KAAKkkF,cAAcvmB,EAAM,2BAA6BA,EAAKxnD,OAE/D,MAEJ,KAAK,OACL,IAAK,SACL,IAAK,SACL,IAAK,UACDnW,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,OAAQ39D,KAAKukF,aACnE,MAEJ,KAAK,SACDvkF,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAAO,cAAe39D,KAAKukF,gBAUtFC,aAAc,SAAU7mB,GAEpB,GAAI/3B,GAAQ5lC,IAEZ29D,GAAK/sD,KAAO,GAAIP,OAChBstD,EAAK/sD,KAAK6hB,KAAOkrC,EAAKjpD,IAElB1U,KAAK6pB,cAEL8zC,EAAK/sD,KAAKiZ,YAAc7pB,KAAK6pB,aAGjC8zC,EAAK/sD,KAAKu0E,OAAS,WACXxnB,EAAK/sD,KAAKu0E,SAEVxnB,EAAK/sD,KAAKu0E,OAAS,KACnBxnB,EAAK/sD,KAAKw0E,QAAU,KACpBx/C,EAAM2+C,aAAa5mB,KAI3BA,EAAK/sD,KAAKw0E,QAAU,WACZznB,EAAK/sD,KAAKu0E,SAEVxnB,EAAK/sD,KAAKu0E,OAAS,KACnBxnB,EAAK/sD,KAAKw0E,QAAU,KACpBx/C,EAAMi/C,UAAUlnB,KAIxBA,EAAK/sD,KAAKN,IAAMtQ,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAGxCA,EAAK/sD,KAAKsY,UAAYy0C,EAAK/sD,KAAKjK,OAASg3D,EAAK/sD,KAAKhK,SAEnD+2D,EAAK/sD,KAAKu0E,OAAS,KACnBxnB,EAAK/sD,KAAKw0E,QAAU,KACpBplF,KAAKukF,aAAa5mB,KAS1BonB,aAAc,SAAUpnB,GAEpB,GAAI/3B,GAAQ5lC,IAEZ29D,GAAK/sD,KAAOX,SAASoB,cAAc,SACnCssD,EAAK/sD,KAAK6hB,KAAOkrC,EAAKjpD,IACtBipD,EAAK/sD,KAAKy0E,UAAW,EACrB1nB,EAAK/sD,KAAK00E,UAAW,CAErB,IAAIC,GAAiB,WAEjB5nB,EAAK/sD,KAAKq6B,oBAAoB0yB,EAAK6kB,UAAW+C,GAAgB,GAC9D5nB,EAAK/sD,KAAKw0E,QAAU,KACpBznB,EAAK/sD,KAAK40E,SAAU,EACpBl9D,EAAOkE,MAAMoZ,EAAM1lC,KAAK0V,IAAI2pB,KAAKglD,aAAa5mB,GAIlDA,GAAK/sD,KAAKw0E,QAAU,WAChBznB,EAAK/sD,KAAKq6B,oBAAoB0yB,EAAK6kB,UAAW+C,GAAgB,GAC9D5nB,EAAK/sD,KAAKw0E,QAAU,KACpBznB,EAAK/sD,KAAK40E,SAAU,EACpB5/C,EAAMi/C,UAAUlnB,IAGpBA,EAAK/sD,KAAKm5B,iBAAiB4zB,EAAK6kB,UAAW+C,GAAgB,GAE3D5nB,EAAK/sD,KAAKN,IAAMtQ,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAC5CA,EAAK/sD,KAAK2uB,QAQdqlD,aAAc,SAAUjnB,GAEpB,GAAI/3B,GAAQ5lC,IAEZ,IAAIA,KAAKE,KAAKu/B,MAAMm6C,YAGhBjc,EAAK/sD,KAAO,GAAI60E,OAChB9nB,EAAK/sD,KAAK6hB,KAAOkrC,EAAKjpD,IACtBipD,EAAK/sD,KAAKmvB,QAAU,OACpB49B,EAAK/sD,KAAKN,IAAMtQ,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAE5C39D,KAAKukF,aAAa5mB,OAGtB,CACIA,EAAK/sD,KAAO,GAAI60E,OAChB9nB,EAAK/sD,KAAK6hB,KAAOkrC,EAAKjpD,GAEtB,IAAIgxE,GAAmB,WACnB/nB,EAAK/sD,KAAKq6B,oBAAoB,iBAAkBy6C,GAAkB,GAClE/nB,EAAK/sD,KAAKw0E,QAAU,KAEpB98D,EAAOkE,MAAMoZ,EAAM1lC,KAAK0V,IAAI2pB,KAAKglD,aAAa5mB,GAElDA,GAAK/sD,KAAKw0E,QAAU,WAChBznB,EAAK/sD,KAAKq6B,oBAAoB,iBAAkBy6C,GAAkB,GAClE/nB,EAAK/sD,KAAKw0E,QAAU,KACpBx/C,EAAMi/C,UAAUlnB,IAGpBA,EAAK/sD,KAAKmvB,QAAU,OACpB49B,EAAK/sD,KAAKN,IAAMtQ,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GAC5CA,EAAK/sD,KAAKm5B,iBAAiB,iBAAkB27C,GAAkB,GAC/D/nB,EAAK/sD,KAAK2uB,SAkBlB+kD,QAAS,SAAU3mB,EAAM5E,EAAKhkD,EAAMowE,EAAQC,GAExC,GAAIplF,KAAK6/E,mBAAqBptE,OAAOkzE,eAGjC,WADA3lF,MAAK4lF,eAAejoB,EAAM5E,EAAKhkD,EAAMowE,EAAQC,EAIjD,IAAIS,GAAM,GAAIC,eACdD,GAAIE,KAAK,MAAOhtB,GAAK,GACrB8sB,EAAIG,aAAejxE,EAEnBqwE,EAAUA,GAAWplF,KAAK6kF,SAE1B,IAAIj/C,GAAQ5lC,IAEZ6lF,GAAIV,OAAS,WAET,IACI,MAAsB,IAAlBU,EAAIzkB,YAAmBykB,EAAII,QAAU,KAAOJ,EAAII,QAAU,IACnDb,EAAQ1/E,KAAKkgC,EAAO+3B,EAAMkoB,GAG1BV,EAAOz/E,KAAKkgC,EAAO+3B,EAAMkoB,GAEtC,MAAOvzD,GAKAsT,EAAM95B,UAMH2G,OAAgB,SAEhBC,QAAQuvD,MAAM3vC,GANlBsT,EAAMs+C,cAAcvmB,EAAMrrC,EAAE4zD,SAAW,eAYnDL,EAAIT,QAAU,WAEV,IAEI,MAAOA,GAAQ1/E,KAAKkgC,EAAO+3B,EAAMkoB,GAEnC,MAAOvzD,GAEAsT,EAAM95B,UAMH2G,OAAgB,SAEhBC,QAAQuvD,MAAM3vC,GANlBsT,EAAMs+C,cAAcvmB,EAAMrrC,EAAE4zD,SAAW,eAanDvoB,EAAKgmB,cAAgBkC,EACrBloB,EAAK+lB,WAAa3qB,EAElB8sB,EAAIM,QAmBRP,eAAgB,SAAUjoB,EAAM5E,EAAKhkD,EAAMowE,EAAQC,GAG1CplF,KAAK8/E,4BACJ9/E,KAAKE,KAAKkqC,OAAOq0B,MAAMz+D,KAAKE,KAAKkqC,OAAOs0B,WAAa,MAEvD1+D,KAAK8/E,4BAA6B,EAClCptE,QAAQ2d,KAAK,wDAIjB,IAAIw1D,GAAM,GAAIpzE,QAAOkzE,cACrBE,GAAIE,KAAK,MAAOhtB,GAAK,GACrB8sB,EAAIG,aAAejxE,EAKnB8wE,EAAIO,QAAU,IAEdhB,EAAUA,GAAWplF,KAAK6kF,SAE1B,IAAIj/C,GAAQ5lC,IAEZ6lF,GAAIT,QAAU,WACV,IACI,MAAOA,GAAQ1/E,KAAKkgC,EAAO+3B,EAAMkoB,GACnC,MAAOvzD,GACLsT,EAAMs+C,cAAcvmB,EAAMrrC,EAAE4zD,SAAW,eAI/CL,EAAIQ,UAAY,WACZ,IACI,MAAOjB,GAAQ1/E,KAAKkgC,EAAO+3B,EAAMkoB,GACnC,MAAOvzD,GACLsT,EAAMs+C,cAAcvmB,EAAMrrC,EAAE4zD,SAAW,eAI/CL,EAAIS,WAAa,aAEjBT,EAAIV,OAAS,WACT,IACI,MAAsB,IAAlBU,EAAIzkB,YAAmBykB,EAAII,QAAU,KAAOJ,EAAII,QAAU,IACnDb,EAAQ1/E,KAAKkgC,EAAO+3B,EAAMkoB,GAG1BV,EAAOz/E,KAAKkgC,EAAO+3B,EAAMkoB,GAGtC,MAAOvzD,GACLsT,EAAMs+C,cAAcvmB,EAAMrrC,EAAE4zD,SAAW,eAI/CvoB,EAAKgmB,cAAgBkC,EACrBloB,EAAK+lB,WAAa3qB,EAIlBsI,WAAW,WACPwkB,EAAIM,QACL,IAcPrB,YAAa,SAAU9C,GAEnB,IAAK,GAAI/+E,GAAI,EAAGA,EAAI++E,EAAK9+E,OAAQD,IACjC,CACI,GACIsjF,GADAxtB,EAAMipB,EAAK/+E,EAGf,IAAI81D,EAAIytB,KAKJ,GAHAD,EAAYxtB,EAAIhkD,KAChBgkD,EAAMA,EAAIytB,IAENxmF,KAAKE,KAAKkqC,OAAOu7B,aAAa4gB,GAE9B,MAAOxtB,OAIf,CAEI,GAA6B,IAAzBA,EAAI5vD,QAAQ,UAA2C,IAAzB4vD,EAAI5vD,QAAQ,SAE1C,MAAO4vD,EAGPA,GAAI5vD,QAAQ,MAAQ,IAEpB4vD,EAAMA,EAAIvxC,OAAO,EAAGuxC,EAAI5vD,QAAQ,MAGpC,IAAIu4E,GAAY3oB,EAAIvxC,QAAQ3mB,KAAK+G,IAAI,EAAGmxD,EAAI0tB,YAAY,OAASn8E,EAAAA,GAAY,EAI7E,IAFAi8E,EAAY7E,EAAUh9B,cAElB1kD,KAAKE,KAAKkqC,OAAOu7B,aAAa4gB,GAE9B,MAAOvE,GAAK/+E,IAKxB,MAAO,OAcXwhF,YAAa,SAAUzC,GAEnB,GAAIhiF,KAAKE,KAAKu/B,MAAM2iD,QAEhB,MAAO,KAGX,KAAK,GAAIn/E,GAAI,EAAGA,EAAI++E,EAAK9+E,OAAQD,IACjC,CACI,GACIyjF,GADA3tB,EAAMipB,EAAK/+E,EAGf,IAAI81D,EAAIytB,KAKJ,GAHAE,EAAY3tB,EAAIhkD,KAChBgkD,EAAMA,EAAIytB,IAENxmF,KAAKE,KAAKkqC,OAAOs7B,aAAaghB,GAE9B,MAAO3tB,OAIf,CAEI,GAA6B,IAAzBA,EAAI5vD,QAAQ,UAA2C,IAAzB4vD,EAAI5vD,QAAQ,SAE1C,MAAO4vD,EAGPA,GAAI5vD,QAAQ,MAAQ,IAEpB4vD,EAAMA,EAAIvxC,OAAO,EAAGuxC,EAAI5vD,QAAQ,MAGpC,IAAIu4E,GAAY3oB,EAAIvxC,QAAQ3mB,KAAK+G,IAAI,EAAGmxD,EAAI0tB,YAAY,OAASn8E,EAAAA,GAAY,EAI7E,IAFAo8E,EAAYhF,EAAUh9B,cAElB1kD,KAAKE,KAAKkqC,OAAOs7B,aAAaghB,GAE9B,MAAO1E,GAAK/+E,IAKxB,MAAO,OAaX4hF,UAAW,SAAUlnB,EAAMkoB,EAAKc,GAE5B,GAAI5tB,GAAM4E,EAAK+lB,YAAc1jF,KAAKqkF,aAAa1mB,EAAK5E,IAAK4E,GACrDuoB,EAAU,gCAAkCntB,GAE3C4tB,GAAUd,IAEXc,EAASd,EAAII,QAGbU,IAEAT,EAAUA,EAAU,KAAOS,EAAS,KAGxC3mF,KAAKkkF,cAAcvmB,EAAMuoB,IAY7B3B,aAAc,SAAU5mB,EAAMkoB,GAE1B,GAAIe,IAAW,CAEf,QAAQjpB,EAAK5oD,MAET,IAAK,WAGD,GAAInE,GAAOioE,KAAKh+C,MAAMgrD,EAAIgB,aAC1BlpB,GAAK/sD,KAAOA,KACZ,MAEJ,KAAK,QAED5Q,KAAKq/B,MAAM+5C,SAASzb,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAC7C,MAEJ,KAAK,cAED5Q,KAAKq/B,MAAM07C,eAAepd,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAM+sD,EAAK6Y,WAAY7Y,EAAK8Y,YAAa9Y,EAAK+Y,SAAU/Y,EAAKgZ,OAAQhZ,EAAKiZ,QAC7H,MAEJ,KAAK,eAED,GAAqB,MAAjBjZ,EAAKmlB,SAEL9iF,KAAKq/B,MAAM27C,gBAAgBrd,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAM+sD,EAAK0c,UAAW1c,EAAKxnD,YAO/E,IAFAywE,GAAW,EAEPjpB,EAAKxnD,QAAUmS,EAAOisB,OAAOmsC,0BAA4B/iB,EAAKxnD,QAAUmS,EAAOisB,OAAOosC,yBAA2BhjB,EAAKxnD,QAAUmS,EAAOisB,OAAO2mC,yBAE9Il7E,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAKmlB,SAAUnlB,GAAO,OAAQ39D,KAAKglF,sBAEvE,CAAA,GAAIrnB,EAAKxnD,QAAUmS,EAAOisB,OAAO0mC,2BAMlC,KAAM,IAAIpyE,OAAM,gDAAkD80D,EAAKxnD,OAJvEnW,MAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAKmlB,SAAUnlB,GAAO,OAAQ39D,KAAKilF,iBAOhF,KAEJ,KAAK,aAEItnB,EAAKmlB,UAON8D,GAAW,EACX5mF,KAAKskF,QAAQ3mB,EAAM39D,KAAKqkF,aAAa1mB,EAAKmlB,SAAUnlB,GAAO,OAAQ,SAAUA,EAAMkoB,GAC/E,GAAI7O,EAEJ,KAGIA,EAAO6B,KAAKh+C,MAAMgrD,EAAIgB,cAE1B,MAAOv0D,IAED0kD,GAEFrZ,EAAK2c,UAAY,OACjBt6E,KAAKglF,iBAAiBrnB,EAAMkoB,KAI5BloB,EAAK2c,UAAY,MACjBt6E,KAAKilF,gBAAgBtnB,EAAMkoB,OAxBnC7lF,KAAKq/B,MAAM+6C,cAAczc,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAM+sD,EAAK0c,UAAW1c,EAAK2c,UAAW3c,EAAK1F,SAAU0F,EAAKzF,SA4BhH,MAEJ,KAAK,QAED,GAAIyF,EAAK8kB,OAEL,IAEI9kB,EAAK/sD,KAAO,GAAIk2E,OAAM,GAAIp7D,YAAWm6D,EAAIkB,YAE7C,MAAOz0D,GAEH,KAAM,IAAIzpB,OAAM,sDAAwD80D,EAAKjpD,KAIrF1U,KAAKq/B,MAAMu7C,SAASjd,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAM+sD,EAAK8kB,OACxD,MAEJ,KAAK,QAEGziF,KAAKE,KAAKu/B,MAAMilD,eAEhB/mB,EAAK/sD,KAAOi1E,EAAIkB,SAEhB/mF,KAAKq/B,MAAMm6C,SAAS7b,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,MAAM,GAAM,GAErD+sD,EAAKwkB,YAELniF,KAAKE,KAAKu/B,MAAMunD,OAAOrpB,EAAKjpD,MAKhC1U,KAAKq/B,MAAMm6C,SAAS7b,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,MAAM,GAAO,EAE9D,MAEJ,KAAK,OACD+sD,EAAK/sD,KAAOi1E,EAAIgB,aAChB7mF,KAAKq/B,MAAMw6C,QAAQlc,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAC5C,MAEJ,KAAK,SACD+sD,EAAK/sD,KAAOi1E,EAAIgB,aAChB7mF,KAAKq/B,MAAMy7C,UAAUnd,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAC9C,MAEJ,KAAK,UACD,GAAIA,GAAOioE,KAAKh+C,MAAMgrD,EAAIgB,aAC1B7mF,MAAKq/B,MAAMy6C,eAAenc,EAAKjpD,IAAKipD,EAAK5E,IAAKnoD,EAAM+sD,EAAKxnD,OACzD,MAEJ,KAAK,SACDwnD,EAAK/sD,KAAOX,SAASoB,cAAc,UACnCssD,EAAK/sD,KAAKq2E,SAAW,aACrBtpB,EAAK/sD,KAAKmE,KAAO,kBACjB4oD,EAAK/sD,KAAKs2E,OAAQ,EAClBvpB,EAAK/sD,KAAKomD,KAAO6uB,EAAIgB,aACrB52E,SAASk3E,KAAK3gB,YAAY7I,EAAK/sD,MAC3B+sD,EAAKtuB,WAELsuB,EAAK/sD,KAAO+sD,EAAKtuB,SAAS3pC,KAAKi4D,EAAKp7B,gBAAiBo7B,EAAKjpD,IAAKmxE,EAAIgB,cAEvE,MAEJ,KAAK,SACGlpB,EAAKtuB,SAELsuB,EAAK/sD,KAAO+sD,EAAKtuB,SAAS3pC,KAAKi4D,EAAKp7B,gBAAiBo7B,EAAKjpD,IAAKmxE,EAAIkB,UAInEppB,EAAK/sD,KAAOi1E,EAAIkB,SAGpB/mF,KAAKq/B,MAAM46C,UAAUtc,EAAKjpD,IAAKipD,EAAK/sD,MAKxCg2E,GAEA5mF,KAAKkkF,cAAcvmB,IAa3BqnB,iBAAkB,SAAUrnB,EAAMkoB,GAE9B,GAAIj1E,GAAOioE,KAAKh+C,MAAMgrD,EAAIgB,aAER,aAAdlpB,EAAK5oD,KAEL/U,KAAKq/B,MAAM06C,WAAWpc,EAAKjpD,IAAKipD,EAAK5E,IAAKnoD,EAAM+sD,EAAKxnD,QAElC,eAAdwnD,EAAK5oD,KAEV/U,KAAKq/B,MAAM+6C,cAAczc,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAMA,EAAM+sD,EAAK2c,UAAW3c,EAAK1F,SAAU0F,EAAKzF,UAE/E,SAAdyF,EAAK5oD,KAEV/U,KAAKq/B,MAAMq7C,QAAQ/c,EAAKjpD,IAAKipD,EAAK5E,IAAKnoD,GAIvC5Q,KAAKq/B,MAAM27C,gBAAgBrd,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAMA,EAAM+sD,EAAKxnD,QAGzEnW,KAAKkkF,cAAcvmB,IAWvBunB,gBAAiB,SAAUvnB,EAAMkoB,GAE7B,GAAIj1E,GAAOi1E,EAAIgB,YAEf7mF,MAAKq/B,MAAM06C,WAAWpc,EAAKjpD,IAAKipD,EAAK5E,IAAKnoD,EAAM+sD,EAAKxnD,QAErDnW,KAAKkkF,cAAcvmB,IAYvBsnB,gBAAiB,SAAUtnB,EAAMkoB,GAG7B,GAAIj1E,GAAOi1E,EAAIgB,aACXlP,EAAM33E,KAAK+iF,SAASnyE,EAExB,KAAK+mE,EACL,CACI,GAAIqO,GAAeH,EAAIG,cAAgBH,EAAIuB,WAG3C,OAFA10E,SAAQ2d,KAAK,mBAAqBstC,EAAKjpD,IAAM,kBAAoBsxE,EAAe,SAChFhmF,MAAKkkF,cAAcvmB,EAAM,eAIX,eAAdA,EAAK5oD,KAEL/U,KAAKq/B,MAAM+6C,cAAczc,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAM+mE,EAAKha,EAAK2c,UAAW3c,EAAK1F,SAAU0F,EAAKzF,UAE9E,iBAAdyF,EAAK5oD,KAEV/U,KAAKq/B,MAAM27C,gBAAgBrd,EAAKjpD,IAAKipD,EAAK5E,IAAK4E,EAAK/sD,KAAM+mE,EAAKha,EAAKxnD,QAEjD,QAAdwnD,EAAK5oD,MAEV/U,KAAKq/B,MAAMs7C,OAAOhd,EAAKjpD,IAAKipD,EAAK5E,IAAK4e,GAG1C33E,KAAKkkF,cAAcvmB,IAYvBolB,SAAU,SAAUnyE,GAEhB,GAAI+mE,EAEJ,KAEI,GAAIllE,OAAkB,UACtB,CACI,GAAI40E,GAAY,GAAIC,UACpB3P,GAAM0P,EAAUE,gBAAgB32E,EAAM,gBAItC+mE,GAAM,GAAI6P,eAAc,oBAExB7P,EAAI8P,MAAQ,QACZ9P,EAAI+P,QAAQ92E,GAGpB,MAAO0hB,GAEHqlD,EAAM,KAGV,MAAKA,IAAQA,EAAI9U,kBAAmB8U,EAAIC,qBAAqB,eAAe10E,OAMjEy0E,EAJA,MAiBf4L,eAAgB,WAERvjF,KAAKq/E,gBAEgC,IAAjCr/E,KAAKq/E,cAAc0B,UAEnB/gF,KAAKq/E,cAAclvB,KAAKxpD,MAAQ9F,KAAKouB,MAAOjvB,KAAKq/E,cAAc14E,MAAQ,IAAO3G,KAAK4jF,UAInF5jF,KAAKq/E,cAAclvB,KAAKvpD,OAAS/F,KAAKouB,MAAOjvB,KAAKq/E,cAAcz4E,OAAS,IAAO5G,KAAK4jF,UAGrF5jF,KAAKq/E,cAAcl9D,OAEnBniB,KAAKq/E,cAAcl9D,OAAOiuC,aAK1BpwD,KAAKq/E,cAAgB,OAajCsI,iBAAkB,WAEd,MAAO3nF,MAAKygF,kBAWhBx9C,iBAAkB,WAEd,MAAOjjC,MAAKugF,gBAAkBvgF,KAAKygF,kBAWvCmH,iBAAkB,WAEd,MAAO5nF,MAAKsgF,iBAWhBp9C,iBAAkB,WAEd,MAAOljC,MAAKsgF,gBAAkBtgF,KAAKwgF,mBAe3Cp9E,OAAOC,eAAeilB,EAAOisB,OAAO1xC,UAAW,iBAE3CS,IAAK,WACD,GAAIsgF,GAAY5jF,KAAKygF,iBAAmBzgF,KAAKugF,gBAAmB,GAChE,OAAOj4D,GAAOznB,KAAKu4B,MAAMwqD,GAAY,EAAG,EAAG,QAWnDxgF,OAAOC,eAAeilB,EAAOisB,OAAO1xC,UAAW,YAE3CS,IAAK,WACD,MAAOzC,MAAKuzB,MAAMp0B,KAAK6nF,kBAK/Bv/D,EAAOisB,OAAO1xC,UAAUC,YAAcwlB,EAAOisB,OAa7CjsB,EAAOiyD,cAYHrC,WAAY,SAAUP,EAAK9rE,EAAaosD,EAAUC,GAE9C,MAAOl4D,MAAKy6E,cAAc9C,EAAK9rE,EAAaosD,EAAUC,IAc1DuiB,cAAe,SAAU9C,EAAK9rE,EAAaosD,EAAUC,GAEjD,GAAItnD,MACAk3E,EAAOnQ,EAAIC,qBAAqB,QAAQ,GACxCmQ,EAASpQ,EAAIC,qBAAqB,UAAU,EAEhDhnE,GAAKgnD,KAAOkwB,EAAKE,aAAa,QAC9Bp3E,EAAKoQ,KAAO0Q,SAASo2D,EAAKE,aAAa,QAAS,IAChDp3E,EAAKq3E,WAAav2D,SAASq2D,EAAOC,aAAa,cAAe,IAAM9vB,EACpEtnD,EAAKmnD,QAIL,KAAK,GAFDmwB,GAAUvQ,EAAIC,qBAAqB,QAE9B30E,EAAI,EAAGA,EAAIilF,EAAQhlF,OAAQD,IACpC,CACI,GAAIklF,GAAWz2D,SAASw2D,EAAQjlF,GAAG+kF,aAAa,MAAO,GAEvDp3E,GAAKmnD,MAAMowB,IACP9iF,EAAGqsB,SAASw2D,EAAQjlF,GAAG+kF,aAAa,KAAM,IAC1C1iF,EAAGosB,SAASw2D,EAAQjlF,GAAG+kF,aAAa,KAAM,IAC1CrhF,MAAO+qB,SAASw2D,EAAQjlF,GAAG+kF,aAAa,SAAU,IAClDphF,OAAQ8qB,SAASw2D,EAAQjlF,GAAG+kF,aAAa,UAAW,IACpD7vB,QAASzmC,SAASw2D,EAAQjlF,GAAG+kF,aAAa,WAAY,IACtD5vB,QAAS1mC,SAASw2D,EAAQjlF,GAAG+kF,aAAa,WAAY,IACtDI,SAAU12D,SAASw2D,EAAQjlF,GAAG+kF,aAAa,YAAa,IAAM/vB,EAC9DowB,YAIR,GAAIC,GAAW3Q,EAAIC,qBAAqB,UAExC,KAAK30E,EAAI,EAAGA,EAAIqlF,EAASplF,OAAQD,IACjC,CACI,GAAIyiD,GAAQh0B,SAAS42D,EAASrlF,GAAG+kF,aAAa,SAAU,IACpDO,EAAS72D,SAAS42D,EAASrlF,GAAG+kF,aAAa,UAAW,IACtDh5C,EAAStd,SAAS42D,EAASrlF,GAAG+kF,aAAa,UAAW,GAE1Dp3E,GAAKmnD,MAAMwwB,GAAQF,QAAQ3iC,GAAS1W,EAGxC,MAAOhvC,MAAKwoF,mBAAmB38E,EAAa+E,IAchD4pE,eAAgB,SAAUxD,EAAMnrE,EAAaosD,EAAUC,GAEnD,GAAItnD,IACAgnD,KAAMof,EAAKpf,KAAKkwB,KAAKW,MACrBznE,KAAM0Q,SAASslD,EAAKpf,KAAKkwB,KAAKY,MAAO,IACrCT,WAAYv2D,SAASslD,EAAKpf,KAAKmwB,OAAOY,YAAa,IAAMzwB,EACzDH,SAqCJ,OAlCAif,GAAKpf,KAAKG,MAAM,QAAQhoC,QAEpB,SAAmB64D,GAEf,GAAIT,GAAWz2D,SAASk3D,EAAOC,IAAK,GAEpCj4E,GAAKmnD,MAAMowB,IACP9iF,EAAGqsB,SAASk3D,EAAOhvC,GAAI,IACvBt0C,EAAGosB,SAASk3D,EAAO/uC,GAAI,IACvBlzC,MAAO+qB,SAASk3D,EAAOvgF,OAAQ,IAC/BzB,OAAQ8qB,SAASk3D,EAAOtgF,QAAS,IACjC6vD,QAASzmC,SAASk3D,EAAOE,SAAU,IACnC1wB,QAAS1mC,SAASk3D,EAAOG,SAAU,IACnCX,SAAU12D,SAASk3D,EAAOI,UAAW,IAAM/wB,EAC3CowB,cAMRrR,EAAKpf,KAAK0wB,UAAYtR,EAAKpf,KAAK0wB,SAASD,SAEzCrR,EAAKpf,KAAK0wB,SAASD,QAAQt4D,QAEvB,SAAsBs4D,GAElBz3E,EAAKmnD,MAAMswB,EAAQY,SAASZ,QAAQA,EAAQa,QAAUx3D,SAAS22D,EAAQc,QAAS,MAQrFnpF,KAAKwoF,mBAAmB38E,EAAa+E,IAahD43E,mBAAoB,SAAU38E,EAAau9E,GAcvC,MAZAhmF,QAAO8vB,KAAKk2D,EAAerxB,OAAOhoC,QAE9B,SAAoBo4D,GAEhB,GAAIS,GAASQ,EAAerxB,MAAMowB,EAElCS,GAAO9gF,QAAU,GAAI7H,MAAKsL,QAAQM,EAAa,GAAIyc,GAAO9lB,UAAUomF,EAAOvjF,EAAGujF,EAAOtjF,EAAGsjF,EAAOjiF,MAAOiiF,EAAOhiF,WAM9GwiF,IAgBf9gE,EAAOqsB,aAAe,aAEtBrsB,EAAOqsB,aAAa9xC,UAAUi/B,KAAO,aACrCxZ,EAAOqsB,aAAa9xC,UAAU+7B,OAAS,aACvCtW,EAAOqsB,aAAa9xC,UAAUE,QAAU,aACxCulB,EAAOqsB,aAAa9xC,UAAU8zC,QAAU,aACxCruB,EAAOqsB,aAAa9xC,UAAUi0C,UAAY,aAE1CxuB,EAAOqsB,aAAa9xC,UAAUC,YAAcwlB,EAAOqsB,aA+CnDrsB,EAAO4rB,aAAe,SAAUh0C,EAAMyG,EAAOC,GAQzC5G,KAAKE,KAAOA,EAQZF,KAAKqpF,IAAM/gE,EAAO8gB,IAOlBppC,KAAKutD,KAAO,KAOZvtD,KAAK2G,MAAQ,EAOb3G,KAAK4G,OAAS,EASd5G,KAAKspF,SAAW,KAUhBtpF,KAAKupF,SAAW,KAShBvpF,KAAKwpF,UAAY,KAUjBxpF,KAAKypF,UAAY,KASjBzpF,KAAKqZ,OAAS,GAAIiP,GAAOlnB,MAUzBpB,KAAK0pF,gBAAiB,EAUtB1pF,KAAK2pF,eAAgB,EAWrB3pF,KAAK4pF,sBAAuB,EAO5B5pF,KAAK6pF,wBAAyB,EAO9B7pF,KAAK8pF,sBAAuB,EA0B5B9pF,KAAK+pF,oBAAsB,GAAIzhE,GAAO0Y,OAUtChhC,KAAKgqF,0BAA4B,GAAI1hE,GAAO0Y,OAU5ChhC,KAAKiqF,0BAA4B,GAAI3hE,GAAO0Y,OAe5ChhC,KAAKkqF,iBAAmB,KAQxBlqF,KAAKmqF,yBAA2B,KAuBhCnqF,KAAKoqF,iBAAmB,GAAI9hE,GAAO0Y,OAWnChhC,KAAKqqF,mBAAqB,GAAI/hE,GAAO0Y,OAWrChhC,KAAKsqF,kBAAoB,GAAIhiE,GAAO0Y,OAUpChhC,KAAKuqF,kBAAoBvqF,KAAKqpF,IAAImB,uBAOlCxqF,KAAKmsB,YAAc,GAAI7D,GAAOlnB,MAAM,EAAG,GAQvCpB,KAAKyqF,oBAAsB,GAAIniE,GAAOlnB,MAAM,EAAG,GAS/CpB,KAAK22E,QAAUzkD,KAAM,EAAG0C,IAAK,EAAG3C,MAAO,EAAG4C,OAAQ,EAAGxvB,EAAG,EAAGC,EAAG,GAO9DtF,KAAKwG,OAAS,GAAI8hB,GAAO9lB,UAOzBxC,KAAK0qF,YAAc,EAOnB1qF,KAAK2qF,kBAAoB,EAQzB3qF,KAAK6pC,MAAQ,KAeb7pC,KAAK4qF,mBACD34D,MAAO,SACP4C,OAAQ,IA6BZ70B,KAAK6qF,eACDC,oBAAoB,EACpBC,oBAAqB,KACrBC,WAAW,EACXC,SAAU,KACVC,4BAA4B,EAC5BC,iBAAiB,EACjBC,gBAAiB,IAQrBprF,KAAKqrF,WAAa/iE,EAAO4rB,aAAao3C,SAOtCtrF,KAAKurF,qBAAuBjjE,EAAO4rB,aAAao3C,SAUhDtrF,KAAKwrF,gBAAiB,EAUtBxrF,KAAKymE,WAAa,KAOlBzmE,KAAKyrF,kBAAoB,GAAInjE,GAAOlnB,MAAM,EAAG,GAW7CpB,KAAK0rF,oBAAsB,IAiB3B1rF,KAAK2rF,aAAe,GAAIrjE,GAAO0Y,OAO/BhhC,KAAK4rF,SAAW,KAOhB5rF,KAAK6rF,gBAAkB,KAMvB7rF,KAAK8rF,kBAAoB,KAOzB9rF,KAAK+rF,mBAAqB,KAO1B/rF,KAAKgsF,UAAY,GAAI1jE,GAAO9lB,UAO5BxC,KAAKisF,iBAAmB,GAAI3jE,GAAOlnB,MAAM,EAAG,GAO5CpB,KAAKksF,eAAiB,GAAI5jE,GAAOlnB,MAAM,EAAG,GAO1CpB,KAAKmsF,YAAc,EASnBnsF,KAAKosF,gBAAkB,EAOvBpsF,KAAKqsF,qBAAuB,IAO5BrsF,KAAKssF,cAAgB,GAAIhkE,GAAO9lB,UAOhCxC,KAAKusF,YAAc,GAAIjkE,GAAO9lB,UAO9BxC,KAAKwsF,wBAA0B,GAAIlkE,GAAO9lB,UAO1CxC,KAAKysF,sBAAwB,GAAInkE,GAAO9lB,UAMxCxC,KAAK0sF,SAAU,EAEXxsF,EAAK+oC,QAELjpC,KAAKkpC,YAAYhpC,EAAK+oC,QAG1BjpC,KAAK2sF,WAAWhmF,EAAOC,IAU3B0hB,EAAO4rB,aAAa04C,UAAY,EAQhCtkE,EAAO4rB,aAAao3C,SAAW,EAQ/BhjE,EAAO4rB,aAAa24C,SAAW,EAQ/BvkE,EAAO4rB,aAAa44C,OAAS,EAQ7BxkE,EAAO4rB,aAAa64C,WAAa,EAEjCzkE,EAAO4rB,aAAarxC,WAQhBi/B,KAAM,WAIF,GAAIkrD,GAAShtF,KAAK6qF,aAElBmC,GAAOlC,mBAAqB9qF,KAAKE,KAAKkqC,OAAOs2B,aAAe1gE,KAAKE,KAAKkqC,OAAOsL,SAGxE11C,KAAKE,KAAKkqC,OAAOi2B,MAASrgE,KAAKE,KAAKkqC,OAAO+0B,QAAWn/D,KAAKE,KAAKkqC,OAAO0yB,UAEpE98D,KAAKE,KAAKkqC,OAAO6T,UAAYj+C,KAAKE,KAAKkqC,OAAOmL,OAE9Cy3C,EAAO/B,SAAW,GAAI3iE,GAAOlnB,MAAM,EAAG,GAItC4rF,EAAO/B,SAAW,GAAI3iE,GAAOlnB,MAAM,EAAG,IAI1CpB,KAAKE,KAAKkqC,OAAO0yB,SAEjBkwB,EAAOjC,oBAAsB,SAC7BiC,EAAO5B,gBAAkB,mBAIzB4B,EAAOjC,oBAAsB,GAC7BiC,EAAO5B,gBAAkB,GAK7B,IAAIxlD,GAAQ5lC,IAEZA,MAAKitF,mBAAqB,SAASpjD,GAC/B,MAAOjE,GAAMsnD,kBAAkBrjD,IAGnC7pC,KAAKmtF,cAAgB,SAAStjD,GAC1B,MAAOjE,GAAMwnD,aAAavjD,IAI9Bp3B,OAAOs3B,iBAAiB,oBAAqB/pC,KAAKitF,oBAAoB,GACtEx6E,OAAOs3B,iBAAiB,SAAU/pC,KAAKmtF,eAAe,GAElDntF,KAAK6qF,cAAcC,qBAEnB9qF,KAAKqtF,kBAAoB,SAASxjD,GAC9B,MAAOjE,GAAM0nD,iBAAiBzjD,IAGlC7pC,KAAKutF,iBAAmB,SAAS1jD,GAC7B,MAAOjE,GAAM4nD,gBAAgB3jD,IAGjC55B,SAAS85B,iBAAiB,yBAA0B/pC,KAAKqtF,mBAAmB,GAC5Ep9E,SAAS85B,iBAAiB,sBAAuB/pC,KAAKqtF,mBAAmB,GACzEp9E,SAAS85B,iBAAiB,qBAAsB/pC,KAAKqtF,mBAAmB,GACxEp9E,SAAS85B,iBAAiB,mBAAoB/pC,KAAKqtF,mBAAmB,GAEtEp9E,SAAS85B,iBAAiB,wBAAyB/pC,KAAKutF,kBAAkB,GAC1Et9E,SAAS85B,iBAAiB,qBAAsB/pC,KAAKutF,kBAAkB,GACvEt9E,SAAS85B,iBAAiB,oBAAqB/pC,KAAKutF,kBAAkB,GACtEt9E,SAAS85B,iBAAiB,kBAAmB/pC,KAAKutF,kBAAkB,IAGxEvtF,KAAKE,KAAK+hC,SAASnL,IAAI92B,KAAKytF,aAAcztF,MAI1CA,KAAKqpF,IAAIhgD,UAAUrpC,KAAKE,KAAKsQ,OAAQxQ,KAAKqZ,QAE1CrZ,KAAKwG,OAAOutB,MAAM/zB,KAAKqZ,OAAOhU,EAAGrF,KAAKqZ,OAAO/T,EAAGtF,KAAK2G,MAAO3G,KAAK4G,QAEjE5G,KAAK0tF,YAAY1tF,KAAKE,KAAKyG,MAAO3G,KAAKE,KAAK0G,QAG5C5G,KAAKuqF,kBAAoBvqF,KAAKqpF,IAAImB,qBAAqBxqF,KAAK6qF,cAAcE,qBAEtEziE,EAAOqlE,WAEP3tF,KAAKutD,KAAO,GAAIjlC,GAAOqlE,SAAS3tF,KAAMA,KAAK2G,MAAO3G,KAAK4G,SAG3D5G,KAAK0sF,SAAU,EAEgB,OAA3B1sF,KAAK8rF,oBAEL9rF,KAAKsG,UAAYtG,KAAK8rF,kBACtB9rF,KAAK8rF,kBAAoB,OAYjC5iD,YAAa,SAAUD,GAESx/B,SAAxBw/B,EAAkB,YAEdjpC,KAAK0sF,QAEL1sF,KAAKsG,UAAY2iC,EAAkB,UAInCjpC,KAAK8rF,kBAAoB7iD,EAAkB,WAIbx/B,SAAlCw/B,EAA4B,sBAE5BjpC,KAAK4tF,oBAAsB3kD,EAA4B,qBAGvDA,EAAyB,mBAEzBjpC,KAAKkqF,iBAAmBjhD,EAAyB,mBAezD0jD,WAAY,SAAUhmF,EAAOC,GAEzB,GAAI3C,GACAksD,EAAO,GAAI7nC,GAAO9lB,SAEG,MAArBxC,KAAKE,KAAK0B,SAEsB,gBAArB5B,MAAKE,KAAK0B,OAGjBqC,EAASgM,SAASq2D,eAAetmE,KAAKE,KAAK0B,QAEtC5B,KAAKE,KAAK0B,QAAwC,IAA9B5B,KAAKE,KAAK0B,OAAOwwB,WAG1CnuB,EAASjE,KAAKE,KAAK0B,SAKtBqC,GAaDjE,KAAKymE,WAAaxiE,EAClBjE,KAAKwrF,gBAAiB,EAEtBxrF,KAAK6tF,gBAAgB7tF,KAAKssF,eAE1Bn8B,EAAKxpD,MAAQ3G,KAAKssF,cAAc3lF,MAChCwpD,EAAKvpD,OAAS5G,KAAKssF,cAAc1lF,OAEjC5G,KAAKqZ,OAAO7V,IAAIxD,KAAKssF,cAAcjnF,EAAGrF,KAAKssF,cAAchnF,KAlBzDtF,KAAKymE,WAAa,KAClBzmE,KAAKwrF,gBAAiB,EAEtBr7B,EAAKxpD,MAAQ3G,KAAKqpF,IAAIyE,aAAannF,MACnCwpD,EAAKvpD,OAAS5G,KAAKqpF,IAAIyE,aAAalnF,OAEpC5G,KAAKqZ,OAAO7V,IAAI,EAAG,GAevB,IAAIuqF,GAAW,EACXC,EAAY,CAEK,iBAAVrnF,GAEPonF,EAAWpnF,GAKX3G,KAAKyrF,kBAAkBpmF,EAAIqsB,SAAS/qB,EAAO,IAAM,IACjDonF,EAAW59B,EAAKxpD,MAAQ3G,KAAKyrF,kBAAkBpmF,GAG7B,gBAAXuB,GAEPonF,EAAYpnF,GAKZ5G,KAAKyrF,kBAAkBnmF,EAAIosB,SAAS9qB,EAAQ,IAAM,IAClDonF,EAAY79B,EAAKvpD,OAAS5G,KAAKyrF,kBAAkBnmF,GAGrDyoF,EAAWltF,KAAKouB,MAAM8+D,GACtBC,EAAYntF,KAAKouB,MAAM++D,GAEvBhuF,KAAKgsF,UAAUj4D,MAAM,EAAG,EAAGg6D,EAAUC,GAErChuF,KAAKiuF,iBAAiBF,EAAUC,GAAW,IAU/CP,aAAc,WAEVztF,KAAKkuF,aAAY,IAmBrBR,YAAa,SAAU/mF,EAAOC,GAE1B5G,KAAKgsF,UAAUj4D,MAAM,EAAG,EAAGptB,EAAOC,GAE9B5G,KAAKmuF,mBAAqB7lE,EAAO4rB,aAAa44C,QAE9C9sF,KAAKiuF,iBAAiBtnF,EAAOC,GAAQ,GAGzC5G,KAAKkuF,aAAY,IAoBrBE,aAAc,SAAUC,EAAQC,EAAQC,EAAOC,GAE3CxuF,KAAKisF,iBAAiBl4D,MAAMs6D,EAAQC,GACpCtuF,KAAKksF,eAAen4D,MAAc,EAARw6D,EAAmB,EAARC,GACrCxuF,KAAKkuF,aAAY,IAwBrBO,kBAAmB,SAAUp/C,EAAUjiC,GAEnCpN,KAAK4rF,SAAWv8C,EAChBrvC,KAAK6rF,gBAAkBz+E,GAY3BshF,iBAAkB,WAEd,IAAKpmE,EAAO9lB,UAAU86B,eAAet9B,KAAMA,KAAKwsF,2BAC3ClkE,EAAO9lB,UAAU86B,eAAet9B,KAAKE,KAAMF,KAAKysF,uBACrD,CACI,GAAI9lF,GAAQ3G,KAAK2G,MACbC,EAAS5G,KAAK4G,MAElB5G,MAAKwsF,wBAAwBz4D,MAAM,EAAG,EAAGptB,EAAOC,GAChD5G,KAAKysF,sBAAsB14D,MAAM,EAAG,EAAG/zB,KAAKE,KAAKyG,MAAO3G,KAAKE,KAAK0G,QAE9D5G,KAAKutD,MAELvtD,KAAKutD,KAAKq+B,SAASjlF,EAAOC,GAG9B5G,KAAK2rF,aAAa3oD,SAAShjC,KAAM2G,EAAOC,GAGpC5G,KAAKmuF,mBAAqB7lE,EAAO4rB,aAAa44C,SAE9C9sF,KAAKE,KAAKiiC,MAAMp6B,OAAOpB,EAAOC,GAC9B5G,KAAKE,KAAKq/B,KAAKx3B,OAAOpB,EAAOC,MAqBzC+nF,UAAW,SAAUrF,EAAUE,EAAWD,EAAUE,GAEhDzpF,KAAKspF,SAAWA,EAChBtpF,KAAKwpF,UAAYA,EAEO,mBAAbD,KAEPvpF,KAAKupF,SAAWA,GAGK,mBAAdE,KAEPzpF,KAAKypF,UAAYA,IAWzBtjF,UAAW,WAEP,KAAInG,KAAKE,KAAKw/B,KAAKA,KAAQ1/B,KAAKmsF,YAAcnsF,KAAKosF,iBAAnD,CAKA,GAAIwC,GAAe5uF,KAAKosF,eACxBpsF,MAAKqsF,qBAAuBuC,GAAgB,IAAM,EAAI;AAEtD5uF,KAAKqpF,IAAIhgD,UAAUrpC,KAAKE,KAAKsQ,OAAQxQ,KAAKqZ,OAE1C,IAAIw1E,GAAY7uF,KAAKssF,cAAc3lF,MAC/BmoF,EAAa9uF,KAAKssF,cAAc1lF,OAChCJ,EAASxG,KAAK6tF,gBAAgB7tF,KAAKssF,eAEnCyC,EAAgBvoF,EAAOG,QAAUkoF,GAAaroF,EAAOI,SAAWkoF,EAGhEE,EAAqBhvF,KAAKivF,0BAE1BF,GAAiBC,KAEbhvF,KAAK4rF,UAEL5rF,KAAK4rF,SAASlmF,KAAK1F,KAAK6rF,gBAAiB7rF,KAAMwG,GAGnDxG,KAAKkvF,eAELlvF,KAAK0uF,mBAIT,IAAIS,GAAkC,EAAvBnvF,KAAKosF,eAGhBpsF,MAAKosF,gBAAkBwC,IAEvBO,EAAWtuF,KAAKq2B,IAAI03D,EAAc5uF,KAAKqsF,uBAG3CrsF,KAAKosF,gBAAkB9jE,EAAOznB,KAAKu4B,MAAM+1D,EAAU,GAAInvF,KAAK0rF,qBAC5D1rF,KAAKmsF,YAAcnsF,KAAKE,KAAKw/B,KAAKA,OAUtCW,YAAa,WAETrgC,KAAKmG,YAGLnG,KAAKosF,gBAAkBpsF,KAAK0rF,qBAahCuC,iBAAkB,SAAUtnF,EAAOC,EAAQmB,GAEvC/H,KAAK2G,MAAQA,EAAQ3G,KAAKyrF,kBAAkBpmF,EAC5CrF,KAAK4G,OAASA,EAAS5G,KAAKyrF,kBAAkBnmF,EAE9CtF,KAAKE,KAAKyG,MAAQ3G,KAAK2G,MACvB3G,KAAKE,KAAK0G,OAAS5G,KAAK4G,OAExB5G,KAAK2qF,kBAAoB3qF,KAAK2G,MAAQ3G,KAAK4G,OAC3C5G,KAAKovF,yBAEDrnF,IAGA/H,KAAKE,KAAKqG,SAASwB,OAAO/H,KAAK2G,MAAO3G,KAAK4G,QAG3C5G,KAAKE,KAAKk/B,OAAOJ,QAAQh/B,KAAK2G,MAAO3G,KAAK4G,QAG1C5G,KAAKE,KAAKuE,MAAMsD,OAAO/H,KAAK2G,MAAO3G,KAAK4G,UAYhDwoF,uBAAwB,WAEpBpvF,KAAKmsB,YAAY9mB,EAAIrF,KAAKE,KAAKyG,MAAQ3G,KAAK2G,MAC5C3G,KAAKmsB,YAAY7mB,EAAItF,KAAKE,KAAK0G,OAAS5G,KAAK4G,OAE7C5G,KAAKyqF,oBAAoBplF,EAAIrF,KAAK2G,MAAQ3G,KAAKE,KAAKyG,MACpD3G,KAAKyqF,oBAAoBnlF,EAAItF,KAAK4G,OAAS5G,KAAKE,KAAK0G,OAErD5G,KAAK0qF,YAAc1qF,KAAK2G,MAAQ3G,KAAK4G,OAGjC5G,KAAKE,KAAKsQ,QAEVxQ,KAAKqpF,IAAIhgD,UAAUrpC,KAAKE,KAAKsQ,OAAQxQ,KAAKqZ,QAG9CrZ,KAAKwG,OAAOutB,MAAM/zB,KAAKqZ,OAAOhU,EAAGrF,KAAKqZ,OAAO/T,EAAGtF,KAAK2G,MAAO3G,KAAK4G,QAG7D5G,KAAKE,KAAKo/B,OAASt/B,KAAKE,KAAKo/B,MAAMj+B,OAEnCrB,KAAKE,KAAKo/B,MAAMj+B,MAAM0yB,MAAM/zB,KAAKmsB,YAAY9mB,EAAGrF,KAAKmsB,YAAY7mB,IAmBzE+pF,iBAAkB,SAAU3F,EAAgBC,GAElBlgF,SAAlBkgF,IAA+BA,GAAgB,GAEnD3pF,KAAK0pF,eAAiBA,EACtB1pF,KAAK2pF,cAAgBA,EAErB3pF,KAAKkuF,aAAY,IAYrBoB,oBAAqB,SAAUC,GAE3B,MAAoB,qBAAhBA,GAAsD,uBAAhBA,EAE/B,WAEc,sBAAhBA,GAAuD,wBAAhBA,EAErC,YAIA,MAYfN,uBAAwB,WAEpB,GAAIO,GAAsBxvF,KAAKuqF,kBAC3BkF,EAAsBzvF,KAAK4pF,oBAE/B5pF,MAAKuqF,kBAAoBvqF,KAAKqpF,IAAImB,qBAAqBxqF,KAAK6qF,cAAcE,qBAE1E/qF,KAAK4pF,qBAAwB5pF,KAAK0pF,iBAAmB1pF,KAAK0vF,aACrD1vF,KAAK2pF,gBAAkB3pF,KAAK2vF,UAEjC,IAAIC,GAAUJ,IAAwBxvF,KAAKuqF,kBACvCsF,EAAqBJ,IAAwBzvF,KAAK4pF,oBAmBtD,OAjBIiG,KAEI7vF,KAAK4pF,qBAEL5pF,KAAKgqF,0BAA0BhnD,WAI/BhjC,KAAKiqF,0BAA0BjnD,aAInC4sD,GAAWC,IAEX7vF,KAAK+pF,oBAAoB/mD,SAAShjC,KAAMwvF,EAAqBC,GAG1DG,GAAWC,GAWtB3C,kBAAmB,SAAUrjD,GAEzB7pC,KAAK6pC,MAAQA,EAEb7pC,KAAKkuF,aAAY,IAWrBd,aAAc,SAAUvjD,GAEpB7pC,KAAK6pC,MAAQA,EAEb7pC,KAAKkuF,aAAY,IAUrB4B,UAAW,WAEP,GAAI7E,GAAWjrF,KAAK6qF,cAAcI,QAE9BA,IAEAx4E,OAAOw4E,SAASA,EAAS5lF,EAAG4lF,EAAS3lF,IAyB7C+iB,QAAS,WAELroB,KAAK8vF,YACL9vF,KAAKkuF,aAAY,IAUrBgB,aAAc,WAEV,GAAI5oF,GAAYtG,KAAKmuF,gBAErB,IAAI7nF,IAAcgiB,EAAO4rB,aAAa44C,OAGlC,WADA9sF,MAAK+vF,YAoDT,IAhDA/vF,KAAK8vF,YAED9vF,KAAK6qF,cAAcK,6BAInBj7E,SAAS4yD,gBAAgBxnD,MAAMmuE,UAAY/2E,OAAOmf,YAAc,MAGhE5xB,KAAK4pF,qBAEL5pF,KAAKgwF,aAID1pF,IAAcgiB,EAAO4rB,aAAa04C,UAElC5sF,KAAKiwF,cAEA3pF,IAAcgiB,EAAO4rB,aAAa24C,UAElC7sF,KAAKkwF,cAAgBlwF,KAAKmwF,gBAC3BnwF,KAAK6qF,cAAcM,iBAKnBnrF,KAAKowF,YAAW,GAChBpwF,KAAKqwF,cACLrwF,KAAKowF,cAILpwF,KAAKowF,aAGJ9pF,IAAcgiB,EAAO4rB,aAAao3C,UAEvCtrF,KAAK2G,MAAQ3G,KAAKE,KAAKyG,MACvB3G,KAAK4G,OAAS5G,KAAKE,KAAK0G,QAEnBN,IAAcgiB,EAAO4rB,aAAa64C,aAEvC/sF,KAAK2G,MAAS3G,KAAKE,KAAKyG,MAAQ3G,KAAKisF,iBAAiB5mF,EAAKrF,KAAKksF,eAAe7mF,EAC/ErF,KAAK4G,OAAU5G,KAAKE,KAAK0G,OAAS5G,KAAKisF,iBAAiB3mF,EAAKtF,KAAKksF,eAAe5mF,IAIpFtF,KAAK6qF,cAAcM,kBACnB7kF,IAAcgiB,EAAO4rB,aAAa24C,UAAYvmF,IAAcgiB,EAAO4rB,aAAa64C,YACrF,CACI,GAAIvmF,GAASxG,KAAK6tF,gBAAgB7tF,KAAKusF,YACvCvsF,MAAK2G,MAAQ9F,KAAKq2B,IAAIl3B,KAAK2G,MAAOH,EAAOG,OACzC3G,KAAK4G,OAAS/F,KAAKq2B,IAAIl3B,KAAK4G,OAAQJ,EAAOI,QAI/C5G,KAAK2G,MAAqB,EAAb3G,KAAK2G,MAClB3G,KAAK4G,OAAuB,EAAd5G,KAAK4G,OAEnB5G,KAAKswF,gBAoBTzC,gBAAiB,SAAU5pF,GAEvB,GAAIuC,GAASvC,GAAU,GAAIqkB,GAAO9lB,UAC9BikE,EAAazmE,KAAKmwF,eAClBrC,EAAe9tF,KAAKqpF,IAAIyE,aACxByC,EAAevwF,KAAKqpF,IAAIkH,YAE5B,IAAK9pB,EAKL,CAEI,GAAI+pB,GAAa/pB,EAAWgqB,wBACxBC,EAAcjqB,EAAuB,aAAIA,EAAWkqB,aAAaF,wBAA0BhqB,EAAWgqB,uBAE1GjqF,GAAOutB,MAAMy8D,EAAWt+D,KAAOw+D,EAAWx+D,KAAMs+D,EAAW57D,IAAM87D,EAAW97D,IAAK47D,EAAW7pF,MAAO6pF,EAAW5pF,OAE9G,IAAIgqF,GAAK5wF,KAAK4qF,iBAEd,IAAIgG,EAAG3+D,MACP,CACI,GAAI4+D,GAA4B,WAAbD,EAAG3+D,MAAqBs+D,EAAezC,CAC1DtnF,GAAOyrB,MAAQpxB,KAAKq2B,IAAI1wB,EAAOyrB,MAAO4+D,EAAalqF,OAGvD,GAAIiqF,EAAG/7D,OACP,CACI,GAAIg8D,GAA6B,WAAdD,EAAG/7D,OAAsB07D,EAAezC,CAC3DtnF,GAAOquB,OAASh0B,KAAKq2B,IAAI1wB,EAAOquB,OAAQg8D,EAAajqF,aArBzDJ,GAAOutB,MAAM,EAAG,EAAG+5D,EAAannF,MAAOmnF,EAAalnF,OA6BxD,OAJAJ,GAAOutB,MACHlzB,KAAKuzB,MAAM5tB,EAAOnB,GAAIxE,KAAKuzB,MAAM5tB,EAAOlB,GACxCzE,KAAKuzB,MAAM5tB,EAAOG,OAAQ9F,KAAKuzB,MAAM5tB,EAAOI,SAEzCJ,GAcXsqF,YAAa,SAAU1+C,EAAYC,GAE/B,GAAI0+C,GAAe/wF,KAAK6tF,gBAAgB7tF,KAAKusF,aACzC/7E,EAASxQ,KAAKE,KAAKsQ,OACnBmmE,EAAS32E,KAAK22E,MAElB,IAAIvkC,EACJ,CACIukC,EAAOzkD,KAAOykD,EAAO1kD,MAAQ,CAE7B,IAAI++D,GAAexgF,EAAOigF,uBAE1B,IAAIzwF,KAAK2G,MAAQoqF,EAAapqF,QAAU3G,KAAK4pF,qBAC7C,CACI,GAAIqH,GAAcD,EAAa9+D,KAAO6+D,EAAa1rF,EAC/C6rF,EAAcH,EAAapqF,MAAQ,EAAM3G,KAAK2G,MAAQ,CAE1DuqF,GAAarwF,KAAK+G,IAAIspF,EAAY,EAElC,IAAI73E,GAAS63E,EAAaD,CAE1Bta,GAAOzkD,KAAOrxB,KAAKuzB,MAAM/a,GAG7B7I,EAAO6K,MAAM81E,WAAaxa,EAAOzkD,KAAO,KAEpB,IAAhBykD,EAAOzkD,OAEPykD,EAAO1kD,QAAU8+D,EAAapqF,MAAQqqF,EAAarqF,MAAQgwE,EAAOzkD,MAClE1hB,EAAO6K,MAAM+1E,YAAcza,EAAO1kD,MAAQ,MAIlD,GAAIogB,EACJ,CACIskC,EAAO/hD,IAAM+hD,EAAO9hD,OAAS,CAE7B,IAAIm8D,GAAexgF,EAAOigF,uBAE1B,IAAIzwF,KAAK4G,OAASmqF,EAAanqF,SAAW5G,KAAK4pF,qBAC/C,CACI,GAAIqH,GAAcD,EAAap8D,IAAMm8D,EAAazrF,EAC9C4rF,EAAcH,EAAanqF,OAAS,EAAM5G,KAAK4G,OAAS,CAE5DsqF,GAAarwF,KAAK+G,IAAIspF,EAAY,EAElC,IAAI73E,GAAS63E,EAAaD,CAC1Bta,GAAO/hD,IAAM/zB,KAAKuzB,MAAM/a,GAG5B7I,EAAO6K,MAAMg2E,UAAY1a,EAAO/hD,IAAM,KAEnB,IAAf+hD,EAAO/hD,MAEP+hD,EAAO9hD,SAAWk8D,EAAanqF,OAASoqF,EAAapqF,OAAS+vE,EAAO/hD,KACrEpkB,EAAO6K,MAAMi2E,aAAe3a,EAAO9hD,OAAS,MAKpD8hD,EAAOtxE,EAAIsxE,EAAOzkD,KAClBykD,EAAOrxE,EAAIqxE,EAAO/hD,KAYtBm7D,WAAY,WAER/vF,KAAKqwF,YAAY,GAAI,GAErB,IAAI7pF,GAASxG,KAAK6tF,gBAAgB7tF,KAAKusF,YACvCvsF,MAAKiuF,iBAAiBznF,EAAOG,MAAOH,EAAOI,QAAQ,IAYvD0pF,aAAc,WAELtwF,KAAK4pF,uBAEN5pF,KAAK2G,MAAQ2hB,EAAOznB,KAAKu4B,MAAMp5B,KAAK2G,MAAO3G,KAAKspF,UAAY,EAAGtpF,KAAKupF,UAAYvpF,KAAK2G,OACrF3G,KAAK4G,OAAS0hB,EAAOznB,KAAKu4B,MAAMp5B,KAAK4G,OAAQ5G,KAAKwpF,WAAa,EAAGxpF,KAAKypF,WAAazpF,KAAK4G,SAG7F5G,KAAKqwF,cAEArwF,KAAK6qF,cAAcG,YAEhBhrF,KAAKkwF,cAAgBlwF,KAAKmqF,yBAE1BnqF,KAAK8wF,aAAY,GAAM,GAIvB9wF,KAAK8wF,YAAY9wF,KAAKuxF,sBAAuBvxF,KAAKwxF,sBAI1DxxF,KAAKovF,0BAYTiB,YAAa,SAAUoB,EAAUC,GAEZjoF,SAAbgoF,IAA0BA,EAAWzxF,KAAK2G,MAAQ,MACpC8C,SAAdioF,IAA2BA,EAAY1xF,KAAK4G,OAAS,KAEzD,IAAI4J,GAASxQ,KAAKE,KAAKsQ,MAElBxQ,MAAK6qF,cAAcG,YAEpBx6E,EAAO6K,MAAM81E,WAAa,GAC1B3gF,EAAO6K,MAAMg2E,UAAY,GACzB7gF,EAAO6K,MAAM+1E,YAAc,GAC3B5gF,EAAO6K,MAAMi2E,aAAe,IAGhC9gF,EAAO6K,MAAM1U,MAAQ8qF,EACrBjhF,EAAO6K,MAAMzU,OAAS8qF,GAW1BxD,YAAa,SAAU3/C,GAEfA,IAEAvuC,KAAKssF,cAAc3lF,MAAQ,EAC3B3G,KAAKssF,cAAc1lF,OAAS,GAGhC5G,KAAKosF,gBAAkBpsF,KAAKqsF,sBAUhCptD,MAAO,SAAUuD,GAETA,GAAcxiC,KAAKutD,MAEnBvtD,KAAKutD,KAAKtuB,SAWlB+wD,WAAY,WAERhwF,KAAK2G,MAAQ3G,KAAKqpF,IAAIyE,aAAannF,MACnC3G,KAAK4G,OAAS5G,KAAKqpF,IAAIyE,aAAalnF,QAWxCwpF,WAAY,SAAUuB,GAElB,GAIIC,GAJAprF,EAASxG,KAAK6tF,gBAAgB7tF,KAAKusF,aACnC5lF,EAAQH,EAAOG,MACfC,EAASJ,EAAOI,MAMhBgrF,GAFAD,EAEa9wF,KAAK+G,IAAKhB,EAAS5G,KAAKE,KAAK0G,OAAUD,EAAQ3G,KAAKE,KAAKyG,OAIzD9F,KAAKq2B,IAAKtwB,EAAS5G,KAAKE,KAAK0G,OAAUD,EAAQ3G,KAAKE,KAAKyG,OAG1E3G,KAAK2G,MAAQ9F,KAAKuzB,MAAMp0B,KAAKE,KAAKyG,MAAQirF,GAC1C5xF,KAAK4G,OAAS/F,KAAKuzB,MAAMp0B,KAAKE,KAAK0G,OAASgrF,IAWhD3B,YAAa,WAET,GAAIzpF,GAASxG,KAAK6tF,gBAAgB7tF,KAAKusF,YAEvCvsF,MAAK2G,MAAQH,EAAOG,MACpB3G,KAAK4G,OAASJ,EAAOI,OAEjB5G,KAAKkwF,eAMLlwF,KAAKupF,WAELvpF,KAAK2G,MAAQ9F,KAAKq2B,IAAIl3B,KAAK2G,MAAO3G,KAAKupF,WAGvCvpF,KAAKypF,YAELzpF,KAAK4G,OAAS/F,KAAKq2B,IAAIl3B,KAAK4G,OAAQ5G,KAAKypF,cAcjDoI,uBAAwB,WAEpB,GAAIC,GAAW7hF,SAASoB,cAAc,MAMtC,OAJAygF,GAASz2E,MAAMs7D,OAAS,IACxBmb,EAASz2E,MAAMyJ,QAAU,IACzBgtE,EAASz2E,MAAM02E,WAAa,OAErBD,GAmBXE,gBAAiB,SAAU/4E,EAAWg5E,GAElC,GAAIjyF,KAAKkwF,aAEL,OAAO,CAGX,KAAKlwF,KAAK6qF,cAAcC,mBACxB,CAEI,GAAIllD,GAAQ5lC,IAIZ,YAHAqhE,YAAW,WACPz7B,EAAM4nD,mBACP,IAIP,GAA2C,mBAAvCxtF,KAAK6qF,cAAcO,gBACvB,CACI,GAAI9rD,GAAQt/B,KAAKE,KAAKo/B,KAEtB,IAAIA,EAAMsZ,eACNtZ,EAAMsZ,gBAAkBtZ,EAAMuZ,eAC7Bo5C,GAAmBA,KAAoB,GAGxC,WADA3yD,GAAMsZ,cAAcwN,mBAAmB,kBAAmBpmD,KAAKgyF,gBAAiBhyF,MAAOiZ,GAAW,IAKjF,mBAAdA,IAA6BjZ,KAAKE,KAAKyjC,aAAerb,EAAOoE,SAEpE1sB,KAAKE,KAAK2B,MAAM8zC,SAAW18B,EAG/B,IAAI64E,GAAW9xF,KAAKkqF,gBAEf4H,KAED9xF,KAAKkyF,uBAELlyF,KAAKmqF,yBAA2BnqF,KAAK6xF,yBACrCC,EAAW9xF,KAAKmqF,yBAGpB,IAAIgI,IACAC,cAAeN,EAKnB,IAFA9xF,KAAKoqF,iBAAiBpnD,SAAShjC,KAAMmyF,GAEjCnyF,KAAKmqF,yBACT,CAGI,GAAI35E,GAASxQ,KAAKE,KAAKsQ,OACnB5O,EAAS4O,EAAOi2D,UACpB7kE,GAAO2jE,aAAausB,EAAUthF,GAC9BshF,EAAStrB,YAAYh2D,GAYzB,MATIxQ,MAAKE,KAAKkqC,OAAOy2B,mBAEjBixB,EAAS9xF,KAAKE,KAAKkqC,OAAOu2B,mBAAmByC,QAAQivB,sBAIrDP,EAAS9xF,KAAKE,KAAKkqC,OAAOu2B,sBAGvB,GAWX2xB,eAAgB,WAEZ,MAAKtyF,MAAKkwF,cAAiBlwF,KAAK6qF,cAAcC,oBAK9C76E,SAASjQ,KAAKE,KAAKkqC,OAAOw2B,qBAEnB,IALI,GAgBfsxB,qBAAsB,WAElB,GAAIJ,GAAW9xF,KAAKmqF,wBAEpB,IAAI2H,GAAYA,EAASrrB,WACzB,CAGI,GAAI7kE,GAASkwF,EAASrrB,UACtB7kE,GAAO2jE,aAAavlE,KAAKE,KAAKsQ,OAAQshF,GACtClwF,EAAO+G,YAAYmpF,GAGvB9xF,KAAKmqF,yBAA2B,MAYpCoI,eAAgB,SAAUC,GAEtB,GAAIC,KAAkBzyF,KAAKmqF,yBACvB2H,EAAW9xF,KAAKmqF,0BAA4BnqF,KAAKkqF,gBAEjDsI,IAEIC,GAAiBzyF,KAAK4tF,sBAAwBtlE,EAAO4rB,aAAa04C,YAG9DkF,IAAa9xF,KAAKE,KAAKsQ,SAEvBxQ,KAAK+rF,oBACD2G,YAAaZ,EAASz2E,MAAM1U,MAC5BgsF,aAAcb,EAASz2E,MAAMzU,QAGjCkrF,EAASz2E,MAAM1U,MAAQ,OACvBmrF,EAASz2E,MAAMzU,OAAS,SAO5B5G,KAAK+rF,qBAEL+F,EAASz2E,MAAM1U,MAAQ3G,KAAK+rF,mBAAmB2G,YAC/CZ,EAASz2E,MAAMzU,OAAS5G,KAAK+rF,mBAAmB4G,aAEhD3yF,KAAK+rF,mBAAqB,MAI9B/rF,KAAKiuF,iBAAiBjuF,KAAKgsF,UAAUrlF,MAAO3G,KAAKgsF,UAAUplF,QAAQ,GACnE5G,KAAKqwF,gBAYb/C,iBAAkB,SAAUzjD,GAExB7pC,KAAK6pC,MAAQA,EAET7pC,KAAKkwF,cAELlwF,KAAKuyF,gBAAe,GAEpBvyF,KAAKkvF,eACLlvF,KAAKkuF,aAAY,KAIjBluF,KAAKuyF,gBAAe,GAEpBvyF,KAAKkyF,uBAELlyF,KAAKkvF,eACLlvF,KAAKkuF,aAAY,IAGrBluF,KAAKqqF,mBAAmBrnD,SAAShjC,KAAMA,KAAK2G,MAAO3G,KAAK4G,SAY5D4mF,gBAAiB,SAAU3jD,GAEvB7pC,KAAK6pC,MAAQA,EAEb7pC,KAAKkyF,uBAELx/E,QAAQ2d,KAAK,+FAEbrwB,KAAKsqF,kBAAkBtnD,SAAShjC,OAmBpC4yF,YAAa,SAAUzwE,EAAQxb,EAAOC,EAAQisF,GAM1C,GAJcppF,SAAV9C,IAAuBA,EAAQ3G,KAAK2G,OACzB8C,SAAX7C,IAAwBA,EAAS5G,KAAK4G,QACxB6C,SAAdopF,IAA2BA,GAAY,IAEtC1wE,IAAWA,EAAc,MAE1B,MAAOA,EAMX,IAHAA,EAAO9gB,MAAMgE,EAAI,EACjB8c,EAAO9gB,MAAMiE,EAAI,EAEZ6c,EAAOxb,OAAS,GAAOwb,EAAOvb,QAAU,GAAgB,GAATD,GAA0B,GAAVC,EAEhE,MAAOub,EAGX,IAAI2wE,GAAUnsF,EACVosF,EAAW5wE,EAAOvb,OAASD,EAASwb,EAAOxb,MAE3CqsF,EAAW7wE,EAAOxb,MAAQC,EAAUub,EAAOvb,OAC3CqsF,EAAUrsF,EAEVssF,EAAgBF,EAAUrsF,CA0B9B,OAtBIusF,GAFAA,EAEeL,GAICA,EAGhBK,GAEA/wE,EAAOxb,MAAQ9F,KAAKouB,MAAM6jE,GAC1B3wE,EAAOvb,OAAS/F,KAAKouB,MAAM8jE,KAI3B5wE,EAAOxb,MAAQ9F,KAAKouB,MAAM+jE,GAC1B7wE,EAAOvb,OAAS/F,KAAKouB,MAAMgkE,IAOxB9wE,GAWXpf,QAAS,WAEL/C,KAAKE,KAAK+hC,SAASpxB,OAAO7Q,KAAKytF,aAAcztF,MAE7CyS,OAAOw4B,oBAAoB,oBAAqBjrC,KAAKitF,oBAAoB,GACzEx6E,OAAOw4B,oBAAoB,SAAUjrC,KAAKmtF,eAAe,GAErDntF,KAAK6qF,cAAcC,qBAEnB76E,SAASg7B,oBAAoB,yBAA0BjrC,KAAKqtF,mBAAmB,GAC/Ep9E,SAASg7B,oBAAoB,sBAAuBjrC,KAAKqtF,mBAAmB,GAC5Ep9E,SAASg7B,oBAAoB,qBAAsBjrC,KAAKqtF,mBAAmB,GAC3Ep9E,SAASg7B,oBAAoB,mBAAoBjrC,KAAKqtF,mBAAmB,GAEzEp9E,SAASg7B,oBAAoB,wBAAyBjrC,KAAKutF,kBAAkB,GAC7Et9E,SAASg7B,oBAAoB,qBAAsBjrC,KAAKutF,kBAAkB,GAC1Et9E,SAASg7B,oBAAoB,oBAAqBjrC,KAAKutF,kBAAkB,GACzEt9E,SAASg7B,oBAAoB,kBAAmBjrC,KAAKutF,kBAAkB,MAOnFjlE,EAAO4rB,aAAarxC,UAAUC,YAAcwlB,EAAO4rB,aAYnD9wC,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,kBAEjDS,IAAK,WACD,GAAItD,KAAKwrF,gBACJxrF,KAAKkwF,eAAiBlwF,KAAKmqF,yBAE5B,MAAO,KAGX,IAAI1jB,GAAazmE,KAAKE,KAAKsQ,QAAUxQ,KAAKE,KAAKsQ,OAAOi2D,UACtD,OAAOA,IAAc,QA0C7BrjE,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,aAEjDS,IAAK,WAED,MAAOtD,MAAKqrF,YAIhB7nF,IAAK,SAAUC,GAaX,MAXIA,KAAUzD,KAAKqrF,aAEVrrF,KAAKkwF,eAENlwF,KAAKiuF,iBAAiBjuF,KAAKgsF,UAAUrlF,MAAO3G,KAAKgsF,UAAUplF,QAAQ,GACnE5G,KAAKkuF,aAAY,IAGrBluF,KAAKqrF,WAAa5nF,GAGfzD,KAAKqrF,cAcpBjoF,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,uBAEjDS,IAAK,WAED,MAAOtD,MAAKurF,sBAIhB/nF,IAAK,SAAUC,GAmBX,MAjBIA,KAAUzD,KAAKurF,uBAGXvrF,KAAKkwF,cAELlwF,KAAKuyF,gBAAe,GACpBvyF,KAAKurF,qBAAuB9nF,EAC5BzD,KAAKuyF,gBAAe,GAEpBvyF,KAAKkuF,aAAY,IAIjBluF,KAAKurF,qBAAuB9nF,GAI7BzD,KAAKurF,wBAgBpBnoF,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,oBAEjDS,IAAK,WAED,MAAOtD,MAAKkwF,aAAelwF,KAAKurF,qBAAuBvrF,KAAKqrF,cAkBpEjoF,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,yBAEjDS,IAAK,WAED,MAAOtD,MAAK6pF,wBAIhBrmF,IAAK,SAAUC,GAEPA,IAAUzD,KAAK6pF,yBAEf7pF,KAAK6pF,uBAAyBpmF,EAC9BzD,KAAKkuF,aAAY,OA0B7B9qF,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,uBAEjDS,IAAK,WAED,MAAOtD,MAAK8pF,sBAIhBtmF,IAAK,SAAUC,GAEPA,IAAUzD,KAAK8pF,uBAEf9pF,KAAK8pF,qBAAuBrmF,EAC5BzD,KAAKkuF,aAAY,OAa7B9qF,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,gBAEjDS,IAAK,WACD,SAAU2M,SAA4B,mBAClCA,SAAkC,yBAClCA,SAA+B,sBAC/BA,SAA8B,wBAY1C7M,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,cAEjDS,IAAK,WACD,MAA4D,aAArDtD,KAAKsvF,oBAAoBtvF,KAAKuqF,sBAY7CnnF,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,eAEjDS,IAAK,WACD,MAA4D,cAArDtD,KAAKsvF,oBAAoBtvF,KAAKuqF,sBAe7CnnF,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,kBAEjDS,IAAK,WACD,MAAQtD,MAAK4G,OAAS5G,KAAK2G,SAenCvD,OAAOC,eAAeilB,EAAO4rB,aAAarxC,UAAW,mBAEjDS,IAAK,WACD,MAAQtD,MAAK2G,MAAQ3G,KAAK4G,SAgBlC,IAAIusF,GAAY,YAmtHZ,OAjtHJ7qE,GAAOgI,MAAMykB,MAAQo+C,EAErB7qE,EAAOgI,MAAMykB,MAAMlyC,WACf8rE,YAAY,EAEZ7sC,KAAMqxD,EACNhtF,UAAWgtF,EACXl0D,MAAOk0D,EACP/nF,MAAO+nF,EACPnoF,KAAMmoF,EACN38D,KAAM28D,EACNC,UAAWD,EACXE,WAAYF,EACZ5iB,MAAO4iB,EACP3rD,QAAS2rD,EACTG,gBAAiBH,EACjBz+E,IAAKy+E,EACLI,UAAWJ,EACXK,aAAcL,EACdM,aAAcN,EACdO,WAAYP,EACZQ,aAAcR,EACdS,SAAUT,EACVU,MAAOV,EACPW,KAAMX,EACNY,UAAWZ,EACXn8B,KAAMm8B,EACNa,SAAUb,EACVvmD,KAAMumD,EACNc,SAAUd,EACVe,WAAYf,EACZgB,UAAWhB,GAGf7qE,EAAOgI,MAAMykB,MAAMlyC,UAAUC,YAAcwlB,EAAOgI,MAAMykB,MAmBxDzsB,EAAO8gB,KAYHC,UAAW,SAAU+V,EAASzqB,GAE1BA,EAAQA,GAAS,GAAIrM,GAAOlnB,KAE5B,IAAIgzF,GAAMh1C,EAAQqxC,wBAEdX,EAAYxnE,EAAO8gB,IAAIirD,QACvBC,EAAahsE,EAAO8gB,IAAImrD,QACxBC,EAAYvkF,SAAS4yD,gBAAgB2xB,UACrCC,EAAaxkF,SAAS4yD,gBAAgB4xB,UAK1C,OAHA9/D,GAAMtvB,EAAI+uF,EAAIliE,KAAOoiE,EAAaG,EAClC9/D,EAAMrvB,EAAI8uF,EAAIx/D,IAAMk7D,EAAY0E,EAEzB7/D,GAiBX9uB,UAAW,SAAUu5C,EAASs1C,GAM1B,MAJgBjrF,UAAZirF,IAAyBA,EAAU,GAEvCt1C,EAAUA,IAAYA,EAAQhtB,SAAWgtB,EAAQ,GAAKA,EAEjDA,GAAgC,IAArBA,EAAQhtB,SAMbpyB,KAAK20F,UAAUv1C,EAAQqxC,wBAAyBiE,IAJhD,GAkBfC,UAAW,SAAUC,EAAQF,GAEzBA,GAAWA,GAAW,CAEtB,IAAIrgE,IAAW1tB,MAAO,EAAGC,OAAQ,EAAGsrB,KAAM,EAAGD,MAAO,EAAG2C,IAAK,EAAGC,OAAQ,EAKvE,OAHAR,GAAO1tB,OAAS0tB,EAAOpC,MAAQ2iE,EAAO3iE,MAAQyiE,IAAYrgE,EAAOnC,KAAO0iE,EAAO1iE,KAAOwiE,GACtFrgE,EAAOztB,QAAUytB,EAAOQ,OAAS+/D,EAAO//D,OAAS6/D,IAAYrgE,EAAOO,IAAMggE,EAAOhgE,IAAM8/D,GAEhFrgE,GAWXwgE,eAAgB,SAAU1+B,GAEtBA,EAAS,MAAQA,EAASn2D,KAAK8tF,aAAe,IAAM33B,EAAO/jC,SAAWpyB,KAAK6F,UAAUswD,GAAUA,CAE/F,IAAI5+C,GAAI4+C,EAAc,MAClBtzC,EAAIszC,EAAe,MAYvB,OAViB,kBAAN5+C,KAEPA,EAAIA,EAAE7R,KAAKywD,IAGE,kBAANtzC,KAEPA,EAAIA,EAAEnd,KAAKywD,IAGR5+C,EAAIsL,GAiBfiyE,iBAAkB,SAAU11C,EAASs1C,GAEjC,GAAI75E,GAAI7a,KAAK6F,UAAUu5C,EAASs1C,EAEhC,SAAS75E,GAAKA,EAAEga,QAAU,GAAKha,EAAEoX,OAAS,GAAKpX,EAAE+Z,KAAO50B,KAAKuwF,aAAa5pF,OAASkU,EAAEqX,MAAQlyB,KAAKuwF,aAAa3pF,QA6BnH4jF,qBAAsB,SAAUuK,GAE5B,GAAIC,GAASviF,OAAOuiF,OAChBzF,EAAcyF,EAAOzF,aAAeyF,EAAOC,gBAAkBD,EAAOE,aAExE,IAAI3F,GAA2C,gBAArBA,GAAYx6E,KAGlC,MAAOw6E,GAAYx6E,IAElB,IAA2B,gBAAhBw6E,GAGZ,MAAOA,EAGX,IAAI4F,GAAW,mBACXC,EAAY,mBAEhB,IAAwB,WAApBL,EAEA,MAAQC,GAAOpuF,OAASouF,EAAOruF,MAASwuF,EAAWC,CAElD,IAAwB,aAApBL,EAEL,MAAQ/0F,MAAK8tF,aAAalnF,OAAS5G,KAAK8tF,aAAannF,MAASwuF,EAAWC,CAExE,IAAwB,uBAApBL,GAA0E,gBAAvBtiF,QAAO88E,YAG/D,MAA+B,KAAvB98E,OAAO88E,aAA4C,MAAvB98E,OAAO88E,YAAuB4F,EAAWC,CAE5E,IAAI3iF,OAAO4iF,WAChB,CACI,GAAI5iF,OAAO4iF,WAAW,2BAA2BrvB,QAE7C,MAAOmvB,EAEN,IAAI1iF,OAAO4iF,WAAW,4BAA4BrvB,QAEnD,MAAOovB,GAIf,MAAQp1F,MAAK8tF,aAAalnF,OAAS5G,KAAK8tF,aAAannF,MAASwuF,EAAWC,GAqB7EtH,aAAc,GAAIxlE,GAAO9lB,UAqBzB+tF,aAAc,GAAIjoE,GAAO9lB,UAczB8yF,eAAgB,GAAIhtE,GAAO9lB,WAI/B8lB,EAAOsqB,OAAOoB,UAAU,SAAU5J,GAG9B,GAAImqD,GAAU9hF,QAAW,eAAiBA,QACtC,WAAc,MAAOA,QAAO8iF,aAC5B,WAAc,MAAOtlF,UAAS4yD,gBAAgByxB,YAE9CD,EAAU5hF,QAAW,eAAiBA,QACtC,WAAc,MAAOA,QAAO+iF,aAC5B,WAAc,MAAOvlF,UAAS4yD,gBAAgBitB,UAUlD1sF,QAAOC,eAAeilB,EAAO8gB,IAAK,WAC9B9lC,IAAKixF,IAWTnxF,OAAOC,eAAeilB,EAAO8gB,IAAK,WAC9B9lC,IAAK+wF,IAGTjxF,OAAOC,eAAeilB,EAAO8gB,IAAI0kD,aAAc,KAC3CxqF,IAAKixF,IAGTnxF,OAAOC,eAAeilB,EAAO8gB,IAAI0kD,aAAc,KAC3CxqF,IAAK+wF,IAGTjxF,OAAOC,eAAeilB,EAAO8gB,IAAImnD,aAAc,KAC3C9sF,MAAO,IAGXL,OAAOC,eAAeilB,EAAO8gB,IAAImnD,aAAc,KAC3C9sF,MAAO,GAGX,IAAIgyF,GAAiBrrD,EAAO0yB,SACvB7sD,SAAS4yD,gBAAgB6yB,aAAejjF,OAAOkf,YAC/C1hB,SAAS4yD,gBAAgB8yB,cAAgBljF,OAAOmf,WAKrD,IAAI6jE,EACJ,CAII,GAAIC,GAAc,WACd,MAAO70F,MAAK+G,IAAI6K,OAAOkf,WAAY1hB,SAAS4yD,gBAAgB6yB,cAE5DC,EAAe,WACf,MAAO90F,MAAK+G,IAAI6K,OAAOmf,YAAa3hB,SAAS4yD,gBAAgB8yB,cAIjEvyF,QAAOC,eAAeilB,EAAO8gB,IAAI0kD,aAAc,SAC3CxqF,IAAKoyF,IAGTtyF,OAAOC,eAAeilB,EAAO8gB,IAAI0kD,aAAc,UAC3CxqF,IAAKqyF,IAGTvyF,OAAOC,eAAeilB,EAAO8gB,IAAImnD,aAAc,SAC3CjtF,IAAKoyF,IAGTtyF,OAAOC,eAAeilB,EAAO8gB,IAAImnD,aAAc,UAC3CjtF,IAAKqyF,QAKTvyF,QAAOC,eAAeilB,EAAO8gB,IAAI0kD,aAAc,SAC3CxqF,IAAK,WACD,MAAOmP,QAAOkf,cAItBvuB,OAAOC,eAAeilB,EAAO8gB,IAAI0kD,aAAc,UAC3CxqF,IAAK,WACD,MAAOmP,QAAOmf,eAItBxuB,OAAOC,eAAeilB,EAAO8gB,IAAImnD,aAAc,SAE3CjtF,IAAK,WACD,GAAIoB,GAAIuL,SAAS4yD,gBAAgB6yB,YAC7B/wF,EAAI8N,OAAOkf,UAEf,OAAWhtB,GAAJD,EAAQC,EAAID,KAK3BtB,OAAOC,eAAeilB,EAAO8gB,IAAImnD,aAAc,UAE3CjtF,IAAK,WACD,GAAIoB,GAAIuL,SAAS4yD,gBAAgB8yB,aAC7BhxF,EAAI8N,OAAOmf,WAEf,OAAWjtB,GAAJD,EAAQC,EAAID,IAU/BtB,QAAOC,eAAeilB,EAAO8gB,IAAIksD,eAAgB,KAC7C7xF,MAAO,IAGXL,OAAOC,eAAeilB,EAAO8gB,IAAIksD,eAAgB,KAC7C7xF,MAAO,IAGXL,OAAOC,eAAeilB,EAAO8gB,IAAIksD,eAAgB,SAE7ChyF,IAAK,WACD,GAAIuB,GAAIoL,SAAS4yD,eACjB,OAAOhiE,MAAK+G,IAAI/C,EAAE6wF,YAAa7wF,EAAE+wF,YAAa/wF,EAAEgxF,gBAKxDzyF,OAAOC,eAAeilB,EAAO8gB,IAAIksD,eAAgB,UAE7ChyF,IAAK,WACD,GAAIuB,GAAIoL,SAAS4yD,eACjB,OAAOhiE,MAAK+G,IAAI/C,EAAE8wF,aAAc9wF,EAAEixF,aAAcjxF,EAAEkxF,kBAK3D,MAAM,GAoBTztE,EAAOynB,SAAW,SAAUimD,GAOxBh2F,KAAKmB,SAAW,EAMhBnB,KAAKg2F,KAAOA,OAIhB1tE,EAAOynB,SAASltC,WAUZi0B,IAAK,SAAUvzB,GAOX,MALKvD,MAAK6oC,OAAOtlC,IAEbvD,KAAKg2F,KAAKjyF,KAAKR,GAGZA,GAWXuqC,SAAU,SAAUvqC,GAEhB,MAAOvD,MAAKg2F,KAAK7sF,QAAQ5F,IAa7B0yF,SAAU,SAAUlnD,EAAUtrC,GAI1B,IAFA,GAAIR,GAAIjD,KAAKg2F,KAAK9yF,OAEXD,KAEH,GAAIjD,KAAKg2F,KAAK/yF,GAAG8rC,KAActrC,EAE3B,MAAOzD,MAAKg2F,KAAK/yF,EAIzB,OAAO,OAWX4lC,OAAQ,SAAUtlC,GAEd,MAAQvD,MAAKg2F,KAAK7sF,QAAQ5F,GAAQ,IAStC07B,MAAO,WAEHj/B,KAAKg2F,KAAK9yF,OAAS,GAWvB2N,OAAQ,SAAUtN,GAEd,GAAI2N,GAAMlR,KAAKg2F,KAAK7sF,QAAQ5F,EAE5B,OAAI2N,GAAM,IAENlR,KAAKg2F,KAAKptF,OAAOsI,EAAK,GACf3N,GAHX,QAeJorC,OAAQ,SAAUj6B,EAAKjR,GAInB,IAFA,GAAIR,GAAIjD,KAAKg2F,KAAK9yF,OAEXD,KAECjD,KAAKg2F,KAAK/yF,KAEVjD,KAAKg2F,KAAK/yF,GAAGyR,GAAOjR,IAgBhC+rC,QAAS,SAAU96B,GAMf,IAJA,GAAI6a,GAAO5uB,MAAMkC,UAAUusB,MAAM1pB,KAAKgqB,UAAW,GAE7CzsB,EAAIjD,KAAKg2F,KAAK9yF,OAEXD,KAECjD,KAAKg2F,KAAK/yF,IAAMjD,KAAKg2F,KAAK/yF,GAAGyR,IAE7B1U,KAAKg2F,KAAK/yF,GAAGyR,GAAKzN,MAAMjH,KAAKg2F,KAAK/yF,GAAIssB,IAYlD6T,UAAW,SAAUrgC,GAED0G,SAAZ1G,IAAyBA,GAAU,EAIvC,KAFA,GAAIE,GAAIjD,KAAKg2F,KAAK9yF,OAEXD,KAEH,GAAIjD,KAAKg2F,KAAK/yF,GACd,CACI,GAAIM,GAAOvD,KAAK6Q,OAAO7Q,KAAKg2F,KAAK/yF,GAE7BF,IAEAQ,EAAKR,UAKjB/C,KAAKmB,SAAW,EAChBnB,KAAKg2F,UAYb5yF,OAAOC,eAAeilB,EAAOynB,SAASltC,UAAW,SAE7CS,IAAK,WACD,MAAOtD,MAAKg2F,KAAK9yF,UAWzBE,OAAOC,eAAeilB,EAAOynB,SAASltC,UAAW,SAE7CS,IAAK,WAID,MAFAtD,MAAKmB,SAAW,EAEZnB,KAAKg2F,KAAK9yF,OAAS,EAEZlD,KAAKg2F,KAAK,GAIV,QAanB5yF,OAAOC,eAAeilB,EAAOynB,SAASltC,UAAW,QAE7CS,IAAK,WAED,MAAItD,MAAKmB,SAAWnB,KAAKg2F,KAAK9yF,QAE1BlD,KAAKmB,WAEEnB,KAAKg2F,KAAKh2F,KAAKmB,WAIf,QAOnBmnB,EAAOynB,SAASltC,UAAUC,YAAcwlB,EAAOynB,SAc/CznB,EAAOipB,YAcHC,cAAe,SAAUw8B,EAAS/pD,EAAY/gB,GAE1C,GAAgB,OAAZ8qE,EAAoB,MAAO,KACZvkE,UAAfwa,IAA4BA,EAAa,GAC9Bxa,SAAXvG,IAAwBA,EAAS8qE,EAAQ9qE,OAE7C,IAAIgzF,GAAcjyE,EAAapjB,KAAKouB,MAAMpuB,KAAKqwB,SAAWhuB,EAE1D,OAAgCuG,UAAzBukE,EAAQkoB,GAA6B,KAAOloB,EAAQkoB,IAgB/DC,iBAAkB,SAAUnoB,EAAS/pD,EAAY/gB,GAE7C,GAAe,MAAX8qE,EACA,MAAO,KAGQvkE,UAAfwa,IAA4BA,EAAa,GAC9Bxa,SAAXvG,IAAwBA,EAAS8qE,EAAQ9qE,OAE7C,IAAIgzF,GAAcjyE,EAAapjB,KAAKouB,MAAMpuB,KAAKqwB,SAAWhuB,EAC1D,IAAIgzF,EAAcloB,EAAQ9qE,OAC1B,CACI,GAAI8G,GAAUgkE,EAAQplE,OAAOstF,EAAa,EAC1C,OAAsBzsF,UAAfO,EAAQ,GAAmB,KAAOA,EAAQ,GAIjD,MAAO,OAYfosF,QAAS,SAAU19D,GAEf,IAAK,GAAIz1B,GAAIy1B,EAAMx1B,OAAS,EAAGD,EAAI,EAAGA,IACtC,CACI,GAAIa,GAAIjD,KAAKouB,MAAMpuB,KAAKqwB,UAAYjuB,EAAI,IACpCwJ,EAAOisB,EAAMz1B,EACjBy1B,GAAMz1B,GAAKy1B,EAAM50B,GACjB40B,EAAM50B,GAAK2I,EAGf,MAAOisB,IAWX29D,gBAAiB,SAAU39D,GAOvB,IAAK,GALD49D,GAAiB59D,EAAMx1B,OACvBqzF,EAAiB79D,EAAM,GAAGx1B,OAE1B8N,EAAS,GAAIrQ,OAAM41F,GAEdtzF,EAAI,EAAOszF,EAAJtzF,EAAoBA,IACpC,CACI+N,EAAO/N,GAAK,GAAItC,OAAM21F,EAEtB,KAAK,GAAIxyF,GAAIwyF,EAAiB,EAAGxyF,EAAI,GAAIA,IAErCkN,EAAO/N,GAAGa,GAAK40B,EAAM50B,GAAGb,GAIhC,MAAO+N,IAcXwlF,aAAc,SAAU1wF,EAAQi7E,GAO5B,GALyB,gBAAdA,KAEPA,GAAcA,EAAY,IAAO,KAAO,KAG1B,KAAdA,GAAkC,OAAdA,GAAoC,eAAdA,EAE1Cj7E,EAASwiB,EAAOipB,WAAW8kD,gBAAgBvwF,GAC3CA,EAASA,EAAO+X,cAEf,IAAkB,MAAdkjE,GAAmC,MAAdA,GAAmC,gBAAdA,EAE/Cj7E,EAASA,EAAO+X,UAChB/X,EAASwiB,EAAOipB,WAAW8kD,gBAAgBvwF,OAE1C,IAA4B,MAAxBjF,KAAKq0B,IAAI6rD,IAAoC,cAAdA,EACxC,CACI,IAAK,GAAI99E,GAAI,EAAGA,EAAI6C,EAAO5C,OAAQD,IAE/B6C,EAAO7C,GAAG4a,SAGd/X,GAASA,EAAO+X,UAGpB,MAAO/X,IAaX2wF,YAAa,SAAUhzF,EAAOizF,GAE1B,IAAKA,EAAIxzF,OAEL,MAAOyzF,IAEN,IAAmB,IAAfD,EAAIxzF,QAAgBO,EAAQizF,EAAI,GAErC,MAAOA,GAAI,EAIf,KADA,GAAIzzF,GAAI,EACDyzF,EAAIzzF,GAAKQ,GACZR,GAGJ,IAAI2zF,GAAMF,EAAIzzF,EAAI,GACd4zF,EAAQ5zF,EAAIyzF,EAAIxzF,OAAUwzF,EAAIzzF,GAAK04B,OAAOm7D,iBAE9C,OAA2BrzF,GAAQmzF,GAA1BC,EAAOpzF,EAA2BozF,EAAOD,GAYtDtgE,OAAQ,SAAUoC,GAEd,GAAI2B,GAAI3B,EAAMosB,OAGd,OAFApsB,GAAM30B,KAAKs2B,GAEJA,GAaX08D,YAAa,SAAU3rF,EAAOtB,GAI1B,IAAK,GAFDkH,MAEK/N,EAAImI,EAAYtB,GAAL7G,EAAUA,IAE1B+N,EAAOjN,KAAKd,EAGhB,OAAO+N,IAqCXgmF,gBAAiB,SAAU5rF,EAAOtB,EAAK2sC,IAErBhtC,SAAV2B,GAAiC,OAAVA,KAAkBA,EAAQ,IAEzC3B,SAARK,GAA6B,OAARA,KAErBA,EAAMsB,EACNA,EAAQ,GAGC3B,SAATgtC,IAAsBA,EAAO,EAKjC,KAAK,GAHDzlC,MACA2/B,EAAQ9vC,KAAK+G,IAAI0gB,EAAOznB,KAAK6qE,mBAAmB5hE,EAAMsB,IAAUqrC,GAAQ,IAAK,GAExExzC,EAAI,EAAO0tC,EAAJ1tC,EAAWA,IAEvB+N,EAAOjN,KAAKqH,GACZA,GAASqrC,CAGb,OAAOzlC,KAuBfsX,EAAO2uE,WAAa,WAOhBj3F,KAAKytC,KAAO,KAOZztC,KAAKk3F,KAAO,KAOZl3F,KAAK0lD,MAAQ,KAOb1lD,KAAK4wB,KAAO,KAOZ5wB,KAAK2wC,MAAQ,GAIjBroB,EAAO2uE,WAAWp0F,WASdi0B,IAAK,SAAUvzB,GAGX,MAAmB,KAAfvD,KAAK2wC,OAA8B,OAAf3wC,KAAK0lD,OAAgC,OAAd1lD,KAAK4wB,MAEhD5wB,KAAK0lD,MAAQniD,EACbvD,KAAK4wB,KAAOrtB,EACZvD,KAAKytC,KAAOlqC,EACZA,EAAK2zF,KAAOl3F,KACZA,KAAK2wC,QACEptC,IAIXvD,KAAK4wB,KAAK6c,KAAOlqC,EAEjBA,EAAK2zF,KAAOl3F,KAAK4wB,KAEjB5wB,KAAK4wB,KAAOrtB,EAEZvD,KAAK2wC,QAEEptC,IASX07B,MAAO,WAEHj/B,KAAK0lD,MAAQ,KACb1lD,KAAK4wB,KAAO,KACZ5wB,KAAKytC,KAAO,KACZztC,KAAKk3F,KAAO,KACZl3F,KAAK2wC,MAAQ,GAUjB9/B,OAAQ,SAAUtN,GAEd,MAAmB,KAAfvD,KAAK2wC,OAEL3wC,KAAKi/B,aACL17B,EAAKkqC,KAAOlqC,EAAK2zF,KAAO,QAIxB3zF,IAASvD,KAAK0lD,MAGd1lD,KAAK0lD,MAAQ1lD,KAAK0lD,MAAMjY,KAEnBlqC,IAASvD,KAAK4wB,OAGnB5wB,KAAK4wB,KAAO5wB,KAAK4wB,KAAKsmE,MAGtB3zF,EAAK2zF,OAGL3zF,EAAK2zF,KAAKzpD,KAAOlqC,EAAKkqC,MAGtBlqC,EAAKkqC,OAGLlqC,EAAKkqC,KAAKypD,KAAO3zF,EAAK2zF,MAG1B3zF,EAAKkqC,KAAOlqC,EAAK2zF,KAAO,KAEL,OAAfl3F,KAAK0lD,QAEL1lD,KAAK4wB,KAAO,UAGhB5wB,MAAK2wC,UAWTnB,QAAS,SAAUH,GAEf,GAAKrvC,KAAK0lD,OAAU1lD,KAAK4wB,KAAzB,CAKA,GAAIumE,GAASn3F,KAAK0lD,KAElB,GAEQyxC,IAAUA,EAAO9nD,IAEjB8nD,EAAO9nD,GAAU3pC,KAAKyxF,GAG1BA,EAASA,EAAO1pD,WAGd0pD,GAAUn3F,KAAK4wB,KAAK6c,SAMlCnlB,EAAO2uE,WAAWp0F,UAAUC,YAAcwlB,EAAO2uE,WAmBjD3uE,EAAOusB,OAAS,SAAU30C,GAKtBF,KAAKE,KAAOA,EAKZF,KAAKo3F,IAAM,KAKXp3F,KAAKwQ,OAAS,KAKdxQ,KAAK6kE,IAAM,KAKX7kE,KAAKq3F,WACC,EAAG,OAAQC,EAAG,UAAWC,EAAG,OAAQC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWvoE,EAAG,YAC/M,EAAG,OAAQ0nE,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWvoE,EAAG,YAClN,EAAG,OAAQ0nE,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWvoE,EAAG,SAClN,EAAG,OAAQ0nE,EAAG,OAAQC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWvoE,EAAG,YAC/M,EAAG,OAAQ0nE,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWC,EAAG,UAAWvoE,EAAG,UAU5NtH,EAAOusB,OAAOujD,aAAe,EAO7B9vE,EAAOusB,OAAOwjD,YAAc,EAO5B/vE,EAAOusB,OAAOyjD,YAAc,EAO5BhwE,EAAOusB,OAAO0jD,YAAc,EAO5BjwE,EAAOusB,OAAO2jD,yBAA2B,EAEzClwE,EAAOusB,OAAOhyC,WAiCViF,QAAS,SAAU4M,EAAK9D,EAAM6nF,EAAYC,EAAaC,GAEhClvF,SAAfgvF,IAA4BA,EAAa,GACzBhvF,SAAhBivF,IAA6BA,EAAcD,GAC/BhvF,SAAZkvF,IAAyBA,EAAU,EAEvC,IAAIphF,GAAI3G,EAAK,GAAG1N,OAASu1F,EACrB51E,EAAIjS,EAAK1N,OAASw1F,CAGL,QAAb14F,KAAKo3F,MAELp3F,KAAKo3F,IAAMp3F,KAAKE,KAAKi/B,KAAK65B,aAC1Bh5D,KAAKwQ,OAASxQ,KAAKo3F,IAAI5mF,OACvBxQ,KAAK6kE,IAAM7kE,KAAKo3F,IAAIhqF,SAGxBpN,KAAKo3F,IAAIrvF,OAAOwP,EAAGsL,GACnB7iB,KAAKo3F,IAAIr8E,OAGT,KAAK,GAAIzV,GAAI,EAAGA,EAAIsL,EAAK1N,OAAQoC,IAI7B,IAAK,GAFDuxE,GAAMjmE,EAAKtL,GAEND,EAAI,EAAGA,EAAIwxE,EAAI3zE,OAAQmC,IAChC,CACI,GAAIR,GAAIgyE,EAAIxxE,EAEF,OAANR,GAAmB,MAANA,IAEb7E,KAAK6kE,IAAIv9C,UAAYtnB,KAAKq3F,SAASsB,GAAS9zF,GAC5C7E,KAAK6kE,IAAIp9C,SAASpiB,EAAIozF,EAAYnzF,EAAIozF,EAAaD,EAAYC,IAK3E,MAAO14F,MAAKo3F,IAAIhxF,gBAAgBsO,IAgBpC64C,KAAM,SAAU74C,EAAK/N,EAAOC,EAAQgyF,EAAWC,EAAYtgF,GAGtC,OAAbvY,KAAKo3F,MAELp3F,KAAKo3F,IAAMp3F,KAAKE,KAAKi/B,KAAK65B,aAC1Bh5D,KAAKwQ,OAASxQ,KAAKo3F,IAAI5mF,OACvBxQ,KAAK6kE,IAAM7kE,KAAKo3F,IAAIhqF,SAGxBpN,KAAKo3F,IAAIrvF,OAAOpB,EAAOC,GAEvB5G,KAAK6kE,IAAIv9C,UAAY/O,CAErB,KAAK,GAAIjT,GAAI,EAAOsB,EAAJtB,EAAYA,GAAKuzF,EAE7B74F,KAAK6kE,IAAIp9C,SAAS,EAAGniB,EAAGqB,EAAO,EAGnC,KAAK,GAAItB,GAAI,EAAOsB,EAAJtB,EAAWA,GAAKuzF,EAE5B54F,KAAK6kE,IAAIp9C,SAASpiB,EAAG,EAAG,EAAGuB,EAG/B,OAAO5G,MAAKo3F,IAAIhxF,gBAAgBsO,KAMxC4T,EAAOusB,OAAOhyC,UAAUC,YAAcwlB,EAAOusB,OAsB7CvsB,EAAOqlE,SAAW,SAAUmL,EAASnyF,EAAOC,GAKxC5G,KAAKE,KAAO44F,EAAQ54F,KAKpBF,KAAK84F,QAAUA,EAGf94F,KAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,EAEd5G,KAAK+4F,aAAe,GAAIzwE,GAAO9lB,UAAU,EAAG,EAAGmE,EAAOC,GACtD5G,KAAKwtD,YAAc,GAAIllC,GAAO9lB,UAAU,EAAG,EAAGmE,EAAOC,GACrD5G,KAAKg5F,WAAa,GAAI1wE,GAAO9lB,UAAU,EAAG,EAAGmE,EAAOC,GACpD5G,KAAKi5F,WAAa,GAAI3wE,GAAO9lB,UAAU,EAAG,EAAGmE,EAAOC,GAMpD5G,KAAKk5F,eAAiB,GAAI5wE,GAAOlnB,MAAM,EAAG,GAC1CpB,KAAKm5F,cAAgB,GAAI7wE,GAAOlnB,MAAM,EAAG,GACzCpB,KAAKo5F,aAAe,GAAI9wE,GAAOlnB,MAAM,EAAG,GACxCpB,KAAKq5F,aAAe,GAAI/wE,GAAOlnB,MAAM,EAAG,GAMxCpB,KAAKs5F,YAAc,GAAIhxE,GAAOlnB,MAAM,EAAG,GACvCpB,KAAKu5F,WAAa,GAAIjxE,GAAOlnB,MAAM,EAAG,GACtCpB,KAAKytD,mBAAqB,GAAInlC,GAAOlnB,MAAM,EAAG,GAC9CpB,KAAKw5F,UAAY,GAAIlxE,GAAOlnB,MAAM,EAAG,GACrCpB,KAAKy5F,UAAY,GAAInxE,GAAOlnB,MAAM,EAAG,GAErCpB,KAAK05F,YAAc,EACnB15F,KAAK25F,aAAe,EACpB35F,KAAK45F,cAAgB,EACrB55F,KAAK65F,cAAgB,EAErB75F,KAAK85F,OAASnzF,EAAQC,EACtB5G,KAAK+5F,OAASnzF,EAASD,EAEvB3G,KAAK4xF,WAAa,EAElB5xF,KAAKg6F,WAIT1xE,EAAOqlE,SAAS9qF,WASZm8B,QAAS,SAAUr4B,EAAOC,GAGtB5G,KAAK2G,MAAQA,EACb3G,KAAK4G,OAASA,EAEd5G,KAAK85F,OAASnzF,EAAQC,EACtB5G,KAAK+5F,OAASnzF,EAASD,EAEvB3G,KAAKy5F,UAAY,GAAInxE,GAAOlnB,MAAM,EAAG,GAErCpB,KAAKi5F,WAAWtyF,MAAQ3G,KAAK2G,MAC7B3G,KAAKi5F,WAAWryF,OAAS5G,KAAK4G,OAE9B5G,KAAKqoB,WAeT4xE,kBAAmB,SAAUtzF,EAAOC,EAAQ5D,EAAU2kC,GAE/Bl+B,SAAfk+B,IAA4BA,GAAa,GAE7C3nC,KAAK05F,YAAc/yF,EACnB3G,KAAK25F,aAAe/yF,EAEpB5G,KAAK+4F,aAAapyF,MAAQA,EAC1B3G,KAAK+4F,aAAanyF,OAASA,CAE3B,IAAIszF,GAAQ,GAAI5xE,GAAO6xE,UAAUn6F,KAAMA,KAAKk5F,eAAgBl5F,KAAK+4F,aAAc/4F,KAAKs5F,YAcpF,OAZI3xD,IAEA3nC,KAAKE,KAAKuE,MAAMqyB,IAAIojE,GAGxBl6F,KAAKg6F,OAAOj2F,KAAKm2F,GAEO,mBAAbl3F,IAAgD,aAAbA,IAE1Ck3F,EAAMjtD,YAAYjqC,GAGfk3F,GAWXE,iBAAkB,SAAUp3F,EAAU2kC,GAEfl+B,SAAfk+B,IAA4BA,GAAa,EAE7C,IAAIuyD,GAAQ,GAAI5xE,GAAO6xE,UAAUn6F,KAAMA,KAAKm5F,cAAen5F,KAAKwtD,YAAaxtD,KAAKu5F,WAclF,OAZI5xD,IAEA3nC,KAAKE,KAAKuE,MAAMqyB,IAAIojE,GAGxBl6F,KAAKg6F,OAAOj2F,KAAKm2F,GAEO,mBAAbl3F,IAAgD,aAAbA,IAE1Ck3F,EAAMjtD,YAAYjqC,GAGfk3F,GAWXG,gBAAiB,SAAUr3F,GAEvB,GAAIk3F,GAAQ,GAAI5xE,GAAO6xE,UAAUn6F,KAAMA,KAAKo5F,aAAcp5F,KAAKg5F,WAAYh5F,KAAKu5F,WAWhF,OATAv5F,MAAKE,KAAKuE,MAAMqyB,IAAIojE,GAEpBl6F,KAAKg6F,OAAOj2F,KAAKm2F,GAEO,mBAAbl3F,IAEPk3F,EAAMjtD,YAAYjqC,GAGfk3F,GAWXI,iBAAkB,SAAUt3F,GAExB,GAAIk3F,GAAQ,GAAI5xE,GAAO6xE,UAAUn6F,KAAMA,KAAKq5F,aAAcr5F,KAAKi5F,WAAYj5F,KAAKy5F,UAWhF,OATAz5F,MAAKE,KAAKuE,MAAMqyB,IAAIojE,GAEpBl6F,KAAKg6F,OAAOj2F,KAAKm2F,GAEO,mBAAbl3F,IAEPk3F,EAAMjtD,YAAYjqC,GAGfk3F,GASXj7D,MAAO,WAIH,IAFA,GAAIh8B,GAAIjD,KAAKg6F,OAAO92F,OAEbD,KAEEjD,KAAKg6F,OAAO/2F,GAAGs3F,UAGhBv6F,KAAKg6F,OAAO/2F,GAAG9B,SAAW,KAC1BnB,KAAKg6F,OAAO/2F,GAAG5B,MAAQ,KACvBrB,KAAKg6F,OAAO5qE,MAAMnsB,EAAG,KAajC2oF,SAAU,SAAUjlF,EAAOC,GAEvB5G,KAAK85F,OAASnzF,EAAQC,EACtB5G,KAAK+5F,OAASnzF,EAASD,EAEvB3G,KAAKqoB,QAAQ1hB,EAAOC,IASxByhB,QAAS,WAELroB,KAAK4xF,WAAa/wF,KAAKq2B,IAAKl3B,KAAK84F,QAAQlyF,OAAS5G,KAAK4G,OAAU5G,KAAK84F,QAAQnyF,MAAQ3G,KAAK2G,OAE3F3G,KAAKwtD,YAAY7mD,MAAQ9F,KAAKuzB,MAAMp0B,KAAK2G,MAAQ3G,KAAK4xF,YACtD5xF,KAAKwtD,YAAY5mD,OAAS/F,KAAKuzB,MAAMp0B,KAAK4G,OAAS5G,KAAK4xF,YAExD5xF,KAAKu5F,WAAW/1F,IAAIxD,KAAKwtD,YAAY7mD,MAAQ3G,KAAK2G,MAAO3G,KAAKwtD,YAAY5mD,OAAS5G,KAAK4G,QACxF5G,KAAKytD,mBAAmBjqD,IAAIxD,KAAK2G,MAAQ3G,KAAKwtD,YAAY7mD,MAAO3G,KAAK4G,OAAS5G,KAAKwtD,YAAY5mD,QAEhG5G,KAAKw5F,UAAUh2F,IAAIxD,KAAKg5F,WAAWryF,MAAQ3G,KAAK2G,MAAO3G,KAAKg5F,WAAWpyF,OAAS5G,KAAK4G,QAErF5G,KAAKg5F,WAAWryF,MAAQ9F,KAAKuzB,MAAMp0B,KAAK84F,QAAQnyF,MAAQ3G,KAAKytD,mBAAmBpoD,GAChFrF,KAAKg5F,WAAWpyF,OAAS/F,KAAKuzB,MAAMp0B,KAAK84F,QAAQlyF,OAAS5G,KAAKytD,mBAAmBnoD,GAElFtF,KAAKwtD,YAAY32B,SAAS72B,KAAK84F,QAAQtyF,OAAOy1B,QAASj8B,KAAK84F,QAAQtyF,OAAO01B,SAC3El8B,KAAKi5F,WAAWpiE,SAAS72B,KAAK84F,QAAQtyF,OAAOy1B,QAASj8B,KAAK84F,QAAQtyF,OAAO01B,SAE1El8B,KAAKm5F,cAAc31F,IAAIxD,KAAKwtD,YAAYnoD,EAAGrF,KAAKwtD,YAAYloD,GAC5DtF,KAAKq5F,aAAa71F,IAAIxD,KAAKi5F,WAAW5zF,EAAGrF,KAAKi5F,WAAW3zF,IAU7Dk1F,UAAW,SAAUr4E,GAEjBniB,KAAK84F,QAAQlG,YAAYzwE,GAEzBA,EAAO9c,EAAIrF,KAAK84F,QAAQtyF,OAAOy1B,QAC/B9Z,EAAO7c,EAAItF,KAAK84F,QAAQtyF,OAAO01B,SASnCmH,MAAO,WAUHrjC,KAAKE,KAAKmjC,MAAM2zB,KAAKh3D,KAAKwtD,YAAY7mD,MAAQ,MAAQ3G,KAAKwtD,YAAY5mD,OAAQ5G,KAAKwtD,YAAYnoD,EAAI,EAAGrF,KAAKwtD,YAAYloD,EAAI,IAC5HtF,KAAKE,KAAKmjC,MAAMywD,KAAK9zF,KAAKwtD,YAAa,oBAAoB,KAYnEllC,EAAOqlE,SAAS9qF,UAAUC,YAAcwlB,EAAOqlE,SAuB/CrlE,EAAO6xE,UAAY,SAAUrB,EAAS33F,EAAUqF,EAAQnF,GAEpDinB,EAAO4iB,MAAMxlC,KAAK1F,KAAM84F,EAAQ54F,KAAM,KAAM,cAAgB44F,EAAQ54F,KAAK4/B,IAAI84B,QAAQ,GAKrF54D,KAAK84F,QAAUA,EAAQA,QAKvB94F,KAAKutD,KAAOurC,EAOZ94F,KAAKu6F,SAAU,EAKfv6F,KAAKmB,SAAWA,EAKhBnB,KAAKwG,OAASA,EAKdxG,KAAKqB,MAAQA,EAKbrB,KAAKy6F,QAAUj0F,EAAOi0F,QAKtBz6F,KAAK06F,UAAY,GAAIpyE,GAAOlnB,MAAMoF,EAAO2uB,UAAW,GAKpDn1B,KAAK26F,SAAWn0F,EAAOm0F,SAKvB36F,KAAK46F,WAAap0F,EAAOo0F,WAKzB56F,KAAK66F,aAAe,GAAIvyE,GAAOlnB,MAAMoF,EAAO2uB,UAAW3uB,EAAOquB,QAK9D70B,KAAK86F,YAAct0F,EAAOs0F,aAI9BxyE,EAAO6xE,UAAUt3F,UAAYO,OAAOgF,OAAOkgB,EAAO4iB,MAAMroC,WACxDylB,EAAO6xE,UAAUt3F,UAAUC,YAAcwlB,EAAO6xE,UAOhD7xE,EAAO6xE,UAAUt3F,UAAUkF,OAAS,aAQpCugB,EAAO6xE,UAAUt3F,UAAUwgC,MAAQ,WAE/BrjC,KAAKE,KAAKmjC,MAAM2zB,KAAKh3D,KAAKwG,OAAOG,MAAQ,MAAQ3G,KAAKwG,OAAOI,OAAQ5G,KAAKwG,OAAOnB,EAAI,EAAGrF,KAAKwG,OAAOlB,EAAI,IACxGtF,KAAKE,KAAKmjC,MAAMywD,KAAK9zF,KAAKwG,OAAQ,oBAAoB,GAEtDxG,KAAKE,KAAKmjC,MAAMywD,KAAK9zF,KAAKy6F,QAAS,wBACnCz6F,KAAKE,KAAKmjC,MAAMywD,KAAK9zF,KAAK06F,UAAW,wBACrC16F,KAAKE,KAAKmjC,MAAMywD,KAAK9zF,KAAK26F,SAAU,yBAexCryE,EAAOwiB,OAeHiwD,UAAW,SAAUlgF,EAAGC,EAAGnW,EAAGD,GAE1B,MAAI4jB,GAAOsqB,OAAO4tB,eAEJ97D,GAAK,GAAOC,GAAK,GAAOmW,GAAM,EAAKD,KAAQ,GAI3CA,GAAK,GAAOC,GAAK,GAAOnW,GAAM,EAAKD,KAAQ,GAwB7Ds2F,YAAa,SAAUpyE,EAAMgL,EAAKqnE,EAAKC,GAkCnC,OAhCYzxF,SAARmqB,GAA6B,OAARA,KAAgBA,EAAMtL,EAAOwiB,MAAMqwD,gBAChD1xF,SAARwxF,GAA6B,OAARA,KAAgBA,GAAM,IACnCxxF,SAARyxF,GAA6B,OAARA,KAAgBA,GAAM,GAE3C5yE,EAAOsqB,OAAO4tB,eAEd5sC,EAAIlvB,GAAa,WAAPkkB,KAAuB,GACjCgL,EAAIjvB,GAAa,SAAPikB,KAAuB,GACjCgL,EAAI9Y,GAAa,MAAP8N,KAAuB,EACjCgL,EAAI/Y,EAAa,IAAP+N,IAIVgL,EAAI/Y,GAAa,WAAP+N,KAAuB,GACjCgL,EAAI9Y,GAAa,SAAP8N,KAAuB,GACjCgL,EAAIjvB,GAAa,MAAPikB,KAAuB,EACjCgL,EAAIlvB,EAAa,IAAPkkB,GAGdgL,EAAIrb,MAAQqQ,EACZgL,EAAIhL,KAAO,QAAUgL,EAAI/Y,EAAI,IAAM+Y,EAAI9Y,EAAI,IAAM8Y,EAAIjvB,EAAI,IAAOivB,EAAIlvB,EAAI,IAAO,IAE3Eu2F,GAEA3yE,EAAOwiB,MAAMswD,SAASxnE,EAAI/Y,EAAG+Y,EAAI9Y,EAAG8Y,EAAIjvB,EAAGivB,GAG3CsnE,GAEA5yE,EAAOwiB,MAAMuwD,SAASznE,EAAI/Y,EAAG+Y,EAAI9Y,EAAG8Y,EAAIjvB,EAAGivB,GAGxCA,GAeX0nE,SAAU,SAAU1yE,EAAMgL,GActB,MAZKA,KAEDA,EAAMtL,EAAOwiB,MAAMqwD,eAGvBvnE,EAAI/Y,GAAa,WAAP+N,KAAuB,GACjCgL,EAAI9Y,GAAa,SAAP8N,KAAuB,GACjCgL,EAAIjvB,GAAa,MAAPikB,KAAuB,EACjCgL,EAAIlvB,EAAa,IAAPkkB,EAEVgL,EAAIhL,KAAO,QAAUgL,EAAI/Y,EAAI,IAAM+Y,EAAI9Y,EAAI,IAAM8Y,EAAIjvB,EAAI,IAAMivB,EAAIlvB,EAAI,IAEhEkvB,GAgBX2nE,OAAQ,SAAU1gF,EAAGC,EAAGnW,EAAGD,GAEvB,MAAQmW,IAAK,GAAOC,GAAK,GAAOnW,GAAM,EAAKD,GAkB/C02F,SAAU,SAAUvgF,EAAGC,EAAGnW,EAAGivB,GAEpBA,IAEDA,EAAMtL,EAAOwiB,MAAMqwD,YAAYtgF,EAAGC,EAAGnW,EAAG,IAG5CkW,GAAK,IACLC,GAAK,IACLnW,GAAK,GAEL,IAAIuyB,GAAMr2B,KAAKq2B,IAAIrc,EAAGC,EAAGnW,GACrBiD,EAAM/G,KAAK+G,IAAIiT,EAAGC,EAAGnW,EAOzB,IAJAivB,EAAI/Q,EAAI,EACR+Q,EAAIyG,EAAI,EACRzG,EAAI/C,GAAKjpB,EAAMsvB,GAAO,EAElBtvB,IAAQsvB,EACZ,CACI,GAAIryB,GAAI+C,EAAMsvB,CAEdtD,GAAIyG,EAAIzG,EAAI/C,EAAI,GAAMhsB,GAAK,EAAI+C,EAAMsvB,GAAOryB,GAAK+C,EAAMsvB,GAEnDtvB,IAAQiT,EAER+Y,EAAI/Q,GAAK/H,EAAInW,GAAKE,GAASF,EAAJmW,EAAQ,EAAI,GAE9BlT,IAAQkT,EAEb8Y,EAAI/Q,GAAKle,EAAIkW,GAAKhW,EAAI,EAEjB+C,IAAQjD,IAEbivB,EAAI/Q,GAAKhI,EAAIC,GAAKjW,EAAI,GAG1B+uB,EAAI/Q,GAAK,EAGb,MAAO+Q,IAkBX4nE,SAAU,SAAU34E,EAAGwX,EAAGxJ,EAAG+C,GAczB,GAZKA,GAODA,EAAI/Y,EAAIgW,EACR+C,EAAI9Y,EAAI+V,EACR+C,EAAIjvB,EAAIksB,GAPR+C,EAAMtL,EAAOwiB,MAAMqwD,YAAYtqE,EAAGA,EAAGA,GAU/B,IAANwJ,EACJ,CACI,GAAIohE,GAAQ,GAAJ5qE,EAAUA,GAAK,EAAIwJ,GAAKxJ,EAAIwJ,EAAIxJ,EAAIwJ,EACxC71B,EAAI,EAAIqsB,EAAI4qE,CAChB7nE,GAAI/Y,EAAIyN,EAAOwiB,MAAM4wD,WAAWl3F,EAAGi3F,EAAG54E,EAAI,EAAI,GAC9C+Q,EAAI9Y,EAAIwN,EAAOwiB,MAAM4wD,WAAWl3F,EAAGi3F,EAAG54E,GACtC+Q,EAAIjvB,EAAI2jB,EAAOwiB,MAAM4wD,WAAWl3F,EAAGi3F,EAAG54E,EAAI,EAAI,GAalD,MANA+Q,GAAI/Y,EAAIha,KAAKouB,MAAe,IAAR2E,EAAI/Y,EAAU,GAClC+Y,EAAI9Y,EAAIja,KAAKouB,MAAe,IAAR2E,EAAI9Y,EAAU,GAClC8Y,EAAIjvB,EAAI9D,KAAKouB,MAAe,IAAR2E,EAAIjvB,EAAU,GAElC2jB,EAAOwiB,MAAME,YAAYpX,GAElBA,GAkBXynE,SAAU,SAAUxgF,EAAGC,EAAGnW,EAAGivB,GAEpBA,IAEDA,EAAMtL,EAAOwiB,MAAMqwD,YAAYtgF,EAAGC,EAAGnW,EAAG,MAG5CkW,GAAK,IACLC,GAAK,IACLnW,GAAK,GAEL,IAAIuyB,GAAMr2B,KAAKq2B,IAAIrc,EAAGC,EAAGnW,GACrBiD,EAAM/G,KAAK+G,IAAIiT,EAAGC,EAAGnW,GACrBE,EAAI+C,EAAMsvB,CAyBd,OAtBAtD,GAAI/Q,EAAI,EACR+Q,EAAIyG,EAAY,IAARzyB,EAAY,EAAI/C,EAAI+C,EAC5BgsB,EAAIyhB,EAAIztC,EAEJA,IAAQsvB,IAEJtvB,IAAQiT,EAER+Y,EAAI/Q,GAAK/H,EAAInW,GAAKE,GAASF,EAAJmW,EAAQ,EAAI,GAE9BlT,IAAQkT,EAEb8Y,EAAI/Q,GAAKle,EAAIkW,GAAKhW,EAAI,EAEjB+C,IAAQjD,IAEbivB,EAAI/Q,GAAKhI,EAAIC,GAAKjW,EAAI,GAG1B+uB,EAAI/Q,GAAK,GAGN+Q,GAkBX+nE,SAAU,SAAU94E,EAAGwX,EAAGgb,EAAGzhB,GAEbnqB,SAARmqB,IAAqBA,EAAMtL,EAAOwiB,MAAMqwD,YAAY,EAAG,EAAG,EAAG,EAAGt4E,EAAGwX,EAAG,EAAGgb,GAE7E,IAAIx6B,GAAGC,EAAGnW,EACN1B,EAAIpC,KAAKouB,MAAU,EAAJpM,GACf2O,EAAQ,EAAJ3O,EAAQ5f,EACZuB,EAAI6wC,GAAK,EAAIhb,GACbohE,EAAIpmD,GAAK,EAAI7jB,EAAI6I,GACjBpK,EAAIolB,GAAK,GAAK,EAAI7jB,GAAK6I,EAE3B,QAAQp3B,EAAI,GAER,IAAK,GACD4X,EAAIw6B,EACJv6B,EAAImV,EACJtrB,EAAIH,CACJ,MACJ,KAAK,GACDqW,EAAI4gF,EACJ3gF,EAAIu6B,EACJ1wC,EAAIH,CACJ,MACJ,KAAK,GACDqW,EAAIrW,EACJsW,EAAIu6B,EACJ1wC,EAAIsrB,CACJ,MACJ,KAAK,GACDpV,EAAIrW,EACJsW,EAAI2gF,EACJ92F,EAAI0wC,CACJ,MACJ,KAAK,GACDx6B,EAAIoV,EACJnV,EAAItW,EACJG,EAAI0wC,CACJ,MACJ,KAAK,GACDx6B,EAAIw6B,EACJv6B,EAAItW,EACJG,EAAI82F,EAUZ,MANA7nE,GAAI/Y,EAAIha,KAAKouB,MAAU,IAAJpU,GACnB+Y,EAAI9Y,EAAIja,KAAKouB,MAAU,IAAJnU,GACnB8Y,EAAIjvB,EAAI9D,KAAKouB,MAAU,IAAJtqB,GAEnB2jB,EAAOwiB,MAAME,YAAYpX,GAElBA,GAeX8nE,WAAY,SAAUl3F,EAAGi3F,EAAGxrE,GAYxB,MAVQ,GAAJA,IAEAA,GAAK,GAGLA,EAAI,IAEJA,GAAK,GAGD,EAAI,EAARA,EAEOzrB,EAAc,GAATi3F,EAAIj3F,GAASyrB,EAGrB,GAAJA,EAEOwrE,EAGH,EAAI,EAARxrE,EAEOzrB,GAAKi3F,EAAIj3F,IAAM,EAAI,EAAIyrB,GAAK,EAGhCzrB,GAuBX22F,YAAa,SAAUtgF,EAAGC,EAAGnW,EAAGD,EAAGme,EAAGwX,EAAGxJ,EAAGwkB,GAExC,GAAIzhB,IAAQ/Y,EAAGA,GAAK,EAAGC,EAAGA,GAAK,EAAGnW,EAAGA,GAAK,EAAGD,EAAGA,GAAK,EAAGme,EAAGA,GAAK,EAAGwX,EAAGA,GAAK,EAAGxJ,EAAGA,GAAK,EAAGwkB,EAAGA,GAAK,EAAG98B,MAAO,EAAGqjF,QAAS,EAAGhzE,KAAM,GAEhI,OAAON,GAAOwiB,MAAME,YAAYpX,IAYpCoX,YAAa,SAAUpX,GAMnB,MAJAA,GAAIhL,KAAO,QAAUgL,EAAI/Y,EAAE0M,WAAa,IAAMqM,EAAI9Y,EAAEyM,WAAa,IAAMqM,EAAIjvB,EAAE4iB,WAAa,IAAMqM,EAAIlvB,EAAE6iB,WAAa,IACnHqM,EAAIrb,MAAQ+P,EAAOwiB,MAAM+wD,SAASjoE,EAAI/Y,EAAG+Y,EAAI9Y,EAAG8Y,EAAIjvB,GACpDivB,EAAIgoE,QAAUtzE,EAAOwiB,MAAMgxD,WAAmB,IAARloE,EAAIlvB,EAASkvB,EAAI/Y,EAAG+Y,EAAI9Y,EAAG8Y,EAAIjvB,GAE9DivB,GAeXkoE,WAAY,SAAUp3F,EAAGmW,EAAGC,EAAGnW,GAE3B,MAAOD,IAAK,GAAKmW,GAAK,GAAKC,GAAK,EAAInW,GAcxCk3F,SAAU,SAAUhhF,EAAGC,EAAGnW,GAEtB,MAAOkW,IAAK,GAAKC,GAAK,EAAInW,GAiB9Bo3F,YAAa,SAAUlhF,EAAGC,EAAGnW,EAAGD,EAAGsiE,GAK/B,MAHUv9D,UAAN/E,IAAmBA,EAAI,KACZ+E,SAAXu9D,IAAwBA,EAAS,KAEtB,MAAXA,EAEO,MAAQ,GAAK,KAAOnsD,GAAK,KAAOC,GAAK,GAAKnW,GAAG4iB,SAAS,IAAI6H,MAAM,GAIhE,KAAO9G,EAAOwiB,MAAMkxD,eAAet3F,GAAK4jB,EAAOwiB,MAAMkxD,eAAenhF,GAAKyN,EAAOwiB,MAAMkxD,eAAelhF,GAAKwN,EAAOwiB,MAAMkxD,eAAer3F,IAarJs3F,SAAU,SAAUpsF,GAEhB,GAAIE,GAAMuY,EAAOwiB,MAAMoxD,WAAWrsF,EAElC,OAAIE,GAEOuY,EAAOwiB,MAAMgxD,WAAW/rF,EAAIrL,EAAGqL,EAAI8K,EAAG9K,EAAI+K,EAAG/K,EAAIpL,GAF5D,QAoBJu3F,WAAY,SAAUrsF,EAAK+jB,GAGvB/jB,EAAMA,EAAImjB,QAAQ,0CAA2C,SAAS6G,EAAGhf,EAAGC,EAAGnW,GAC3E,MAAOkW,GAAIA,EAAIC,EAAIA,EAAInW,EAAIA,GAG/B,IAAIqM,GAAS,mDAAmDmrF,KAAKtsF,EAErE,IAAImB,EACJ,CACI,GAAI6J,GAAI6W,SAAS1gB,EAAO,GAAI,IACxB8J,EAAI4W,SAAS1gB,EAAO,GAAI,IACxBrM,EAAI+sB,SAAS1gB,EAAO,GAAI,GAEvB4iB,IAMDA,EAAI/Y,EAAIA,EACR+Y,EAAI9Y,EAAIA,EACR8Y,EAAIjvB,EAAIA,GANRivB,EAAMtL,EAAOwiB,MAAMqwD,YAAYtgF,EAAGC,EAAGnW,GAU7C,MAAOivB,IAeXwoE,WAAY,SAAUC,EAAKzoE,GAElBA,IAEDA,EAAMtL,EAAOwiB,MAAMqwD,cAGvB,IAAInqF,GAAS,4EAA4EmrF,KAAKE,EAW9F,OATIrrF,KAEA4iB,EAAI/Y,EAAI6W,SAAS1gB,EAAO,GAAI,IAC5B4iB,EAAI9Y,EAAI4W,SAAS1gB,EAAO,GAAI,IAC5B4iB,EAAIjvB,EAAI+sB,SAAS1gB,EAAO,GAAI,IAC5B4iB,EAAIlvB,EAAkB+E,SAAduH,EAAO,GAAmB48D,WAAW58D,EAAO,IAAM,EAC1DsX,EAAOwiB,MAAME,YAAYpX,IAGtBA,GAiBXmX,aAAc,SAAUtnC,EAAOmwB,GAS3B,GALKA,IAEDA,EAAMtL,EAAOwiB,MAAMqwD,eAGF,gBAAV13F,GAEP,MAA6B,KAAzBA,EAAM0F,QAAQ,OAEPmf,EAAOwiB,MAAMsxD,WAAW34F,EAAOmwB,IAKtCA,EAAIlvB,EAAI,EACD4jB,EAAOwiB,MAAMoxD,WAAWz4F,EAAOmwB,GAGzC,IAAqB,gBAAVnwB,GAChB,CAGI,GAAI64F,GAAYh0E,EAAOwiB,MAAMyxD,OAAO94F,EAKpC,OAJAmwB,GAAI/Y,EAAIyhF,EAAUzhF,EAClB+Y,EAAI9Y,EAAIwhF,EAAUxhF,EAClB8Y,EAAIjvB,EAAI23F,EAAU33F,EAClBivB,EAAIlvB,EAAI43F,EAAU53F,EAAI,IACfkvB,EAIP,MAAOA,IAafooE,eAAgB,SAAUzjF,GAEtB,GAAI1I,GAAM0I,EAAMgP,SAAS,GACzB,OAAqB,IAAd1X,EAAI3M,OAAc,IAAM2M,EAAMA,GAazC2sF,cAAe,SAAUniE,EAAGgb,GAEd5rC,SAAN4wB,IAAmBA,EAAI,GACjB5wB,SAAN4rC,IAAmBA,EAAI,EAI3B,KAAK,GAFDh0B,MAEKzc,EAAI,EAAQ,KAALA,EAAUA,IAEtByc,EAAOtd,KAAKukB,EAAOwiB,MAAM6wD,SAAS/2F,EAAI,IAAKy1B,EAAGgb,GAGlD,OAAOh0B,IAaXo7E,cAAe,SAAUpiE,EAAGxJ,GAEdpnB,SAAN4wB,IAAmBA,EAAI,IACjB5wB,SAANonB,IAAmBA,EAAI,GAI3B,KAAK,GAFDxP,MAEKzc,EAAI,EAAQ,KAALA,EAAUA,IAEtByc,EAAOtd,KAAKukB,EAAOwiB,MAAM0wD,SAAS52F,EAAI,IAAKy1B,EAAGxJ,GAGlD,OAAOxP,IAgBXq7E,iBAAkB,SAAUC,EAAQC,EAAQC,EAAOC,EAAat7F,GAE9CiI,SAAVjI,IAAuBA,EAAQ,IAEnC,IAAIu7F,GAAOz0E,EAAOwiB,MAAMyxD,OAAOI,GAC3BK,EAAO10E,EAAOwiB,MAAMyxD,OAAOK,GAC3B/hF,GAAOmiF,EAAKC,IAAMF,EAAKE,KAAOH,EAAeD,EAASE,EAAKE,IAC3DniF,GAAOkiF,EAAKE,MAAQH,EAAKG,OAASJ,EAAeD,EAASE,EAAKG,MAC/Dv4F,GAAOq4F,EAAKG,KAAOJ,EAAKI,MAAQL,EAAeD,EAASE,EAAKI,IAEjE,OAAO70E,GAAOwiB,MAAMgxD,WAAWt6F,EAAOqZ,EAAGC,EAAGnW,IAiBhDy4F,wBAAyB,SAAU7kF,EAAOsC,EAAGC,EAAGnW,EAAGk4F,EAAOC,GAEtD,GAAIxsF,GAAMgY,EAAOwiB,MAAMyxD,OAAOhkF,GAC1B8kF,GAAQxiF,EAAIvK,EAAI2sF,KAAOH,EAAeD,EAASvsF,EAAI2sF,IACnDK,GAAQxiF,EAAIxK,EAAI4sF,OAASJ,EAAeD,EAASvsF,EAAI4sF,MACrDK,GAAQ54F,EAAI2L,EAAI6sF,MAAQL,EAAeD,EAASvsF,EAAI6sF,IAExD,OAAO70E,GAAOwiB,MAAM+wD,SAASwB,EAAIC,EAAIC,IAkBzCC,eAAgB,SAAUC,EAAIC,EAAI1lE,EAAI2lE,EAAIC,EAAI3lE,EAAI4kE,EAAOC,GAErD,GAAIjiF,IAAO8iF,EAAKF,GAAMX,EAAeD,EAASY,EAC1C3iF,GAAO8iF,EAAKF,GAAMZ,EAAeD,EAASa,EAC1C/4F,GAAOszB,EAAKD,GAAM8kE,EAAeD,EAAS7kE,CAE9C,OAAO1P,GAAOwiB,MAAM+wD,SAAShhF,EAAGC,EAAGnW,IAgBvCk5F,eAAgB,SAAU3mE,EAAKtvB,EAAKpG,GAOhC,GALYiI,SAARytB,IAAqBA,EAAM,GACnBztB,SAAR7B,IAAqBA,EAAM,KACjB6B,SAAVjI,IAAuBA,EAAQ,KAG/BoG,EAAM,KAAOsvB,EAAMtvB,EAEnB,MAAO0gB,GAAOwiB,MAAM+wD,SAAS,IAAK,IAAK,IAG3C,IAAIoB,GAAM/lE,EAAMr2B,KAAKuzB,MAAMvzB,KAAKqwB,UAAYtpB,EAAMsvB,IAC9CgmE,EAAQhmE,EAAMr2B,KAAKuzB,MAAMvzB,KAAKqwB,UAAYtpB,EAAMsvB,IAChDimE,EAAOjmE,EAAMr2B,KAAKuzB,MAAMvzB,KAAKqwB,UAAYtpB,EAAMsvB;AAEnD,MAAO5O,GAAOwiB,MAAMgxD,WAAWt6F,EAAOy7F,EAAKC,EAAOC,IActDZ,OAAQ,SAAUhkF,GAEd,MAAIA,GAAQ,UAIJ/W,MAAO+W,IAAU,GACjB0kF,IAAK1kF,GAAS,GAAK,IACnB2kF,MAAO3kF,GAAS,EAAI,IACpB4kF,KAAc,IAAR5kF,EACN7T,EAAG6T,IAAU,GACbsC,EAAGtC,GAAS,GAAK,IACjBuC,EAAGvC,GAAS,EAAI,IAChB5T,EAAW,IAAR4T,IAMH/W,MAAO,IACPy7F,IAAK1kF,GAAS,GAAK,IACnB2kF,MAAO3kF,GAAS,EAAI,IACpB4kF,KAAc,IAAR5kF,EACN7T,EAAG,IACHmW,EAAGtC,GAAS,GAAK,IACjBuC,EAAGvC,GAAS,EAAI,IAChB5T,EAAW,IAAR4T,IAcfulF,UAAW,SAAUvlF,GAEjB,GAAqB,gBAAVA,GAEP,MAAO,QAAUA,EAAMsC,EAAE0M,WAAa,IAAMhP,EAAMuC,EAAEyM,WAAa,IAAMhP,EAAM5T,EAAE4iB,WAAa,KAAOhP,EAAM7T,EAAI,KAAK6iB,WAAa,GAI/H,IAAIxX,GAAMuY,EAAOwiB,MAAMyxD,OAAOhkF,EAC9B,OAAO,QAAUxI,EAAI8K,EAAE0M,WAAa,IAAMxX,EAAI+K,EAAEyM,WAAa,IAAMxX,EAAIpL,EAAE4iB,WAAa,KAAOxX,EAAIrL,EAAI,KAAK6iB,WAAa,KAa/Hw2E,SAAU,SAAUxlF,GAChB,MAAOA,KAAU,IAWrBylF,cAAe,SAAUzlF,GACrB,OAAQA,IAAU,IAAM,KAW5B0lF,OAAQ,SAAU1lF,GACd,MAAOA,IAAS,GAAK,KAWzB2lF,SAAU,SAAU3lF,GAChB,MAAOA,IAAS,EAAI,KAWxB4lF,QAAS,SAAU5lF,GACf,MAAe,KAARA,GAYX6lF,YAAa,SAAU15F,GACnB,MAAOA,IAYX25F,aAAc,SAAU35F,EAAGC,GACvB,MAAQA,GAAID,EAAKC,EAAID,GAYzB45F,YAAa,SAAU55F,EAAGC,GACtB,MAAQA,GAAID,EAAKA,EAAIC,GAezB45F,cAAe,SAAU75F,EAAGC,GACxB,MAAQD,GAAIC,EAAK,KAYrB65F,aAAc,SAAU95F,EAAGC,GACvB,OAAQD,EAAIC,GAAK,GAYrB85F,SAAU,SAAU/5F,EAAGC,GACnB,MAAO9D,MAAKq2B,IAAI,IAAKxyB,EAAIC,IAY7B+5F,cAAe,SAAUh6F,EAAGC,GACxB,MAAO9D,MAAK+G,IAAI,EAAGlD,EAAIC,EAAI,MAc/Bg6F,gBAAiB,SAAUj6F,EAAGC,GAC1B,MAAO9D,MAAKq0B,IAAIxwB,EAAIC,IAYxBi6F,cAAe,SAAUl6F,EAAGC,GACxB,MAAO,KAAM9D,KAAKq0B,IAAI,IAAMxwB,EAAIC,IAcpCk6F,YAAa,SAAUn6F,EAAGC,GACtB,MAAO,OAAS,IAAMD,IAAM,IAAMC,IAAO,IAa7Cm6F,eAAgB,SAAUp6F,EAAGC,GACzB,MAAOD,GAAIC,EAAI,EAAID,EAAIC,EAAI,KAc/Bo6F,aAAc,SAAUr6F,EAAGC,GACvB,MAAW,KAAJA,EAAW,EAAID,EAAIC,EAAI,IAAQ,IAAM,GAAK,IAAMD,IAAM,IAAMC,GAAK,KAsB5Eq6F,eAAgB,SAAUt6F,EAAGC,GACzB,MAAW,KAAJA,EAAW,IAAMD,GAAK,GAAK,KAAQC,EAAI,KAAO,IAAO,GAAK,MAAQD,GAAK,GAAK,MAAQ,IAAMC,GAAK,KAuB1Gs6F,eAAgB,SAAUv6F,EAAGC,GACzB,MAAO2jB,GAAOwiB,MAAMi0D,aAAap6F,EAAGD,IAaxCw6F,gBAAiB,SAAUx6F,EAAGC,GAC1B,MAAa,OAANA,EAAYA,EAAI9D,KAAKq2B,IAAI,KAAOxyB,GAAK,IAAM,IAAMC,KAa5Dw6F,eAAgB,SAAUz6F,EAAGC,GACzB,MAAa,KAANA,EAAUA,EAAI9D,KAAK+G,IAAI,EAAI,KAAQ,IAAMlD,GAAM,GAAKC,IAY/Dy6F,iBAAkB,SAAU16F,EAAGC,GAC3B,MAAO2jB,GAAOwiB,MAAM2zD,SAAS/5F,EAAGC,IAYpC06F,gBAAiB,SAAU36F,EAAGC,GAC1B,MAAO2jB,GAAOwiB,MAAM4zD,cAAch6F,EAAGC,IAczC26F,iBAAkB,SAAU56F,EAAGC,GAC3B,MAAW,KAAJA,EAAU2jB,EAAOwiB,MAAMu0D,gBAAgB36F,EAAG,EAAIC,GAAK2jB,EAAOwiB,MAAMs0D,iBAAiB16F,EAAI,GAAKC,EAAI,OAezG46F,gBAAiB,SAAU76F,EAAGC,GAC1B,MAAW,KAAJA,EAAU2jB,EAAOwiB,MAAMq0D,eAAez6F,EAAG,EAAIC,GAAK2jB,EAAOwiB,MAAMo0D,gBAAgBx6F,EAAI,GAAKC,EAAI,OAavG66F,cAAe,SAAU96F,EAAGC,GACxB,MAAW,KAAJA,EAAU2jB,EAAOwiB,MAAMwzD,YAAY55F,EAAG,EAAIC,GAAK2jB,EAAOwiB,MAAMuzD,aAAa35F,EAAI,GAAKC,EAAI,OAejG86F,aAAc,SAAU/6F,EAAGC,GACvB,MAAO2jB,GAAOwiB,MAAMy0D,gBAAgB76F,EAAGC,GAAK,IAAM,EAAI,KAY1D+6F,aAAc,SAAUh7F,EAAGC,GACvB,MAAa,OAANA,EAAYA,EAAI9D,KAAKq2B,IAAI,IAAMxyB,EAAIA,GAAK,IAAMC,KAYzDg7F,UAAW,SAAUj7F,EAAGC,GACpB,MAAO2jB,GAAOwiB,MAAM40D,aAAa/6F,EAAGD,IAYxCk7F,aAAc,SAAUl7F,EAAGC,GACvB,MAAO9D,MAAKq2B,IAAIxyB,EAAGC,GAAK9D,KAAK+G,IAAIlD,EAAGC,GAAK,MAyBjD2jB,EAAOgjB,QAAU,SAAUprC,EAAM+oC,GAE7BA,EAASA,MAKTjpC,KAAKE,KAAOA,EAKZF,KAAKipC,OAASA,EAKdjpC,KAAK6/F,OAAS,KAKd7/F,KAAK+7B,GAAK,KAKV/7B,KAAK8/F,MAAQ,KAKb9/F,KAAK+/F,MAAQ,KAKb//F,KAAKggG,SAAW,KAKhBhgG,KAAKigG,OAAS,KAEdjgG,KAAKkpC,eAQT5gB,EAAOgjB,QAAQC,OAAS,EAMxBjjB,EAAOgjB,QAAQukB,KAAO,EAMtBvnC,EAAOgjB,QAAQ40D,MAAQ,EAMvB53E,EAAOgjB,QAAQ60D,MAAQ,EAMvB73E,EAAOgjB,QAAQ80D,SAAW,EAM1B93E,EAAOgjB,QAAQ+0D,SAAW,EAE1B/3E,EAAOgjB,QAAQzoC,WAOXqmC,YAAa,WAEHlpC,KAAKipC,OAAO5W,eAAe,WAAaryB,KAAKipC,OAAe,UAAM,IAAS3gB,EAAOgjB,QAAQjZ,eAAe,YAG3GryB,KAAK6/F,OAAS,GAAIv3E,GAAOgjB,QAAQmsB,OAAOz3D,KAAKE,OAG7CF,KAAKipC,OAAO5W,eAAe,UAAYryB,KAAKipC,OAAc,SAAM,GAAQ3gB,EAAOgjB,QAAQjZ,eAAe,WAEtGryB,KAAK8/F,MAAQ,GAAIx3E,GAAOgjB,QAAQg1D,MAAMtgG,KAAKE,OAG3CF,KAAKipC,OAAO5W,eAAe,OAASryB,KAAKipC,OAAW,MAAM,GAAQ3gB,EAAOgjB,QAAQjZ,eAAe,QAEhGryB,KAAK+7B,GAAK,GAAIzT,GAAOgjB,QAAQi1D,GAAGvgG,KAAKE,KAAMF,KAAKipC,SAGhDjpC,KAAKipC,OAAO5W,eAAe,UAAYryB,KAAKipC,OAAc,SAAM,GAAQ3gB,EAAOgjB,QAAQjZ,eAAe,WAEtGryB,KAAK+/F,MAAQ,GAAIz3E,GAAOgjB,QAAQ60D,MAAMngG,KAAKE,KAAMF,KAAKipC,SAGtDjpC,KAAKipC,OAAO5W,eAAe,WAAaryB,KAAKipC,OAAe,UAAM,GAAQ3gB,EAAOgjB,QAAQjZ,eAAe,YAExGryB,KAAKigG,OAAS,GAAI33E,GAAOgjB,QAAQk1D,OAAOxgG,KAAKE,KAAMF,KAAKipC,UAyBhEw3D,YAAa,SAAUC,GAEfA,IAAWp4E,EAAOgjB,QAAQC,OAE1BvrC,KAAK6/F,OAAS,GAAIv3E,GAAOgjB,QAAQmsB,OAAOz3D,KAAKE,MAExCwgG,IAAWp4E,EAAOgjB,QAAQukB,KAEf,OAAZ7vD,KAAK+7B,GAEL/7B,KAAK+7B,GAAK,GAAIzT,GAAOgjB,QAAQi1D,GAAGvgG,KAAKE,KAAMF,KAAKipC,QAIhDjpC,KAAK+7B,GAAGkD,QAGPyhE,IAAWp4E,EAAOgjB,QAAQ40D,MAE/BlgG,KAAK8/F,MAAQ,GAAIx3E,GAAOgjB,QAAQg1D,MAAMtgG,KAAKE,MAEtCwgG,IAAWp4E,EAAOgjB,QAAQ60D,MAEZ,OAAfngG,KAAK+/F,MAEL//F,KAAK+/F,MAAQ,GAAIz3E,GAAOgjB,QAAQq1D,MAAM3gG,KAAKE,KAAMF,KAAKipC,QAItDjpC,KAAK+/F,MAAM9gE,QAGVyhE,IAAWp4E,EAAOgjB,QAAQ+0D,WAEX,OAAhBrgG,KAAKigG,OAELjgG,KAAKigG,OAAS,GAAI33E,GAAOgjB,QAAQk1D,OAAOxgG,KAAKE,KAAMF,KAAKipC,QAIxDjpC,KAAKigG,OAAOhhE,UA0BxB5kB,OAAQ,SAAU87C,EAAQuqC,EAAQr9D,GAEf55B,SAAXi3F,IAAwBA,EAASp4E,EAAOgjB,QAAQC,QACtC9hC,SAAV45B,IAAuBA,GAAQ,GAE/Bq9D,IAAWp4E,EAAOgjB,QAAQC,OAE1BvrC,KAAK6/F,OAAOxlF,OAAO87C,GAEduqC,IAAWp4E,EAAOgjB,QAAQukB,MAAQ7vD,KAAK+7B,GAE5C/7B,KAAK+7B,GAAG1hB,OAAO87C,EAAQ9yB,GAElBq9D,IAAWp4E,EAAOgjB,QAAQ40D,OAASlgG,KAAK8/F,MAE7C9/F,KAAK8/F,MAAMc,WAAWzqC,GAEjBuqC,IAAWp4E,EAAOgjB,QAAQ60D,OAASngG,KAAK+/F,MAE7C//F,KAAK+/F,MAAM1lF,OAAO87C,GAEbuqC,IAAWp4E,EAAOgjB,QAAQ+0D,UAAYrgG,KAAKigG,QAEhDjgG,KAAKigG,OAAO5lF,OAAO87C,IAW3BhwD,UAAW,WAIHnG,KAAK+7B,IAEL/7B,KAAK+7B,GAAG51B,YAGRnG,KAAK+/F,OAEL//F,KAAK+/F,MAAM55F,YAGXnG,KAAKigG,QAELjgG,KAAKigG,OAAO95F,aAWpBy4B,OAAQ,WAIA5+B,KAAK+7B,IAEL/7B,KAAK+7B,GAAG6C,SAGR5+B,KAAK+/F,OAEL//F,KAAK+/F,MAAMnhE,SAGX5+B,KAAKigG,QAELjgG,KAAKigG,OAAOrhE,UAWpBG,iBAAkB,WAEV/+B,KAAK6/F,QAEL7/F,KAAK6/F,OAAO9gE,mBAGZ/+B,KAAK8/F,OAEL9/F,KAAK8/F,MAAM/gE,mBAGX/+B,KAAK+7B,IAEL/7B,KAAK+7B,GAAGgD,mBAGR/+B,KAAK+/F,OAEL//F,KAAK+/F,MAAMhhE,mBAGX/+B,KAAKigG,QAELjgG,KAAKigG,OAAOlhE,oBAWpBhkB,MAAO,WAEC/a,KAAK+7B,IAEL/7B,KAAK+7B,GAAGhhB,QAGR/a,KAAK+/F,OAEL//F,KAAK+/F,MAAMhlF,QAGX/a,KAAKigG,QAELjgG,KAAKigG,OAAOllF,SAWpBkkB,MAAO,WAECj/B,KAAK+7B,IAEL/7B,KAAK+7B,GAAGkD,QAGRj/B,KAAK+/F,OAEL//F,KAAK+/F,MAAM9gE,QAGXj/B,KAAKigG,QAELjgG,KAAKigG,OAAOhhE,SAUpBl8B,QAAS,WAED/C,KAAK+7B,IAEL/7B,KAAK+7B,GAAGh5B,UAGR/C,KAAK+/F,OAEL//F,KAAK+/F,MAAMh9F,UAGX/C,KAAKigG,QAELjgG,KAAKigG,OAAOl9F,UAGhB/C,KAAK6/F,OAAS,KACd7/F,KAAK8/F,MAAQ,KACb9/F,KAAK+7B,GAAK,KACV/7B,KAAK+/F,MAAQ,KACb//F,KAAKigG,OAAS,OAMtB33E,EAAOgjB,QAAQzoC,UAAUC,YAAcwlB,EAAOgjB,QAe9ChjB,EAAOssB,UAAY,SAAU10C,GAKzBF,KAAKE,KAAOA,EAKZF,KAAK6gG,YAML7gG,KAAK8gG,GAAK,GAIdx4E,EAAOssB,UAAU/xC,WAQbi0B,IAAK,SAAUygC,GAIX,MAFAv3D,MAAK6gG,SAAStpC,EAAQ9kC,MAAQ8kC,EAEvBA,GASX1mD,OAAQ,SAAU0mD,SAEPv3D,MAAK6gG,SAAStpC,EAAQ9kC,OASjCmM,OAAQ,WAEJ,IAAK,GAAIlqB,KAAO1U,MAAK6gG,SAEb7gG,KAAK6gG,SAASnsF,GAAKm0B,QAEnB7oC,KAAK6gG,SAASnsF,GAAKkqB,WAQnCtW,EAAOssB,UAAU/xC,UAAUC,YAAcwlB,EAAOssB,UAWxBnrC,SAApBxJ,KAAKkE,aAELlE,KAAKkE,WAAamkB,EAAOnkB,YAGLsF,SAApBxJ,KAAKwN,aAELxN,KAAKwN,WAAa6a,EAAO7a,YAGKhE,SAA9BxJ,KAAKsL,QAAQC,eAEbvL,KAAKsL,QAAQC,aAAe,GAAIvL,MAAKsL,QAAQ,GAAItL,MAAKgpB,cAGnBxf,SAAnCxJ,KAAKiB,cAAc2F,cAEnB5G,KAAKiB,cAAc2F,YAAc,GAAI5G,MAAK+B,QAGRyH,SAAlCxJ,KAAKyG,cAAcqkB,aAEnB9qB,KAAKyG,cAAcqkB,WAAa,GAAI9qB,MAAK+B,QAGzC/B,KAAKi8C,UAAmCzyC,SAAvBxJ,KAAKi8C,SAAS6kD,OAE/B9gG,KAAKi8C,SAAS6kD,KAAOz4E,EAAOwF,QAC5B7tB,KAAKi8C,SAAS8kD,KAAO14E,EAAOkG,UAC5BvuB,KAAKi8C,SAAS+kD,KAAO34E,EAAOiG,OAC5BtuB,KAAKi8C,SAASglD,KAAO54E,EAAO4F,QAC5BjuB,KAAKi8C,SAASilD,KAAO74E,EAAOsG,kBAGhC3uB,KAAKgqB,mBAAoB,EAQE,mBAAZ6B,UACe,mBAAXC,SAA0BA,OAAOD,UACxCA,QAAUC,OAAOD,QAAUxD,GAE/BwD,QAAQxD,OAASA,GACQ,mBAAX0D,SAA0BA,OAAOC,IAC/CD,OAAO,SAAU,WAAc,MAAOjsB,GAAKuoB,OAASA,MAEpDvoB,EAAKuoB,OAASA,EAGXA,GACR5iB,KAAK1F"} \ No newline at end of file +{"version":3,"file":"phaser-minimum.min.js","sources":["phaser-minimum.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","transformCallback","call","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","point","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","points","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerX","centerY","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","lerp","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","_shake","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","camera","Graphics","follow","lerpX","lerpY","helper","unfollow","focusOn","setPosition","focusOnXY","shake","force","direction","flash","beginFill","drawRect","endFill","fade","update","updateFX","updateTarget","updateShake","checkBounds","time","elapsedMS","dispatch","rnd","frac","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","reset","resetFX","State","make","cache","input","load","sound","tweens","particles","physics","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","n","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","addToHash","events","onAddedToGroup$dispatch","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","getByName","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","graphicsData","fill","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","rect","updateCrop","resetFrame","_frame","Delta","Destroy","destroyTexture","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","Tilemap","TilemapLayer","img","base","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","connect","audioSprite","addSprite","tileSprite","rope","Rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","LITTLE_ENDIAN","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","userAgent","test","vita","kindle","match","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","ctx","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","backgroundColor","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","translateX","translateY","skewX","skewY","setSmoothingEnabled","vendor","prefix","getSmoothingEnabled","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","sum","shear","snapTo","gap","snapToFloor","snapToCeil","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","point1","point2","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","diff","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","k","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","v0","v1","t2","t3","difference","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","sign","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","charCodeAt","integer","real","integerInRange","realInRange","normal","pick","ary","weightedPick","timestamp","parseFloat","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","netNoop","isDisabled","getHostName","checkDomainName","updateQueryString","getQueryString","decodeURI","prevTime","physicsElapsed","_desiredFps","suggestedFps","advancedTiming","frames","fps","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","_pause","_resume","elapsedSince","since","elapsedSecondsSince","running","expired","onComplete","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","pendingDelete","clearPendingEvents","adjustEvents","baseTime","ms","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","updateFrameData","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","isPaused","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onStart","onUpdate","onLoop","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","Frame","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","FrameData","_frameNames","addFrame","getFrameRange","getFrames","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","addImage","checkImageKey","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","textureFrame","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getBitmapFont","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","path","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","properties","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","status","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","lineHeight","letters","charCode","xAdvance","kerning","kernings","second","finalizeBitmapFont","_face","_size","_lineHeight","letter","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","dom","minWidth","maxWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","newWidth","newHeight","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","debugNoop","soundInfo","cameraInfo","spriteInputInfo","inputInfo","spriteBounds","ropeSegments","spriteInfo","spriteCoords","lineInfo","pixel","geom","rectangle","quadTree","bodyInfo","box2dWorld","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","list","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","prev","entity","bmd","palettes",1,2,3,4,5,6,7,8,9,"A","B","C","D","E","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","manager","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","packPixel","unpackPixel","hsl","hsv","createColor","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","HSLtoRGB","q","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","exec","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","red","green","blue","interpolateColorWithRGB","or","og","ob","interpolateRGB","r1","g1","r2","g2","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendLighten","blendDarken","blendMultiply","blendAverage","blendAdd","blendSubtract","blendDifference","blendNegation","blendScreen","blendExclusion","blendOverlay","blendSoftLight","blendHardLight","blendColorDodge","blendColorBurn","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","box2d","chipmunk","matter","NINJA","BOX2D","CHIPMUNK","MATTERJS","Ninja","P2","Matter","startSystem","system","Box2D","enableAABB","emitters","ID","POLY","RECT","CIRC","ELIP","RREC"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-minimum.min.js b/build/custom/phaser-minimum.min.js index a8cdbbf9c..8af2b2755 100644 --- a/build/custom/phaser-minimum.min.js +++ b/build/custom/phaser-minimum.min.js @@ -1,15 +1,15 @@ -/* Phaser v2.4.6 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.7 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */ -(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gj;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a;for(var b=0;bi){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y), -d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x),this.view.right>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width),this.view.y<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y),this.view.bottom>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if(void 0===e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default", -this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Component=function(){},c.Component.Angle=function(){},c.Component.Angle.prototype={angle:{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}},c.Component.Animation=function(){},c.Component.Animation.prototype={play:function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0}},c.Component.AutoCull=function(){},c.Component.AutoCull.prototype={autoCull:!1,inCamera:{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}},c.Component.Bounds=function(){},c.Component.Bounds.prototype={offsetX:{get:function(){return this.anchor.x*this.width}},offsetY:{get:function(){return this.anchor.y*this.height}},left:{get:function(){return this.x-this.offsetX}},right:{get:function(){return this.x+this.width-this.offsetX}},top:{get:function(){return this.y-this.offsetY}},bottom:{get:function(){return this.y+this.height-this.offsetY}}},c.Component.BringToTop=function(){},c.Component.BringToTop.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Component.BringToTop.prototype.sendToBack=function(){return this.parent&&this.parent.sendToBack(this),this},c.Component.BringToTop.prototype.moveUp=function(){return this.parent&&this.parent.moveUp(this),this},c.Component.BringToTop.prototype.moveDown=function(){return this.parent&&this.parent.moveDown(this),this},c.Component.Core=function(){},c.Component.Core.install=function(a){c.Utils.mixinPrototype(this,c.Component.Core.prototype),this.components={};for(var b=0;bthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d); -},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var f="Over",g="Out",h="Down",i="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(f,a,this.input.pointerOver()),this.setStateFrame(g,b,!this.input.pointerOver()),this.setStateFrame(h,c,this.input.pointerDown()),this.setStateFrame(i,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,j,k,l){this.setStateSound(f,a,b),this.setStateSound(g,e,j),this.setStateSound(h,c,d),this.setStateSound(i,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(f,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(f),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(f),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(g),this.playStateSound(g),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(i),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(g);else{var d=this.changeStateFrame(i);d||(c?this.changeStateFrame(f):this.changeStateFrame(g))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.TileSprite=function(){},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.iOSVersion=0,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.electron=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.canvasBitBltShift=null,this.webGL=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!0,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.chromeVersion=0,this.epiphany=!1,this.firefox=!1,this.firefoxVersion=0,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.edge=!1,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.safariVersion=0,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.dolby=!1,this.oggVideo=!1,this.h264Video=!1,this.mp4Video=!1,this.webmVideo=!1,this.vp9Video=!1,this.hlsVideo=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?l.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?l.kindle=!0:/Android/.test(a)?l.android=!0:/CrOS/.test(a)?l.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?(l.iOS=!0,navigator.appVersion.match(/OS (\d+)/),l.iOSVersion=parseInt(RegExp.$1,10)):/Linux/.test(a)?l.linux=!0:/Mac OS/.test(a)?l.macOS=!0:/Windows/.test(a)&&(l.windows=!0),(/Windows Phone/i.test(a)||/IEMobile/i.test(a))&&(l.android=!1,l.iOS=!1,l.macOS=!1,l.windows=!0,l.windowsPhone=!0);var b=/Silk/.test(a);(l.windows||l.macOS||l.linux&&!b||l.chromeOS)&&(l.desktop=!0),(l.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(l.desktop=!1)}function b(){l.canvas=!!window.CanvasRenderingContext2D||l.cocoonJS;try{l.localStorage=!!localStorage.getItem}catch(a){l.localStorage=!1}l.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),l.fileSystem=!!window.requestFileSystem,l.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),l.webGL=!!l.webGL,l.worker=!!window.Worker,l.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,l.quirksMode="CSS1Compat"===document.compatMode?!1:!0,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.oGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,l.getUserMedia=l.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,l.firefox&&l.firefoxVersion<21&&(l.getUserMedia=!1),!l.iOS&&(l.ie||l.firefox||l.chrome)&&(l.canvasBitBltShift=!0),(l.safari||l.mobileSafari)&&(l.canvasBitBltShift=!1)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree;var l=function(){};c.Net=l,c.Net.prototype={isDisabled:!0,getHostName:l,checkDomainName:l,updateQueryString:l,getQueryString:l,decodeURI:l},c.Net.prototype.constructor=c.Net,c.TweenManager=function(){},c.TweenManager.prototype.update=function(){},c.TweenManager.prototype.removeAll=function(){},c.TweenManager.prototype.constructor=c.TweenManager,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)), -this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=400?0:100, -this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}});var m=function(){};return c.Utils.Debug=m,c.Utils.Debug.prototype={isDisabled:!0,boot:m,preUpdate:m,reset:m,start:m,stop:m,line:m,soundInfo:m,cameraInfo:m,timer:m,pointer:m,spriteInputInfo:m,key:m,inputInfo:m,spriteBounds:m,ropeSegments:m,spriteInfo:m,spriteCoords:m,lineInfo:m,pixel:m,geom:m,rectangle:m,text:m,quadTree:m,body:m,bodyInfo:m,box2dWorld:m,box2dBody:m},c.Utils.Debug.prototype.constructor=c.Utils.Debug,c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a)); -return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); +(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gc?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var l=this._bounds;return l.x=e,l.y=f,l.width=g-e,l.height=h-f,l},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0;ci){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.7 RC1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x); +},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else if(Array.isArray(a[c]))var e=new PIXI.Point(a[c][0],a[c][1]);else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!d&&this._shake.duration>0?!1:(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this.target&&this.updateTarget(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-(this.view.x+this._shake.x),this.displayObject.position.y=-(this.view.y+this._shake.y)},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.copyFrom(this.target.world),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y))},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx.clear(),this.fx.alpha=0,this._fxDuration=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.config.canvas?this.canvas=this.config.canvas:this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera){if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.cameraOffset.x=this.globalToLocalX(a.x)+(this.sprite.cameraOffset.x-d.centerX),this.sprite.cameraOffset.y=this.globalToLocalY(a.y)+(this.sprite.cameraOffset.y-d.centerY)}this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)}else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Component=function(){},c.Component.Angle=function(){},c.Component.Angle.prototype={angle:{get:function(){return c.Math.wrapAngle(c.Math.radToDeg(this.rotation))},set:function(a){this.rotation=c.Math.degToRad(c.Math.wrapAngle(a))}}},c.Component.Animation=function(){},c.Component.Animation.prototype={play:function(a,b,c,d){return this.animations?this.animations.play(a,b,c,d):void 0}},c.Component.AutoCull=function(){},c.Component.AutoCull.prototype={autoCull:!1,inCamera:{get:function(){return this.autoCull||this.checkWorldBounds||(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y),this.game.world.camera.view.intersects(this._bounds)}}},c.Component.Bounds=function(){},c.Component.Bounds.prototype={offsetX:{get:function(){return this.anchor.x*this.width}},offsetY:{get:function(){return this.anchor.y*this.height}},left:{get:function(){return this.x-this.offsetX}},right:{get:function(){return this.x+this.width-this.offsetX}},top:{get:function(){return this.y-this.offsetY}},bottom:{get:function(){return this.y+this.height-this.offsetY}}},c.Component.BringToTop=function(){},c.Component.BringToTop.prototype.bringToTop=function(){return this.parent&&this.parent.bringToTop(this),this},c.Component.BringToTop.prototype.sendToBack=function(){return this.parent&&this.parent.sendToBack(this),this},c.Component.BringToTop.prototype.moveUp=function(){return this.parent&&this.parent.moveUp(this),this},c.Component.BringToTop.prototype.moveDown=function(){return this.parent&&this.parent.moveDown(this),this},c.Component.Core=function(){},c.Component.Core.install=function(a){c.Utils.mixinPrototype(this,c.Component.Core.prototype),this.components={};for(var b=0;bthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var f="Over",g="Out",h="Down",i="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(f,a,this.input.pointerOver()),this.setStateFrame(g,b,!this.input.pointerOver()),this.setStateFrame(h,c,this.input.pointerDown()),this.setStateFrame(i,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,j,k,l){this.setStateSound(f,a,b),this.setStateSound(g,e,j),this.setStateSound(h,c,d),this.setStateSound(i,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(f,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(f),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(f),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(g),this.playStateSound(g),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(i),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(g);else{var d=this.changeStateFrame(i);d||(c?this.changeStateFrame(f):this.changeStateFrame(g))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.TileSprite=function(){},c.Device=function(){this.deviceReadyAt=0,this.initialized=!1,this.desktop=!1,this.iOS=!1,this.iOSVersion=0,this.cocoonJS=!1,this.cocoonJSApp=!1,this.cordova=!1,this.node=!1,this.nodeWebkit=!1,this.electron=!1,this.ejecta=!1,this.crosswalk=!1,this.android=!1,this.chromeOS=!1,this.linux=!1,this.macOS=!1,this.windows=!1,this.windowsPhone=!1,this.canvas=!1,this.canvasBitBltShift=null,this.webGL=!1,this.file=!1,this.fileSystem=!1,this.localStorage=!1,this.worker=!1,this.css3D=!1,this.pointerLock=!1,this.typedArray=!1,this.vibration=!1,this.getUserMedia=!0,this.quirksMode=!1,this.touch=!1,this.mspointer=!1,this.wheelEvent=null,this.arora=!1,this.chrome=!1,this.chromeVersion=0,this.epiphany=!1,this.firefox=!1,this.firefoxVersion=0,this.ie=!1,this.ieVersion=0,this.trident=!1,this.tridentVersion=0,this.edge=!1,this.mobileSafari=!1,this.midori=!1,this.opera=!1,this.safari=!1,this.safariVersion=0,this.webApp=!1,this.silk=!1,this.audioData=!1,this.webAudio=!1,this.ogg=!1,this.opus=!1,this.mp3=!1,this.wav=!1,this.m4a=!1,this.webm=!1,this.dolby=!1,this.oggVideo=!1,this.h264Video=!1,this.mp4Video=!1,this.webmVideo=!1,this.vp9Video=!1,this.hlsVideo=!1,this.iPhone=!1,this.iPhone4=!1,this.iPad=!1,this.pixelRatio=0,this.littleEndian=!1,this.LITTLE_ENDIAN=!1,this.support32bit=!1,this.fullscreen=!1,this.requestFullscreen="",this.cancelFullscreen="",this.fullscreenKeyboard=!1},c.Device=new c.Device,c.Device.onInitialized=new c.Signal,c.Device.whenReady=function(a,b,c){var d=this._readyCheck;if(this.deviceReadyAt||!d)a.call(b,this);else if(d._monitor||c)d._queue=d._queue||[],d._queue.push([a,b]);else{d._monitor=d.bind(this),d._queue=d._queue||[],d._queue.push([a,b]);var e="undefined"!=typeof window.cordova,f=navigator.isCocoonJS;"complete"===document.readyState||"interactive"===document.readyState?window.setTimeout(d._monitor,0):e&&!f?document.addEventListener("deviceready",d._monitor,!1):(document.addEventListener("DOMContentLoaded",d._monitor,!1),window.addEventListener("load",d._monitor,!1))}},c.Device._readyCheck=function(){var a=this._readyCheck;if(document.body){if(!this.deviceReadyAt){this.deviceReadyAt=Date.now(),document.removeEventListener("deviceready",a._monitor),document.removeEventListener("DOMContentLoaded",a._monitor),window.removeEventListener("load",a._monitor),this._initialize(),this.initialized=!0,this.onInitialized.dispatch(this);for(var b;b=a._queue.shift();){var c=b[0],d=b[1];c.call(d,this)}this._readyCheck=null,this._initialize=null,this.onInitialized=null}}else window.setTimeout(a._monitor,20)},c.Device._initialize=function(){function a(){var a=navigator.userAgent;/Playstation Vita/.test(a)?l.vita=!0:/Kindle/.test(a)||/\bKF[A-Z][A-Z]+/.test(a)||/Silk.*Mobile Safari/.test(a)?l.kindle=!0:/Android/.test(a)?l.android=!0:/CrOS/.test(a)?l.chromeOS=!0:/iP[ao]d|iPhone/i.test(a)?(l.iOS=!0,navigator.appVersion.match(/OS (\d+)/),l.iOSVersion=parseInt(RegExp.$1,10)):/Linux/.test(a)?l.linux=!0:/Mac OS/.test(a)?l.macOS=!0:/Windows/.test(a)&&(l.windows=!0),(/Windows Phone/i.test(a)||/IEMobile/i.test(a))&&(l.android=!1,l.iOS=!1,l.macOS=!1,l.windows=!0,l.windowsPhone=!0);var b=/Silk/.test(a);(l.windows||l.macOS||l.linux&&!b||l.chromeOS)&&(l.desktop=!0),(l.windowsPhone||/Windows NT/i.test(a)&&/Touch/i.test(a))&&(l.desktop=!1)}function b(){l.canvas=!!window.CanvasRenderingContext2D||l.cocoonJS;try{l.localStorage=!!localStorage.getItem}catch(a){l.localStorage=!1}l.file=!!(window.File&&window.FileReader&&window.FileList&&window.Blob),l.fileSystem=!!window.requestFileSystem,l.webGL=function(){try{var a=document.createElement("canvas");return a.screencanvas=!1,!!window.WebGLRenderingContext&&(a.getContext("webgl")||a.getContext("experimental-webgl"))}catch(b){return!1}}(),l.webGL=!!l.webGL,l.worker=!!window.Worker,l.pointerLock="pointerLockElement"in document||"mozPointerLockElement"in document||"webkitPointerLockElement"in document,l.quirksMode="CSS1Compat"===document.compatMode?!1:!0,navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia||navigator.oGetUserMedia,window.URL=window.URL||window.webkitURL||window.mozURL||window.msURL,l.getUserMedia=l.getUserMedia&&!!navigator.getUserMedia&&!!window.URL,l.firefox&&l.firefoxVersion<21&&(l.getUserMedia=!1),!l.iOS&&(l.ie||l.firefox||l.chrome)&&(l.canvasBitBltShift=!0),(l.safari||l.mobileSafari)&&(l.canvasBitBltShift=!1)}function c(){("ontouchstart"in document.documentElement||window.navigator.maxTouchPoints&&window.navigator.maxTouchPoints>=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var j=Math.PI/180,k=180/Math.PI;c.Math.degToRad=function(a){return a*j},c.Math.radToDeg=function(a){return a*k},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0); +},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree;var l=function(){};c.Net=l,c.Net.prototype={isDisabled:!0,getHostName:l,checkDomainName:l,updateQueryString:l,getQueryString:l,decodeURI:l},c.Net.prototype.constructor=c.Net,c.TweenManager=function(){},c.TweenManager.prototype.update=function(){},c.TweenManager.prototype.removeAll=function(){},c.TweenManager.prototype.removeFrom=function(){},c.TweenManager.prototype.constructor=c.TweenManager,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}});var m=function(){};return c.Utils.Debug=m,c.Utils.Debug.prototype={isDisabled:!0,boot:m,preUpdate:m,reset:m,start:m,stop:m,line:m,soundInfo:m,cameraInfo:m,timer:m,pointer:m,spriteInputInfo:m,key:m,inputInfo:m,spriteBounds:m,ropeSegments:m,spriteInfo:m,spriteCoords:m,lineInfo:m,pixel:m,geom:m,rectangle:m,text:m,quadTree:m,body:m,bodyInfo:m,box2dWorld:m,box2dBody:m},c.Utils.Debug.prototype.constructor=c.Utils.Debug,c.DOM={getOffset:function(a,b){b=b||new c.Point;var d=a.getBoundingClientRect(),e=c.DOM.scrollY,f=c.DOM.scrollX,g=document.documentElement.clientTop,h=document.documentElement.clientLeft;return b.x=d.left+f-h,b.y=d.top+e-g,b},getBounds:function(a,b){return void 0===b&&(b=0),a=a&&!a.nodeType?a[0]:a,a&&1===a.nodeType?this.calibrate(a.getBoundingClientRect(),b):!1},calibrate:function(a,b){b=+b||0;var c={width:0,height:0,left:0,right:0,top:0,bottom:0};return c.width=(c.right=a.right+b)-(c.left=a.left-b),c.height=(c.bottom=a.bottom+b)-(c.top=a.top-b),c},getAspectRatio:function(a){a=null==a?this.visualBounds:1===a.nodeType?this.getBounds(a):a;var b=a.width,c=a.height;return"function"==typeof b&&(b=b.call(a)),"function"==typeof c&&(c=c.call(a)),b/c},inLayoutViewport:function(a,b){var c=this.getBounds(a,b);return!!c&&c.bottom>=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24, +b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); //# sourceMappingURL=phaser-minimum.map \ No newline at end of file diff --git a/build/custom/phaser-no-physics.js b/build/custom/phaser-no-physics.js index 19c465186..2cc20be78 100644 --- a/build/custom/phaser-no-physics.js +++ b/build/custom/phaser-no-physics.js @@ -1,13 +1,13 @@ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} * * @overview * * Phaser - http://phaser.io * -* v2.4.6 "Baerlon" - Built: Thu Feb 18 2016 14:40:10 +* v2.4.7 "Hinderstap" - Built: Thu Apr 14 2016 13:21:40 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -1227,9 +1227,10 @@ PIXI.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform = PI */ PIXI.DisplayObjectContainer.prototype.getBounds = function() { - if(this.children.length === 0)return PIXI.EmptyRectangle; - - // TODO the bounds have already been calculated this render session so return what we have + if (this.children.length === 0) + { + return PIXI.EmptyRectangle; + } var minX = Infinity; var minY = Infinity; @@ -1243,11 +1244,14 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() var childVisible = false; - for(var i=0,j=this.children.length; i childMaxY ? maxY : childMaxY; } - if(!childVisible) + if (!childVisible) + { return PIXI.EmptyRectangle; + } var bounds = this._bounds; @@ -1273,9 +1279,6 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() bounds.width = maxX - minX; bounds.height = maxY - minY; - // TODO: store a reference so that if this function gets called again in the render cycle we do not have to recalculate - //this._currentBounds = bounds; - return bounds; }; @@ -1291,7 +1294,7 @@ PIXI.DisplayObjectContainer.prototype.getLocalBounds = function() this.worldTransform = PIXI.identityMatrix; - for(var i=0,j=this.children.length; i -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -6581,10 +6598,6 @@ PIXI.CanvasRenderer = function (game) { */ this.refresh = true; - // This is already done in the Game.setUpRenderer method. - // this.view.width = this.width * this.resolution; - // this.view.height = this.height * this.resolution; - /** * Internal var. * @@ -6673,8 +6686,8 @@ PIXI.CanvasRenderer.prototype.render = function (stage) { * @method destroy * @param [removeView=true] {boolean} Removes the Canvas element from the DOM. */ -PIXI.CanvasRenderer.prototype.destroy = function(removeView) -{ +PIXI.CanvasRenderer.prototype.destroy = function (removeView) { + if (removeView === undefined) { removeView = true; } if (removeView && this.view.parent) @@ -6696,8 +6709,8 @@ PIXI.CanvasRenderer.prototype.destroy = function(removeView) * @param width {Number} the new width of the canvas view * @param height {Number} the new height of the canvas view */ -PIXI.CanvasRenderer.prototype.resize = function(width, height) -{ +PIXI.CanvasRenderer.prototype.resize = function (width, height) { + this.width = width * this.resolution; this.height = height * this.resolution; @@ -6709,6 +6722,12 @@ PIXI.CanvasRenderer.prototype.resize = function(width, height) this.view.style.width = this.width / this.resolution + "px"; this.view.style.height = this.height / this.resolution + "px"; } + + if (this.renderSession.smoothProperty) + { + this.context[this.renderSession.smoothProperty] = (this.renderSession.scaleMode === PIXI.scaleModes.LINEAR); + } + }; /** @@ -8871,10 +8890,8 @@ PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo, re var texture = this.texture; var frame = texture.frame; - console.log('generateTilingTexture', texture, frame); - - var targetWidth = this._frame.sourceSizeW; - var targetHeight = this._frame.sourceSizeH; + var targetWidth = this._frame.sourceSizeW || this._frame.width; + var targetHeight = this._frame.sourceSizeH || this._frame.height; var dx = 0; var dy = 0; @@ -9096,7 +9113,7 @@ Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { }).call(this); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -9107,7 +9124,7 @@ Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -9121,7 +9138,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.6', + VERSION: '2.4.7 RC1', /** * An array of Phaser game instances. @@ -9472,7 +9489,7 @@ var Phaser = Phaser || { }; /** -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -9627,7 +9644,7 @@ if (!window.console) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10034,7 +10051,7 @@ Phaser.Utils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10609,7 +10626,7 @@ PIXI.Circle = Phaser.Circle; /** * @author Richard Davey * @author Chad Engler -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10935,7 +10952,7 @@ PIXI.Ellipse = Phaser.Ellipse; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -11580,7 +11597,7 @@ Phaser.Line.reflect = function (a, b) { /** * @author Mat Groves http://matgroves.com/ @Doormat23 * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -11969,7 +11986,7 @@ PIXI.identityMatrix = Phaser.identityMatrix; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -12877,7 +12894,7 @@ PIXI.Point = Phaser.Point; /** * @author Richard Davey * @author Adrien Brault -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -13039,6 +13056,7 @@ Phaser.Polygon.prototype = { * - An array of Point objects: `[new Phaser.Point(x1, y1), ...]` * - An array of objects with public x/y properties: `[obj1, obj2, ...]` * - An array of paired numbers that represent point coordinates: `[x1,y1, x2,y2, ...]` + * - An array of arrays with two elements representing x/y coordinates: `[[x1, y1], [x2, y2], ...]` * - As separate Point arguments: `setTo(new Phaser.Point(x1, y1), ...)` * - As separate objects with public x/y properties arguments: `setTo(obj1, obj2, ...)` * - As separate arguments representing point coordinates: `setTo(x1,y1, x2,y2, ...)` @@ -13072,6 +13090,10 @@ Phaser.Polygon.prototype = { var p = new PIXI.Point(points[i], points[i + 1]); i++; } + else if (Array.isArray(points[i])) + { + var p = new PIXI.Point(points[i][0], points[i][1]); + } else { var p = new PIXI.Point(points[i].x, points[i].y); @@ -13170,7 +13192,7 @@ PIXI.Polygon = Phaser.Polygon; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14178,7 +14200,7 @@ PIXI.EmptyRectangle = new Phaser.Rectangle(0, 0, 0, 0); /** * @author Mat Groves http://matgroves.com/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14289,7 +14311,7 @@ PIXI.RoundedRectangle = Phaser.RoundedRectangle; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14371,12 +14393,12 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.target = null; /** - * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot + * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot. */ this.displayObject = null; /** - * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot + * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot. */ this.scale = null; @@ -14387,7 +14409,44 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.totalInView = 0; /** - * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position + * The linear interpolation value to use when following a target. + * The default values of 1 means the camera will instantly snap to the target coordinates. + * A lower value, such as 0.1 means the camera will more slowly track the target, giving + * a smooth transition. You can set the horizontal and vertical values independently, and also + * adjust this value in real-time during your game. + * @property {Phaser.Point} lerp + * @default + */ + this.lerp = new Phaser.Point(1, 1); + + /** + * @property {Phaser.Signal} onShakeComplete - This signal is dispatched when the camera shake effect completes. + */ + this.onShakeComplete = new Phaser.Signal(); + + /** + * @property {Phaser.Signal} onFlashComplete - This signal is dispatched when the camera flash effect completes. + */ + this.onFlashComplete = new Phaser.Signal(); + + /** + * This signal is dispatched when the camera fade effect completes. + * When the fade effect completes you will be left with the screen black (or whatever + * color you faded to). In order to reset this call `Camera.resetFX`. This is called + * automatically when you change State. + * @property {Phaser.Signal} onFadeComplete + */ + this.onFadeComplete = new Phaser.Signal(); + + /** + * The Graphics object used to handle camera fx such as fade and flash. + * @property {Phaser.Graphics} fx + * @protected + */ + this.fx = null; + + /** + * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position. * @private */ this._targetPosition = new Phaser.Point(); @@ -14406,6 +14465,32 @@ Phaser.Camera = function (game, id, x, y, width, height) { */ this._position = new Phaser.Point(); + /** + * @property {Object} _shake - The shake effect container. + * @private + */ + this._shake = { + intensity: 0, + duration: 0, + horizontal: false, + vertical: false, + shakeBounds: true, + x: 0, + y: 0 + }; + + /** + * @property {number} _fxDuration - FX duration timer. + * @private + */ + this._fxDuration = 0; + + /** + * @property {number} _fxType - The FX type running. + * @private + */ + this._fxType = 0; + }; /** @@ -14432,8 +14517,55 @@ Phaser.Camera.FOLLOW_TOPDOWN = 2; */ Phaser.Camera.FOLLOW_TOPDOWN_TIGHT = 3; +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_BOTH = 4; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_HORIZONTAL = 5; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_VERTICAL = 6; + +/** +* @constant +* @type {boolean} +*/ +Phaser.Camera.ENABLE_FX = true; + Phaser.Camera.prototype = { + /** + * Called automatically by Phaser.World. + * + * @method Phaser.Camera#boot + * @private + */ + boot: function () { + + this.displayObject = this.game.world; + + this.scale = this.game.world.scale; + + this.game.camera = this; + + if (Phaser.Graphics && Phaser.Camera.ENABLE_FX) + { + this.fx = new Phaser.Graphics(this.game); + + this.game.stage.addChild(this.fx); + } + + }, + /** * Camera preUpdate. Sets the total view counter to zero. * @@ -14447,6 +14579,9 @@ Phaser.Camera.prototype = { /** * Tell the camera which sprite to follow. + * + * You can set the follow type and a linear interpolation value. + * Use low lerp values (such as 0.1) to automatically smooth the camera motion. * * If you find you're getting a slight "jitter" effect when following a Sprite it's probably to do with sub-pixel rendering of the Sprite position. * This can be disabled by setting `game.renderer.renderSession.roundPixels = true` to force full pixel rendering. @@ -14454,12 +14589,17 @@ Phaser.Camera.prototype = { * @method Phaser.Camera#follow * @param {Phaser.Sprite|Phaser.Image|Phaser.Text} target - The object you want the camera to track. Set to null to not follow anything. * @param {number} [style] - Leverage one of the existing "deadzone" presets. If you use a custom deadzone, ignore this parameter and manually specify the deadzone after calling follow(). + * @param {float} [lerpX=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when horizontally tracking the target. The closer the value to 1, the faster the camera will track. + * @param {float} [lerpY=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when vertically tracking the target. The closer the value to 1, the faster the camera will track. */ - follow: function (target, style) { + follow: function (target, style, lerpX, lerpY) { if (style === undefined) { style = Phaser.Camera.FOLLOW_LOCKON; } + if (lerpX === undefined) { lerpX = 1; } + if (lerpY === undefined) { lerpY = 1; } this.target = target; + this.lerp.set(lerpX, lerpY); var helper; @@ -14527,16 +14667,156 @@ Phaser.Camera.prototype = { }, /** - * Update focusing and scrolling. + * This creates a camera shake effect. It works by applying a random amount of additional + * spacing on the x and y axis each frame. You can control the intensity and duration + * of the effect, and if it should effect both axis or just one. + * + * When the shake effect ends the signal Camera.onShakeComplete is dispatched. + * + * @method Phaser.Camera#shake + * @param {float} [intensity=0.05] - The intensity of the camera shake. Given as a percentage of the camera size representing the maximum distance that the camera can move while shaking. + * @param {number} [duration=500] - The duration of the shake effect in milliseconds. + * @param {boolean} [force=true] - If a camera shake effect is already running and force is true it will replace the previous effect, resetting the duration. + * @param {number} [direction=Phaser.Camera.SHAKE_BOTH] - The directions in which the camera can shake. Either Phaser.Camera.SHAKE_BOTH, Phaser.Camera.SHAKE_HORIZONTAL or Phaser.Camera.SHAKE_VERTICAL. + * @param {boolean} [shakeBounds=true] - Is the effect allowed to shake the camera beyond its bounds (if set?). + * @return {boolean} True if the shake effect was started, otherwise false. + */ + shake: function (intensity, duration, force, direction, shakeBounds) { + + if (intensity === undefined) { intensity = 0.05; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = true; } + if (direction === undefined) { direction = Phaser.Camera.SHAKE_BOTH; } + if (shakeBounds === undefined) { shakeBounds = true; } + + if (!force && this._shake.duration > 0) + { + // Can't reset an already running shake + return false; + } + + this._shake.intensity = intensity; + this._shake.duration = duration; + this._shake.shakeBounds = shakeBounds; + + this._shake.x = 0; + this._shake.y = 0; + + this._shake.horizontal = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_HORIZONTAL); + this._shake.vertical = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_VERTICAL); + + return true; + + }, + + /** + * This creates a camera flash effect. It works by filling the game with the solid fill + * color specified, and then fading it away to alpha 0 over the duration given. + * + * You can use this for things such as hit feedback effects. + * + * When the effect ends the signal Camera.onFlashComplete is dispatched. + * + * @method Phaser.Camera#flash + * @param {numer} [color=0xffffff] - The color of the flash effect. I.e. 0xffffff for white, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the flash effect in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + flash: function (color, duration, force) { + + if (color === undefined) { color = 0xffffff; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 1; + + this._fxDuration = duration; + this._fxType = 0; + + return true; + + }, + + /** + * This creates a camera fade effect. It works by filling the game with the + * color specified, over the duration given, ending with a solid fill. + * + * You can use this for things such as transitioning to a new scene. + * + * The game will be left 'filled' at the end of this effect, likely obscuring + * everything. In order to reset it you can call `Camera.resetFX` and it will clear the + * fade. Or you can call `Camera.flash` with the same color as the fade, and it will + * reverse the process, bringing the game back into view again. + * + * When the effect ends the signal Camera.onFadeComplete is dispatched. + * + * @method Phaser.Camera#fade + * @param {numer} [color=0x000000] - The color the game will fade to. I.e. 0x000000 for black, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the fade in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + fade: function (color, duration, force) { + + if (color === undefined) { color = 0x000000; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 0; + + this._fxDuration = duration; + this._fxType = 1; + + return true; + + }, + + /** + * The camera update loop. This is called automatically by the core game loop. + * * @method Phaser.Camera#update + * @protected */ update: function () { + if (this._fxDuration > 0) + { + this.updateFX(); + } + if (this.target) { this.updateTarget(); } + if (this._shake.duration > 0) + { + this.updateShake(); + } + if (this.bounds) { this.checkBounds(); @@ -14545,26 +14825,90 @@ Phaser.Camera.prototype = { if (this.roundPx) { this.view.floor(); + this._shake.x = Math.floor(this._shake.x); + this._shake.y = Math.floor(this._shake.y); } - this.displayObject.position.x = -this.view.x; - this.displayObject.position.y = -this.view.y; + this.displayObject.position.x = -(this.view.x + this._shake.x); + this.displayObject.position.y = -(this.view.y + this._shake.y); }, /** - * Internal method + * Update the camera flash and fade effects. + * + * @method Phaser.Camera#updateFX + * @private + */ + updateFX: function () { + + if (this._fxType === 0) + { + // flash + this.fx.alpha -= this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha <= 0) + { + this._fxDuration = 0; + this.fx.alpha = 0; + this.onFlashComplete.dispatch(); + } + } + else + { + // fade + this.fx.alpha += this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha >= 1) + { + this._fxDuration = 0; + this.fx.alpha = 1; + this.onFadeComplete.dispatch(); + } + } + + }, + + /** + * Update the camera shake effect. + * + * @method Phaser.Camera#updateShake + * @private + */ + updateShake: function () { + + this._shake.duration -= this.game.time.elapsedMS; + + if (this._shake.duration <= 0) + { + this.onShakeComplete.dispatch(); + this._shake.x = 0; + this._shake.y = 0; + } + else + { + if (this._shake.horizontal) + { + this._shake.x = this.game.rnd.frac() * this._shake.intensity * this.view.width * 2 - this._shake.intensity * this.view.width; + } + + if (this._shake.vertical) + { + this._shake.y = this.game.rnd.frac() * this._shake.intensity * this.view.height * 2 - this._shake.intensity * this.view.height; + } + } + + }, + + /** + * Internal method that handles tracking a sprite. + * * @method Phaser.Camera#updateTarget * @private */ updateTarget: function () { - this._targetPosition.copyFrom(this.target); - - if (this.target.parent) - { - this._targetPosition.multiply(this.target.parent.worldTransform.a, this.target.parent.worldTransform.d); - } + this._targetPosition.copyFrom(this.target.world); if (this.deadzone) { @@ -14572,34 +14916,35 @@ Phaser.Camera.prototype = { if (this._edge < this.deadzone.left) { - this.view.x = this._targetPosition.x - this.deadzone.left; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.left, this.lerp.x); } else if (this._edge > this.deadzone.right) { - this.view.x = this._targetPosition.x - this.deadzone.right; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.right, this.lerp.x); } this._edge = this._targetPosition.y - this.view.y; if (this._edge < this.deadzone.top) { - this.view.y = this._targetPosition.y - this.deadzone.top; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.top, this.lerp.y); } else if (this._edge > this.deadzone.bottom) { - this.view.y = this._targetPosition.y - this.deadzone.bottom; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.bottom, this.lerp.y); } } else { - this.view.x = this._targetPosition.x - this.view.halfWidth; - this.view.y = this._targetPosition.y - this.view.halfHeight; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.view.halfWidth, this.lerp.x); + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.view.halfHeight, this.lerp.y); } }, /** * Update the Camera bounds to match the game world. + * * @method Phaser.Camera#setBoundsToWorld */ setBoundsToWorld: function () { @@ -14613,36 +14958,68 @@ Phaser.Camera.prototype = { /** * Method called to ensure the camera doesn't venture outside of the game world. + * Called automatically by Camera.update. + * * @method Phaser.Camera#checkBounds + * @protected */ checkBounds: function () { this.atLimit.x = false; this.atLimit.y = false; + var vx = this.view.x + this._shake.x; + var vw = this.view.right + this._shake.x; + var vy = this.view.y + this._shake.y; + var vh = this.view.bottom + this._shake.y; + // Make sure we didn't go outside the cameras bounds - if (this.view.x <= this.bounds.x * this.scale.x) + if (vx <= this.bounds.x * this.scale.x) { this.atLimit.x = true; this.view.x = this.bounds.x * this.scale.x; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.right >= this.bounds.right * this.scale.x) + if (vw >= this.bounds.right * this.scale.x) { this.atLimit.x = true; this.view.x = (this.bounds.right * this.scale.x) - this.width; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.y <= this.bounds.top * this.scale.y) + if (vy <= this.bounds.top * this.scale.y) { this.atLimit.y = true; this.view.y = this.bounds.top * this.scale.y; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } - if (this.view.bottom >= this.bounds.bottom * this.scale.y) + if (vh >= this.bounds.bottom * this.scale.y) { this.atLimit.y = true; this.view.y = (this.bounds.bottom * this.scale.y) - this.height; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } }, @@ -14683,15 +15060,38 @@ Phaser.Camera.prototype = { /** * Resets the camera back to 0,0 and un-follows any object it may have been tracking. + * Also immediately resets any camera effects that may have been running such as + * shake, flash or fade. * * @method Phaser.Camera#reset */ reset: function () { this.target = null; + this.view.x = 0; this.view.y = 0; + this._shake.duration = 0; + + this.resetFX(); + + }, + + /** + * Resets any active FX, such as a fade or flash and immediately clears it. + * Useful to calling after a fade in order to remove the fade from the Stage. + * + * @method Phaser.Camera#resetFX + */ + resetFX: function () { + + this.fx.clear(); + + this.fx.alpha = 0; + + this._fxDuration = 0; + } }; @@ -14706,7 +15106,9 @@ Phaser.Camera.prototype.constructor = Phaser.Camera; Object.defineProperty(Phaser.Camera.prototype, "x", { get: function () { + return this.view.x; + }, set: function (value) { @@ -14729,7 +15131,9 @@ Object.defineProperty(Phaser.Camera.prototype, "x", { Object.defineProperty(Phaser.Camera.prototype, "y", { get: function () { + return this.view.y; + }, set: function (value) { @@ -14752,8 +15156,11 @@ Object.defineProperty(Phaser.Camera.prototype, "y", { Object.defineProperty(Phaser.Camera.prototype, "position", { get: function () { - this._position.set(this.view.centerX, this.view.centerY); + + this._position.set(this.view.x, this.view.y); + return this._position; + }, set: function (value) { @@ -14777,11 +15184,15 @@ Object.defineProperty(Phaser.Camera.prototype, "position", { Object.defineProperty(Phaser.Camera.prototype, "width", { get: function () { + return this.view.width; + }, set: function (value) { + this.view.width = value; + } }); @@ -14794,18 +15205,22 @@ Object.defineProperty(Phaser.Camera.prototype, "width", { Object.defineProperty(Phaser.Camera.prototype, "height", { get: function () { + return this.view.height; + }, set: function (value) { + this.view.height = value; + } }); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -15034,7 +15449,7 @@ Phaser.State.prototype.constructor = Phaser.State; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -15825,20 +16240,63 @@ Object.defineProperty(Phaser.StateManager.prototype, "created", { /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** -* A Signal is an event dispatch mechanism that supports broadcasting to multiple listeners. +* Signals are what Phaser uses to handle events and event dispatching. +* You can listen for a Signal by binding a callback / function to it. +* This is done by using either `Signal.add` or `Signal.addOnce`. * -* Event listeners are uniquely identified by the listener/callback function and the context. +* For example you can listen for a touch or click event from the Input Manager +* by using its `onDown` Signal: +* +* `game.input.onDown.add(function() { ... });` +* +* Rather than inline your function, you can pass a reference: +* +* `game.input.onDown.add(clicked, this);` +* `function clicked () { ... }` +* +* In this case the second argument (`this`) is the context in which your function should be called. +* +* Now every time the InputManager dispatches the `onDown` signal (or event), your function +* will be called. +* +* Very often a Signal will send arguments to your function. +* This is specific to the Signal itself. +* If you're unsure then check the documentation, or failing that simply do: +* +* `Signal.add(function() { console.log(arguments); })` +* +* and it will log all of the arguments your function received from the Signal. +* +* Sprites have lots of default signals you can listen to in their Events class, such as: +* +* `sprite.events.onKilled` * +* Which is called automatically whenever the Sprite is killed. +* There are lots of other events, see the Events component for a list. +* +* As well as listening to pre-defined Signals you can also create your own: +* +* `var mySignal = new Phaser.Signal();` +* +* This creates a new Signal. You can bind a callback to it: +* +* `mySignal.add(myCallback, this);` +* +* and then finally when ready you can dispatch the Signal: +* +* `mySignal.dispatch(your arguments);` +* +* And your callback will be invoked. See the dispatch method for more details. +* * @class Phaser.Signal * @constructor */ -Phaser.Signal = function () { -}; +Phaser.Signal = function () {}; Phaser.Signal.prototype = { @@ -15884,7 +16342,7 @@ Phaser.Signal.prototype = { * @property {function} _boundDispatch - The bound dispatch function, if any. * @private */ - _boundDispatch: true, + _boundDispatch: false, /** * @method Phaser.Signal#validateListener @@ -16288,7 +16746,7 @@ Phaser.Signal.prototype.constructor = Phaser.Signal; /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16487,7 +16945,7 @@ Phaser.SignalBinding.prototype.constructor = Phaser.SignalBinding; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16735,7 +17193,7 @@ Object.defineProperty(Phaser.Filter.prototype, 'height', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16860,7 +17318,7 @@ Phaser.Plugin.prototype.constructor = Phaser.Plugin; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -17146,7 +17604,7 @@ Phaser.PluginManager.prototype.constructor = Phaser.PluginManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -17567,7 +18025,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -17856,7 +18314,7 @@ Phaser.Group.prototype.add = function (child, silent) { if (child.parent !== this) { - if (child.body && child.parent) + if (child.body && child.parent && child.parent.hash) { child.parent.removeFromHash(child); } @@ -18366,6 +18824,29 @@ Phaser.Group.prototype.getIndex = function (child) { }; +/** +* Searches the Group for the first instance of a child with the `name` +* property matching the given argument. Should more than one child have +* the same name only the first instance is returned. +* +* @method Phaser.Group#getByName +* @param {string} name - The name to search for. +* @return {any} The first child with a matching name, or null if none were found. +*/ +Phaser.Group.prototype.getByName = function (name) { + + for (var i = 0; i < this.children.length; i++) + { + if (this.children[i].name === name) + { + return this.children[i]; + } + } + + return null; + +}; + /** * Replaces a child of this group with the given newChild. The newChild cannot be a member of this group. * @@ -19887,7 +20368,7 @@ Object.defineProperty(Phaser.Group.prototype, "angle", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -19954,14 +20435,10 @@ Phaser.World.prototype.boot = function () { this.camera = new Phaser.Camera(this.game, 0, 0, 0, this.game.width, this.game.height); - this.camera.displayObject = this; - - this.camera.scale = this.scale; - - this.game.camera = this.camera; - this.game.stage.addChild(this); + this.camera.boot(); + }; /** @@ -20063,6 +20540,9 @@ Phaser.World.prototype.shutdown = function () { * If they do it will reposition the object to the opposite side of the world, creating a wrap-around effect. * If sprite has a P2 body then the body (sprite.body) should be passed as first parameter to the function. * +* Please understand there are limitations to this method. For example if you have scaled the World +* then objects won't always be re-positioned correctly, and you'll need to employ your own wrapping function. +* * @method Phaser.World#wrap * @param {Phaser.Sprite|Phaser.Image|Phaser.TileSprite|Phaser.Text} sprite - The object you wish to wrap around the world bounds. * @param {number} [padding=0] - Extra padding added equally to the sprite.x and y coordinates before checking if within the world bounds. Ignored if useBounds is true. @@ -20186,7 +20666,7 @@ Object.defineProperty(Phaser.World.prototype, "height", { Object.defineProperty(Phaser.World.prototype, "centerX", { get: function () { - return this.bounds.halfWidth; + return this.bounds.halfWidth + this.bounds.x; } }); @@ -20199,7 +20679,7 @@ Object.defineProperty(Phaser.World.prototype, "centerX", { Object.defineProperty(Phaser.World.prototype, "centerY", { get: function () { - return this.bounds.halfHeight; + return this.bounds.halfHeight + this.bounds.y; } }); @@ -20250,7 +20730,7 @@ Object.defineProperty(Phaser.World.prototype, "randomY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -20627,7 +21107,7 @@ Phaser.Game = function (width, height, renderer, parent, state, transparent, ant /** * @property {boolean} forceSingleUpdate - Should the game loop force a logic update, regardless of the delta timer? Set to true if you know you need this. You can toggle it on the fly. */ - this.forceSingleUpdate = false; + this.forceSingleUpdate = true; /** * @property {number} _nextNotification - The soonest game.time.time value that the next fpsProblemNotifier can be dispatched. @@ -20931,7 +21411,14 @@ Phaser.Game.prototype = { */ setUpRenderer: function () { - this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + if (this.config['canvas']) + { + this.canvas = this.config['canvas']; + } + else + { + this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + } if (this.config['canvasStyle']) { @@ -21253,23 +21740,29 @@ Phaser.Game.prototype = { this.state.destroy(); this.sound.destroy(); - this.scale.destroy(); this.stage.destroy(); this.input.destroy(); this.physics.destroy(); + this.plugins.destroy(); this.state = null; - this.cache = null; - this.input = null; - this.load = null; this.sound = null; + this.scale = null; this.stage = null; + this.input = null; + this.physics = null; + this.plugins = null; + + this.cache = null; + this.load = null; this.time = null; this.world = null; + this.isBooted = false; this.renderer.destroy(false); + Phaser.Canvas.removeFromDOM(this.canvas); Phaser.GAMES[this.id] = null; @@ -21289,8 +21782,14 @@ Phaser.Game.prototype = { if (!this._paused) { this._paused = true; + this.time.gamePaused(); - this.sound.setMute(); + + if (this.sound.muteOnPause) + { + this.sound.setMute(); + } + this.onPause.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -21315,9 +21814,16 @@ Phaser.Game.prototype = { if (this._paused && !this._codePaused) { this._paused = false; + this.time.gameResumed(); + this.input.reset(); - this.sound.unsetMute(); + + if (this.sound.muteOnPause) + { + this.sound.unsetMute(); + } + this.onResume.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -21421,7 +21927,7 @@ Object.defineProperty(Phaser.Game.prototype, "paused", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22509,7 +23015,7 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22517,10 +23023,10 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { * The Mouse class is responsible for handling all aspects of mouse interaction with the browser. * * It captures and processes mouse events that happen on the game canvas object. -* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released +* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released * when not over the game. * -* You should not normally access this class directly, but instead use a Phaser.Pointer object +* You should not normally access this class directly, but instead use a Phaser.Pointer object * which normalises all game input for you, including accurate button handling. * * @class Phaser.Mouse @@ -22894,7 +23400,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse up event from the window. - * + * * @method Phaser.Mouse#onMouseUpGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -22916,7 +23422,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse out event from the window. - * + * * @method Phaser.Mouse#onMouseOutGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -22941,7 +23447,7 @@ Phaser.Mouse.prototype = { // the browser opening a context-menu or similar. // On OS X Chrome especially this is bad news, as it blocks // us then getting a mouseup event, so we need to force that through. - // + // // No matter what, we must cancel the left and right buttons this.input.mousePointer.stop(event); @@ -23070,7 +23576,7 @@ Phaser.Mouse.prototype = { /** * Internal pointerLockChange handler. - * + * * @method Phaser.Mouse#pointerLockChange * @param {Event} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -23131,6 +23637,7 @@ Phaser.Mouse.prototype = { } window.removeEventListener('mouseup', this._onMouseUpGlobal, true); + window.removeEventListener('mouseout', this._onMouseOutGlobal, true); document.removeEventListener('pointerlockchange', this._pointerLockChange, true); document.removeEventListener('mozpointerlockchange', this._pointerLockChange, true); @@ -23228,7 +23735,7 @@ Object.defineProperties(WheelEventProxy.prototype, { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -23680,7 +24187,7 @@ Phaser.MSPointer.prototype.constructor = Phaser.MSPointer; /** * @author Richard Davey * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -24001,7 +24508,7 @@ Object.defineProperty(Phaser.DeviceButton.prototype, "duration", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25237,7 +25744,7 @@ Phaser.PointerMode = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25701,7 +26208,7 @@ Phaser.Touch.prototype.constructor = Phaser.Touch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26655,13 +27162,19 @@ Phaser.InputHandler.prototype = { data.isUp = false; data.timeDown = this.game.time.time; + // It's possible the onInputDown event creates a new Sprite that is on-top of this one, so we ought to force a Pointer update + pointer.dirty = true; + if (this.sprite && this.sprite.events) { this.sprite.events.onInputDown$dispatch(this.sprite, pointer); + // The onInputDown event might have destroyed this sprite. + if (this.sprite === null) + { + return; + } } - // It's possible the onInputDown event created a new Sprite that is on-top of this one, so we ought to force a Pointer update - pointer.dirty = true; // Start drag if (this.draggable && this.isDragged === false) @@ -27019,13 +27532,13 @@ Phaser.InputHandler.prototype = { { if (this.dragFromCenter) { - this.sprite.centerOn(pointer.x, pointer.y); - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); - } - else - { - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); + var bounds = this.sprite.getBounds(); + + this.sprite.cameraOffset.x = this.globalToLocalX(pointer.x) + (this.sprite.cameraOffset.x - bounds.centerX); + this.sprite.cameraOffset.y = this.globalToLocalY(pointer.y) + (this.sprite.cameraOffset.y - bounds.centerY); } + + this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); } else { @@ -27307,7 +27820,7 @@ Phaser.InputHandler.prototype.constructor = Phaser.InputHandler; /** * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27970,7 +28483,7 @@ Phaser.Gamepad.PS3XC_STICK_RIGHT_Y = 3; // analog stick, range -1..1 /** * @author @karlmacklin * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28525,7 +29038,7 @@ Phaser.SinglePad.prototype.constructor = Phaser.SinglePad; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28890,7 +29403,7 @@ Phaser.Key.prototype.constructor = Phaser.Key; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28900,6 +29413,10 @@ Phaser.Key.prototype.constructor = Phaser.Key; * _Note_: many keyboards are unable to process certain combinations of keys due to hardware limitations known as ghosting. * See http://www.html5gamedevs.com/topic/4876-impossible-to-use-more-than-2-keyboard-input-buttons-at-the-same-time/ for more details. * +* Also please be aware that certain browser extensions can disable or override Phaser keyboard handling. +* For example the Chrome extension vimium is known to disable Phaser from using the D key. And there are others. +* So please check your extensions before opening Phaser issues. +* * @class Phaser.Keyboard * @constructor * @param {Phaser.Game} game - A reference to the currently running game. @@ -29704,7 +30221,7 @@ for (var key in Phaser.KeyCode) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29712,7 +30229,7 @@ Phaser.Component = function () {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29758,7 +30275,7 @@ Phaser.Component.Angle.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29799,7 +30316,7 @@ Phaser.Component.Animation.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29854,7 +30371,7 @@ Phaser.Component.AutoCull.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29975,7 +30492,7 @@ Phaser.Component.Bounds.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30072,7 +30589,7 @@ Phaser.Component.BringToTop.prototype.moveDown = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30428,7 +30945,7 @@ Phaser.Component.Core.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30546,7 +31063,7 @@ Phaser.Component.Crop.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30615,7 +31132,7 @@ Phaser.Component.Delta.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30695,6 +31212,8 @@ Phaser.Component.Destroy.prototype = { this.events.destroy(); } + this.game.tweens.removeFrom(this); + var i = this.children.length; if (destroyChildren) @@ -30776,7 +31295,7 @@ Phaser.Component.Destroy.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30970,7 +31489,7 @@ for (var prop in Phaser.Events.prototype) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31059,7 +31578,7 @@ Phaser.Component.FixedToCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31166,7 +31685,7 @@ Phaser.Component.Health.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31203,7 +31722,7 @@ Phaser.Component.InCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31276,7 +31795,7 @@ Phaser.Component.InputEnabled.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31316,6 +31835,12 @@ Phaser.Component.InWorld.preUpdate = function () { else { this.renderable = false; + + if (this.outOfCameraBoundsKill) + { + this.kill(); + return false; + } } } @@ -31375,6 +31900,15 @@ Phaser.Component.InWorld.prototype = { */ outOfBoundsKill: false, + /** + * If this and the `autoCull` property are both set to `true`, then the `kill` method + * is called as soon as the Game Object leaves the camera bounds. + * + * @property {boolean} outOfCameraBoundsKill + * @default + */ + outOfCameraBoundsKill: false, + /** * @property {boolean} _outOfBoundsFired - Internal state var. * @private @@ -31401,7 +31935,7 @@ Phaser.Component.InWorld.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31530,7 +32064,7 @@ Phaser.Component.LifeSpan.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31571,6 +32105,8 @@ Phaser.Component.LoadTexture.prototype = { * to use a Texture Atlas later in development by simply searching your code for 'PENDING_ATLAS' * and swapping it to be the key of the atlas data. * + * Note: You cannot use a RenderTexture as a texture for a TileSprite. + * * @method * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache Image entry, or an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. * @param {string|number} [frame] - If this Sprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. @@ -31615,6 +32151,10 @@ Phaser.Component.LoadTexture.prototype = { { setFrame = !this.animations.loadFrameData(cache.getFrameData(key.key, Phaser.Cache.BITMAPDATA), frame); } + else + { + setFrame = !this.animations.loadFrameData(key.frameData, 0); + } } else if (Phaser.Video && key instanceof Phaser.Video) { @@ -31627,6 +32167,12 @@ Phaser.Component.LoadTexture.prototype = { key.onChangeSource.add(this.resizeFrame, this); this.texture.valid = valid; } + else if (Phaser.Tilemap && key instanceof Phaser.TilemapLayer) + { + // this.customRender = true; + + this.setTexture(PIXI.Texture.fromCanvas(key.canvas)); + } else if (key instanceof PIXI.Texture) { this.setTexture(key); @@ -31810,7 +32356,7 @@ Phaser.Component.LoadTexture.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31846,7 +32392,7 @@ Phaser.Component.Overlap.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31992,7 +32538,7 @@ Phaser.Component.PhysicsBody.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32056,7 +32602,7 @@ Phaser.Component.Reset.prototype.reset = function (x, y, health) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32224,7 +32770,7 @@ Phaser.Component.ScaleMinMax.prototype = { }; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32278,7 +32824,7 @@ Phaser.Component.Smoothed.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -32528,7 +33074,7 @@ Phaser.GameObjectFactory.prototype = { * @param {number} y - The y coordinate of the TileSprite. The coordinate is relative to any parent container this TileSprite may be in. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - The image used as a texture by this display object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} [frame] - If a Texture Atlas or Sprite Sheet is used this allows you to specify the frame to be used. Use either an integer for a Frame ID or a string for a frame name. * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. * @return {Phaser.TileSprite} The newly created TileSprite object. @@ -32841,7 +33387,7 @@ Phaser.GameObjectFactory.prototype.constructor = Phaser.GameObjectFactory; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33009,7 +33555,7 @@ Phaser.GameObjectCreator.prototype = { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. * @return {Phaser.TileSprite} The newly created tileSprite object. */ @@ -33271,7 +33817,7 @@ Phaser.GameObjectCreator.prototype.constructor = Phaser.GameObjectCreator; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33388,7 +33934,7 @@ Phaser.Sprite.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33481,7 +34027,7 @@ Phaser.Image.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34077,7 +34623,7 @@ Phaser.Button.prototype.onInputUpHandler = function (sprite, pointer, isOver) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34119,7 +34665,7 @@ Phaser.SpriteBatch.prototype.constructor = Phaser.SpriteBatch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34241,11 +34787,16 @@ Phaser.BitmapData = function (game, key, width, height) { */ this.texture = new PIXI.Texture(this.baseTexture); + /** + * @property {Phaser.FrameData} frameData - The FrameData container this BitmapData uses for rendering. + */ + this.frameData = new Phaser.FrameData(); + /** * @property {Phaser.Frame} textureFrame - The Frame this BitmapData uses for rendering. * @default */ - this.textureFrame = new Phaser.Frame(0, 0, 0, width, height, 'bitmapData'); + this.textureFrame = this.frameData.addFrame(new Phaser.Frame(0, 0, 0, width, height, 'bitmapData')); this.texture.frame = this.textureFrame; @@ -35374,6 +35925,7 @@ Phaser.BitmapData.prototype = { } this._image = source.tintedTexture; + this._pos.set(0); } } else @@ -35976,6 +36528,8 @@ Phaser.BitmapData.prototype = { */ destroy: function () { + this.frameData.destroy(); + this.texture.destroy(true); PIXI.CanvasPool.remove(this); @@ -39748,7 +40302,7 @@ PIXI.CanvasGraphics.updateGraphicsTint = function(graphics) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -39790,6 +40344,12 @@ Phaser.Graphics = function (game, x, y) { */ this.physicsType = Phaser.SPRITE; + /** + * @property {Phaser.Point} anchor - Required for a Graphics shape to work as a Physics body, do not modify this value. + * @private + */ + this.anchor = new Phaser.Point(); + PIXI.Graphics.call(this); Phaser.Component.Core.init.call(this, game, x, y, '', null); @@ -39958,7 +40518,7 @@ Phaser.Graphics.prototype.drawTriangles = function(vertices, indices, cull) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -40112,7 +40672,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -40146,6 +40706,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) * @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke). * @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used. * @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap. +* @param {number} [style.maxLines=0] - The maximum number of lines to be shown for wrapped text. * @param {number} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop. */ Phaser.Text = function (game, x, y, text, style) { @@ -40396,6 +40957,7 @@ Phaser.Text.prototype.setShadow = function (x, y, color, blur, shadowStroke, sha * @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke). * @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used. * @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap. +* @param {number} [style.maxLines=0] - The maximum number of lines to be shown for wrapped text. * @param {number|array} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop. * @return {Phaser.Text} This Text instance. */ @@ -40412,6 +40974,7 @@ Phaser.Text.prototype.setStyle = function (style) { style.strokeThickness = style.strokeThickness || 0; style.wordWrap = style.wordWrap || false; style.wordWrapWidth = style.wordWrapWidth || 100; + style.maxLines = style.maxLines || 0; style.shadowOffsetX = style.shadowOffsetX || 0; style.shadowOffsetY = style.shadowOffsetY || 0; style.shadowColor = style.shadowColor || 'rgba(0,0,0,0)'; @@ -40448,6 +41011,7 @@ Phaser.Text.prototype.setStyle = function (style) { this._fontComponents = components; style.font = this.componentsToFont(this._fontComponents); + this.style = style; this.dirty = true; @@ -40483,7 +41047,14 @@ Phaser.Text.prototype.updateText = function () { var maxLineWidth = 0; var fontProperties = this.determineFontProperties(this.style.font); - for (var i = 0; i < lines.length; i++) + var drawnLines = lines.length; + + if (this.style.maxLines > 0 && this.style.maxLines < lines.length) + { + drawnLines = this.style.maxLines; + } + + for (var i = 0; i < drawnLines; i++) { if (tabs === 0) { @@ -40540,7 +41111,7 @@ Phaser.Text.prototype.updateText = function () { // Calculate text height var lineHeight = fontProperties.fontSize + this.style.strokeThickness + this.padding.y; - var height = lineHeight * lines.length; + var height = lineHeight * drawnLines; var lineSpacing = this._lineSpacing; if (lineSpacing < 0 && Math.abs(lineSpacing) > lineHeight) @@ -40551,7 +41122,7 @@ Phaser.Text.prototype.updateText = function () { // Adjust for line spacing if (lineSpacing !== 0) { - height += lineSpacing * lines.length; + height += (lineSpacing > 0) ? lineSpacing * lines.length : lineSpacing * (lines.length - 1); } this.canvas.height = height * this._res; @@ -40584,7 +41155,7 @@ Phaser.Text.prototype.updateText = function () { this._charCount = 0; // Draw text line by line - for (i = 0; i < lines.length; i++) + for (i = 0; i < drawnLines; i++) { // Split the line by @@ -41189,18 +41760,27 @@ Phaser.Text.prototype.fontToComponents = function (font) { if (m) { + var family = m[5].trim(); + + // If it looks like the value should be quoted, but isn't, then quote it. + if (!/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(family) && !/['",]/.exec(family)) + { + family = "'" + family + "'"; + } + return { font: font, fontStyle: m[1] || 'normal', fontVariant: m[2] || 'normal', fontWeight: m[3] || 'normal', fontSize: m[4] || 'medium', - fontFamily: m[5] + fontFamily: family }; } else { console.warn("Phaser.Text - unparsable CSS font: " + font); + return { font: font }; @@ -42273,7 +42853,7 @@ Phaser.Text.fontPropertiesContext = Phaser.Text.fontPropertiesCanvas.getContext( /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -42386,7 +42966,7 @@ Phaser.BitmapText = function (game, x, y, font, text, size, align) { * @property {string} _text - Internal cache var. * @private */ - this._text = text; + this._text = text.toString() || ''; /** * @property {string} _data - Internal cache var. @@ -42981,7 +43561,7 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'smoothed', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43586,7 +44166,7 @@ Object.defineProperty(Phaser.RetroFont.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd, Richard Davey +* @copyright 2016 Photon Storm Ltd, Richard Davey * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43796,7 +44376,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43849,7 +44429,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. -* @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a RenderTexture, PIXI.Texture or BitmapData. +* @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. */ Phaser.TileSprite = function (game, x, y, width, height, key, frame) { @@ -44011,7 +44591,7 @@ Phaser.TileSprite.prototype.reset = function(x, y) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45388,7 +45968,7 @@ Phaser.Device.isAndroidStockBrowser = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45696,7 +46276,7 @@ Phaser.Canvas = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45865,7 +46445,7 @@ Phaser.RequestAnimationFrame.prototype.constructor = Phaser.RequestAnimationFram /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46761,16 +47341,29 @@ Phaser.Math = { }, /** - * Force a value within the boundaries by clamping `x` to the range `[a, b]`. + * Force a value within the boundaries by clamping it to the range `min`, `max`. * * @method Phaser.Math#clamp - * @param {number} x - * @param {number} a - * @param {number} b - * @return {number} + * @param {float} v - The value to be clamped. + * @param {float} min - The minimum bounds. + * @param {float} max - The maximum bounds. + * @return {number} The clamped value. */ - clamp: function (x, a, b) { - return ( x < a ) ? a : ( ( x > b ) ? b : x ); + clamp: function (v, min, max) { + + if (v < min) + { + return min; + } + else if (max < v) + { + return max; + } + else + { + return v; + } + }, /** @@ -46819,24 +47412,29 @@ Phaser.Math = { * Smoothstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smoothstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smoothstep: function (x, min, max) { + + // Scale, bias and saturate x to 0..1 range x = Math.max(0, Math.min(1, (x - min) / (max - min))); + + // Evaluate polynomial return x * x * (3 - 2 * x); + }, /** * Smootherstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smootherstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smootherstep: function (x, min, max) { x = Math.max(0, Math.min(1, (x - min) / (max - min))); @@ -46901,7 +47499,7 @@ Phaser.Math.degToRad = function degToRad (degrees) { }; /** -* Convert degrees to radians. +* Convert radians to degrees. * * @method Phaser.Math#radToDeg * @param {number} radians - Angle in radians. @@ -46915,7 +47513,7 @@ Phaser.Math.radToDeg = function radToDeg (radians) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47272,7 +47870,7 @@ Phaser.RandomDataGenerator.prototype.constructor = Phaser.RandomDataGenerator; /** * @author Timo Hausmann * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47624,7 +48222,7 @@ Phaser.QuadTree.prototype.constructor = Phaser.QuadTree; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47774,8 +48372,8 @@ Phaser.Net.prototype = { }, /** - * Returns the Query String as an object. - * If you specify a parameter it will return just the value of that parameter, should it exist. + * Takes a Uniform Resource Identifier (URI) component (previously created by encodeURIComponent or by a similar routine) and + * decodes it, replacing \ with spaces in the return. Used internally by the Net classes. * * @method Phaser.Net#decodeURI * @param {string} value - The URI component to be decoded. @@ -47791,7 +48389,7 @@ Phaser.Net.prototype.constructor = Phaser.Net; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -48152,7 +48750,7 @@ Phaser.TweenManager.prototype.constructor = Phaser.TweenManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -48229,8 +48827,9 @@ Phaser.Tween = function (target, game, manager) { this.onStart = new Phaser.Signal(); /** - * The onLoop event is fired if the Tween or any child tween loops. + * The onLoop event is fired if the Tween, or any child tweens loop. * It will be sent 2 parameters: the target object and this tween. + * * @property {Phaser.Signal} onLoop */ this.onLoop = new Phaser.Signal(); @@ -48699,10 +49298,9 @@ Phaser.Tween.prototype = { /** * Set how many times this tween and all of its children will repeat. * A tween (A) with 3 children (B,C,D) with a `repeatAll` value of 2 would play as: ABCDABCD before completing. - * When all child tweens have completed Tween.onLoop will be dispatched. * - * @method Phaser.Tween#repeat - * @param {number} total - How many times this tween and all children should repeat before completing. Set to zero to remove an active repeat. Set to -1 to repeat forever. + * @method Phaser.Tween#repeatAll + * @param {number} [total=0] - How many times this tween and all children should repeat before completing. Set to zero to remove an active repeat. Set to -1 to repeat forever. * @return {Phaser.Tween} This tween. Useful for method chaining. */ repeatAll: function (total) { @@ -48750,7 +49348,8 @@ Phaser.Tween.prototype = { }, /** - * Enables the looping of this tween and all child tweens. If this tween has no children this setting has no effect. + * Enables the looping of this tween. The tween will loop forever, and onComplete will never fire. + * * If `value` is `true` then this is the same as setting `Tween.repeatAll(-1)`. * If `value` is `false` it is the same as setting `Tween.repeatAll(0)` and will reset the `repeatCounter` to zero. * @@ -48761,21 +49360,14 @@ Phaser.Tween.prototype = { * .to({ y: 0 }, 1000, Phaser.Easing.Linear.None) * .loop(); * @method Phaser.Tween#loop - * @param {boolean} [value=true] - If `true` this tween and any child tweens will loop once they reach the end. Set to `false` to remove an active loop. + * @param {boolean} [value=true] - If `true` this tween will loop once it reaches the end. Set to `false` to remove an active loop. * @return {Phaser.Tween} This tween. Useful for method chaining. */ loop: function (value) { if (value === undefined) { value = true; } - if (value) - { - this.repeatAll(-1); - } - else - { - this.repeatCounter = 0; - } + this.repeatCounter = (value) ? -1 : 0; return this; @@ -48881,7 +49473,7 @@ Phaser.Tween.prototype = { */ update: function (time) { - if (this.pendingDelete) + if (this.pendingDelete || !this.target) { return false; } @@ -48915,7 +49507,7 @@ Phaser.Tween.prototype = { } else if (status === Phaser.TweenData.LOOPED) { - if (this.repeatCounter === -1) + if (this.timeline[this.current].repeatCounter === -1) { this.onLoop.dispatch(this.target, this); } @@ -48923,6 +49515,7 @@ Phaser.Tween.prototype = { { this.onRepeat.dispatch(this.target, this); } + return true; } else if (status === Phaser.TweenData.COMPLETE) @@ -49012,13 +49605,8 @@ Phaser.Tween.prototype = { return null; } - if (frameRate === undefined) { - frameRate = 60; - } - - if (data === undefined) { - data = []; - } + if (frameRate === undefined) { frameRate = 60; } + if (data === undefined) { data = []; } // Populate the tween data for (var i = 0; i < this.timeline.length; i++) @@ -49077,7 +49665,7 @@ Phaser.Tween.prototype.constructor = Phaser.Tween; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -49154,6 +49742,12 @@ Phaser.TweenData = function (parent) { */ this.repeatDelay = 0; + /** + * @property {number} repeatTotal - The total number of times this Tween will repeat. + * @readonly + */ + this.repeatTotal = 0; + /** * @property {boolean} interpolate - True if the Tween will use interpolation (i.e. is an Array to Array tween) * @default @@ -49270,7 +49864,7 @@ Phaser.TweenData.prototype = { this.duration = duration; this.easingFunction = ease; this.delay = delay; - this.repeatCounter = repeat; + this.repeatTotal = repeat; this.yoyo = yoyo; this.isFrom = false; @@ -49298,7 +49892,7 @@ Phaser.TweenData.prototype = { this.duration = duration; this.easingFunction = ease; this.delay = delay; - this.repeatCounter = repeat; + this.repeatTotal = repeat; this.yoyo = yoyo; this.isFrom = true; @@ -49348,6 +49942,7 @@ Phaser.TweenData.prototype = { this.value = 0; this.yoyoCounter = 0; + this.repeatCounter = this.repeatTotal; return this; @@ -49651,7 +50246,7 @@ Phaser.TweenData.prototype.constructor = Phaser.TweenData; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -50226,7 +50821,7 @@ Phaser.Easing.Power4 = Phaser.Easing.Quintic.Out; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -50855,7 +51450,7 @@ Phaser.Time.prototype.constructor = Phaser.Time; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -51612,7 +52207,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -51622,7 +52217,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; * It consists of a delay, which is a value in milliseconds after which the event will fire. * When the event fires it calls a specific callback with the specified arguments. * -* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#add}, or {@link Phaser.Timer#add} methods to create a new event. +* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#repeat}, or {@link Phaser.Timer#loop} methods to create a new event. * * @class Phaser.TimerEvent * @constructor @@ -51691,7 +52286,7 @@ Phaser.TimerEvent.prototype.constructor = Phaser.TimerEvent; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -52260,7 +52855,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frameName', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53082,7 +53677,7 @@ Phaser.Animation.generateFrameNames = function (prefix, start, stop, suffix, zer /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53313,7 +53908,7 @@ Phaser.Frame.prototype.constructor = Phaser.Frame; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53559,6 +54154,18 @@ Phaser.FrameData.prototype = { return output; + }, + + /** + * Destroys this FrameData collection by nulling the _frames and _frameNames arrays. + * + * @method Phaser.FrameData#destroy + */ + destroy: function () { + + this._frames = null; + this._frameNames = null; + } }; @@ -53580,7 +54187,7 @@ Object.defineProperty(Phaser.FrameData.prototype, "total", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53908,7 +54515,7 @@ Phaser.AnimationParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -55931,7 +56538,7 @@ Phaser.Cache.prototype.constructor = Phaser.Cache; /* jshint wsh:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -58968,7 +59575,7 @@ Phaser.Loader.prototype.constructor = Phaser.Loader; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59137,7 +59744,7 @@ Phaser.LoaderParser = { /** * @author Jeremy Dowell * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59267,7 +59874,7 @@ Phaser.AudioSprite.prototype.constructor = Phaser.AudioSprite; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59856,7 +60463,7 @@ Phaser.Sound.prototype = { if (volume === undefined) { volume = this._volume; } if (loop === undefined) { loop = this.loop; } - this.position = position; + this.position = Math.max(0, position); this.volume = volume; this.loop = loop; this.duration = 0; @@ -59962,7 +60569,7 @@ Phaser.Sound.prototype = { this._sound.currentTime = this.position; this._sound.muted = this._muted; - if (this._muted) + if (this._muted || this.game.sound.mute) { this._sound.volume = 0; } @@ -60037,7 +60644,7 @@ Phaser.Sound.prototype = { { if (this.usingWebAudio) { - var p = this.position + (this.pausedPosition / 1000); + var p = Math.max(0, this.position + (this.pausedPosition / 1000)); this._sound = this.context.createBufferSource(); this._sound.buffer = this._buffer; @@ -60168,17 +60775,17 @@ Phaser.Sound.prototype = { }, /** - * Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. - * Then increases the volume from 0 to 1 over the duration specified. - * - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (1) as the second parameter. - * - * @method Phaser.Sound#fadeIn - * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade in. - * @param {boolean} [loop=false] - Should the Sound be set to loop? Note that this doesn't cause the fade to repeat. - * @param {string} [marker=(current marker)] - The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of `''`. - */ + * Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. + * Then increases the volume from 0 to 1 over the duration specified. + * + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (1) as the second parameter. + * + * @method Phaser.Sound#fadeIn + * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade in. + * @param {boolean} [loop=false] - Should the Sound be set to loop? Note that this doesn't cause the fade to repeat. + * @param {string} [marker=(current marker)] - The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of `''`. + */ fadeIn: function (duration, loop, marker) { if (loop === undefined) { loop = false; } @@ -60196,13 +60803,13 @@ Phaser.Sound.prototype = { }, /** - * Decreases the volume of this Sound from its current value to 0 over the duration specified. - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (0) as the second parameter. - * - * @method Phaser.Sound#fadeOut - * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade out. - */ + * Decreases the volume of this Sound from its current value to 0 over the duration specified. + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (0) as the second parameter. + * + * @method Phaser.Sound#fadeOut + * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade out. + */ fadeOut: function (duration) { this.fadeTo(duration, 0); @@ -60210,14 +60817,14 @@ Phaser.Sound.prototype = { }, /** - * Fades the volume of this Sound from its current value to the given volume over the duration specified. - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (volume) as the second parameter. - * - * @method Phaser.Sound#fadeTo - * @param {number} [duration=1000] - The time in milliseconds during which the Sound should fade out. - * @param {number} [volume] - The volume which the Sound should fade to. This is a value between 0 and 1. - */ + * Fades the volume of this Sound from its current value to the given volume over the duration specified. + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (volume) as the second parameter. + * + * @method Phaser.Sound#fadeTo + * @param {number} [duration=1000] - The time in milliseconds during which the Sound should fade out. + * @param {number} [volume] - The volume which the Sound should fade to. This is a value between 0 and 1. + */ fadeTo: function (duration, volume) { if (!this.isPlaying || this.paused || volume === this.volume) @@ -60240,11 +60847,11 @@ Phaser.Sound.prototype = { }, /** - * Internal handler for Sound.fadeIn, Sound.fadeOut and Sound.fadeTo. - * - * @method Phaser.Sound#fadeComplete - * @private - */ + * Internal handler for Sound.fadeIn, Sound.fadeOut and Sound.fadeTo. + * + * @method Phaser.Sound#fadeComplete + * @private + */ fadeComplete: function () { this.onFadeComplete.dispatch(this, this.volume); @@ -60256,6 +60863,28 @@ Phaser.Sound.prototype = { }, + /** + * Called automatically by SoundManager.volume. + * + * Sets the volume of AudioTag Sounds as a percentage of the Global Volume. + * + * You should not normally call this directly. + * + * @method Phaser.Sound#updateGlobalVolume + * @protected + * @param {float} globalVolume - The global SoundManager volume. + */ + updateGlobalVolume: function (globalVolume) { + + // this._volume is the % of the global volume this sound should be played at + + if (this.usingAudioTag && this._sound) + { + this._sound.volume = globalVolume * this._volume; + } + + }, + /** * Destroys this sound and all associated events and removes it from the SoundManager. * @@ -60418,7 +61047,7 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -60434,7 +61063,8 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { * * Mobile warning: There are some mobile devices (certain iPad 2 and iPad Mini revisions) that cannot play 48000 Hz audio. * When they try to play the audio becomes extremely distorted and buzzes, eventually crashing the sound system. -* The solution is to use a lower encoding rate such as 44100 Hz. +* The solution is to use a lower encoding rate such as 44100 Hz. Sometimes the audio context will +* be created with a sampleRate of 48000. If this happens and audio distorts you should re-create the context. * * @class Phaser.SoundManager * @constructor @@ -60512,6 +61142,15 @@ Phaser.SoundManager = function (game) { */ this.channels = 32; + /** + * Set to true to have all sound muted when the Phaser game pauses (such as on loss of focus), + * or set to false to keep audio playing, regardless of the game pause state. You may need to + * do this should you wish to control audio muting via external DOM buttons or similar. + * @property {boolean} muteOnPause + * @default + */ + this.muteOnPause = true; + /** * @property {boolean} _codeMuted - Internal mute tracking var. * @private @@ -60678,7 +61317,7 @@ Phaser.SoundManager.prototype = { /** * Sets the Input Manager touch callback to be SoundManager.unlock. * Required for iOS audio device unlocking. Mostly just used internally. - * + * * @method Phaser.SoundManager#setTouchLock */ setTouchLock: function () { @@ -60703,7 +61342,7 @@ Phaser.SoundManager.prototype = { /** * Enables the audio, usually after the first touch. - * + * * @method Phaser.SoundManager#unlock * @return {boolean} True if the callback should be removed, otherwise false. */ @@ -61148,12 +61787,20 @@ Phaser.SoundManager.prototype = { this.onSoundDecode.dispose(); - this.context.close(); - - if (this.context && window['PhaserGlobal']) + if (this.context) { - // Store this in the PhaserGlobal window var, if set, to allow for re-use if the game is created again without the page refreshing - window['PhaserGlobal'].audioContext = this.context; + if (window['PhaserGlobal']) + { + // Store this in the PhaserGlobal window var, if set, to allow for re-use if the game is created again without the page refreshing + window['PhaserGlobal'].audioContext = this.context; + } + else + { + if (this.context.close) + { + this.context.close(); + } + } } } @@ -61240,7 +61887,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { { if (this._sounds[i].usingAudioTag) { - this._sounds[i].volume = this._sounds[i].volume * value; + this._sounds[i].updateGlobalVolume(value); } } } @@ -61255,7 +61902,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -63631,7 +64278,7 @@ Object.defineProperty(Phaser.ScaleManager.prototype, "isGameLandscape", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -63739,16 +64386,38 @@ Phaser.Utils.Debug.prototype = { this.sprite = this.game.make.image(0, 0, this.bmd); this.game.stage.addChild(this.sprite); + this.game.scale.onSizeChange.add(this.resize, this); + this.canvas = PIXI.CanvasPool.create(this, this.game.width, this.game.height); this.context = this.canvas.getContext('2d'); } }, + /** + * Internal method that resizes the BitmapData and Canvas. + * Called by ScaleManager.onSizeChange only in WebGL mode. + * + * @method Phaser.Utils.Debug#resize + * @protected + * @param {Phaser.ScaleManager} scaleManager - The Phaser ScaleManager. + * @param {number} width - The new width of the game. + * @param {number} height - The new height of the game. + */ + resize: function (scaleManager, width, height) { + + this.bmd.resize(width, height); + + this.canvas.width = width; + this.canvas.height = height; + + }, + /** * Internal method that clears the canvas (if a Sprite) ready for a new debug session. * * @method Phaser.Utils.Debug#preUpdate + * @protected */ preUpdate: function () { @@ -64462,7 +65131,7 @@ Phaser.Utils.Debug.prototype.constructor = Phaser.Utils.Debug; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -64895,7 +65564,7 @@ Phaser.Device.whenReady(function (device) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65177,7 +65846,7 @@ Phaser.ArraySet.prototype.constructor = Phaser.ArraySet; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65470,7 +66139,7 @@ Phaser.ArrayUtils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65659,7 +66328,7 @@ Phaser.LinkedList.prototype.constructor = Phaser.LinkedList; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65864,7 +66533,7 @@ Phaser.Create.prototype.constructor = Phaser.Create; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -66192,7 +66861,7 @@ Phaser.FlexGrid.prototype.constructor = Phaser.FlexGrid; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -66308,7 +66977,7 @@ Phaser.FlexLayer.prototype.debug = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67648,7 +68317,7 @@ Phaser.Color = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67898,6 +68567,10 @@ Phaser.Physics.prototype = { { this.matter.enable(object); } + else + { + console.warn(object.key + ' is attempting to enable a physics body using an unknown physics system.'); + } }, @@ -68076,7 +68749,7 @@ Phaser.Physics.prototype.constructor = Phaser.Physics; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -68157,21 +68830,21 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** * A Video object that takes a previously loaded Video from the Phaser Cache and handles playback of it. -* +* * Alternatively it takes a getUserMedia feed from an active webcam and streams the contents of that to * the Video instead (see `startMediaStream` method) -* +* * The video can then be applied to a Sprite as a texture. If multiple Sprites share the same Video texture and playback * changes (i.e. you pause the video, or seek to a new time) then this change will be seen across all Sprites simultaneously. * * Due to a bug in IE11 you cannot play a video texture to a Sprite in WebGL. For IE11 force Canvas mode. -* +* * If you need each Sprite to be able to play a video fully independently then you will need one Video object per Sprite. * Please understand the obvious performance implications of doing this, and the memory required to hold videos in RAM. * @@ -68180,7 +68853,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; * it's worth noting that every single Video needs to be touch unlocked, not just the first one. You can use the `changeSource` * method to try and work around this limitation, but see the method help for details. * -* Small screen devices, especially iPod and iPhone will launch the video in its own native video player, +* Small screen devices, especially iPod and iPhone will launch the video in its own native video player, * outside of the Safari browser. There is no way to avoid this, it's a device imposed limitation. * * @class Phaser.Video @@ -68435,7 +69108,7 @@ Phaser.Video = function (game, key, url) { * A snapshot grabbed from the video. This is initially black. Populate it by calling Video.grab(). * When called the BitmapData is updated with a grab taken from the current video playing or active video stream. * If Phaser has been compiled without BitmapData support this property will always be `null`. - * + * * @property {Phaser.BitmapData} snapshot * @readOnly */ @@ -68875,11 +69548,11 @@ Phaser.Video.prototype = { /** * Stops the video playing. - * + * * This removes all locally set signals. - * + * * If you only wish to pause playback of the video, to resume at a later time, use `Video.paused = true` instead. - * If the video hasn't finished downloading calling `Video.stop` will not abort the download. To do that you need to + * If the video hasn't finished downloading calling `Video.stop` will not abort the download. To do that you need to * call `Video.destroy` instead. * * If you are using a video stream from a webcam then calling Stop will disconnect the MediaStream session and disable the webcam. @@ -68917,7 +69590,17 @@ Phaser.Video.prototype = { } else { - this.videoStream.stop(); + if (this.videoStream.getTracks) + { + this.videoStream.getTracks().forEach(function (track) { + track.stop(); + }); + } + else + { + this.videoStream.stop(); + } + } } @@ -69097,7 +69780,7 @@ Phaser.Video.prototype = { * On some mobile browsers you cannot play a video until the user has explicitly touched the video to allow it. * Phaser handles this via the `setTouchLock` method. However if you have 3 different videos, maybe an "Intro", "Start" and "Game Over" * split into three different Video objects, then you will need the user to touch-unlock every single one of them. - * + * * You can avoid this by using just one Video object and simply changing the video source. Once a Video element is unlocked it remains * unlocked, even if the source changes. So you can use this to your benefit to avoid forcing the user to 'touch' the video yet again. * @@ -69144,7 +69827,7 @@ Phaser.Video.prototype = { /** * Internal callback that monitors the download progress of a video after changing its source. - * + * * @method Phaser.Video#checkVideoProgress * @private */ @@ -69175,7 +69858,7 @@ Phaser.Video.prototype = { /** * Sets the Input Manager touch callback to be Video.unlock. * Required for mobile video unlocking. Mostly just used internally. - * + * * @method Phaser.Video#setTouchLock */ setTouchLock: function () { @@ -69189,7 +69872,7 @@ Phaser.Video.prototype = { * Enables the video on mobile devices, usually after the first touch. * If the SoundManager hasn't been unlocked then this will automatically unlock that as well. * Only one video can be pending unlock at any one time. - * + * * @method Phaser.Video#unlock */ unlock: function () { @@ -69253,7 +69936,7 @@ Phaser.Video.prototype = { /** * Removes the Video element from the DOM by calling parentNode.removeChild on itself. * Also removes the autoplay and src attributes and nulls the reference. - * + * * @method Phaser.Video#removeVideoElement */ removeVideoElement: function () { @@ -69399,7 +70082,7 @@ Object.defineProperty(Phaser.Video.prototype, "mute", { /** * Gets or sets the paused state of the Video. * If the video is still touch locked (such as on iOS devices) this call has no effect. -* +* * @name Phaser.Video#paused * @property {boolean} paused */ @@ -69503,7 +70186,7 @@ Object.defineProperty(Phaser.Video.prototype, "playbackRate", { * Gets or sets if the Video is set to loop. * Please note that at present some browsers (i.e. Chrome) do not support *seamless* video looping. * If the video isn't yet set this will always return false. -* +* * @name Phaser.Video#loop * @property {boolean} loop */ @@ -69550,7 +70233,7 @@ Phaser.Video.prototype.constructor = Phaser.Video; /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -69594,7 +70277,7 @@ PIXI.TextureSilentFail = true; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ diff --git a/build/custom/phaser-no-physics.map b/build/custom/phaser-no-physics.map index b9a362523..722e06312 100644 --- a/build/custom/phaser-no-physics.map +++ b/build/custom/phaser-no-physics.map @@ -1 +1 @@ -{"version":3,"file":"phaser-no-physics.min.js","sources":["phaser-no-physics.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","transformCallback","call","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","setBoundsToWorld","setSize","reset","State","make","camera","cache","input","load","math","sound","time","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","addToHash","events","onAddedToGroup$dispatch","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","Graphics","graphicsData","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","duration","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","rect","updateCrop","resetFrame","Delta","Destroy","destroyTexture","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","ctx","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","direction","scan","newWidth","newHeight","op","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","fillColor","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","elapsedMS","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","entity","palettes",1,2,3,4,5,6,7,8,9,"PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","emitters","ID","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser-no-physics.min.js","sources":["phaser-no-physics.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","transformCallback","call","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","trunc","floor","Function","bind","slice","thisArg","bound","args","boundArgs","concat","arguments","TypeError","F","proto","arg","forEach","fun","t","len","CheapArray","assert","warn","Utils","getProperty","obj","prop","parts","split","last","l","current","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","f","px","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","to","o","childNodes","cloneNode","Circle","diameter","_diameter","_radius","circumference","out","u","radius","setTo","copyFrom","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","abs","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","Line","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","intersectsPoints","reflect","midPoint","centerOn","add","pointOnLine","pointOnSegment","xMin","min","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","normalAngle","fromArray","array","pos","newPos","tx1","d1","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","toNumberArray","flatten","inside","ix","iy","jx","jy","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","lerp","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","_shake","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","camera","Graphics","follow","lerpX","lerpY","helper","unfollow","focusOn","setPosition","focusOnXY","shake","force","direction","flash","beginFill","drawRect","endFill","fade","update","updateFX","updateTarget","updateShake","checkBounds","time","elapsedMS","dispatch","rnd","frac","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","reset","resetFX","State","make","cache","input","load","sound","tweens","particles","physics","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","body","removeFromHash","addToHash","events","onAddedToGroup$dispatch","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","getByName","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","World","_definedSize","stateChange","setBounds","useBounds","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","timeStep","enableStep","disableStep","step","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","hitTest","localPoint","worldVisible","TileSprite","graphicsData","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","rect","updateCrop","resetFrame","Delta","Destroy","destroyTexture","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","Tilemap","TilemapLayer","img","base","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","object","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","ctx","imageData","FrameData","textureFrame","addFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","newWidth","newHeight","op","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","fillColor","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","maxLines","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","drawnLines","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","family","exec","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","repeatTotal","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","mute","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","updateGlobalVolume","globalVolume","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","scaleManager","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","entity","palettes",1,2,3,4,5,6,7,8,9,"PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","emitters","ID","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","getTracks","track","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-no-physics.min.js b/build/custom/phaser-no-physics.min.js index 526e39fb9..65d86fe96 100644 --- a/build/custom/phaser-no-physics.min.js +++ b/build/custom/phaser-no-physics.min.js @@ -1,20 +1,20 @@ -/* Phaser v2.4.6 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.7 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */ -(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gj;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a;for(var b=0;bi){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e, -this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x),this.view.right>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width),this.view.y<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y),this.view.bottom>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game); -},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if(void 0===e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this), -this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0); -}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){ -return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e){(void 0===d||0===d)&&(d=256),(void 0===e||0===e)&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=PIXI.CanvasPool.create(this,d,e),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData"),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if((void 0===a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if((void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.type===c.EMITTER||a.type===c.BITMAPTEXT)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h); -return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kp&&Math.abs(p)>n&&(p=-n),0!==p&&(o+=p*b.length),this.canvas.height=o*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var q,r;for(this._charCount=0,g=0;g0&&(r+=p*g),"right"===this.style.align?q+=e-d[g]:"center"===this.style.align&&(q+=(e-d[g])/2),this.autoRound&&(q=Math.round(q),r=Math.round(r)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[g],q,r):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],q,r):this.renderTabLine(b[g],q,r,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],q,r):this.renderTabLine(b[g],q,r,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2), -"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=PIXI.CanvasPool.create(c.Text.fontPropertiesCanvas),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=(m.xAdvance+o)*b,i.push(d+(m.xOffset+o)*b),d+=(m.xAdvance+o)*b,g=l}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b, -a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),(void 0===d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"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(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=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=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.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(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1, -this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b); -}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=this.game.make.bitmapData(this.game.width,this.game.height),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"), -this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),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.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",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(var b=0;b0?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){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.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(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._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(){return this._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.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); +(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gc?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var l=this._bounds;return l.x=e,l.y=f,l.width=g-e,l.height=h-f,l},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0;ci){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.7 RC1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0; +var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else if(Array.isArray(a[c]))var e=new PIXI.Point(a[c][0],a[c][1]);else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!d&&this._shake.duration>0?!1:(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this.target&&this.updateTarget(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-(this.view.x+this._shake.x),this.displayObject.position.y=-(this.view.y+this._shake.y)},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.copyFrom(this.target.world),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y))},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx.clear(),this.fx.alpha=0,this._fxDuration=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete(); +}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){ +this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.config.canvas?this.canvas=this.config.canvas:this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}), +c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera){if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.cameraOffset.x=this.globalToLocalX(a.x)+(this.sprite.cameraOffset.x-d.centerX),this.sprite.cameraOffset.y=this.globalToLocalY(a.y)+(this.sprite.cameraOffset.y-d.centerY)}this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)}else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f)); +},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e){(void 0===d||0===d)&&(d=256),(void 0===e||0===e)&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=PIXI.CanvasPool.create(this,d,e),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.frameData=new c.FrameData,this.textureFrame=this.frameData.addFrame(new c.Frame(0,0,0,d,e,"bitmapData")),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if((void 0===a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0));else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if((void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.type===c.EMITTER||a.type===c.BITMAPTEXT)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.frameData.destroy(),this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b, +d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,this.anchor=new c.Point,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&this.style.maxLinesh;h++){if(0===c){var i=this.context.measureText(b[h]).width+this.style.strokeThickness+this.padding.x;this.style.wordWrap&&(i-=this.context.measureText(" ").width)}else{var j=b[h].split(/(?:\t)/),i=this.padding.x+this.style.strokeThickness;if(Array.isArray(c))for(var k=0,l=0;l0&&(k+=c[l-1]),i=k+m}else for(var l=0;lq&&Math.abs(q)>o&&(q=-o),0!==q&&(p+=q>0?q*b.length:q*(b.length-1)),this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,h=0;g>h;h++)r=this.style.strokeThickness/2,s=this.style.strokeThickness/2+h*o+f.ascent,h>0&&(s+=q*h),"right"===this.style.align?r+=e-d[h]:"center"===this.style.align&&(r+=(e-d[h])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[h],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[h],r,s):this.renderTabLine(b[h],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[h],r,s):this.renderTabLine(b[h],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]), +this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=PIXI.CanvasPool.create(c.Text.fontPropertiesCanvas),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f.toString()||"",this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=(m.xAdvance+o)*b,i.push(d+(m.xOffset+o)*b),d+=(m.xAdvance+o)*b,g=l}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),(void 0===d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"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(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=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=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.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(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),this.repeatCounter=a?-1:0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this.repeatCounter=this.repeatTotal,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1); +}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=Math.max(0,b),this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted||this.game.sound.mute?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=Math.max(0,this.position+this.pausedPosition/1e3);this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},updateGlobalVolume:function(a){this.usingAudioTag&&this._sound&&(this._sound.volume=a*this._volume)},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this.muteOnPause=!0,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0)); +}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=this.game.make.bitmapData(this.game.width,this.game.height),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.game.scale.onSizeChange.add(this.resize,this),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},resize:function(a,b,c){this.bmd.resize(b,c),this.canvas.width=b,this.canvas.height=c},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)), +this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Particles=function(a){this.game=a,this.emitters={},this.ID=0},c.Particles.prototype={add:function(a){return this.emitters[a.name]=a,a},remove:function(a){delete this.emitters[a.name]},update:function(){for(var a in this.emitters)this.emitters[a].exists&&this.emitters[a].update()}},c.Particles.prototype.constructor=c.Particles,c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),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("playing",this._playCallback,!0),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?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){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.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(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._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(){return this._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.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); //# sourceMappingURL=phaser-no-physics.map \ No newline at end of file diff --git a/build/custom/phaser-split.js b/build/custom/phaser-split.js index 8aaba86e9..c93c50421 100644 --- a/build/custom/phaser-split.js +++ b/build/custom/phaser-split.js @@ -1,13 +1,13 @@ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} * * @overview * * Phaser - http://phaser.io * -* v2.4.6 "Baerlon" - Built: Thu Feb 18 2016 14:40:27 +* v2.4.7 "Hinderstap" - Built: Thu Apr 14 2016 13:21:56 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -30,7 +30,7 @@ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -41,7 +41,7 @@ /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -55,7 +55,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.6', + VERSION: '2.4.7 RC1', /** * An array of Phaser game instances. @@ -406,7 +406,7 @@ var Phaser = Phaser || { }; /** -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -561,7 +561,7 @@ if (!window.console) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -968,7 +968,7 @@ Phaser.Utils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -1543,7 +1543,7 @@ PIXI.Circle = Phaser.Circle; /** * @author Richard Davey * @author Chad Engler -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -1869,7 +1869,7 @@ PIXI.Ellipse = Phaser.Ellipse; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -2514,7 +2514,7 @@ Phaser.Line.reflect = function (a, b) { /** * @author Mat Groves http://matgroves.com/ @Doormat23 * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -2903,7 +2903,7 @@ PIXI.identityMatrix = Phaser.identityMatrix; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -3811,7 +3811,7 @@ PIXI.Point = Phaser.Point; /** * @author Richard Davey * @author Adrien Brault -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -3973,6 +3973,7 @@ Phaser.Polygon.prototype = { * - An array of Point objects: `[new Phaser.Point(x1, y1), ...]` * - An array of objects with public x/y properties: `[obj1, obj2, ...]` * - An array of paired numbers that represent point coordinates: `[x1,y1, x2,y2, ...]` + * - An array of arrays with two elements representing x/y coordinates: `[[x1, y1], [x2, y2], ...]` * - As separate Point arguments: `setTo(new Phaser.Point(x1, y1), ...)` * - As separate objects with public x/y properties arguments: `setTo(obj1, obj2, ...)` * - As separate arguments representing point coordinates: `setTo(x1,y1, x2,y2, ...)` @@ -4006,6 +4007,10 @@ Phaser.Polygon.prototype = { var p = new PIXI.Point(points[i], points[i + 1]); i++; } + else if (Array.isArray(points[i])) + { + var p = new PIXI.Point(points[i][0], points[i][1]); + } else { var p = new PIXI.Point(points[i].x, points[i].y); @@ -4104,7 +4109,7 @@ PIXI.Polygon = Phaser.Polygon; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -5112,7 +5117,7 @@ PIXI.EmptyRectangle = new Phaser.Rectangle(0, 0, 0, 0); /** * @author Mat Groves http://matgroves.com/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -5223,7 +5228,7 @@ PIXI.RoundedRectangle = Phaser.RoundedRectangle; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -5305,12 +5310,12 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.target = null; /** - * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot + * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot. */ this.displayObject = null; /** - * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot + * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot. */ this.scale = null; @@ -5321,7 +5326,44 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.totalInView = 0; /** - * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position + * The linear interpolation value to use when following a target. + * The default values of 1 means the camera will instantly snap to the target coordinates. + * A lower value, such as 0.1 means the camera will more slowly track the target, giving + * a smooth transition. You can set the horizontal and vertical values independently, and also + * adjust this value in real-time during your game. + * @property {Phaser.Point} lerp + * @default + */ + this.lerp = new Phaser.Point(1, 1); + + /** + * @property {Phaser.Signal} onShakeComplete - This signal is dispatched when the camera shake effect completes. + */ + this.onShakeComplete = new Phaser.Signal(); + + /** + * @property {Phaser.Signal} onFlashComplete - This signal is dispatched when the camera flash effect completes. + */ + this.onFlashComplete = new Phaser.Signal(); + + /** + * This signal is dispatched when the camera fade effect completes. + * When the fade effect completes you will be left with the screen black (or whatever + * color you faded to). In order to reset this call `Camera.resetFX`. This is called + * automatically when you change State. + * @property {Phaser.Signal} onFadeComplete + */ + this.onFadeComplete = new Phaser.Signal(); + + /** + * The Graphics object used to handle camera fx such as fade and flash. + * @property {Phaser.Graphics} fx + * @protected + */ + this.fx = null; + + /** + * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position. * @private */ this._targetPosition = new Phaser.Point(); @@ -5340,6 +5382,32 @@ Phaser.Camera = function (game, id, x, y, width, height) { */ this._position = new Phaser.Point(); + /** + * @property {Object} _shake - The shake effect container. + * @private + */ + this._shake = { + intensity: 0, + duration: 0, + horizontal: false, + vertical: false, + shakeBounds: true, + x: 0, + y: 0 + }; + + /** + * @property {number} _fxDuration - FX duration timer. + * @private + */ + this._fxDuration = 0; + + /** + * @property {number} _fxType - The FX type running. + * @private + */ + this._fxType = 0; + }; /** @@ -5366,8 +5434,55 @@ Phaser.Camera.FOLLOW_TOPDOWN = 2; */ Phaser.Camera.FOLLOW_TOPDOWN_TIGHT = 3; +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_BOTH = 4; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_HORIZONTAL = 5; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_VERTICAL = 6; + +/** +* @constant +* @type {boolean} +*/ +Phaser.Camera.ENABLE_FX = true; + Phaser.Camera.prototype = { + /** + * Called automatically by Phaser.World. + * + * @method Phaser.Camera#boot + * @private + */ + boot: function () { + + this.displayObject = this.game.world; + + this.scale = this.game.world.scale; + + this.game.camera = this; + + if (Phaser.Graphics && Phaser.Camera.ENABLE_FX) + { + this.fx = new Phaser.Graphics(this.game); + + this.game.stage.addChild(this.fx); + } + + }, + /** * Camera preUpdate. Sets the total view counter to zero. * @@ -5381,6 +5496,9 @@ Phaser.Camera.prototype = { /** * Tell the camera which sprite to follow. + * + * You can set the follow type and a linear interpolation value. + * Use low lerp values (such as 0.1) to automatically smooth the camera motion. * * If you find you're getting a slight "jitter" effect when following a Sprite it's probably to do with sub-pixel rendering of the Sprite position. * This can be disabled by setting `game.renderer.renderSession.roundPixels = true` to force full pixel rendering. @@ -5388,12 +5506,17 @@ Phaser.Camera.prototype = { * @method Phaser.Camera#follow * @param {Phaser.Sprite|Phaser.Image|Phaser.Text} target - The object you want the camera to track. Set to null to not follow anything. * @param {number} [style] - Leverage one of the existing "deadzone" presets. If you use a custom deadzone, ignore this parameter and manually specify the deadzone after calling follow(). + * @param {float} [lerpX=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when horizontally tracking the target. The closer the value to 1, the faster the camera will track. + * @param {float} [lerpY=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when vertically tracking the target. The closer the value to 1, the faster the camera will track. */ - follow: function (target, style) { + follow: function (target, style, lerpX, lerpY) { if (style === undefined) { style = Phaser.Camera.FOLLOW_LOCKON; } + if (lerpX === undefined) { lerpX = 1; } + if (lerpY === undefined) { lerpY = 1; } this.target = target; + this.lerp.set(lerpX, lerpY); var helper; @@ -5461,16 +5584,156 @@ Phaser.Camera.prototype = { }, /** - * Update focusing and scrolling. + * This creates a camera shake effect. It works by applying a random amount of additional + * spacing on the x and y axis each frame. You can control the intensity and duration + * of the effect, and if it should effect both axis or just one. + * + * When the shake effect ends the signal Camera.onShakeComplete is dispatched. + * + * @method Phaser.Camera#shake + * @param {float} [intensity=0.05] - The intensity of the camera shake. Given as a percentage of the camera size representing the maximum distance that the camera can move while shaking. + * @param {number} [duration=500] - The duration of the shake effect in milliseconds. + * @param {boolean} [force=true] - If a camera shake effect is already running and force is true it will replace the previous effect, resetting the duration. + * @param {number} [direction=Phaser.Camera.SHAKE_BOTH] - The directions in which the camera can shake. Either Phaser.Camera.SHAKE_BOTH, Phaser.Camera.SHAKE_HORIZONTAL or Phaser.Camera.SHAKE_VERTICAL. + * @param {boolean} [shakeBounds=true] - Is the effect allowed to shake the camera beyond its bounds (if set?). + * @return {boolean} True if the shake effect was started, otherwise false. + */ + shake: function (intensity, duration, force, direction, shakeBounds) { + + if (intensity === undefined) { intensity = 0.05; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = true; } + if (direction === undefined) { direction = Phaser.Camera.SHAKE_BOTH; } + if (shakeBounds === undefined) { shakeBounds = true; } + + if (!force && this._shake.duration > 0) + { + // Can't reset an already running shake + return false; + } + + this._shake.intensity = intensity; + this._shake.duration = duration; + this._shake.shakeBounds = shakeBounds; + + this._shake.x = 0; + this._shake.y = 0; + + this._shake.horizontal = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_HORIZONTAL); + this._shake.vertical = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_VERTICAL); + + return true; + + }, + + /** + * This creates a camera flash effect. It works by filling the game with the solid fill + * color specified, and then fading it away to alpha 0 over the duration given. + * + * You can use this for things such as hit feedback effects. + * + * When the effect ends the signal Camera.onFlashComplete is dispatched. + * + * @method Phaser.Camera#flash + * @param {numer} [color=0xffffff] - The color of the flash effect. I.e. 0xffffff for white, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the flash effect in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + flash: function (color, duration, force) { + + if (color === undefined) { color = 0xffffff; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 1; + + this._fxDuration = duration; + this._fxType = 0; + + return true; + + }, + + /** + * This creates a camera fade effect. It works by filling the game with the + * color specified, over the duration given, ending with a solid fill. + * + * You can use this for things such as transitioning to a new scene. + * + * The game will be left 'filled' at the end of this effect, likely obscuring + * everything. In order to reset it you can call `Camera.resetFX` and it will clear the + * fade. Or you can call `Camera.flash` with the same color as the fade, and it will + * reverse the process, bringing the game back into view again. + * + * When the effect ends the signal Camera.onFadeComplete is dispatched. + * + * @method Phaser.Camera#fade + * @param {numer} [color=0x000000] - The color the game will fade to. I.e. 0x000000 for black, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the fade in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + fade: function (color, duration, force) { + + if (color === undefined) { color = 0x000000; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 0; + + this._fxDuration = duration; + this._fxType = 1; + + return true; + + }, + + /** + * The camera update loop. This is called automatically by the core game loop. + * * @method Phaser.Camera#update + * @protected */ update: function () { + if (this._fxDuration > 0) + { + this.updateFX(); + } + if (this.target) { this.updateTarget(); } + if (this._shake.duration > 0) + { + this.updateShake(); + } + if (this.bounds) { this.checkBounds(); @@ -5479,26 +5742,90 @@ Phaser.Camera.prototype = { if (this.roundPx) { this.view.floor(); + this._shake.x = Math.floor(this._shake.x); + this._shake.y = Math.floor(this._shake.y); } - this.displayObject.position.x = -this.view.x; - this.displayObject.position.y = -this.view.y; + this.displayObject.position.x = -(this.view.x + this._shake.x); + this.displayObject.position.y = -(this.view.y + this._shake.y); }, /** - * Internal method + * Update the camera flash and fade effects. + * + * @method Phaser.Camera#updateFX + * @private + */ + updateFX: function () { + + if (this._fxType === 0) + { + // flash + this.fx.alpha -= this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha <= 0) + { + this._fxDuration = 0; + this.fx.alpha = 0; + this.onFlashComplete.dispatch(); + } + } + else + { + // fade + this.fx.alpha += this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha >= 1) + { + this._fxDuration = 0; + this.fx.alpha = 1; + this.onFadeComplete.dispatch(); + } + } + + }, + + /** + * Update the camera shake effect. + * + * @method Phaser.Camera#updateShake + * @private + */ + updateShake: function () { + + this._shake.duration -= this.game.time.elapsedMS; + + if (this._shake.duration <= 0) + { + this.onShakeComplete.dispatch(); + this._shake.x = 0; + this._shake.y = 0; + } + else + { + if (this._shake.horizontal) + { + this._shake.x = this.game.rnd.frac() * this._shake.intensity * this.view.width * 2 - this._shake.intensity * this.view.width; + } + + if (this._shake.vertical) + { + this._shake.y = this.game.rnd.frac() * this._shake.intensity * this.view.height * 2 - this._shake.intensity * this.view.height; + } + } + + }, + + /** + * Internal method that handles tracking a sprite. + * * @method Phaser.Camera#updateTarget * @private */ updateTarget: function () { - this._targetPosition.copyFrom(this.target); - - if (this.target.parent) - { - this._targetPosition.multiply(this.target.parent.worldTransform.a, this.target.parent.worldTransform.d); - } + this._targetPosition.copyFrom(this.target.world); if (this.deadzone) { @@ -5506,34 +5833,35 @@ Phaser.Camera.prototype = { if (this._edge < this.deadzone.left) { - this.view.x = this._targetPosition.x - this.deadzone.left; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.left, this.lerp.x); } else if (this._edge > this.deadzone.right) { - this.view.x = this._targetPosition.x - this.deadzone.right; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.right, this.lerp.x); } this._edge = this._targetPosition.y - this.view.y; if (this._edge < this.deadzone.top) { - this.view.y = this._targetPosition.y - this.deadzone.top; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.top, this.lerp.y); } else if (this._edge > this.deadzone.bottom) { - this.view.y = this._targetPosition.y - this.deadzone.bottom; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.bottom, this.lerp.y); } } else { - this.view.x = this._targetPosition.x - this.view.halfWidth; - this.view.y = this._targetPosition.y - this.view.halfHeight; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.view.halfWidth, this.lerp.x); + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.view.halfHeight, this.lerp.y); } }, /** * Update the Camera bounds to match the game world. + * * @method Phaser.Camera#setBoundsToWorld */ setBoundsToWorld: function () { @@ -5547,36 +5875,68 @@ Phaser.Camera.prototype = { /** * Method called to ensure the camera doesn't venture outside of the game world. + * Called automatically by Camera.update. + * * @method Phaser.Camera#checkBounds + * @protected */ checkBounds: function () { this.atLimit.x = false; this.atLimit.y = false; + var vx = this.view.x + this._shake.x; + var vw = this.view.right + this._shake.x; + var vy = this.view.y + this._shake.y; + var vh = this.view.bottom + this._shake.y; + // Make sure we didn't go outside the cameras bounds - if (this.view.x <= this.bounds.x * this.scale.x) + if (vx <= this.bounds.x * this.scale.x) { this.atLimit.x = true; this.view.x = this.bounds.x * this.scale.x; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.right >= this.bounds.right * this.scale.x) + if (vw >= this.bounds.right * this.scale.x) { this.atLimit.x = true; this.view.x = (this.bounds.right * this.scale.x) - this.width; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.y <= this.bounds.top * this.scale.y) + if (vy <= this.bounds.top * this.scale.y) { this.atLimit.y = true; this.view.y = this.bounds.top * this.scale.y; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } - if (this.view.bottom >= this.bounds.bottom * this.scale.y) + if (vh >= this.bounds.bottom * this.scale.y) { this.atLimit.y = true; this.view.y = (this.bounds.bottom * this.scale.y) - this.height; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } }, @@ -5617,15 +5977,38 @@ Phaser.Camera.prototype = { /** * Resets the camera back to 0,0 and un-follows any object it may have been tracking. + * Also immediately resets any camera effects that may have been running such as + * shake, flash or fade. * * @method Phaser.Camera#reset */ reset: function () { this.target = null; + this.view.x = 0; this.view.y = 0; + this._shake.duration = 0; + + this.resetFX(); + + }, + + /** + * Resets any active FX, such as a fade or flash and immediately clears it. + * Useful to calling after a fade in order to remove the fade from the Stage. + * + * @method Phaser.Camera#resetFX + */ + resetFX: function () { + + this.fx.clear(); + + this.fx.alpha = 0; + + this._fxDuration = 0; + } }; @@ -5640,7 +6023,9 @@ Phaser.Camera.prototype.constructor = Phaser.Camera; Object.defineProperty(Phaser.Camera.prototype, "x", { get: function () { + return this.view.x; + }, set: function (value) { @@ -5663,7 +6048,9 @@ Object.defineProperty(Phaser.Camera.prototype, "x", { Object.defineProperty(Phaser.Camera.prototype, "y", { get: function () { + return this.view.y; + }, set: function (value) { @@ -5686,8 +6073,11 @@ Object.defineProperty(Phaser.Camera.prototype, "y", { Object.defineProperty(Phaser.Camera.prototype, "position", { get: function () { - this._position.set(this.view.centerX, this.view.centerY); + + this._position.set(this.view.x, this.view.y); + return this._position; + }, set: function (value) { @@ -5711,11 +6101,15 @@ Object.defineProperty(Phaser.Camera.prototype, "position", { Object.defineProperty(Phaser.Camera.prototype, "width", { get: function () { + return this.view.width; + }, set: function (value) { + this.view.width = value; + } }); @@ -5728,18 +6122,22 @@ Object.defineProperty(Phaser.Camera.prototype, "width", { Object.defineProperty(Phaser.Camera.prototype, "height", { get: function () { + return this.view.height; + }, set: function (value) { + this.view.height = value; + } }); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -5968,7 +6366,7 @@ Phaser.State.prototype.constructor = Phaser.State; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -6759,20 +7157,63 @@ Object.defineProperty(Phaser.StateManager.prototype, "created", { /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** -* A Signal is an event dispatch mechanism that supports broadcasting to multiple listeners. +* Signals are what Phaser uses to handle events and event dispatching. +* You can listen for a Signal by binding a callback / function to it. +* This is done by using either `Signal.add` or `Signal.addOnce`. * -* Event listeners are uniquely identified by the listener/callback function and the context. +* For example you can listen for a touch or click event from the Input Manager +* by using its `onDown` Signal: +* +* `game.input.onDown.add(function() { ... });` +* +* Rather than inline your function, you can pass a reference: +* +* `game.input.onDown.add(clicked, this);` +* `function clicked () { ... }` +* +* In this case the second argument (`this`) is the context in which your function should be called. +* +* Now every time the InputManager dispatches the `onDown` signal (or event), your function +* will be called. +* +* Very often a Signal will send arguments to your function. +* This is specific to the Signal itself. +* If you're unsure then check the documentation, or failing that simply do: +* +* `Signal.add(function() { console.log(arguments); })` +* +* and it will log all of the arguments your function received from the Signal. +* +* Sprites have lots of default signals you can listen to in their Events class, such as: +* +* `sprite.events.onKilled` * +* Which is called automatically whenever the Sprite is killed. +* There are lots of other events, see the Events component for a list. +* +* As well as listening to pre-defined Signals you can also create your own: +* +* `var mySignal = new Phaser.Signal();` +* +* This creates a new Signal. You can bind a callback to it: +* +* `mySignal.add(myCallback, this);` +* +* and then finally when ready you can dispatch the Signal: +* +* `mySignal.dispatch(your arguments);` +* +* And your callback will be invoked. See the dispatch method for more details. +* * @class Phaser.Signal * @constructor */ -Phaser.Signal = function () { -}; +Phaser.Signal = function () {}; Phaser.Signal.prototype = { @@ -6818,7 +7259,7 @@ Phaser.Signal.prototype = { * @property {function} _boundDispatch - The bound dispatch function, if any. * @private */ - _boundDispatch: true, + _boundDispatch: false, /** * @method Phaser.Signal#validateListener @@ -7222,7 +7663,7 @@ Phaser.Signal.prototype.constructor = Phaser.Signal; /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -7421,7 +7862,7 @@ Phaser.SignalBinding.prototype.constructor = Phaser.SignalBinding; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -7669,7 +8110,7 @@ Object.defineProperty(Phaser.Filter.prototype, 'height', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -7794,7 +8235,7 @@ Phaser.Plugin.prototype.constructor = Phaser.Plugin; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -8080,7 +8521,7 @@ Phaser.PluginManager.prototype.constructor = Phaser.PluginManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -8501,7 +8942,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -8790,7 +9231,7 @@ Phaser.Group.prototype.add = function (child, silent) { if (child.parent !== this) { - if (child.body && child.parent) + if (child.body && child.parent && child.parent.hash) { child.parent.removeFromHash(child); } @@ -9300,6 +9741,29 @@ Phaser.Group.prototype.getIndex = function (child) { }; +/** +* Searches the Group for the first instance of a child with the `name` +* property matching the given argument. Should more than one child have +* the same name only the first instance is returned. +* +* @method Phaser.Group#getByName +* @param {string} name - The name to search for. +* @return {any} The first child with a matching name, or null if none were found. +*/ +Phaser.Group.prototype.getByName = function (name) { + + for (var i = 0; i < this.children.length; i++) + { + if (this.children[i].name === name) + { + return this.children[i]; + } + } + + return null; + +}; + /** * Replaces a child of this group with the given newChild. The newChild cannot be a member of this group. * @@ -10821,7 +11285,7 @@ Object.defineProperty(Phaser.Group.prototype, "angle", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -10888,14 +11352,10 @@ Phaser.World.prototype.boot = function () { this.camera = new Phaser.Camera(this.game, 0, 0, 0, this.game.width, this.game.height); - this.camera.displayObject = this; - - this.camera.scale = this.scale; - - this.game.camera = this.camera; - this.game.stage.addChild(this); + this.camera.boot(); + }; /** @@ -10997,6 +11457,9 @@ Phaser.World.prototype.shutdown = function () { * If they do it will reposition the object to the opposite side of the world, creating a wrap-around effect. * If sprite has a P2 body then the body (sprite.body) should be passed as first parameter to the function. * +* Please understand there are limitations to this method. For example if you have scaled the World +* then objects won't always be re-positioned correctly, and you'll need to employ your own wrapping function. +* * @method Phaser.World#wrap * @param {Phaser.Sprite|Phaser.Image|Phaser.TileSprite|Phaser.Text} sprite - The object you wish to wrap around the world bounds. * @param {number} [padding=0] - Extra padding added equally to the sprite.x and y coordinates before checking if within the world bounds. Ignored if useBounds is true. @@ -11120,7 +11583,7 @@ Object.defineProperty(Phaser.World.prototype, "height", { Object.defineProperty(Phaser.World.prototype, "centerX", { get: function () { - return this.bounds.halfWidth; + return this.bounds.halfWidth + this.bounds.x; } }); @@ -11133,7 +11596,7 @@ Object.defineProperty(Phaser.World.prototype, "centerX", { Object.defineProperty(Phaser.World.prototype, "centerY", { get: function () { - return this.bounds.halfHeight; + return this.bounds.halfHeight + this.bounds.y; } }); @@ -11184,7 +11647,7 @@ Object.defineProperty(Phaser.World.prototype, "randomY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -11561,7 +12024,7 @@ Phaser.Game = function (width, height, renderer, parent, state, transparent, ant /** * @property {boolean} forceSingleUpdate - Should the game loop force a logic update, regardless of the delta timer? Set to true if you know you need this. You can toggle it on the fly. */ - this.forceSingleUpdate = false; + this.forceSingleUpdate = true; /** * @property {number} _nextNotification - The soonest game.time.time value that the next fpsProblemNotifier can be dispatched. @@ -11865,7 +12328,14 @@ Phaser.Game.prototype = { */ setUpRenderer: function () { - this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + if (this.config['canvas']) + { + this.canvas = this.config['canvas']; + } + else + { + this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + } if (this.config['canvasStyle']) { @@ -12187,23 +12657,29 @@ Phaser.Game.prototype = { this.state.destroy(); this.sound.destroy(); - this.scale.destroy(); this.stage.destroy(); this.input.destroy(); this.physics.destroy(); + this.plugins.destroy(); this.state = null; - this.cache = null; - this.input = null; - this.load = null; this.sound = null; + this.scale = null; this.stage = null; + this.input = null; + this.physics = null; + this.plugins = null; + + this.cache = null; + this.load = null; this.time = null; this.world = null; + this.isBooted = false; this.renderer.destroy(false); + Phaser.Canvas.removeFromDOM(this.canvas); Phaser.GAMES[this.id] = null; @@ -12223,8 +12699,14 @@ Phaser.Game.prototype = { if (!this._paused) { this._paused = true; + this.time.gamePaused(); - this.sound.setMute(); + + if (this.sound.muteOnPause) + { + this.sound.setMute(); + } + this.onPause.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -12249,9 +12731,16 @@ Phaser.Game.prototype = { if (this._paused && !this._codePaused) { this._paused = false; + this.time.gameResumed(); + this.input.reset(); - this.sound.unsetMute(); + + if (this.sound.muteOnPause) + { + this.sound.unsetMute(); + } + this.onResume.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -12355,7 +12844,7 @@ Object.defineProperty(Phaser.Game.prototype, "paused", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -13443,7 +13932,7 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -13451,10 +13940,10 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { * The Mouse class is responsible for handling all aspects of mouse interaction with the browser. * * It captures and processes mouse events that happen on the game canvas object. -* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released +* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released * when not over the game. * -* You should not normally access this class directly, but instead use a Phaser.Pointer object +* You should not normally access this class directly, but instead use a Phaser.Pointer object * which normalises all game input for you, including accurate button handling. * * @class Phaser.Mouse @@ -13828,7 +14317,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse up event from the window. - * + * * @method Phaser.Mouse#onMouseUpGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -13850,7 +14339,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse out event from the window. - * + * * @method Phaser.Mouse#onMouseOutGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -13875,7 +14364,7 @@ Phaser.Mouse.prototype = { // the browser opening a context-menu or similar. // On OS X Chrome especially this is bad news, as it blocks // us then getting a mouseup event, so we need to force that through. - // + // // No matter what, we must cancel the left and right buttons this.input.mousePointer.stop(event); @@ -14004,7 +14493,7 @@ Phaser.Mouse.prototype = { /** * Internal pointerLockChange handler. - * + * * @method Phaser.Mouse#pointerLockChange * @param {Event} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -14065,6 +14554,7 @@ Phaser.Mouse.prototype = { } window.removeEventListener('mouseup', this._onMouseUpGlobal, true); + window.removeEventListener('mouseout', this._onMouseOutGlobal, true); document.removeEventListener('pointerlockchange', this._pointerLockChange, true); document.removeEventListener('mozpointerlockchange', this._pointerLockChange, true); @@ -14162,7 +14652,7 @@ Object.defineProperties(WheelEventProxy.prototype, { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14614,7 +15104,7 @@ Phaser.MSPointer.prototype.constructor = Phaser.MSPointer; /** * @author Richard Davey * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -14935,7 +15425,7 @@ Object.defineProperty(Phaser.DeviceButton.prototype, "duration", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16171,7 +16661,7 @@ Phaser.PointerMode = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -16635,7 +17125,7 @@ Phaser.Touch.prototype.constructor = Phaser.Touch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -17589,13 +18079,19 @@ Phaser.InputHandler.prototype = { data.isUp = false; data.timeDown = this.game.time.time; + // It's possible the onInputDown event creates a new Sprite that is on-top of this one, so we ought to force a Pointer update + pointer.dirty = true; + if (this.sprite && this.sprite.events) { this.sprite.events.onInputDown$dispatch(this.sprite, pointer); + // The onInputDown event might have destroyed this sprite. + if (this.sprite === null) + { + return; + } } - // It's possible the onInputDown event created a new Sprite that is on-top of this one, so we ought to force a Pointer update - pointer.dirty = true; // Start drag if (this.draggable && this.isDragged === false) @@ -17953,13 +18449,13 @@ Phaser.InputHandler.prototype = { { if (this.dragFromCenter) { - this.sprite.centerOn(pointer.x, pointer.y); - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); - } - else - { - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); + var bounds = this.sprite.getBounds(); + + this.sprite.cameraOffset.x = this.globalToLocalX(pointer.x) + (this.sprite.cameraOffset.x - bounds.centerX); + this.sprite.cameraOffset.y = this.globalToLocalY(pointer.y) + (this.sprite.cameraOffset.y - bounds.centerY); } + + this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); } else { @@ -18241,7 +18737,7 @@ Phaser.InputHandler.prototype.constructor = Phaser.InputHandler; /** * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -18904,7 +19400,7 @@ Phaser.Gamepad.PS3XC_STICK_RIGHT_Y = 3; // analog stick, range -1..1 /** * @author @karlmacklin * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -19459,7 +19955,7 @@ Phaser.SinglePad.prototype.constructor = Phaser.SinglePad; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -19824,7 +20320,7 @@ Phaser.Key.prototype.constructor = Phaser.Key; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -19834,6 +20330,10 @@ Phaser.Key.prototype.constructor = Phaser.Key; * _Note_: many keyboards are unable to process certain combinations of keys due to hardware limitations known as ghosting. * See http://www.html5gamedevs.com/topic/4876-impossible-to-use-more-than-2-keyboard-input-buttons-at-the-same-time/ for more details. * +* Also please be aware that certain browser extensions can disable or override Phaser keyboard handling. +* For example the Chrome extension vimium is known to disable Phaser from using the D key. And there are others. +* So please check your extensions before opening Phaser issues. +* * @class Phaser.Keyboard * @constructor * @param {Phaser.Game} game - A reference to the currently running game. @@ -20638,7 +21138,7 @@ for (var key in Phaser.KeyCode) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -20646,7 +21146,7 @@ Phaser.Component = function () {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -20692,7 +21192,7 @@ Phaser.Component.Angle.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -20733,7 +21233,7 @@ Phaser.Component.Animation.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -20788,7 +21288,7 @@ Phaser.Component.AutoCull.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -20909,7 +21409,7 @@ Phaser.Component.Bounds.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21006,7 +21506,7 @@ Phaser.Component.BringToTop.prototype.moveDown = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21362,7 +21862,7 @@ Phaser.Component.Core.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21480,7 +21980,7 @@ Phaser.Component.Crop.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21549,7 +22049,7 @@ Phaser.Component.Delta.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21629,6 +22129,8 @@ Phaser.Component.Destroy.prototype = { this.events.destroy(); } + this.game.tweens.removeFrom(this); + var i = this.children.length; if (destroyChildren) @@ -21710,7 +22212,7 @@ Phaser.Component.Destroy.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21904,7 +22406,7 @@ for (var prop in Phaser.Events.prototype) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -21993,7 +22495,7 @@ Phaser.Component.FixedToCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22100,7 +22602,7 @@ Phaser.Component.Health.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22137,7 +22639,7 @@ Phaser.Component.InCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22210,7 +22712,7 @@ Phaser.Component.InputEnabled.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22250,6 +22752,12 @@ Phaser.Component.InWorld.preUpdate = function () { else { this.renderable = false; + + if (this.outOfCameraBoundsKill) + { + this.kill(); + return false; + } } } @@ -22309,6 +22817,15 @@ Phaser.Component.InWorld.prototype = { */ outOfBoundsKill: false, + /** + * If this and the `autoCull` property are both set to `true`, then the `kill` method + * is called as soon as the Game Object leaves the camera bounds. + * + * @property {boolean} outOfCameraBoundsKill + * @default + */ + outOfCameraBoundsKill: false, + /** * @property {boolean} _outOfBoundsFired - Internal state var. * @private @@ -22335,7 +22852,7 @@ Phaser.Component.InWorld.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22464,7 +22981,7 @@ Phaser.Component.LifeSpan.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22505,6 +23022,8 @@ Phaser.Component.LoadTexture.prototype = { * to use a Texture Atlas later in development by simply searching your code for 'PENDING_ATLAS' * and swapping it to be the key of the atlas data. * + * Note: You cannot use a RenderTexture as a texture for a TileSprite. + * * @method * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache Image entry, or an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. * @param {string|number} [frame] - If this Sprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. @@ -22549,6 +23068,10 @@ Phaser.Component.LoadTexture.prototype = { { setFrame = !this.animations.loadFrameData(cache.getFrameData(key.key, Phaser.Cache.BITMAPDATA), frame); } + else + { + setFrame = !this.animations.loadFrameData(key.frameData, 0); + } } else if (Phaser.Video && key instanceof Phaser.Video) { @@ -22561,6 +23084,12 @@ Phaser.Component.LoadTexture.prototype = { key.onChangeSource.add(this.resizeFrame, this); this.texture.valid = valid; } + else if (Phaser.Tilemap && key instanceof Phaser.TilemapLayer) + { + // this.customRender = true; + + this.setTexture(PIXI.Texture.fromCanvas(key.canvas)); + } else if (key instanceof PIXI.Texture) { this.setTexture(key); @@ -22744,7 +23273,7 @@ Phaser.Component.LoadTexture.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22780,7 +23309,7 @@ Phaser.Component.Overlap.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22926,7 +23455,7 @@ Phaser.Component.PhysicsBody.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22990,7 +23519,7 @@ Phaser.Component.Reset.prototype.reset = function (x, y, health) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -23158,7 +23687,7 @@ Phaser.Component.ScaleMinMax.prototype = { }; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -23212,7 +23741,7 @@ Phaser.Component.Smoothed.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -23462,7 +23991,7 @@ Phaser.GameObjectFactory.prototype = { * @param {number} y - The y coordinate of the TileSprite. The coordinate is relative to any parent container this TileSprite may be in. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - The image used as a texture by this display object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} [frame] - If a Texture Atlas or Sprite Sheet is used this allows you to specify the frame to be used. Use either an integer for a Frame ID or a string for a frame name. * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. * @return {Phaser.TileSprite} The newly created TileSprite object. @@ -23775,7 +24304,7 @@ Phaser.GameObjectFactory.prototype.constructor = Phaser.GameObjectFactory; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -23943,7 +24472,7 @@ Phaser.GameObjectCreator.prototype = { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. * @return {Phaser.TileSprite} The newly created tileSprite object. */ @@ -24205,7 +24734,7 @@ Phaser.GameObjectCreator.prototype.constructor = Phaser.GameObjectCreator; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -24322,7 +24851,7 @@ Phaser.Sprite.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -24415,7 +24944,7 @@ Phaser.Image.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25011,7 +25540,7 @@ Phaser.Button.prototype.onInputUpHandler = function (sprite, pointer, isOver) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25053,7 +25582,7 @@ Phaser.SpriteBatch.prototype.constructor = Phaser.SpriteBatch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25175,11 +25704,16 @@ Phaser.BitmapData = function (game, key, width, height) { */ this.texture = new PIXI.Texture(this.baseTexture); + /** + * @property {Phaser.FrameData} frameData - The FrameData container this BitmapData uses for rendering. + */ + this.frameData = new Phaser.FrameData(); + /** * @property {Phaser.Frame} textureFrame - The Frame this BitmapData uses for rendering. * @default */ - this.textureFrame = new Phaser.Frame(0, 0, 0, width, height, 'bitmapData'); + this.textureFrame = this.frameData.addFrame(new Phaser.Frame(0, 0, 0, width, height, 'bitmapData')); this.texture.frame = this.textureFrame; @@ -26308,6 +26842,7 @@ Phaser.BitmapData.prototype = { } this._image = source.tintedTexture; + this._pos.set(0); } } else @@ -26910,6 +27445,8 @@ Phaser.BitmapData.prototype = { */ destroy: function () { + this.frameData.destroy(); + this.texture.destroy(true); PIXI.CanvasPool.remove(this); @@ -30682,7 +31219,7 @@ PIXI.CanvasGraphics.updateGraphicsTint = function(graphics) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30724,6 +31261,12 @@ Phaser.Graphics = function (game, x, y) { */ this.physicsType = Phaser.SPRITE; + /** + * @property {Phaser.Point} anchor - Required for a Graphics shape to work as a Physics body, do not modify this value. + * @private + */ + this.anchor = new Phaser.Point(); + PIXI.Graphics.call(this); Phaser.Component.Core.init.call(this, game, x, y, '', null); @@ -30892,7 +31435,7 @@ Phaser.Graphics.prototype.drawTriangles = function(vertices, indices, cull) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31046,7 +31589,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31080,6 +31623,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) * @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke). * @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used. * @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap. +* @param {number} [style.maxLines=0] - The maximum number of lines to be shown for wrapped text. * @param {number} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop. */ Phaser.Text = function (game, x, y, text, style) { @@ -31330,6 +31874,7 @@ Phaser.Text.prototype.setShadow = function (x, y, color, blur, shadowStroke, sha * @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke). * @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used. * @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap. +* @param {number} [style.maxLines=0] - The maximum number of lines to be shown for wrapped text. * @param {number|array} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop. * @return {Phaser.Text} This Text instance. */ @@ -31346,6 +31891,7 @@ Phaser.Text.prototype.setStyle = function (style) { style.strokeThickness = style.strokeThickness || 0; style.wordWrap = style.wordWrap || false; style.wordWrapWidth = style.wordWrapWidth || 100; + style.maxLines = style.maxLines || 0; style.shadowOffsetX = style.shadowOffsetX || 0; style.shadowOffsetY = style.shadowOffsetY || 0; style.shadowColor = style.shadowColor || 'rgba(0,0,0,0)'; @@ -31382,6 +31928,7 @@ Phaser.Text.prototype.setStyle = function (style) { this._fontComponents = components; style.font = this.componentsToFont(this._fontComponents); + this.style = style; this.dirty = true; @@ -31417,7 +31964,14 @@ Phaser.Text.prototype.updateText = function () { var maxLineWidth = 0; var fontProperties = this.determineFontProperties(this.style.font); - for (var i = 0; i < lines.length; i++) + var drawnLines = lines.length; + + if (this.style.maxLines > 0 && this.style.maxLines < lines.length) + { + drawnLines = this.style.maxLines; + } + + for (var i = 0; i < drawnLines; i++) { if (tabs === 0) { @@ -31474,7 +32028,7 @@ Phaser.Text.prototype.updateText = function () { // Calculate text height var lineHeight = fontProperties.fontSize + this.style.strokeThickness + this.padding.y; - var height = lineHeight * lines.length; + var height = lineHeight * drawnLines; var lineSpacing = this._lineSpacing; if (lineSpacing < 0 && Math.abs(lineSpacing) > lineHeight) @@ -31485,7 +32039,7 @@ Phaser.Text.prototype.updateText = function () { // Adjust for line spacing if (lineSpacing !== 0) { - height += lineSpacing * lines.length; + height += (lineSpacing > 0) ? lineSpacing * lines.length : lineSpacing * (lines.length - 1); } this.canvas.height = height * this._res; @@ -31518,7 +32072,7 @@ Phaser.Text.prototype.updateText = function () { this._charCount = 0; // Draw text line by line - for (i = 0; i < lines.length; i++) + for (i = 0; i < drawnLines; i++) { // Split the line by @@ -32123,18 +32677,27 @@ Phaser.Text.prototype.fontToComponents = function (font) { if (m) { + var family = m[5].trim(); + + // If it looks like the value should be quoted, but isn't, then quote it. + if (!/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(family) && !/['",]/.exec(family)) + { + family = "'" + family + "'"; + } + return { font: font, fontStyle: m[1] || 'normal', fontVariant: m[2] || 'normal', fontWeight: m[3] || 'normal', fontSize: m[4] || 'medium', - fontFamily: m[5] + fontFamily: family }; } else { console.warn("Phaser.Text - unparsable CSS font: " + font); + return { font: font }; @@ -33207,7 +33770,7 @@ Phaser.Text.fontPropertiesContext = Phaser.Text.fontPropertiesCanvas.getContext( /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33320,7 +33883,7 @@ Phaser.BitmapText = function (game, x, y, font, text, size, align) { * @property {string} _text - Internal cache var. * @private */ - this._text = text; + this._text = text.toString() || ''; /** * @property {string} _data - Internal cache var. @@ -33915,7 +34478,7 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'smoothed', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34520,7 +35083,7 @@ Object.defineProperty(Phaser.RetroFont.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd, Richard Davey +* @copyright 2016 Photon Storm Ltd, Richard Davey * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34730,7 +35293,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34783,7 +35346,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. -* @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a RenderTexture, PIXI.Texture or BitmapData. +* @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. */ Phaser.TileSprite = function (game, x, y, width, height, key, frame) { @@ -34945,7 +35508,7 @@ Phaser.TileSprite.prototype.reset = function(x, y) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -36322,7 +36885,7 @@ Phaser.Device.isAndroidStockBrowser = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -36630,7 +37193,7 @@ Phaser.Canvas = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -36799,7 +37362,7 @@ Phaser.RequestAnimationFrame.prototype.constructor = Phaser.RequestAnimationFram /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -37695,16 +38258,29 @@ Phaser.Math = { }, /** - * Force a value within the boundaries by clamping `x` to the range `[a, b]`. + * Force a value within the boundaries by clamping it to the range `min`, `max`. * * @method Phaser.Math#clamp - * @param {number} x - * @param {number} a - * @param {number} b - * @return {number} + * @param {float} v - The value to be clamped. + * @param {float} min - The minimum bounds. + * @param {float} max - The maximum bounds. + * @return {number} The clamped value. */ - clamp: function (x, a, b) { - return ( x < a ) ? a : ( ( x > b ) ? b : x ); + clamp: function (v, min, max) { + + if (v < min) + { + return min; + } + else if (max < v) + { + return max; + } + else + { + return v; + } + }, /** @@ -37753,24 +38329,29 @@ Phaser.Math = { * Smoothstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smoothstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smoothstep: function (x, min, max) { + + // Scale, bias and saturate x to 0..1 range x = Math.max(0, Math.min(1, (x - min) / (max - min))); + + // Evaluate polynomial return x * x * (3 - 2 * x); + }, /** * Smootherstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smootherstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smootherstep: function (x, min, max) { x = Math.max(0, Math.min(1, (x - min) / (max - min))); @@ -37835,7 +38416,7 @@ Phaser.Math.degToRad = function degToRad (degrees) { }; /** -* Convert degrees to radians. +* Convert radians to degrees. * * @method Phaser.Math#radToDeg * @param {number} radians - Angle in radians. @@ -37849,7 +38430,7 @@ Phaser.Math.radToDeg = function radToDeg (radians) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -38206,7 +38787,7 @@ Phaser.RandomDataGenerator.prototype.constructor = Phaser.RandomDataGenerator; /** * @author Timo Hausmann * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -38558,7 +39139,7 @@ Phaser.QuadTree.prototype.constructor = Phaser.QuadTree; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -38708,8 +39289,8 @@ Phaser.Net.prototype = { }, /** - * Returns the Query String as an object. - * If you specify a parameter it will return just the value of that parameter, should it exist. + * Takes a Uniform Resource Identifier (URI) component (previously created by encodeURIComponent or by a similar routine) and + * decodes it, replacing \ with spaces in the return. Used internally by the Net classes. * * @method Phaser.Net#decodeURI * @param {string} value - The URI component to be decoded. @@ -38725,7 +39306,7 @@ Phaser.Net.prototype.constructor = Phaser.Net; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -39086,7 +39667,7 @@ Phaser.TweenManager.prototype.constructor = Phaser.TweenManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -39163,8 +39744,9 @@ Phaser.Tween = function (target, game, manager) { this.onStart = new Phaser.Signal(); /** - * The onLoop event is fired if the Tween or any child tween loops. + * The onLoop event is fired if the Tween, or any child tweens loop. * It will be sent 2 parameters: the target object and this tween. + * * @property {Phaser.Signal} onLoop */ this.onLoop = new Phaser.Signal(); @@ -39633,10 +40215,9 @@ Phaser.Tween.prototype = { /** * Set how many times this tween and all of its children will repeat. * A tween (A) with 3 children (B,C,D) with a `repeatAll` value of 2 would play as: ABCDABCD before completing. - * When all child tweens have completed Tween.onLoop will be dispatched. * - * @method Phaser.Tween#repeat - * @param {number} total - How many times this tween and all children should repeat before completing. Set to zero to remove an active repeat. Set to -1 to repeat forever. + * @method Phaser.Tween#repeatAll + * @param {number} [total=0] - How many times this tween and all children should repeat before completing. Set to zero to remove an active repeat. Set to -1 to repeat forever. * @return {Phaser.Tween} This tween. Useful for method chaining. */ repeatAll: function (total) { @@ -39684,7 +40265,8 @@ Phaser.Tween.prototype = { }, /** - * Enables the looping of this tween and all child tweens. If this tween has no children this setting has no effect. + * Enables the looping of this tween. The tween will loop forever, and onComplete will never fire. + * * If `value` is `true` then this is the same as setting `Tween.repeatAll(-1)`. * If `value` is `false` it is the same as setting `Tween.repeatAll(0)` and will reset the `repeatCounter` to zero. * @@ -39695,21 +40277,14 @@ Phaser.Tween.prototype = { * .to({ y: 0 }, 1000, Phaser.Easing.Linear.None) * .loop(); * @method Phaser.Tween#loop - * @param {boolean} [value=true] - If `true` this tween and any child tweens will loop once they reach the end. Set to `false` to remove an active loop. + * @param {boolean} [value=true] - If `true` this tween will loop once it reaches the end. Set to `false` to remove an active loop. * @return {Phaser.Tween} This tween. Useful for method chaining. */ loop: function (value) { if (value === undefined) { value = true; } - if (value) - { - this.repeatAll(-1); - } - else - { - this.repeatCounter = 0; - } + this.repeatCounter = (value) ? -1 : 0; return this; @@ -39815,7 +40390,7 @@ Phaser.Tween.prototype = { */ update: function (time) { - if (this.pendingDelete) + if (this.pendingDelete || !this.target) { return false; } @@ -39849,7 +40424,7 @@ Phaser.Tween.prototype = { } else if (status === Phaser.TweenData.LOOPED) { - if (this.repeatCounter === -1) + if (this.timeline[this.current].repeatCounter === -1) { this.onLoop.dispatch(this.target, this); } @@ -39857,6 +40432,7 @@ Phaser.Tween.prototype = { { this.onRepeat.dispatch(this.target, this); } + return true; } else if (status === Phaser.TweenData.COMPLETE) @@ -39946,13 +40522,8 @@ Phaser.Tween.prototype = { return null; } - if (frameRate === undefined) { - frameRate = 60; - } - - if (data === undefined) { - data = []; - } + if (frameRate === undefined) { frameRate = 60; } + if (data === undefined) { data = []; } // Populate the tween data for (var i = 0; i < this.timeline.length; i++) @@ -40011,7 +40582,7 @@ Phaser.Tween.prototype.constructor = Phaser.Tween; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -40088,6 +40659,12 @@ Phaser.TweenData = function (parent) { */ this.repeatDelay = 0; + /** + * @property {number} repeatTotal - The total number of times this Tween will repeat. + * @readonly + */ + this.repeatTotal = 0; + /** * @property {boolean} interpolate - True if the Tween will use interpolation (i.e. is an Array to Array tween) * @default @@ -40204,7 +40781,7 @@ Phaser.TweenData.prototype = { this.duration = duration; this.easingFunction = ease; this.delay = delay; - this.repeatCounter = repeat; + this.repeatTotal = repeat; this.yoyo = yoyo; this.isFrom = false; @@ -40232,7 +40809,7 @@ Phaser.TweenData.prototype = { this.duration = duration; this.easingFunction = ease; this.delay = delay; - this.repeatCounter = repeat; + this.repeatTotal = repeat; this.yoyo = yoyo; this.isFrom = true; @@ -40282,6 +40859,7 @@ Phaser.TweenData.prototype = { this.value = 0; this.yoyoCounter = 0; + this.repeatCounter = this.repeatTotal; return this; @@ -40585,7 +41163,7 @@ Phaser.TweenData.prototype.constructor = Phaser.TweenData; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -41160,7 +41738,7 @@ Phaser.Easing.Power4 = Phaser.Easing.Quintic.Out; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -41789,7 +42367,7 @@ Phaser.Time.prototype.constructor = Phaser.Time; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -42546,7 +43124,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -42556,7 +43134,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; * It consists of a delay, which is a value in milliseconds after which the event will fire. * When the event fires it calls a specific callback with the specified arguments. * -* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#add}, or {@link Phaser.Timer#add} methods to create a new event. +* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#repeat}, or {@link Phaser.Timer#loop} methods to create a new event. * * @class Phaser.TimerEvent * @constructor @@ -42625,7 +43203,7 @@ Phaser.TimerEvent.prototype.constructor = Phaser.TimerEvent; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43194,7 +43772,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frameName', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44016,7 +44594,7 @@ Phaser.Animation.generateFrameNames = function (prefix, start, stop, suffix, zer /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44247,7 +44825,7 @@ Phaser.Frame.prototype.constructor = Phaser.Frame; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44493,6 +45071,18 @@ Phaser.FrameData.prototype = { return output; + }, + + /** + * Destroys this FrameData collection by nulling the _frames and _frameNames arrays. + * + * @method Phaser.FrameData#destroy + */ + destroy: function () { + + this._frames = null; + this._frameNames = null; + } }; @@ -44514,7 +45104,7 @@ Object.defineProperty(Phaser.FrameData.prototype, "total", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44842,7 +45432,7 @@ Phaser.AnimationParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46865,7 +47455,7 @@ Phaser.Cache.prototype.constructor = Phaser.Cache; /* jshint wsh:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -49902,7 +50492,7 @@ Phaser.Loader.prototype.constructor = Phaser.Loader; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -50071,7 +50661,7 @@ Phaser.LoaderParser = { /** * @author Jeremy Dowell * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -50201,7 +50791,7 @@ Phaser.AudioSprite.prototype.constructor = Phaser.AudioSprite; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -50790,7 +51380,7 @@ Phaser.Sound.prototype = { if (volume === undefined) { volume = this._volume; } if (loop === undefined) { loop = this.loop; } - this.position = position; + this.position = Math.max(0, position); this.volume = volume; this.loop = loop; this.duration = 0; @@ -50896,7 +51486,7 @@ Phaser.Sound.prototype = { this._sound.currentTime = this.position; this._sound.muted = this._muted; - if (this._muted) + if (this._muted || this.game.sound.mute) { this._sound.volume = 0; } @@ -50971,7 +51561,7 @@ Phaser.Sound.prototype = { { if (this.usingWebAudio) { - var p = this.position + (this.pausedPosition / 1000); + var p = Math.max(0, this.position + (this.pausedPosition / 1000)); this._sound = this.context.createBufferSource(); this._sound.buffer = this._buffer; @@ -51102,17 +51692,17 @@ Phaser.Sound.prototype = { }, /** - * Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. - * Then increases the volume from 0 to 1 over the duration specified. - * - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (1) as the second parameter. - * - * @method Phaser.Sound#fadeIn - * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade in. - * @param {boolean} [loop=false] - Should the Sound be set to loop? Note that this doesn't cause the fade to repeat. - * @param {string} [marker=(current marker)] - The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of `''`. - */ + * Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. + * Then increases the volume from 0 to 1 over the duration specified. + * + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (1) as the second parameter. + * + * @method Phaser.Sound#fadeIn + * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade in. + * @param {boolean} [loop=false] - Should the Sound be set to loop? Note that this doesn't cause the fade to repeat. + * @param {string} [marker=(current marker)] - The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of `''`. + */ fadeIn: function (duration, loop, marker) { if (loop === undefined) { loop = false; } @@ -51130,13 +51720,13 @@ Phaser.Sound.prototype = { }, /** - * Decreases the volume of this Sound from its current value to 0 over the duration specified. - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (0) as the second parameter. - * - * @method Phaser.Sound#fadeOut - * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade out. - */ + * Decreases the volume of this Sound from its current value to 0 over the duration specified. + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (0) as the second parameter. + * + * @method Phaser.Sound#fadeOut + * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade out. + */ fadeOut: function (duration) { this.fadeTo(duration, 0); @@ -51144,14 +51734,14 @@ Phaser.Sound.prototype = { }, /** - * Fades the volume of this Sound from its current value to the given volume over the duration specified. - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (volume) as the second parameter. - * - * @method Phaser.Sound#fadeTo - * @param {number} [duration=1000] - The time in milliseconds during which the Sound should fade out. - * @param {number} [volume] - The volume which the Sound should fade to. This is a value between 0 and 1. - */ + * Fades the volume of this Sound from its current value to the given volume over the duration specified. + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (volume) as the second parameter. + * + * @method Phaser.Sound#fadeTo + * @param {number} [duration=1000] - The time in milliseconds during which the Sound should fade out. + * @param {number} [volume] - The volume which the Sound should fade to. This is a value between 0 and 1. + */ fadeTo: function (duration, volume) { if (!this.isPlaying || this.paused || volume === this.volume) @@ -51174,11 +51764,11 @@ Phaser.Sound.prototype = { }, /** - * Internal handler for Sound.fadeIn, Sound.fadeOut and Sound.fadeTo. - * - * @method Phaser.Sound#fadeComplete - * @private - */ + * Internal handler for Sound.fadeIn, Sound.fadeOut and Sound.fadeTo. + * + * @method Phaser.Sound#fadeComplete + * @private + */ fadeComplete: function () { this.onFadeComplete.dispatch(this, this.volume); @@ -51190,6 +51780,28 @@ Phaser.Sound.prototype = { }, + /** + * Called automatically by SoundManager.volume. + * + * Sets the volume of AudioTag Sounds as a percentage of the Global Volume. + * + * You should not normally call this directly. + * + * @method Phaser.Sound#updateGlobalVolume + * @protected + * @param {float} globalVolume - The global SoundManager volume. + */ + updateGlobalVolume: function (globalVolume) { + + // this._volume is the % of the global volume this sound should be played at + + if (this.usingAudioTag && this._sound) + { + this._sound.volume = globalVolume * this._volume; + } + + }, + /** * Destroys this sound and all associated events and removes it from the SoundManager. * @@ -51352,7 +51964,7 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -51368,7 +51980,8 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { * * Mobile warning: There are some mobile devices (certain iPad 2 and iPad Mini revisions) that cannot play 48000 Hz audio. * When they try to play the audio becomes extremely distorted and buzzes, eventually crashing the sound system. -* The solution is to use a lower encoding rate such as 44100 Hz. +* The solution is to use a lower encoding rate such as 44100 Hz. Sometimes the audio context will +* be created with a sampleRate of 48000. If this happens and audio distorts you should re-create the context. * * @class Phaser.SoundManager * @constructor @@ -51446,6 +52059,15 @@ Phaser.SoundManager = function (game) { */ this.channels = 32; + /** + * Set to true to have all sound muted when the Phaser game pauses (such as on loss of focus), + * or set to false to keep audio playing, regardless of the game pause state. You may need to + * do this should you wish to control audio muting via external DOM buttons or similar. + * @property {boolean} muteOnPause + * @default + */ + this.muteOnPause = true; + /** * @property {boolean} _codeMuted - Internal mute tracking var. * @private @@ -51612,7 +52234,7 @@ Phaser.SoundManager.prototype = { /** * Sets the Input Manager touch callback to be SoundManager.unlock. * Required for iOS audio device unlocking. Mostly just used internally. - * + * * @method Phaser.SoundManager#setTouchLock */ setTouchLock: function () { @@ -51637,7 +52259,7 @@ Phaser.SoundManager.prototype = { /** * Enables the audio, usually after the first touch. - * + * * @method Phaser.SoundManager#unlock * @return {boolean} True if the callback should be removed, otherwise false. */ @@ -52082,12 +52704,20 @@ Phaser.SoundManager.prototype = { this.onSoundDecode.dispose(); - this.context.close(); - - if (this.context && window['PhaserGlobal']) + if (this.context) { - // Store this in the PhaserGlobal window var, if set, to allow for re-use if the game is created again without the page refreshing - window['PhaserGlobal'].audioContext = this.context; + if (window['PhaserGlobal']) + { + // Store this in the PhaserGlobal window var, if set, to allow for re-use if the game is created again without the page refreshing + window['PhaserGlobal'].audioContext = this.context; + } + else + { + if (this.context.close) + { + this.context.close(); + } + } } } @@ -52174,7 +52804,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { { if (this._sounds[i].usingAudioTag) { - this._sounds[i].volume = this._sounds[i].volume * value; + this._sounds[i].updateGlobalVolume(value); } } } @@ -52189,7 +52819,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -54565,7 +55195,7 @@ Object.defineProperty(Phaser.ScaleManager.prototype, "isGameLandscape", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -54673,16 +55303,38 @@ Phaser.Utils.Debug.prototype = { this.sprite = this.game.make.image(0, 0, this.bmd); this.game.stage.addChild(this.sprite); + this.game.scale.onSizeChange.add(this.resize, this); + this.canvas = PIXI.CanvasPool.create(this, this.game.width, this.game.height); this.context = this.canvas.getContext('2d'); } }, + /** + * Internal method that resizes the BitmapData and Canvas. + * Called by ScaleManager.onSizeChange only in WebGL mode. + * + * @method Phaser.Utils.Debug#resize + * @protected + * @param {Phaser.ScaleManager} scaleManager - The Phaser ScaleManager. + * @param {number} width - The new width of the game. + * @param {number} height - The new height of the game. + */ + resize: function (scaleManager, width, height) { + + this.bmd.resize(width, height); + + this.canvas.width = width; + this.canvas.height = height; + + }, + /** * Internal method that clears the canvas (if a Sprite) ready for a new debug session. * * @method Phaser.Utils.Debug#preUpdate + * @protected */ preUpdate: function () { @@ -55396,7 +56048,7 @@ Phaser.Utils.Debug.prototype.constructor = Phaser.Utils.Debug; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -55829,7 +56481,7 @@ Phaser.Device.whenReady(function (device) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -56111,7 +56763,7 @@ Phaser.ArraySet.prototype.constructor = Phaser.ArraySet; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -56404,7 +57056,7 @@ Phaser.ArrayUtils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -56593,7 +57245,7 @@ Phaser.LinkedList.prototype.constructor = Phaser.LinkedList; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -56798,7 +57450,7 @@ Phaser.Create.prototype.constructor = Phaser.Create; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -57126,7 +57778,7 @@ Phaser.FlexGrid.prototype.constructor = Phaser.FlexGrid; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -57242,7 +57894,7 @@ Phaser.FlexLayer.prototype.debug = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -58582,7 +59234,7 @@ Phaser.Color = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -58832,6 +59484,10 @@ Phaser.Physics.prototype = { { this.matter.enable(object); } + else + { + console.warn(object.key + ' is attempting to enable a physics body using an unknown physics system.'); + } }, @@ -59010,7 +59666,7 @@ Phaser.Physics.prototype.constructor = Phaser.Physics; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59957,29 +60613,32 @@ Phaser.Physics.Arcade.prototype = { return false; } + var resultX = false; + var resultY = false; + // Do we separate on x or y first? - - var result = false; - - // If we weren't having to carry around so much legacy baggage with us, we could do this properly. But alas ... if (this.forceX || Math.abs(this.gravity.y + body1.gravity.y) < Math.abs(this.gravity.x + body1.gravity.x)) { - result = (this.separateX(body1, body2, overlapOnly) || this.separateY(body1, body2, overlapOnly)); + resultX = this.separateX(body1, body2, overlapOnly); + + // Are they still intersecting? Let's do the other axis then + if (this.intersects(body1, body2)) + { + resultY = this.separateY(body1, body2, overlapOnly); + } } else { - result = (this.separateY(body1, body2, overlapOnly) || this.separateX(body1, body2, overlapOnly)); + resultY = this.separateY(body1, body2, overlapOnly); + + // Are they still intersecting? Let's do the other axis then + if (this.intersects(body1, body2)) + { + resultX = this.separateX(body1, body2, overlapOnly); + } } - if (overlapOnly) - { - // We already know they intersect from the check above, but by this point we know they've now had their overlapX/Y values populated - return true; - } - else - { - return result; - } + return (resultX || resultY); }, @@ -59993,156 +60652,248 @@ Phaser.Physics.Arcade.prototype = { */ intersects: function (body1, body2) { - if (body1.right <= body2.position.x) + if (body1.isCircle) { - return false; - } - - if (body1.bottom <= body2.position.y) - { - return false; - } - - if (body1.position.x >= body2.right) - { - return false; - } - - if (body1.position.y >= body2.bottom) - { - return false; - } - - return true; - - }, - - /** - * The core separation function to separate two physics bodies on the x axis. - * - * @private - * @method Phaser.Physics.Arcade#separateX - * @param {Phaser.Physics.Arcade.Body} body1 - The Body object to separate. - * @param {Phaser.Physics.Arcade.Body} body2 - The Body object to separate. - * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. - * @return {boolean} Returns true if the bodies were separated, otherwise false. - */ - separateX: function (body1, body2, overlapOnly) { - - // Can't separate two immovable bodies - if (body1.immovable && body2.immovable) - { - return false; - } - - var overlap = 0; - - // Check if the hulls actually overlap - if (this.intersects(body1, body2)) - { - var maxOverlap = body1.deltaAbsX() + body2.deltaAbsX() + this.OVERLAP_BIAS; - - if (body1.deltaX() === 0 && body2.deltaX() === 0) + if (body2.isCircle) { - // They overlap but neither of them are moving - body1.embedded = true; - body2.embedded = true; + // Circle vs. Circle + return Phaser.Math.distance(body1.center.x, body1.center.y, body2.center.x, body2.center.y) <= (body1.radius + body2.radius); } - else if (body1.deltaX() > body2.deltaX()) + else { - // Body1 is moving right and/or Body2 is moving left - overlap = body1.right - body2.x; - - if ((overlap > maxOverlap) || body1.checkCollision.right === false || body2.checkCollision.left === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.right = true; - body2.touching.none = false; - body2.touching.left = true; - } + // Circle vs. Rect + return this.circleBodyIntersects(body1, body2); } - else if (body1.deltaX() < body2.deltaX()) + } + else + { + if (body2.isCircle) { - // Body1 is moving left and/or Body2 is moving right - overlap = body1.x - body2.width - body2.x; - - if ((-overlap > maxOverlap) || body1.checkCollision.left === false || body2.checkCollision.right === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.left = true; - body2.touching.none = false; - body2.touching.right = true; - } + // Rect vs. Circle + return this.circleBodyIntersects(body2, body1); } - - // Resets the overlapX to zero if there is no overlap, or to the actual pixel value if there is - body1.overlapX = overlap; - body2.overlapX = overlap; - - // Then adjust their positions and velocities accordingly (if there was any overlap) - if (overlap !== 0) + else { - if (overlapOnly || body1.customSeparateX || body2.customSeparateX) + // Rect vs. Rect + if (body1.right <= body2.position.x) { - return true; + return false; } - var v1 = body1.velocity.x; - var v2 = body2.velocity.x; - - if (!body1.immovable && !body2.immovable) + if (body1.bottom <= body2.position.y) { - overlap *= 0.5; - - body1.x = body1.x - overlap; - body2.x += overlap; - - var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); - var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); - var avg = (nv1 + nv2) * 0.5; - - nv1 -= avg; - nv2 -= avg; - - body1.velocity.x = avg + nv1 * body1.bounce.x; - body2.velocity.x = avg + nv2 * body2.bounce.x; + return false; } - else if (!body1.immovable) - { - body1.x = body1.x - overlap; - body1.velocity.x = v2 - v1 * body1.bounce.x; - // This is special case code that handles things like vertically moving platforms you can ride - if (body2.moves) - { - body1.y += (body2.y - body2.prev.y) * body2.friction.y; - } + if (body1.position.x >= body2.right) + { + return false; } - else if (!body2.immovable) - { - body2.x += overlap; - body2.velocity.x = v1 - v2 * body2.bounce.x; - // This is special case code that handles things like vertically moving platforms you can ride - if (body1.moves) - { - body2.y += (body1.y - body1.prev.y) * body1.friction.y; - } + if (body1.position.y >= body2.bottom) + { + return false; } return true; } } - return false; + }, + + /** + * Calculates the horizontal overlap between two Bodies and sets their properties accordingly, including: + * `touching.left`, `touching.right` and `overlapX`. + * + * @method Phaser.Physics.Arcade#getOverlapX + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @return {float} Returns the amount of horizontal overlap between the two bodies. + */ + getOverlapX: function (body1, body2) { + + var overlap = 0; + var maxOverlap = body1.deltaAbsX() + body2.deltaAbsX() + this.OVERLAP_BIAS; + + if (body1.deltaX() === 0 && body2.deltaX() === 0) + { + // They overlap but neither of them are moving + body1.embedded = true; + body2.embedded = true; + } + else if (body1.deltaX() > body2.deltaX()) + { + // Body1 is moving right and / or Body2 is moving left + overlap = body1.right - body2.x; + + if ((overlap > maxOverlap) || body1.checkCollision.right === false || body2.checkCollision.left === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.right = true; + body2.touching.none = false; + body2.touching.left = true; + } + } + else if (body1.deltaX() < body2.deltaX()) + { + // Body1 is moving left and/or Body2 is moving right + overlap = body1.x - body2.width - body2.x; + + if ((-overlap > maxOverlap) || body1.checkCollision.left === false || body2.checkCollision.right === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.left = true; + body2.touching.none = false; + body2.touching.right = true; + } + } + + // Resets the overlapX to zero if there is no overlap, or to the actual pixel value if there is + body1.overlapX = overlap; + body2.overlapX = overlap; + + return overlap; + + }, + + /** + * Calculates the vertical overlap between two Bodies and sets their properties accordingly, including: + * `touching.up`, `touching.down` and `overlapY`. + * + * @method Phaser.Physics.Arcade#getOverlapY + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @return {float} Returns the amount of vertical overlap between the two bodies. + */ + getOverlapY: function (body1, body2) { + + var overlap = 0; + var maxOverlap = body1.deltaAbsY() + body2.deltaAbsY() + this.OVERLAP_BIAS; + + if (body1.deltaY() === 0 && body2.deltaY() === 0) + { + // They overlap but neither of them are moving + body1.embedded = true; + body2.embedded = true; + } + else if (body1.deltaY() > body2.deltaY()) + { + // Body1 is moving down and/or Body2 is moving up + overlap = body1.bottom - body2.y; + + if ((overlap > maxOverlap) || body1.checkCollision.down === false || body2.checkCollision.up === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.down = true; + body2.touching.none = false; + body2.touching.up = true; + } + } + else if (body1.deltaY() < body2.deltaY()) + { + // Body1 is moving up and/or Body2 is moving down + overlap = body1.y - body2.bottom; + + if ((-overlap > maxOverlap) || body1.checkCollision.up === false || body2.checkCollision.down === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.up = true; + body2.touching.none = false; + body2.touching.down = true; + } + } + + // Resets the overlapY to zero if there is no overlap, or to the actual pixel value if there is + body1.overlapY = overlap; + body2.overlapY = overlap; + + return overlap; + + }, + + /** + * The core separation function to separate two physics bodies on the x axis. + * + * @method Phaser.Physics.Arcade#separateX + * @private + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. + * @return {boolean} Returns true if the bodies were separated or overlap, otherwise false. + */ + separateX: function (body1, body2, overlapOnly) { + + var overlap = this.getOverlapX(body1, body2); + + // Can't separate two immovable bodies, or a body with its own custom separation logic + if (overlapOnly || overlap === 0 || (body1.immovable && body2.immovable) || body1.customSeparateX || body2.customSeparateX) + { + // return true if there was some overlap, otherwise false + return (overlap !== 0); + } + + // Adjust their positions and velocities accordingly (if there was any overlap) + var v1 = body1.velocity.x; + var v2 = body2.velocity.x; + + if (!body1.immovable && !body2.immovable) + { + overlap *= 0.5; + + body1.x -= overlap; + body2.x += overlap; + + var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); + var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); + var avg = (nv1 + nv2) * 0.5; + + nv1 -= avg; + nv2 -= avg; + + body1.velocity.x = avg + nv1 * body1.bounce.x; + body2.velocity.x = avg + nv2 * body2.bounce.x; + } + else if (!body1.immovable) + { + body1.x -= overlap; + body1.velocity.x = v2 - v1 * body1.bounce.x; + + // This is special case code that handles things like vertically moving platforms you can ride + if (body2.moves) + { + body1.y += (body2.y - body2.prev.y) * body2.friction.y; + } + } + else + { + body2.x += overlap; + body2.velocity.x = v1 - v2 * body2.bounce.x; + + // This is special case code that handles things like vertically moving platforms you can ride + if (body1.moves) + { + body2.y += (body1.y - body1.prev.y) * body1.friction.y; + } + } + + // If we got this far then there WAS overlap, and separation is complete, so return true + return true; }, @@ -60151,128 +60902,68 @@ Phaser.Physics.Arcade.prototype = { * * @private * @method Phaser.Physics.Arcade#separateY - * @param {Phaser.Physics.Arcade.Body} body1 - The Body object to separate. - * @param {Phaser.Physics.Arcade.Body} body2 - The Body object to separate. + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. - * @return {boolean} Returns true if the bodies were separated, otherwise false. + * @return {boolean} Returns true if the bodies were separated or overlap, otherwise false. */ separateY: function (body1, body2, overlapOnly) { - // Can't separate two immovable or non-existing bodies - if (body1.immovable && body2.immovable) + var overlap = this.getOverlapY(body1, body2); + + // Can't separate two immovable bodies, or a body with its own custom separation logic + if (overlapOnly || overlap === 0 || (body1.immovable && body2.immovable) || body1.customSeparateY || body2.customSeparateY) { - return false; + // return true if there was some overlap, otherwise false + return (overlap !== 0); } - var overlap = 0; + // Adjust their positions and velocities accordingly (if there was any overlap) + var v1 = body1.velocity.y; + var v2 = body2.velocity.y; - // Check if the hulls actually overlap - if (this.intersects(body1, body2)) + if (!body1.immovable && !body2.immovable) { - var maxOverlap = body1.deltaAbsY() + body2.deltaAbsY() + this.OVERLAP_BIAS; + overlap *= 0.5; - if (body1.deltaY() === 0 && body2.deltaY() === 0) + body1.y -= overlap; + body2.y += overlap; + + var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); + var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); + var avg = (nv1 + nv2) * 0.5; + + nv1 -= avg; + nv2 -= avg; + + body1.velocity.y = avg + nv1 * body1.bounce.y; + body2.velocity.y = avg + nv2 * body2.bounce.y; + } + else if (!body1.immovable) + { + body1.y -= overlap; + body1.velocity.y = v2 - v1 * body1.bounce.y; + + // This is special case code that handles things like horizontal moving platforms you can ride + if (body2.moves) { - // They overlap but neither of them are moving - body1.embedded = true; - body2.embedded = true; + body1.x += (body2.x - body2.prev.x) * body2.friction.x; } - else if (body1.deltaY() > body2.deltaY()) + } + else + { + body2.y += overlap; + body2.velocity.y = v1 - v2 * body2.bounce.y; + + // This is special case code that handles things like horizontal moving platforms you can ride + if (body1.moves) { - // Body1 is moving down and/or Body2 is moving up - overlap = body1.bottom - body2.y; - - if ((overlap > maxOverlap) || body1.checkCollision.down === false || body2.checkCollision.up === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.down = true; - body2.touching.none = false; - body2.touching.up = true; - } + body2.x += (body1.x - body1.prev.x) * body1.friction.x; } - else if (body1.deltaY() < body2.deltaY()) - { - // Body1 is moving up and/or Body2 is moving down - overlap = body1.y - body2.bottom; - - if ((-overlap > maxOverlap) || body1.checkCollision.up === false || body2.checkCollision.down === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.up = true; - body2.touching.none = false; - body2.touching.down = true; - } - } - - // Resets the overlapY to zero if there is no overlap, or to the actual pixel value if there is - body1.overlapY = overlap; - body2.overlapY = overlap; - - // Then adjust their positions and velocities accordingly (if there was any overlap) - if (overlap !== 0) - { - if (overlapOnly || body1.customSeparateY || body2.customSeparateY) - { - return true; - } - - var v1 = body1.velocity.y; - var v2 = body2.velocity.y; - - if (!body1.immovable && !body2.immovable) - { - overlap *= 0.5; - - body1.y = body1.y - overlap; - body2.y += overlap; - - var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); - var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); - var avg = (nv1 + nv2) * 0.5; - - nv1 -= avg; - nv2 -= avg; - - body1.velocity.y = avg + nv1 * body1.bounce.y; - body2.velocity.y = avg + nv2 * body2.bounce.y; - } - else if (!body1.immovable) - { - body1.y = body1.y - overlap; - body1.velocity.y = v2 - v1 * body1.bounce.y; - - // This is special case code that handles things like horizontal moving platforms you can ride - if (body2.moves) - { - body1.x += (body2.x - body2.prev.x) * body2.friction.x; - } - } - else if (!body2.immovable) - { - body2.y += overlap; - body2.velocity.y = v1 - v2 * body2.bounce.y; - - // This is special case code that handles things like horizontal moving platforms you can ride - if (body1.moves) - { - body2.x += (body1.x - body1.prev.x) * body1.friction.x; - } - } - - return true; - } - } - return false; + // If we got this far then there WAS overlap, and separation is complete, so return true + return true; }, @@ -60732,7 +61423,7 @@ Phaser.Physics.Arcade.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -61199,10 +61890,11 @@ Phaser.Physics.Arcade.Body.prototype = { if (this.position.x !== this.prev.x || this.position.y !== this.prev.y) { - this.speed = Math.sqrt(this.velocity.x * this.velocity.x + this.velocity.y * this.velocity.y); this.angle = Math.atan2(this.velocity.y, this.velocity.x); } + this.speed = Math.sqrt(this.velocity.x * this.velocity.x + this.velocity.y * this.velocity.y); + // Now the State update will throw collision checks at the Body // And finally we'll integrate the new position back to the Sprite in postUpdate @@ -61299,23 +61991,6 @@ Phaser.Physics.Arcade.Body.prototype = { }, - /** - * Removes this bodys reference to its parent sprite, freeing it up for gc. - * - * @method Phaser.Physics.Arcade.Body#destroy - */ - destroy: function () { - - if (this.sprite.parent && this.sprite.parent instanceof Phaser.Group) - { - this.sprite.parent.removeFromHash(this.sprite); - } - - this.sprite.body = null; - this.sprite = null; - - }, - /** * Internal method. * @@ -61361,6 +62036,9 @@ Phaser.Physics.Arcade.Body.prototype = { * So it could be smaller or larger than the parent Sprite. You can also control the x and y offset, which * is the position of the Body relative to the top-left of the Sprite. * + * Calling `setSize` will have no effect if you have previously used `Body.setCircle`. To change a collision + * circle use `setCircle` instead. + * * @method Phaser.Physics.Arcade.Body#setSize * @param {number} width - The width of the Body. * @param {number} height - The height of the Body. @@ -61369,6 +62047,11 @@ Phaser.Physics.Arcade.Body.prototype = { */ setSize: function (width, height, offsetX, offsetY) { + if (this.isCircle) + { + return; + } + if (offsetX === undefined) { offsetX = this.offset.x; } if (offsetY === undefined) { offsetY = this.offset.y; } @@ -61384,6 +62067,47 @@ Phaser.Physics.Arcade.Body.prototype = { }, + /** + * Sets this Body as using a circle, of the given radius, for all collision detection instead of a rectangle. + * The radius is given in pixels and is the distance from the center of the circle to the edge. + * + * You can also control the x and y offset, which is the position of the Body relative to the top-left of the Sprite. + * + * @method Phaser.Physics.Arcade.Body#setCircle + * @param {number} [radius] - The radius of the Body in pixels. Pass a value of zero / undefined, to stop the Body using a circle for collision. + * @param {number} [offsetX] - The X offset of the Body from the Sprite position. + * @param {number} [offsetY] - The Y offset of the Body from the Sprite position. + */ + setCircle: function (radius, offsetX, offsetY) { + + if (offsetX === undefined) { offsetX = this.offset.x; } + if (offsetY === undefined) { offsetY = this.offset.y; } + + if (radius > 0) + { + this.isCircle = true; + this.radius = radius; + + this.sourceWidth = radius * 2; + this.sourceHeight = radius * 2; + + this.width = this.sourceWidth * this._sx; + this.height = this.sourceHeight * this._sy; + + this.halfWidth = Math.floor(this.width / 2); + this.halfHeight = Math.floor(this.height / 2); + + this.offset.setTo(offsetX, offsetY); + + this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight); + } + else + { + this.isCircle = false; + } + + }, + /** * Resets all Body values (velocity, acceleration, rotation, etc) * @@ -61425,7 +62149,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if the given coordinates are inside this Body, otherwise false. */ hitTest: function (x, y) { - return Phaser.Rectangle.contains(this, x, y); + + return (this.isCircle) ? Phaser.Circle.contains(this, x, y) : Phaser.Rectangle.contains(this, x, y); + }, /** @@ -61435,7 +62161,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onFloor: function () { + return this.blocked.down; + }, /** @@ -61445,7 +62173,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onCeiling: function(){ + return this.blocked.up; + }, /** @@ -61455,7 +62185,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onWall: function () { + return (this.blocked.left || this.blocked.right); + }, /** @@ -61465,7 +62197,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The absolute delta value. */ deltaAbsX: function () { + return (this.deltaX() > 0 ? this.deltaX() : -this.deltaX()); + }, /** @@ -61475,7 +62209,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The absolute delta value. */ deltaAbsY: function () { + return (this.deltaY() > 0 ? this.deltaY() : -this.deltaY()); + }, /** @@ -61485,7 +62221,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was to the right, negative if to the left. */ deltaX: function () { + return this.position.x - this.prev.x; + }, /** @@ -61495,7 +62233,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was downwards, negative if upwards. */ deltaY: function () { + return this.position.y - this.prev.y; + }, /** @@ -61505,20 +62245,43 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was clockwise, negative if anti-clockwise. */ deltaZ: function () { + return this.rotation - this.preRotation; + + }, + + /** + * Destroys this Body. + * + * First it calls Group.removeFromHash if the Game Object this Body belongs to is part of a Group. + * Then it nulls the Game Objects body reference, and nulls this Body.sprite reference. + * + * @method Phaser.Physics.Arcade.Body#destroy + */ + destroy: function () { + + if (this.sprite.parent && this.sprite.parent instanceof Phaser.Group) + { + this.sprite.parent.removeFromHash(this.sprite); + } + + this.sprite.body = null; + this.sprite = null; + } }; /** -* @name Phaser.Physics.Arcade.Body#bottom -* @property {number} bottom - The bottom value of this Body (same as Body.y + Body.height) -* @readonly +* @name Phaser.Physics.Arcade.Body#left +* @property {number} left - The x position of the Body. The same as `Body.x`. */ -Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "left", { get: function () { - return this.position.y + this.height; + + return this.position.x; + } }); @@ -61531,7 +62294,38 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "right", { get: function () { + return this.position.x + this.width; + + } + +}); + +/** +* @name Phaser.Physics.Arcade.Body#top +* @property {number} top - The y position of the Body. The same as `Body.y`. +*/ +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "top", { + + get: function () { + + return this.position.y; + + } + +}); + +/** +* @name Phaser.Physics.Arcade.Body#bottom +* @property {number} bottom - The bottom value of this Body (same as Body.y + Body.height) +* @readonly +*/ +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { + + get: function () { + + return this.position.y + this.height; + } }); @@ -61543,7 +62337,9 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "right", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "x", { get: function () { + return this.position.x; + }, set: function (value) { @@ -61560,7 +62356,9 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "x", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "y", { get: function () { + return this.position.y; + }, set: function (value) { @@ -61623,7 +62421,7 @@ Phaser.Physics.Arcade.Body.prototype.constructor = Phaser.Physics.Arcade.Body; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -62031,7 +62829,7 @@ Phaser.Utils.mixinPrototype(Phaser.Physics.Arcade.prototype, Phaser.Physics.Arca /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -62646,9 +63444,9 @@ Phaser.Physics.P2.prototype = { */ updateBoundsCollisionGroup: function (setCollisionGroup) { - var mask = this.everythingCollisionGroup.mask; + if (setCollisionGroup === undefined) { setCollisionGroup = true; } - if (setCollisionGroup === undefined) { mask = this.boundsCollisionGroup.mask; } + var mask = (setCollisionGroup) ? this.boundsCollisionGroup.mask : this.everythingCollisionGroup.mask; if (this.walls.left) { @@ -62670,6 +63468,8 @@ Phaser.Physics.P2.prototype = { this.walls.bottom.shapes[0].collisionGroup = mask; } + this._boundsOwnGroup = setCollisionGroup; + }, /** @@ -62699,77 +63499,10 @@ Phaser.Physics.P2.prototype = { if (bottom === undefined) { bottom = this._boundsBottom; } if (setCollisionGroup === undefined) { setCollisionGroup = this._boundsOwnGroup; } - if (this.walls.left) - { - this.world.removeBody(this.walls.left); - } - - if (this.walls.right) - { - this.world.removeBody(this.walls.right); - } - - if (this.walls.top) - { - this.world.removeBody(this.walls.top); - } - - if (this.walls.bottom) - { - this.world.removeBody(this.walls.bottom); - } - - if (left) - { - this.walls.left = new p2.Body({ mass: 0, position: [ this.pxmi(x), this.pxmi(y) ], angle: 1.5707963267948966 }); - this.walls.left.addShape(new p2.Plane()); - - if (setCollisionGroup) - { - this.walls.left.shapes[0].collisionGroup = this.boundsCollisionGroup.mask; - } - - this.world.addBody(this.walls.left); - } - - if (right) - { - this.walls.right = new p2.Body({ mass: 0, position: [ this.pxmi(x + width), this.pxmi(y) ], angle: -1.5707963267948966 }); - this.walls.right.addShape(new p2.Plane()); - - if (setCollisionGroup) - { - this.walls.right.shapes[0].collisionGroup = this.boundsCollisionGroup.mask; - } - - this.world.addBody(this.walls.right); - } - - if (top) - { - this.walls.top = new p2.Body({ mass: 0, position: [ this.pxmi(x), this.pxmi(y) ], angle: -3.141592653589793 }); - this.walls.top.addShape(new p2.Plane()); - - if (setCollisionGroup) - { - this.walls.top.shapes[0].collisionGroup = this.boundsCollisionGroup.mask; - } - - this.world.addBody(this.walls.top); - } - - if (bottom) - { - this.walls.bottom = new p2.Body({ mass: 0, position: [ this.pxmi(x), this.pxmi(y + height) ] }); - this.walls.bottom.addShape(new p2.Plane()); - - if (setCollisionGroup) - { - this.walls.bottom.shapes[0].collisionGroup = this.boundsCollisionGroup.mask; - } - - this.world.addBody(this.walls.bottom); - } + this.setupWall(left, 'left', x, y, 1.5707963267948966, setCollisionGroup); + this.setupWall(right, 'right', x + width, y, -1.5707963267948966, setCollisionGroup); + this.setupWall(top, 'top', x, y, -3.141592653589793, setCollisionGroup); + this.setupWall(bottom, 'bottom', x, y + height, 0, setCollisionGroup); // Remember the bounds settings in case they change later on via World.setBounds this._boundsLeft = left; @@ -62780,6 +63513,52 @@ Phaser.Physics.P2.prototype = { }, + /** + * Internal method called by setBounds. Responsible for creating, updating or + * removing the wall body shapes. + * + * @method Phaser.Physics.P2#setupWall + * @private + * @param {boolean} create - True to create the wall shape, false to remove it. + * @param {string} wall - The wall segment to update. + * @param {number} x - The x coordinate of the wall. + * @param {number} y - The y coordinate of the wall. + * @param {float} angle - The angle of the wall. + * @param {boolean} [setCollisionGroup=true] - If true the Bounds will be set to use its own Collision Group. + */ + setupWall: function (create, wall, x, y, angle, setCollisionGroup) { + + if (create) + { + // We need a left wall. Do we have one already? + if (this.walls[wall]) + { + this.walls[wall].position = [ this.pxmi(x), this.pxmi(y) ]; + } + else + { + this.walls[wall] = new p2.Body({ mass: 0, position: [ this.pxmi(x), this.pxmi(y) ], angle: angle }); + this.walls[wall].addShape(new p2.Plane()); + + if (setCollisionGroup) + { + this.walls[wall].shapes[0].collisionGroup = this.boundsCollisionGroup.mask; + } + + this.world.addBody(this.walls[wall]); + } + } + else + { + if (this.walls[wall]) + { + this.world.removeBody(this.walls[wall]); + this.walls[wall] = null; + } + } + + }, + /** * Pauses the P2 World independent of the game pause state. * @@ -64100,7 +64879,7 @@ Object.defineProperty(Phaser.Physics.P2.prototype, "total", { /** * @author Georgios Kaleadis https://github.com/georgiee * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -64329,7 +65108,7 @@ Phaser.Physics.P2.FixtureList.prototype = { }; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -64432,7 +65211,7 @@ Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype, "my", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -64535,7 +65314,7 @@ Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype, "my", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65257,6 +66036,40 @@ Phaser.Physics.P2.Body.prototype = { }, + /** + * Applies a force to the Body that causes it to 'thrust' to the left, based on its current angle and the given speed. + * The speed is represented in pixels per second. So a value of 100 would move 100 pixels in 1 second (1000ms). + * + * @method Phaser.Physics.P2.Body#thrustLeft + * @param {number} speed - The speed at which it should move to the left. + */ + thrustLeft: function (speed) { + + var magnitude = this.world.pxmi(-speed); + var angle = this.data.angle; + + this.data.force[0] += magnitude * Math.cos(angle); + this.data.force[1] += magnitude * Math.sin(angle); + + }, + + /** + * Applies a force to the Body that causes it to 'thrust' to the right, based on its current angle and the given speed. + * The speed is represented in pixels per second. So a value of 100 would move 100 pixels in 1 second (1000ms). + * + * @method Phaser.Physics.P2.Body#thrustRight + * @param {number} speed - The speed at which it should move to the right. + */ + thrustRight: function (speed) { + + var magnitude = this.world.pxmi(-speed); + var angle = this.data.angle; + + this.data.force[0] -= magnitude * Math.cos(angle); + this.data.force[1] -= magnitude * Math.sin(angle); + + }, + /** * Applies a force to the Body that causes it to 'thrust' backwards (in reverse), based on its current angle and the given speed. * The speed is represented in pixels per second. So a value of 100 would move 100 pixels in 1 second (1000ms). @@ -66484,7 +67297,7 @@ Object.defineProperty(Phaser.Physics.P2.Body.prototype, "collideWorldBounds", { /** * @author George https://github.com/georgiee * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -66941,7 +67754,7 @@ Phaser.Utils.extend(Phaser.Physics.P2.BodyDebug.prototype, { var hex; hex = c.toString(16); - if (hex.len === 2) + if (hex.length === 2) { return hex; } @@ -66956,7 +67769,7 @@ Phaser.Utils.extend(Phaser.Physics.P2.BodyDebug.prototype, { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67033,7 +67846,7 @@ Phaser.Physics.P2.Spring.prototype.constructor = Phaser.Physics.P2.Spring; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67089,7 +67902,7 @@ Phaser.Physics.P2.Spring.prototype.constructor = Phaser.Physics.P2.Spring; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67119,7 +67932,7 @@ Phaser.Physics.P2.Material.prototype.constructor = Phaser.Physics.P2.Material; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67183,7 +67996,7 @@ Phaser.Physics.P2.ContactMaterial.prototype.constructor = Phaser.Physics.P2.Cont /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67205,7 +68018,7 @@ Phaser.Physics.P2.CollisionGroup = function (bitmask) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67255,7 +68068,7 @@ Phaser.Physics.P2.DistanceConstraint.prototype.constructor = Phaser.Physics.P2.D /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67296,7 +68109,7 @@ Phaser.Physics.P2.GearConstraint.prototype.constructor = Phaser.Physics.P2.GearC /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67341,7 +68154,7 @@ Phaser.Physics.P2.LockConstraint.prototype.constructor = Phaser.Physics.P2.LockC /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67391,7 +68204,7 @@ Phaser.Physics.P2.PrismaticConstraint.prototype.constructor = Phaser.Physics.P2. /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67443,7 +68256,7 @@ Phaser.Physics.P2.RevoluteConstraint.prototype.constructor = Phaser.Physics.P2.R /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67574,7 +68387,7 @@ Phaser.ImageCollection.prototype.constructor = Phaser.ImageCollection; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67982,7 +68795,7 @@ Object.defineProperty(Phaser.Tile.prototype, "bottom", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -69904,7 +70717,7 @@ Object.defineProperty(Phaser.Tilemap.prototype, "layer", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -71192,7 +72005,7 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -71205,7 +72018,7 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", { Phaser.TilemapParser = { /** - * When scanning the Tiled map data the TilemapParser can either insert a null value (true) or + * When scanning the Tiled map data the TilemapParser can either insert a null value (true) or * a Phaser.Tile instance with an index of -1 (false, the default). Depending on your game type * depends how this should be configured. If you've a large sparsely populated map and the tile * data doesn't need to change then setting this value to `true` will help with memory consumption. @@ -71425,15 +72238,15 @@ Phaser.TilemapParser = { } var curl = json.layers[i]; - + // Base64 decode data if necessary - // NOTE: uncompressed base64 only. + // NOTE: uncompressed base64 only. if (!curl.compression && curl.encoding && curl.encoding === "base64") { var binaryString = window.atob(curl.data); var len = binaryString.length; var bytes = new Array( len ); // Interpret binaryString as an array of bytes representing - // little-endian encoded uint32 values. + // little-endian encoded uint32 values. for (var j = 0; j < len; j+=4) { bytes[j/4] = (binaryString.charCodeAt(j) | binaryString.charCodeAt(j+1) << 8 | @@ -71441,6 +72254,11 @@ Phaser.TilemapParser = { binaryString.charCodeAt(j+3) << 24) >>> 0; } curl.data = bytes; + delete curl.encoding; + } + else if(curl.compression){ + console.warn('TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer \'' + curl.name + '\''); + continue; } @@ -71484,7 +72302,7 @@ Phaser.TilemapParser = { flipped = false; gid = curl.data[t]; - // If true the current tile is flipped or rotated (Tiled TMX format) + // If true the current tile is flipped or rotated (Tiled TMX format) if (gid > 0x20000000) { flippedVal = 0; @@ -71509,7 +72327,7 @@ Phaser.TilemapParser = { gid -= 0x20000000; flippedVal += 1; } - + switch (flippedVal) { case 5: @@ -71638,7 +72456,7 @@ Phaser.TilemapParser = { else { var newCollection = new Phaser.ImageCollection(set.name, set.firstgid, set.tilewidth, set.tileheight, set.margin, set.spacing, set.properties); - + for (var ti in set.tiles) { var image = set.tiles[ti].image; @@ -71877,7 +72695,7 @@ Phaser.TilemapParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -72095,7 +72913,7 @@ Phaser.Tileset.prototype = { if (rowCount % 1 !== 0 || colCount % 1 !== 0) { - console.warn("Phaser.Tileset - image tile area is not an even multiple of tile size"); + console.warn("Phaser.Tileset - " + this.name + " image tile area is not an even multiple of tile size"); } // In Tiled a tileset image that is not an even multiple of the tile dimensions @@ -72138,7 +72956,7 @@ Phaser.Tileset.prototype.constructor = Phaser.Tileset; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -72304,7 +73122,7 @@ Phaser.Particle.prototype.reset = function(x, y, health) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -72385,7 +73203,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -72397,7 +73215,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; Phaser.Particles.Arcade = {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -72938,7 +73756,7 @@ Phaser.Particles.Arcade.Emitter.prototype.start = function (explode, lifespan, f else { this.on = true; - this._quantity += quantity; + this._quantity = quantity; this._counter = 0; this._timer = this.game.time.time + frequency * this.game.time.slowMotion; } @@ -73399,21 +74217,21 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** * A Video object that takes a previously loaded Video from the Phaser Cache and handles playback of it. -* +* * Alternatively it takes a getUserMedia feed from an active webcam and streams the contents of that to * the Video instead (see `startMediaStream` method) -* +* * The video can then be applied to a Sprite as a texture. If multiple Sprites share the same Video texture and playback * changes (i.e. you pause the video, or seek to a new time) then this change will be seen across all Sprites simultaneously. * * Due to a bug in IE11 you cannot play a video texture to a Sprite in WebGL. For IE11 force Canvas mode. -* +* * If you need each Sprite to be able to play a video fully independently then you will need one Video object per Sprite. * Please understand the obvious performance implications of doing this, and the memory required to hold videos in RAM. * @@ -73422,7 +74240,7 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", { * it's worth noting that every single Video needs to be touch unlocked, not just the first one. You can use the `changeSource` * method to try and work around this limitation, but see the method help for details. * -* Small screen devices, especially iPod and iPhone will launch the video in its own native video player, +* Small screen devices, especially iPod and iPhone will launch the video in its own native video player, * outside of the Safari browser. There is no way to avoid this, it's a device imposed limitation. * * @class Phaser.Video @@ -73677,7 +74495,7 @@ Phaser.Video = function (game, key, url) { * A snapshot grabbed from the video. This is initially black. Populate it by calling Video.grab(). * When called the BitmapData is updated with a grab taken from the current video playing or active video stream. * If Phaser has been compiled without BitmapData support this property will always be `null`. - * + * * @property {Phaser.BitmapData} snapshot * @readOnly */ @@ -74117,11 +74935,11 @@ Phaser.Video.prototype = { /** * Stops the video playing. - * + * * This removes all locally set signals. - * + * * If you only wish to pause playback of the video, to resume at a later time, use `Video.paused = true` instead. - * If the video hasn't finished downloading calling `Video.stop` will not abort the download. To do that you need to + * If the video hasn't finished downloading calling `Video.stop` will not abort the download. To do that you need to * call `Video.destroy` instead. * * If you are using a video stream from a webcam then calling Stop will disconnect the MediaStream session and disable the webcam. @@ -74159,7 +74977,17 @@ Phaser.Video.prototype = { } else { - this.videoStream.stop(); + if (this.videoStream.getTracks) + { + this.videoStream.getTracks().forEach(function (track) { + track.stop(); + }); + } + else + { + this.videoStream.stop(); + } + } } @@ -74339,7 +75167,7 @@ Phaser.Video.prototype = { * On some mobile browsers you cannot play a video until the user has explicitly touched the video to allow it. * Phaser handles this via the `setTouchLock` method. However if you have 3 different videos, maybe an "Intro", "Start" and "Game Over" * split into three different Video objects, then you will need the user to touch-unlock every single one of them. - * + * * You can avoid this by using just one Video object and simply changing the video source. Once a Video element is unlocked it remains * unlocked, even if the source changes. So you can use this to your benefit to avoid forcing the user to 'touch' the video yet again. * @@ -74386,7 +75214,7 @@ Phaser.Video.prototype = { /** * Internal callback that monitors the download progress of a video after changing its source. - * + * * @method Phaser.Video#checkVideoProgress * @private */ @@ -74417,7 +75245,7 @@ Phaser.Video.prototype = { /** * Sets the Input Manager touch callback to be Video.unlock. * Required for mobile video unlocking. Mostly just used internally. - * + * * @method Phaser.Video#setTouchLock */ setTouchLock: function () { @@ -74431,7 +75259,7 @@ Phaser.Video.prototype = { * Enables the video on mobile devices, usually after the first touch. * If the SoundManager hasn't been unlocked then this will automatically unlock that as well. * Only one video can be pending unlock at any one time. - * + * * @method Phaser.Video#unlock */ unlock: function () { @@ -74495,7 +75323,7 @@ Phaser.Video.prototype = { /** * Removes the Video element from the DOM by calling parentNode.removeChild on itself. * Also removes the autoplay and src attributes and nulls the reference. - * + * * @method Phaser.Video#removeVideoElement */ removeVideoElement: function () { @@ -74641,7 +75469,7 @@ Object.defineProperty(Phaser.Video.prototype, "mute", { /** * Gets or sets the paused state of the Video. * If the video is still touch locked (such as on iOS devices) this call has no effect. -* +* * @name Phaser.Video#paused * @property {boolean} paused */ @@ -74745,7 +75573,7 @@ Object.defineProperty(Phaser.Video.prototype, "playbackRate", { * Gets or sets if the Video is set to loop. * Please note that at present some browsers (i.e. Chrome) do not support *seamless* video looping. * If the video isn't yet set this will always return false. -* +* * @name Phaser.Video#loop * @property {boolean} loop */ @@ -74792,7 +75620,7 @@ Phaser.Video.prototype.constructor = Phaser.Video; /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -74836,7 +75664,7 @@ PIXI.TextureSilentFail = true; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ diff --git a/build/custom/phaser-split.map b/build/custom/phaser-split.map index 7fcd600c9..d076ba3e0 100644 --- a/build/custom/phaser-split.map +++ b/build/custom/phaser-split.map @@ -1 +1 @@ -{"version":3,"file":"phaser-split.min.js","sources":["phaser-split.js"],"names":["WheelEventProxy","scaleFactor","deltaMode","this","_scaleFactor","_deltaMode","originalEvent","root","Phaser","VERSION","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","blendModes","NORMAL","ADD","MULTIPLY","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","scaleModes","DEFAULT","LINEAR","NEAREST","PIXI","Math","trunc","x","ceil","floor","Function","prototype","bind","slice","Array","thisArg","bound","args","boundArgs","concat","call","arguments","target","apply","TypeError","F","proto","isArray","arg","Object","toString","forEach","fun","t","len","length","i","window","Uint32Array","CheapArray","type","constructor","console","log","assert","warn","Utils","getProperty","obj","prop","parts","split","last","pop","l","current","setProperty","value","chanceRoll","chance","undefined","random","randomChoice","choice1","choice2","parseDimension","size","dimension","f","px","substr","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","join","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","src","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","key","get","set","defineProperty","from","to","o","childNodes","cloneNode","Circle","y","diameter","_diameter","_radius","circumference","PI","out","Point","u","r","cos","sin","radius","getBounds","Rectangle","setTo","copyFrom","source","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offset","dx","dy","offsetPoint","point","a","top","bottom","equals","b","intersects","degToRad","intersectsRectangle","c","cx","abs","halfWidth","xDist","cy","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","width","height","p","sqrt","normx","normy","Line","x1","y1","x2","y2","start","end","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","result","intersectsPoints","reflect","midPoint","centerOn","tx","ty","add","pointOnLine","pointOnSegment","xMin","min","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","push","e2","atan2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","normalAngle","Matrix","d","fromArray","array","matrix","toArray","transpose","Float32Array","pos","newPos","applyInverse","id","translate","scale","tx1","append","d1","identity","identityMatrix","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","points","Error","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","toNumberArray","flatten","inside","j","ix","iy","jx","jy","y0","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerX","centerY","floorAll","ceilAll","inflate","resize","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","EmptyRectangle","RoundedRectangle","Camera","game","world","view","bounds","deadzone","visible","roundPx","atLimit","displayObject","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","preUpdate","follow","style","helper","w","h","unfollow","focusOn","setPosition","focusOnXY","update","updateTarget","checkBounds","position","parent","worldTransform","setBoundsToWorld","setSize","reset","State","make","camera","cache","input","load","math","sound","stage","time","tweens","particles","physics","rnd","init","preload","loadUpdate","loadRender","create","preRender","render","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","splice","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","clear","debug","destroy","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","context","save","setTransform","restore","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","n","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","uniforms","fragmentSrc","passes","shaders","dirty","padding","prevPoint","Date","resolution","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","textureData","repeat","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","image","anchor","filters","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","DisplayObjectContainer","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","_bgColor","g","color","rgba","transparent","config","parseConfig","setBackgroundColor","DOM","getOffset","canvas","Canvas","setUserSelect","setTouchAction","checkVisibility","children","updateTransform","worldAlpha","document","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","z","addChild","physicsType","alive","ignoreDestroy","pendingDestroy","classType","Sprite","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","child","silent","body","removeFromHash","enable","addToHash","events","onAddedToGroup$dispatch","index","indexOf","addMultiple","moveAll","addAt","addChildAt","updateZ","getAt","getChildAt","frame","createMultiple","quantity","resetCursor","next","previous","swap","child1","child2","swapChildren","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","reverse","oldChild","newChild","removeChild","hasProperty","operation","force","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","filter","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","startIndex","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","removed","group","removeBetween","endIndex","destroyChildren","soft","rotation","World","_definedSize","_width","_height","stateChange","setBounds","sprite","useBounds","horizontal","vertical","_currentBounds","between","Game","renderer","antialias","physicsConfig","preserveDrawingBuffer","clearBeforeRender","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","CanvasRenderer","WebGLRenderer","contextLost","contextRestored","cocoonJS","screencanvas","smoothed","addToDOM","preventDefault","initContext","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","count","refresh","timeStep","enableStep","disableStep","step","stop","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","CanvasPool","getContext","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","wt","hitTest","localPoint","worldVisible","hitArea","TileSprite","texture","Graphics","graphicsData","data","fill","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","duration","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","baseTexture","trim","crop","_dx","_dy","clearRect","drawImage","rgb","getImageData","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","offsetX","offsetY","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","navigator","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","_bounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","requiresReTint","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","rect","updateCrop","resetFrame","_frame","cw","ch","_updateUvs","Delta","Destroy","destroyTexture","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","mask","renderable","transformCallback","transformCallbackContext","filterArea","_mask","_destroyCachedSprite","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","setFrame","scaleMode","RenderTexture","setTexture","BitmapData","hasFrameData","loadFrameData","getFrameData","valid","Texture","img","getImage","base","skipRender","frameData","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","tilingTexture","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","minX","minY","maxX","maxY","Smoothed","existing","object","Image","creature","mesh","Creature","tween","physicsGroup","spriteBatch","SpriteBatch","audio","audioSprite","addSprite","tileSprite","rope","Rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","graphics","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","Tilemap","renderTexture","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","align","TextureCache","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","alpha","ctx","imageData","pixels","buffer","ArrayBuffer","BaseTexture","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","fillStyle","fillRect","generateTexture","toDataURL","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","putImageData","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","direction","scan","scaleX","scaleY","newWidth","newHeight","blendMode","tint","cachedTint","tintedTexture","CanvasTinter","getTintedTexture","globalAlpha","op","copyRect","drawGroup","drawGroupProxy","drawFull","CanvasGraphics","renderGraphics","worldPosition","worldRotation","worldScale","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","beginPath","arc","closePath","moveTo","lineTo","lineWidth","strokeStyle","stroke","textureLine","createPattern","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","globalCompositeOperation","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","_webGL","isMask","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","fillColor","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","canvasBuffer","CanvasBuffer","fromCanvas","_renderWebGL","renderSession","_cacheAsBitmap","_generateCachedSprite","updateCachedSpriteTexture","_cachedSprite","blendModeManager","setBlendMode","maskManager","pushMask","_filters","filterManager","pushFilter","_filterBlock","currentBlendMode","blendModeWebGL","blendModesWebGL","gl","blendFunc","WebGLGraphics","popFilter","popMask","drawCount","_renderCanvas","_prevTint","transform","blendModesCanvas","updateLocalBounds","w0","w1","h0","h1","x3","y3","x4","y4","tempPoint","Infinity","RECT","RREC","CIRC","ELIP","getLocalBounds","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","webGLData","projection","shader","shaderManager","primitiveShader","updateGraphics","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","setShader","uniformMatrix3fv","translationMatrix","uniform1f","flipY","uniform2f","projectionVector","offsetVector","uniform3fv","tintColor","hex2rgb","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","aVertexPosition","FLOAT","colorAttribute","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","dist","indexCount","indexStart","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","Uint16Array","updateGraphicsTint","strokeRect","kappa","ox","oy","xe","ye","xm","ym","maxRadius","renderGraphicsMask","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","vertices","point1","point2","point3","_tempMatrix","renderXY","WEBGL_RENDERER","renderWebGL","renderCanvas","renderRawXY","textBounds","colors","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","isCocoonJS","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","updateTexture","snap","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","fontFamily","setText","parseList","setTextBounds","pivot","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","TilingSprite","tilePosition","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","item","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","createElement","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","Uint8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","getSmoothingPrefix","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","range","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","v0","v1","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","s1","s2","sow","integer","frac","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","level","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","complete","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","elapsedMS","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","frameId","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","attributes","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","format","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","getCanvas","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","BaseTextureCache","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","_glTextures","baseURL","isLoading","hasLoaded","preloadSprite","crossOrigin","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","temp","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","entity","palettes",1,2,3,4,5,6,7,8,9,"PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hex","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","v2","bounce","moves","friction","nv1","mass","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","Spring","broadphase","SAPBroadphase","useElapsedTime","materials","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","on","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","_boundsLeft","_boundsRight","_boundsTop","_boundsBottom","_boundsOwnGroup","removeBodyNextStep","removeBody","setImpactEvents","impactHandler","off","setPostBroadphaseCallback","postBroadphaseHandler","pairs","bodyA","bodyB","_bodyCallbacks","_bodyCallbackContext","shapeA","shapeB","_groupCallbacks","collisionGroup","_groupCallbackContext","contactEquations","setCollisionGroup","setWorldMaterial","material","shapes","updateBoundsCollisionGroup","addShape","Plane","addBody","fixedStepTime","solver","equations","removeAllEquations","cs","constraints","removeConstraint","bodies","springs","removeSpring","cms","contactMaterials","removeContactMaterial","impactCallback","addSpring","spring","RotationalSpring","createDistanceConstraint","localAnchorA","localAnchorB","maxForce","getBody","addConstraint","DistanceConstraint","createGearConstraint","ratio","GearConstraint","createRevoluteConstraint","pivotA","pivotB","worldPivot","RevoluteConstraint","createLockConstraint","LockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","PrismaticConstraint","constraint","addContactMaterial","getContactMaterial","materialA","materialB","setMaterial","createMaterial","Material","createContactMaterial","contact","ContactMaterial","getBodies","getSprings","getConstraints","worldPoint","precision","filterStatic","physicsPosition","query","STATIC","toJSON","createCollisionGroup","bitmask","collisionMask","createSpring","restLength","stiffness","damping","worldA","worldB","localA","localB","createRotationalSpring","restAngle","createBody","addPolygon","createParticle","convertCollisionObjects","map","collision","polyline","clearTilemapLayerBodies","getLayer","convertTilemap","optimize","collides","getTileRight","addRectangle","defaultContactMaterial","restitution","applySpringForces","applyDamping","applyGravity","solveConstraints","emitImpactEvent","sleepMode","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","sensor","getFixtureByKey","getGroup","groupID","_ref","_results","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","removeCollisionGroup","clearCallback","adjustCenterOfMass","shapeChanged","getVelocityAtPoint","relativePoint","applyImpulse","impulse","applyImpulseLocal","localX","localY","applyForce","setZeroForce","setZeroRotation","setZeroVelocity","setZeroDamping","angularDamping","toLocalFrame","toWorldFrame","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","fixedRotation","updateSpriteTransform","resetDamping","resetMass","clearShapes","removeShape","addCircle","Box","addPlane","addParticle","Particle","addLine","addCapsule","Capsule","fromPolygon","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","aabbNeedsUpdate","generatedShapes","categoryBits","maskBits","isSensor","vec2","polygons","cm","Convex","sub","centerOfMass","updateTriangles","updateCenterOfMass","updateBoundingRadius","loadPolygon","DYNAMIC","KINEMATIC","allowSleep","angularForce","inertia","updateMassProperties","sleepSpeedLimit","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","lw","vrot","_j","_ref1","randomPastelHex","drawCapsule","drawPlane","drawLine","drawRectangle","drawConvex","x0","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex","worldAnchorA","worldAnchorB","LinearSpring","localOffsetB","localAngleB","localAxisA","disableRotationalLock","localPivotA","localPivotB","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","currentLayer","debugMap","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","customClass","lh","createLayer","getLayerIndex","TilemapLayer","indexes","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","requiresUpdate","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","tw","th","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","ti","curo","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","forceLoaded","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute","emptyTexture","DisplayObject","tempMatrix","TextureSilentFail","exports","module","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser-split.min.js","sources":["phaser-split.js"],"names":["WheelEventProxy","scaleFactor","deltaMode","this","_scaleFactor","_deltaMode","originalEvent","root","Phaser","VERSION","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","CIRCLE","RECTANGLE","LINE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","blendModes","NORMAL","ADD","MULTIPLY","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","scaleModes","DEFAULT","LINEAR","NEAREST","PIXI","Math","trunc","x","ceil","floor","Function","prototype","bind","slice","Array","thisArg","bound","args","boundArgs","concat","call","arguments","target","apply","TypeError","F","proto","isArray","arg","Object","toString","forEach","fun","t","len","length","i","window","Uint32Array","CheapArray","type","constructor","console","log","assert","warn","Utils","getProperty","obj","prop","parts","split","last","pop","l","current","setProperty","value","chanceRoll","chance","undefined","random","randomChoice","choice1","choice2","parseDimension","size","dimension","f","px","substr","parseInt","innerWidth","innerHeight","pad","str","dir","padlen","join","right","left","isPlainObject","nodeType","hasOwnProperty","e","extend","options","name","src","copy","copyIsArray","clone","deep","mixinPrototype","mixin","replace","mixinKeys","keys","key","get","set","defineProperty","from","to","o","childNodes","cloneNode","Circle","y","diameter","_diameter","_radius","circumference","PI","out","Point","u","r","cos","sin","radius","getBounds","Rectangle","setTo","copyFrom","source","copyTo","dest","distance","round","output","contains","circumferencePoint","angle","asDegrees","offset","dx","dy","offsetPoint","point","a","top","bottom","equals","b","intersects","degToRad","intersectsRectangle","c","cx","abs","halfWidth","xDist","cy","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","width","height","p","sqrt","normx","normy","Line","x1","y1","x2","y2","start","end","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotate","rotateAround","line","asSegment","result","intersectsPoints","reflect","midPoint","centerOn","tx","ty","add","pointOnLine","pointOnSegment","xMin","min","xMax","max","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","push","e2","atan2","wrap","a1","a2","b1","b2","c1","c2","denom","uc","ua","ub","normalAngle","Matrix","d","fromArray","array","matrix","toArray","transpose","Float32Array","pos","newPos","applyInverse","id","translate","scale","tx1","append","d1","identity","identityMatrix","invert","subtract","multiply","divide","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","normalize","isZero","m","dot","cross","perp","rperp","normalRightHand","negative","multiplyAdd","s","interpolate","project","amt","projectUnit","centroid","points","Error","pointslength","parse","xProp","yProp","Polygon","area","_points","closed","toNumberArray","flatten","inside","j","ix","iy","jx","jy","y0","Number","MAX_VALUE","calculateArea","p1","p2","avgHeight","centerX","centerY","floorAll","ceilAll","inflate","resize","containsRect","intersection","intersectsRaw","tolerance","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","containsPoint","volume","sameDimensions","aabb","MIN_VALUE","EmptyRectangle","RoundedRectangle","Camera","game","world","view","bounds","deadzone","visible","roundPx","atLimit","displayObject","totalInView","lerp","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","_shake","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","camera","Graphics","stage","addChild","preUpdate","follow","style","lerpX","lerpY","helper","w","h","unfollow","focusOn","setPosition","focusOnXY","shake","force","direction","flash","color","clear","beginFill","drawRect","endFill","alpha","fade","update","updateFX","updateTarget","updateShake","checkBounds","position","time","elapsedMS","dispatch","rnd","frac","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","reset","resetFX","State","make","cache","input","load","sound","tweens","particles","physics","init","preload","loadUpdate","loadRender","create","preRender","render","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","remove","callbackContext","clearWorld","clearCache","checkState","splice","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","destroy","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","context","save","setTransform","restore","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","listener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","n","_priority","cur","_listener","has","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","uniforms","fragmentSrc","passes","shaders","dirty","padding","prevPoint","Date","resolution","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","textureData","repeat","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","addToWorld","anchorX","anchorY","image","anchor","filters","Plugin","parent","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","DisplayObjectContainer","disableVisibilityChange","exists","worldTransform","currentRenderOrderID","_hiddenVar","_onChange","_bgColor","g","rgba","transparent","config","parseConfig","setBackgroundColor","DOM","getOffset","canvas","Canvas","setUserSelect","setTouchAction","checkVisibility","children","updateTransform","worldAlpha","document","webkitHidden","mozHidden","msHidden","hidden","event","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","z","physicsType","alive","ignoreDestroy","pendingDestroy","classType","Sprite","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","child","silent","body","removeFromHash","enable","addToHash","events","onAddedToGroup$dispatch","index","indexOf","addMultiple","moveAll","addAt","addChildAt","updateZ","getAt","getChildAt","frame","createMultiple","quantity","resetCursor","next","previous","swap","child1","child2","swapChildren","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","reverse","getByName","oldChild","newChild","removeChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","amount","subAll","multiplyAll","divideAll","callAllExists","callback","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","filter","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","sort","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","total","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","startIndex","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","removed","group","removeBetween","endIndex","destroyChildren","soft","rotation","World","_definedSize","_width","_height","stateChange","setBounds","sprite","useBounds","_currentBounds","between","Game","renderer","antialias","physicsConfig","preserveDrawingBuffer","clearBeforeRender","isRunning","raf","net","Device","lockRender","stepping","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","v","webAudio","chrome","webGL","CanvasRenderer","WebGLRenderer","contextLost","contextRestored","cocoonJS","screencanvas","smoothed","addToDOM","preventDefault","initContext","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","count","refresh","timeStep","enableStep","disableStep","step","stop","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","enabled","multiInputOverride","MOUSE_TOUCH_COMBINE","speed","circle","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","CanvasPool","getContext","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","wt","hitTest","localPoint","worldVisible","hitArea","TileSprite","texture","graphicsData","data","fill","shape","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","first","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","baseTexture","trim","crop","_dx","_dy","clearRect","drawImage","rgb","getImageData","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","py","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","offsetX","offsetY","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","navigator","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","k","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","axes","processAxisChange","triggerCallback","disconnectingIndex","axis","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","B","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","_bounds","Bounds","BringToTop","Core","install","components","previousPosition","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","requiresReTint","fresh","_exists","P2JS","removeFromWorld","customRender","Crop","cropRect","_crop","rect","updateCrop","resetFrame","_frame","cw","ch","_updateUvs","Delta","Destroy","destroyTexture","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","mask","renderable","transformCallback","transformCallbackContext","filterArea","_mask","_destroyCachedSprite","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","setFrame","scaleMode","RenderTexture","setTexture","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","valid","Tilemap","TilemapLayer","Texture","fromCanvas","img","getImage","base","skipRender","trimmed","spriteSourceSizeX","spriteSourceSizeY","sourceSizeW","sourceSizeH","tilingTexture","refreshTexture","frameName","Overlap","overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","minX","minY","maxX","maxY","Smoothed","existing","object","Image","creature","mesh","Creature","tween","physicsGroup","spriteBatch","SpriteBatch","audio","audioSprite","addSprite","tileSprite","rope","Rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","graphics","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","tileHeight","renderTexture","addToCache","uuid","addRenderTexture","video","url","bitmapData","addBitmapData","Tween","align","TextureCache","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","ctx","imageData","pixels","buffer","ArrayBuffer","BaseTexture","FrameData","textureFrame","addFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","fillStyle","fillRect","generateTexture","toDataURL","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","putImageData","processPixel","replaceRGB","r1","g1","r2","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","scaleX","scaleY","newWidth","newHeight","blendMode","tint","cachedTint","tintedTexture","CanvasTinter","getTintedTexture","globalAlpha","op","copyRect","drawGroup","drawGroupProxy","drawFull","CanvasGraphics","renderGraphics","worldPosition","worldRotation","worldScale","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","beginPath","arc","closePath","moveTo","lineTo","lineWidth","strokeStyle","stroke","textureLine","createPattern","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","globalCompositeOperation","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","_webGL","isMask","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt","dt2","dt3","t2","t3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","fillColor","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","path","clearDirty","canvasBuffer","CanvasBuffer","_renderWebGL","renderSession","_cacheAsBitmap","_generateCachedSprite","updateCachedSpriteTexture","_cachedSprite","blendModeManager","setBlendMode","maskManager","pushMask","_filters","filterManager","pushFilter","_filterBlock","currentBlendMode","blendModeWebGL","blendModesWebGL","gl","blendFunc","WebGLGraphics","popFilter","popMask","drawCount","_renderCanvas","_prevTint","transform","blendModesCanvas","updateLocalBounds","w0","w1","h0","h1","x3","y3","x4","y4","tempPoint","Infinity","RECT","RREC","CIRC","ELIP","getLocalBounds","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","PolyK","Triangulate","sign","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","earFound","_convex","vi","_PointInTriangle","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","triangles","eliminateHoles","earcutLinked","clockwise","sum","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","queue","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","q1","q2","Node","an","bp","stencilBufferLimit","webGLData","projection","shader","shaderManager","primitiveShader","updateGraphics","mode","stencilManager","pushStencil","drawElements","TRIANGLE_FAN","UNSIGNED_SHORT","indices","popStencil","setShader","uniformMatrix3fv","translationMatrix","uniform1f","flipY","uniform2f","projectionVector","offsetVector","uniform3fv","tintColor","hex2rgb","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","aVertexPosition","FLOAT","colorAttribute","ELEMENT_ARRAY_BUFFER","indexBuffer","TRIANGLE_STRIP","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","verts","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","lastPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","dist","indexCount","indexStart","createBuffer","glPoints","bufferData","STATIC_DRAW","glIndicies","Uint16Array","updateGraphicsTint","strokeRect","kappa","ox","oy","xe","ye","xm","ym","maxRadius","renderGraphicsMask","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","ab","faceNormal","drawTriangles","vertices","point1","point2","point3","_tempMatrix","renderXY","WEBGL_RENDERER","renderWebGL","renderCanvas","renderRawXY","textBounds","colors","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","maxLines","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","drawnLines","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","isCocoonJS","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","updateTexture","snap","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","family","exec","fontFamily","setText","parseList","setTextBounds","pivot","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","idx","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","TilingSprite","tilePosition","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","node","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","edge","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","item","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","createElement","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","require","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","Uint8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","getSmoothingPrefix","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","epsilon","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","pow","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","range","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","p0","factorial","res","p3","v0","v1","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","s1","s2","sow","integer","integerInRange","realInRange","normal","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","level","objects","nodes","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","complete","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","repeatTotal","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","tick","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","frameId","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameWidth","frameHeight","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","attributes","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","format","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","getCanvas","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","BaseTextureCache","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","_glTextures","baseURL","isLoading","hasLoaded","preloadSprite","crossOrigin","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","mute","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","updateGlobalVolume","globalVolume","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","multiplier","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","targetWidth","targetHeight","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","scaleManager","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","self","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","Body","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","getByKey","randomIndex","removeRandomItem","shuffle","temp","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","entity","palettes",1,2,3,4,5,6,7,8,9,"PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hex","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","gravity","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularVelocity","angularAcceleration","angularDrag","maxAngular","velocity","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","resultX","resultY","separateX","separateY","isCircle","circleBodyIntersects","getOverlapX","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","getOverlapY","deltaAbsY","overlapY","immovable","customSeparateX","v2","bounce","moves","friction","nv1","mass","nv2","avg","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","setCircle","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","Spring","broadphase","SAPBroadphase","useElapsedTime","materials","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","on","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","_boundsLeft","_boundsRight","_boundsTop","_boundsBottom","_boundsOwnGroup","removeBodyNextStep","removeBody","setImpactEvents","impactHandler","off","setPostBroadphaseCallback","postBroadphaseHandler","pairs","bodyA","bodyB","_bodyCallbacks","_bodyCallbackContext","shapeA","shapeB","_groupCallbacks","collisionGroup","_groupCallbackContext","contactEquations","setCollisionGroup","setWorldMaterial","material","shapes","updateBoundsCollisionGroup","setupWall","wall","addShape","Plane","addBody","fixedStepTime","solver","equations","removeAllEquations","cs","constraints","removeConstraint","bodies","springs","removeSpring","cms","contactMaterials","removeContactMaterial","impactCallback","addSpring","spring","RotationalSpring","createDistanceConstraint","localAnchorA","localAnchorB","maxForce","getBody","addConstraint","DistanceConstraint","createGearConstraint","ratio","GearConstraint","createRevoluteConstraint","pivotA","pivotB","worldPivot","RevoluteConstraint","createLockConstraint","LockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","PrismaticConstraint","constraint","addContactMaterial","getContactMaterial","materialA","materialB","setMaterial","createMaterial","Material","createContactMaterial","contact","ContactMaterial","getBodies","getSprings","getConstraints","worldPoint","precision","filterStatic","physicsPosition","query","STATIC","toJSON","createCollisionGroup","bitmask","collisionMask","createSpring","restLength","stiffness","damping","worldA","worldB","localA","localB","createRotationalSpring","restAngle","createBody","addPolygon","createParticle","convertCollisionObjects","map","collision","polyline","clearTilemapLayerBodies","getLayer","convertTilemap","optimize","collides","getTileRight","addRectangle","defaultContactMaterial","restitution","applySpringForces","applyDamping","applyGravity","solveConstraints","emitImpactEvent","sleepMode","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","sensor","getFixtureByKey","getGroup","groupID","_ref","_results","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","removeCollisionGroup","clearCallback","adjustCenterOfMass","shapeChanged","getVelocityAtPoint","relativePoint","applyImpulse","impulse","applyImpulseLocal","localX","localY","applyForce","setZeroForce","setZeroRotation","setZeroVelocity","setZeroDamping","angularDamping","toLocalFrame","toWorldFrame","rotateLeft","rotateRight","moveForward","moveBackward","thrust","thrustLeft","thrustRight","moveLeft","moveRight","fixedRotation","updateSpriteTransform","resetDamping","resetMass","clearShapes","removeShape","addCircle","Box","addPlane","addParticle","Particle","addLine","addCapsule","Capsule","fromPolygon","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","aabbNeedsUpdate","generatedShapes","categoryBits","maskBits","isSensor","vec2","polygons","cm","Convex","sub","centerOfMass","updateTriangles","updateCenterOfMass","updateBoundingRadius","loadPolygon","DYNAMIC","KINEMATIC","allowSleep","angularForce","inertia","updateMassProperties","sleepSpeedLimit","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","lw","vrot","_j","_ref1","randomPastelHex","drawCapsule","drawPlane","drawLine","drawRectangle","drawConvex","x0","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex","worldAnchorA","worldAnchorB","LinearSpring","localOffsetB","localAngleB","localAxisA","disableRotationalLock","localPivotA","localPivotB","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","faces","TilemapParser","version","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","currentLayer","debugMap","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","found","createFromTiles","replacements","customClass","lh","createLayer","getLayerIndex","indexes","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","skip","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","requiresUpdate","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","tw","th","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","ti","curo","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","at","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","forceLoaded","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","getTracks","track","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute","emptyTexture","DisplayObject","tempMatrix","TextureSilentFail","exports","module","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/phaser-split.min.js b/build/custom/phaser-split.min.js index 71f7fea9f..fcc9e0cd1 100644 --- a/build/custom/phaser-split.min.js +++ b/build/custom/phaser-split.min.js @@ -1,20 +1,21 @@ -/* Phaser v2.4.6 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.7 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */ -(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x), -this.view.right>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width),this.view.y<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y),this.view.bottom>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if(void 0===e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY))); -}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y), -this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e){(void 0===d||0===d)&&(d=256),(void 0===e||0===e)&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=PIXI.CanvasPool.create(this,d,e),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData"),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if((void 0===a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if((void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.type===c.EMITTER||a.type===c.BITMAPTEXT)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kp&&Math.abs(p)>n&&(p=-n),0!==p&&(o+=p*b.length),this.canvas.height=o*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var q,r;for(this._charCount=0,g=0;g0&&(r+=p*g),"right"===this.style.align?q+=e-d[g]:"center"===this.style.align&&(q+=(e-d[g])/2),this.autoRound&&(q=Math.round(q),r=Math.round(r)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[g],q,r):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],q,r):this.renderTabLine(b[g],q,r,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],q,r):this.renderTabLine(b[g],q,r,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=PIXI.CanvasPool.create(c.Text.fontPropertiesCanvas),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=(m.xAdvance+o)*b,i.push(d+(m.xOffset+o)*b),d+=(m.xAdvance+o)*b,g=l}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),(void 0===d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"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(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=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=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.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(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING; -this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=this.game.make.bitmapData(this.game.width,this.game.height),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255); -var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)},worldAngleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.world.x,d=b.worldY-a.world.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,c.Physics.P2=function(a,b){this.game=a,void 0===b?b={gravity:[0,0],broadphase:new p2.SAPBroadphase}:(b.hasOwnProperty("gravity")||(b.gravity=[0,0]),b.hasOwnProperty("broadphase")||(b.broadphase=new p2.SAPBroadphase)),this.config=b,this.world=new p2.World(this.config),this.frameRate=1/60,this.useElapsedTime=!1,this.paused=!1,this.materials=[],this.gravity=new c.Physics.P2.InversePointProxy(this,this.world.gravity),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new c.Signal,this.onBodyRemoved=new c.Signal,this.onSpringAdded=new c.Signal,this.onSpringRemoved=new c.Signal,this.onConstraintAdded=new c.Signal,this.onConstraintRemoved=new c.Signal,this.onContactMaterialAdded=new c.Signal,this.onContactMaterialRemoved=new c.Signal,this.postBroadphaseCallback=null,this.callbackContext=null,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&b.hasOwnProperty("mpxi")&&b.hasOwnProperty("pxmi")&&(this.mpx=b.mpx,this.mpxi=b.mpxi,this.pxm=b.pxm,this.pxmi=b.pxmi),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this.boundsCollidesWith=[],this._toRemove=[],this._collisionGroupID=2,this._boundsLeft=!0,this._boundsRight=!0,this._boundsTop=!0,this._boundsBottom=!0,this._boundsOwnGroup=!1,this.setBoundsToWorld(!0,!0,!0,!0,!1)},c.Physics.P2.prototype={removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b,d){void 0===b&&(b=!1),void 0===d&&(d=!0);var e=1;if(Array.isArray(a))for(e=a.length;e--;)a[e]instanceof c.Group?this.enable(a[e].children,b,d):(this.enableBody(a[e],b),d&&a[e].hasOwnProperty("children")&&a[e].children.length>0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,"undefined"!=typeof a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){ -this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;void 0===a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom)),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||(this.useElapsedTime?this.world.step(this.game.time.physicsElapsed):this.world.step(this.frameRate))},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.addSpring(a.data):this.world.addSpring(a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.removeSpring(a.data):this.world.removeSpring(a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),d=this.getBody(d),a&&d?this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),"undefined"!=typeof b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;de;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(c.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(c.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(c.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(c.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(c.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(c.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(c.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(c.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(c.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),c.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},c.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},c.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.PointProxy.prototype.constructor=c.Physics.P2.PointProxy,Object.defineProperty(c.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),c.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.InversePointProxy.prototype.constructor=c.Physics.P2.InversePointProxy,Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),c.Physics.P2.Body=function(a,b,d,e,f){b=b||null,d=d||0,e=e||0,void 0===f&&(f=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=c.Physics.P2JS,this.offset=new c.Point,this.data=new p2.Body({position:[this.world.pxmi(d),this.world.pxmi(e)],mass:f}),this.data.parent=this,this.velocity=new c.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new c.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new c.Point,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this.dirty=!1,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this._reset=!1,b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},c.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if(void 0===b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if(void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},removeCollisionGroup:function(a,b,c){void 0===b&&(b=!0);var d;if(Array.isArray(a))for(var e=0;e-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));else d=this.collidesWith.indexOf(a),d>-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));var f=this.getCollisionMask();if(void 0===c)for(var e=this.data.shapes.length-1;e>=0;e--)this.data.shapes[e].collisionMask=f;else c.collisionMask=f},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass(),this.shapeChanged()},getVelocityAtPoint:function(a,b){return this.data.getVelocityAtPoint(a,b)},applyDamping:function(a){this.data.applyDamping(a)},applyImpulse:function(a,b,c){this.data.applyImpulse(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyImpulseLocal:function(a,b,c){this.data.applyImpulseLocal(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.dirty=!0,this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform(),this.dirty=!1},reset:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){void 0===g&&(g=1),void 0===f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){void 0===d&&(d=1),void 0===c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if(void 0===f&&(f=1),void 0===d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for(void 0===e&&(e=1),void 0===c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;void 0===f&&(f=1),void 0===d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},drawCapsule:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1);var j=Math.cos(d),k=Math.sin(d);a.beginFill(h,1),a.drawCircle(-e/2*j+b,-e/2*k+c,2*-f),a.drawCircle(e/2*j+b,e/2*k+c,2*-f),a.endFill(),a.lineStyle(i,g,0),a.beginFill(h,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c),a.lineTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.endFill(),a.lineStyle(i,g,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.moveTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),c.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,void 0===d&&(d=1),void 0===e&&(e=100),void 0===f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,void 0===d&&(d=null),void 0===e&&(e=100),void 0===f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},c.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),c.Physics.P2.Material.prototype.constructor=c.Physics.P2.Material,c.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},c.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),c.Physics.P2.ContactMaterial.prototype.constructor=c.Physics.P2.ContactMaterial,c.Physics.P2.CollisionGroup=function(a){this.mask=a},c.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){void 0===d&&(d=100),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},c.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),c.Physics.P2.DistanceConstraint.prototype.constructor=c.Physics.P2.DistanceConstraint,c.Physics.P2.GearConstraint=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},c.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),c.Physics.P2.GearConstraint.prototype.constructor=c.Physics.P2.GearConstraint,c.Physics.P2.LockConstraint=function(a,b,c,d,e,f){void 0===d&&(d=[0,0]),void 0===e&&(e=0),void 0===f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},c.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),c.Physics.P2.LockConstraint.prototype.constructor=c.Physics.P2.LockConstraint,c.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){void 0===d&&(d=!0),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=[0,0]),void 0===h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},c.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),c.Physics.P2.PrismaticConstraint.prototype.constructor=c.Physics.P2.PrismaticConstraint,c.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){void 0===f&&(f=Number.MAX_VALUE),void 0===g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},c.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),c.Physics.P2.RevoluteConstraint.prototype.constructor=c.Physics.P2.RevoluteConstraint,c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rl;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f); -this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;i>t;t++){if(m=0,n=!1,p=g.data[t],p>536870912)switch(o=0,p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}p>0?(r.push(new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight)),r[r.length-1].rotation=m,r[r.length-1].flipped=n):c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight)),q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var u=[],f=0;fG;G++)if(F.objects[G].gid){var H={gid:F.objects[G].gid,name:F.objects[G].name,type:F.objects[G].hasOwnProperty("type")?F.objects[G].type:"",x:F.objects[G].x,y:F.objects[G].y,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),D[F.name].push(H)}else if(F.objects[G].polyline){var H={name:F.objects[G].name,type:F.objects[G].type,x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),H.polyline=[];for(var I=0;I=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),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.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",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(var b=0;b0?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){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.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(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._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(){return this._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.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}).call(this); +(function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.7 RC1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else if(Array.isArray(a[c]))var e=new PIXI.Point(a[c][0],a[c][1]);else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!d&&this._shake.duration>0?!1:(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215), +void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this.target&&this.updateTarget(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-(this.view.x+this._shake.x),this.displayObject.position.y=-(this.view.y+this._shake.y)},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.copyFrom(this.target.world),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y))},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx.clear(),this.fx.alpha=0,this._fxDuration=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.config.canvas?this.canvas=this.config.canvas:this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera){if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.cameraOffset.x=this.globalToLocalX(a.x)+(this.sprite.cameraOffset.x-d.centerX),this.sprite.cameraOffset.y=this.globalToLocalY(a.y)+(this.sprite.cameraOffset.y-d.centerY)}this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)}else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y)); +}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this), +this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e){(void 0===d||0===d)&&(d=256),(void 0===e||0===e)&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=PIXI.CanvasPool.create(this,d,e),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.frameData=new c.FrameData,this.textureFrame=this.frameData.addFrame(new c.Frame(0,0,0,d,e,"bitmapData")),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if((void 0===a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0));else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if((void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.type===c.EMITTER||a.type===c.BITMAPTEXT)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.frameData.destroy(),this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1), +this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,this.anchor=new c.Point,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){ +void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&this.style.maxLinesh;h++){if(0===c){var i=this.context.measureText(b[h]).width+this.style.strokeThickness+this.padding.x;this.style.wordWrap&&(i-=this.context.measureText(" ").width)}else{var j=b[h].split(/(?:\t)/),i=this.padding.x+this.style.strokeThickness;if(Array.isArray(c))for(var k=0,l=0;l0&&(k+=c[l-1]),i=k+m}else for(var l=0;lq&&Math.abs(q)>o&&(q=-o),0!==q&&(p+=q>0?q*b.length:q*(b.length-1)),this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,h=0;g>h;h++)r=this.style.strokeThickness/2,s=this.style.strokeThickness/2+h*o+f.ascent,h>0&&(s+=q*h),"right"===this.style.align?r+=e-d[h]:"center"===this.style.align&&(r+=(e-d[h])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[h],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[h],r,s):this.renderTabLine(b[h],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[h],r,s):this.renderTabLine(b[h],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=PIXI.CanvasPool.create(c.Text.fontPropertiesCanvas),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f.toString()||"",this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=(m.xAdvance+o)*b,i.push(d+(m.xOffset+o)*b),d+=(m.xAdvance+o)*b,g=l}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),(void 0===d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"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(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=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=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.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(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),this.repeatCounter=a?-1:0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b, +this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this.repeatCounter=this.repeatTotal,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data); +break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=Math.max(0,b),this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted||this.game.sound.mute?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=Math.max(0,this.position+this.pausedPosition/1e3);this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},updateGlobalVolume:function(a){this.usingAudioTag&&this._sound&&(this._sound.volume=a*this._volume)},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this.muteOnPause=!0,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=this.game.make.bitmapData(this.game.width,this.game.height),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.game.scale.onSizeChange.add(this.resize,this),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},resize:function(a,b,c){this.bmd.resize(b,c),this.canvas.width=b,this.canvas.height=c},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){ +return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},getOverlapX:function(a,b){var c=0,d=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;return 0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(c=a.right-b.x,c>d||a.checkCollision.right===!1||b.checkCollision.left===!1?c=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()d||a.checkCollision.left===!1||b.checkCollision.right===!1?c=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=c,b.overlapX=c,c},getOverlapY:function(a,b){var c=0,d=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;return 0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(c=a.bottom-b.y,c>d||a.checkCollision.down===!1||b.checkCollision.up===!1?c=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()d||a.checkCollision.up===!1||b.checkCollision.down===!1?c=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=c,b.overlapY=c,c},separateX:function(a,b,c){var d=this.getOverlapX(a,b);if(c||0===d||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==d;var e=a.velocity.x,f=b.velocity.x;if(a.immovable||b.immovable)a.immovable?(b.x+=d,b.velocity.x=e-f*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x-=d,a.velocity.x=f-e*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x-=d,b.x+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.x=i+g*a.bounce.x,b.velocity.x=i+h*b.bounce.x}return!0},separateY:function(a,b,c){var d=this.getOverlapY(a,b);if(c||0===d||a.immovable&&b.immovable||a.customSeparateY||b.customSeparateY)return 0!==d;var e=a.velocity.y,f=b.velocity.y;if(a.immovable||b.immovable)a.immovable?(b.y+=d,b.velocity.y=e-f*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y-=d,a.velocity.y=f-e*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y-=d,b.y+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.y=i+g*a.bounce.y,b.velocity.y=i+h*b.bounce.y}return!0},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)},worldAngleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.world.x,d=b.worldY-a.world.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){this.isCircle||(void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},setCircle:function(a,b,c){void 0===b&&(b=this.offset.x),void 0===c&&(c=this.offset.y),a>0?(this.isCircle=!0,this.radius=a,this.sourceWidth=2*a,this.sourceHeight=2*a,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(b,c),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)):this.isCircle=!1},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return this.isCircle?c.Circle.contains(this,a,b):c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"left",{get:function(){return this.position.x}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"top",{get:function(){return this.position.y}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body, +c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,c.Physics.P2=function(a,b){this.game=a,void 0===b?b={gravity:[0,0],broadphase:new p2.SAPBroadphase}:(b.hasOwnProperty("gravity")||(b.gravity=[0,0]),b.hasOwnProperty("broadphase")||(b.broadphase=new p2.SAPBroadphase)),this.config=b,this.world=new p2.World(this.config),this.frameRate=1/60,this.useElapsedTime=!1,this.paused=!1,this.materials=[],this.gravity=new c.Physics.P2.InversePointProxy(this,this.world.gravity),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new c.Signal,this.onBodyRemoved=new c.Signal,this.onSpringAdded=new c.Signal,this.onSpringRemoved=new c.Signal,this.onConstraintAdded=new c.Signal,this.onConstraintRemoved=new c.Signal,this.onContactMaterialAdded=new c.Signal,this.onContactMaterialRemoved=new c.Signal,this.postBroadphaseCallback=null,this.callbackContext=null,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&b.hasOwnProperty("mpxi")&&b.hasOwnProperty("pxmi")&&(this.mpx=b.mpx,this.mpxi=b.mpxi,this.pxm=b.pxm,this.pxmi=b.pxmi),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this.boundsCollidesWith=[],this._toRemove=[],this._collisionGroupID=2,this._boundsLeft=!0,this._boundsRight=!0,this._boundsTop=!0,this._boundsBottom=!0,this._boundsOwnGroup=!1,this.setBoundsToWorld(!0,!0,!0,!0,!1)},c.Physics.P2.prototype={removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b,d){void 0===b&&(b=!1),void 0===d&&(d=!0);var e=1;if(Array.isArray(a))for(e=a.length;e--;)a[e]instanceof c.Group?this.enable(a[e].children,b,d):(this.enableBody(a[e],b),d&&a[e].hasOwnProperty("children")&&a[e].children.length>0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,"undefined"!=typeof a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){void 0===a&&(a=!0);var b=a?this.boundsCollisionGroup.mask:this.everythingCollisionGroup.mask;this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b),this._boundsOwnGroup=a},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.setupWall(e,"left",a,b,1.5707963267948966,i),this.setupWall(f,"right",a+c,b,-1.5707963267948966,i),this.setupWall(g,"top",a,b,-3.141592653589793,i),this.setupWall(h,"bottom",a,b+d,0,i),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},setupWall:function(a,b,c,d,e,f){a?this.walls[b]?this.walls[b].position=[this.pxmi(c),this.pxmi(d)]:(this.walls[b]=new p2.Body({mass:0,position:[this.pxmi(c),this.pxmi(d)],angle:e}),this.walls[b].addShape(new p2.Plane),f&&(this.walls[b].shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls[b])):this.walls[b]&&(this.world.removeBody(this.walls[b]),this.walls[b]=null)},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||(this.useElapsedTime?this.world.step(this.game.time.physicsElapsed):this.world.step(this.frameRate))},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.addSpring(a.data):this.world.addSpring(a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.removeSpring(a.data):this.world.removeSpring(a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),d=this.getBody(d),a&&d?this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),"undefined"!=typeof b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;de;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(c.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(c.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(c.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(c.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(c.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(c.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(c.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(c.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(c.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),c.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},c.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},c.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.PointProxy.prototype.constructor=c.Physics.P2.PointProxy,Object.defineProperty(c.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),c.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.InversePointProxy.prototype.constructor=c.Physics.P2.InversePointProxy,Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),c.Physics.P2.Body=function(a,b,d,e,f){b=b||null,d=d||0,e=e||0,void 0===f&&(f=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=c.Physics.P2JS,this.offset=new c.Point,this.data=new p2.Body({position:[this.world.pxmi(d),this.world.pxmi(e)],mass:f}),this.data.parent=this,this.velocity=new c.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new c.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new c.Point,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this.dirty=!1,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this._reset=!1,b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},c.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if(void 0===b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if(void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},removeCollisionGroup:function(a,b,c){void 0===b&&(b=!0);var d;if(Array.isArray(a))for(var e=0;e-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));else d=this.collidesWith.indexOf(a),d>-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));var f=this.getCollisionMask();if(void 0===c)for(var e=this.data.shapes.length-1;e>=0;e--)this.data.shapes[e].collisionMask=f;else c.collisionMask=f},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass(),this.shapeChanged()},getVelocityAtPoint:function(a,b){return this.data.getVelocityAtPoint(a,b)},applyDamping:function(a){this.data.applyDamping(a)},applyImpulse:function(a,b,c){this.data.applyImpulse(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyImpulseLocal:function(a,b,c){this.data.applyImpulseLocal(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},thrustLeft:function(a){var b=this.world.pxmi(-a),c=this.data.angle;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},thrustRight:function(a){var b=this.world.pxmi(-a),c=this.data.angle;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.dirty=!0,this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform(),this.dirty=!1},reset:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){void 0===g&&(g=1),void 0===f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){void 0===d&&(d=1),void 0===c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if(void 0===f&&(f=1),void 0===d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for(void 0===e&&(e=1),void 0===c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;void 0===f&&(f=1),void 0===d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},drawCapsule:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1);var j=Math.cos(d),k=Math.sin(d);a.beginFill(h,1),a.drawCircle(-e/2*j+b,-e/2*k+c,2*-f),a.drawCircle(e/2*j+b,e/2*k+c,2*-f),a.endFill(),a.lineStyle(i,g,0),a.beginFill(h,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c),a.lineTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.endFill(),a.lineStyle(i,g,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.moveTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.length?b:b+"0"}}),c.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,void 0===d&&(d=1),void 0===e&&(e=100),void 0===f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,void 0===d&&(d=null),void 0===e&&(e=100),void 0===f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},c.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),c.Physics.P2.Material.prototype.constructor=c.Physics.P2.Material,c.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},c.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),c.Physics.P2.ContactMaterial.prototype.constructor=c.Physics.P2.ContactMaterial,c.Physics.P2.CollisionGroup=function(a){this.mask=a},c.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){void 0===d&&(d=100),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},c.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),c.Physics.P2.DistanceConstraint.prototype.constructor=c.Physics.P2.DistanceConstraint,c.Physics.P2.GearConstraint=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},c.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),c.Physics.P2.GearConstraint.prototype.constructor=c.Physics.P2.GearConstraint,c.Physics.P2.LockConstraint=function(a,b,c,d,e,f){void 0===d&&(d=[0,0]),void 0===e&&(e=0),void 0===f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},c.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),c.Physics.P2.LockConstraint.prototype.constructor=c.Physics.P2.LockConstraint,c.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){void 0===d&&(d=!0),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=[0,0]),void 0===h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},c.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),c.Physics.P2.PrismaticConstraint.prototype.constructor=c.Physics.P2.PrismaticConstraint,c.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){void 0===f&&(f=Number.MAX_VALUE),void 0===g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},c.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),c.Physics.P2.RevoluteConstraint.prototype.constructor=c.Physics.P2.RevoluteConstraint,c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rl;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this); +},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j,delete g.encoding}else if(g.compression){console.warn("TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer '"+g.name+"'");continue}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;i>t;t++){if(m=0,n=!1,p=g.data[t],p>536870912)switch(o=0,p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}p>0?(r.push(new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight)),r[r.length-1].rotation=m,r[r.length-1].flipped=n):c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight)),q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var u=[],f=0;fG;G++)if(F.objects[G].gid){var H={gid:F.objects[G].gid,name:F.objects[G].name,type:F.objects[G].hasOwnProperty("type")?F.objects[G].type:"",x:F.objects[G].x,y:F.objects[G].y,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),D[F.name].push(H)}else if(F.objects[G].polyline){var H={name:F.objects[G].name,type:F.objects[G].type,x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),H.polyline=[];for(var I=0;I=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),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("playing",this._playCallback,!0),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?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){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.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(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._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(){return this._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.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}).call(this); //# sourceMappingURL=phaser-split.map \ No newline at end of file diff --git a/build/custom/pixi.js b/build/custom/pixi.js index 21653c351..9b5960582 100644 --- a/build/custom/pixi.js +++ b/build/custom/pixi.js @@ -1,13 +1,13 @@ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} * * @overview * * Phaser - http://phaser.io * -* v2.4.6 "Baerlon" - Built: Thu Feb 18 2016 14:40:25 +* v2.4.7 "Hinderstap" - Built: Thu Apr 14 2016 13:21:55 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -1227,9 +1227,10 @@ PIXI.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform = PI */ PIXI.DisplayObjectContainer.prototype.getBounds = function() { - if(this.children.length === 0)return PIXI.EmptyRectangle; - - // TODO the bounds have already been calculated this render session so return what we have + if (this.children.length === 0) + { + return PIXI.EmptyRectangle; + } var minX = Infinity; var minY = Infinity; @@ -1243,11 +1244,14 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() var childVisible = false; - for(var i=0,j=this.children.length; i childMaxY ? maxY : childMaxY; } - if(!childVisible) + if (!childVisible) + { return PIXI.EmptyRectangle; + } var bounds = this._bounds; @@ -1273,9 +1279,6 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() bounds.width = maxX - minX; bounds.height = maxY - minY; - // TODO: store a reference so that if this function gets called again in the render cycle we do not have to recalculate - //this._currentBounds = bounds; - return bounds; }; @@ -1291,7 +1294,7 @@ PIXI.DisplayObjectContainer.prototype.getLocalBounds = function() this.worldTransform = PIXI.identityMatrix; - for(var i=0,j=this.children.length; i -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -6581,10 +6598,6 @@ PIXI.CanvasRenderer = function (game) { */ this.refresh = true; - // This is already done in the Game.setUpRenderer method. - // this.view.width = this.width * this.resolution; - // this.view.height = this.height * this.resolution; - /** * Internal var. * @@ -6673,8 +6686,8 @@ PIXI.CanvasRenderer.prototype.render = function (stage) { * @method destroy * @param [removeView=true] {boolean} Removes the Canvas element from the DOM. */ -PIXI.CanvasRenderer.prototype.destroy = function(removeView) -{ +PIXI.CanvasRenderer.prototype.destroy = function (removeView) { + if (removeView === undefined) { removeView = true; } if (removeView && this.view.parent) @@ -6696,8 +6709,8 @@ PIXI.CanvasRenderer.prototype.destroy = function(removeView) * @param width {Number} the new width of the canvas view * @param height {Number} the new height of the canvas view */ -PIXI.CanvasRenderer.prototype.resize = function(width, height) -{ +PIXI.CanvasRenderer.prototype.resize = function (width, height) { + this.width = width * this.resolution; this.height = height * this.resolution; @@ -6709,6 +6722,12 @@ PIXI.CanvasRenderer.prototype.resize = function(width, height) this.view.style.width = this.width / this.resolution + "px"; this.view.style.height = this.height / this.resolution + "px"; } + + if (this.renderSession.smoothProperty) + { + this.context[this.renderSession.smoothProperty] = (this.renderSession.scaleMode === PIXI.scaleModes.LINEAR); + } + }; /** @@ -8871,10 +8890,8 @@ PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo, re var texture = this.texture; var frame = texture.frame; - console.log('generateTilingTexture', texture, frame); - - var targetWidth = this._frame.sourceSizeW; - var targetHeight = this._frame.sourceSizeH; + var targetWidth = this._frame.sourceSizeW || this._frame.width; + var targetHeight = this._frame.sourceSizeH || this._frame.height; var dx = 0; var dy = 0; diff --git a/build/custom/pixi.map b/build/custom/pixi.map index fdca29aa9..2d0a8f6b7 100644 --- a/build/custom/pixi.map +++ b/build/custom/pixi.map @@ -1 +1 @@ -{"version":3,"file":"pixi.min.js","sources":["pixi.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","transformCallback","call","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"pixi.min.js","sources":["pixi.js"],"names":["root","this","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Float32Array","Uint16Array","Uint32Array","ArrayBuffer","Array","PI_2","Math","PI","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","position","Point","scale","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldPosition","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","prototype","constructor","destroy","children","i","length","_destroyCachedSprite","Object","defineProperty","get","item","set","value","isMask","_filters","passes","filterPasses","j","push","_filterBlock","target","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","p","world","a","b","c","d","tx","ty","pt","wt","rotationCache","sin","cos","x","y","sqrt","atan2","transformCallback","call","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","width","height","_tempMatrix","render","updateCache","toGlobal","apply","toLocal","from","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","max","ceil","texture","resize","tempFilters","filters","anchor","DisplayObjectContainer","create","_width","_height","addChild","child","addChildAt","index","removeChild","splice","Error","swapChildren","child2","index1","getChildIndex","index2","indexOf","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","undefined","removeChildren","beginIndex","endIndex","begin","end","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","stop","maskManager","pushMask","mask","start","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","temp","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","context","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","dx","trim","dy","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","cx","cy","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","data","remove","getNextPowerOfTwo","number","result","isPowerOfTwo","idx","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","isArray","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","window","console","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","key","uniforms","uniformLocation","initUniforms","uniform","type","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","id","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","w","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","offset","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","r","g","clear","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","reverse","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","level","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","mode","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","pop","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","size","numVerts","numIndices","vertices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","h","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","append","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","u1","u2","v0","v1","v2","paddingX","paddingY","centerX","centerY","normX","normY","dist","beginPath","moveTo","lineTo","closePath","delta","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","n","rawX","rawY","Rope","points","lastPoint","point","amount","total","nextPoint","perp","ratio","perpLength","num","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","needsUpdate","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","exports","module","define","amd"],"mappings":"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"} \ No newline at end of file diff --git a/build/custom/pixi.min.js b/build/custom/pixi.min.js index 042e4ae67..25741db0c 100644 --- a/build/custom/pixi.min.js +++ b/build/custom/pixi.min.js @@ -1,6 +1,6 @@ -/* Phaser v2.4.6 PIXI Build - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.7 PIXI Build - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */ -(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gj;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a;for(var b=0;bi){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this); +(function(){var a=this,b=b||{};return b.game=null,b.WEBGL_RENDERER=0,b.CANVAS_RENDERER=1,b.VERSION="v2.2.9",b._UID=0,"undefined"!=typeof Float32Array?(b.Float32Array=Float32Array,b.Uint16Array=Uint16Array,b.Uint32Array=Uint32Array,b.ArrayBuffer=ArrayBuffer):(b.Float32Array=Array,b.Uint16Array=Array),b.PI_2=2*Math.PI,b.RAD_TO_DEG=180/Math.PI,b.DEG_TO_RAD=Math.PI/180,b.RETINA_PREFIX="@2x",b.DisplayObject=function(){this.position=new b.Point(0,0),this.scale=new b.Point(1,1),this.pivot=new b.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.hitArea=null,this.renderable=!1,this.parent=null,this.stage=null,this.worldAlpha=1,this.worldTransform=new b.Matrix,this.worldPosition=new b.Point(0,0),this.worldScale=new b.Point(1,1),this.worldRotation=0,this._sr=0,this._cr=1,this.filterArea=null,this._bounds=new b.Rectangle(0,0,1,1),this._currentBounds=null,this._mask=null,this._cacheAsBitmap=!1,this._cacheIsDirty=!1},b.DisplayObject.prototype.constructor=b.DisplayObject,b.DisplayObject.prototype.destroy=function(){if(this.children){for(var a=this.children.length;a--;)this.children[a].destroy();this.children=[]}this.hitArea=null,this.parent=null,this.stage=null,this.worldTransform=null,this.filterArea=null,this._bounds=null,this._currentBounds=null,this._mask=null,this.renderable=!1,this._destroyCachedSprite()},Object.defineProperty(b.DisplayObject.prototype,"worldVisible",{get:function(){var a=this;do{if(!a.visible)return!1;a=a.parent}while(a);return!0}}),Object.defineProperty(b.DisplayObject.prototype,"mask",{get:function(){return this._mask},set:function(a){this._mask&&(this._mask.isMask=!1),this._mask=a,this._mask&&(this._mask.isMask=!0)}}),Object.defineProperty(b.DisplayObject.prototype,"filters",{get:function(){return this._filters},set:function(a){if(a){for(var c=[],d=0;d=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gc?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var l=this._bounds;return l.x=e,l.y=f,l.width=g-e,l.height=h-f,l},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0;ci){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}).call(this); //# sourceMappingURL=pixi.map \ No newline at end of file diff --git a/build/phaser.js b/build/phaser.js index 12b8d24a4..925af0aa0 100644 --- a/build/phaser.js +++ b/build/phaser.js @@ -1,13 +1,13 @@ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} * * @overview * * Phaser - http://phaser.io * -* v2.4.6 "Baerlon" - Built: Thu Feb 18 2016 14:39:48 +* v2.4.7 "Hinderstap" - Built: Thu Apr 14 2016 13:21:19 * * By Richard Davey http://www.photonstorm.com @photonstorm * @@ -14840,9 +14840,10 @@ PIXI.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform = PI */ PIXI.DisplayObjectContainer.prototype.getBounds = function() { - if(this.children.length === 0)return PIXI.EmptyRectangle; - - // TODO the bounds have already been calculated this render session so return what we have + if (this.children.length === 0) + { + return PIXI.EmptyRectangle; + } var minX = Infinity; var minY = Infinity; @@ -14856,11 +14857,14 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() var childVisible = false; - for(var i=0,j=this.children.length; i childMaxY ? maxY : childMaxY; } - if(!childVisible) + if (!childVisible) + { return PIXI.EmptyRectangle; + } var bounds = this._bounds; @@ -14886,9 +14892,6 @@ PIXI.DisplayObjectContainer.prototype.getBounds = function() bounds.width = maxX - minX; bounds.height = maxY - minY; - // TODO: store a reference so that if this function gets called again in the render cycle we do not have to recalculate - //this._currentBounds = bounds; - return bounds; }; @@ -14904,7 +14907,7 @@ PIXI.DisplayObjectContainer.prototype.getLocalBounds = function() this.worldTransform = PIXI.identityMatrix; - for(var i=0,j=this.children.length; i -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -20194,10 +20211,6 @@ PIXI.CanvasRenderer = function (game) { */ this.refresh = true; - // This is already done in the Game.setUpRenderer method. - // this.view.width = this.width * this.resolution; - // this.view.height = this.height * this.resolution; - /** * Internal var. * @@ -20286,8 +20299,8 @@ PIXI.CanvasRenderer.prototype.render = function (stage) { * @method destroy * @param [removeView=true] {boolean} Removes the Canvas element from the DOM. */ -PIXI.CanvasRenderer.prototype.destroy = function(removeView) -{ +PIXI.CanvasRenderer.prototype.destroy = function (removeView) { + if (removeView === undefined) { removeView = true; } if (removeView && this.view.parent) @@ -20309,8 +20322,8 @@ PIXI.CanvasRenderer.prototype.destroy = function(removeView) * @param width {Number} the new width of the canvas view * @param height {Number} the new height of the canvas view */ -PIXI.CanvasRenderer.prototype.resize = function(width, height) -{ +PIXI.CanvasRenderer.prototype.resize = function (width, height) { + this.width = width * this.resolution; this.height = height * this.resolution; @@ -20322,6 +20335,12 @@ PIXI.CanvasRenderer.prototype.resize = function(width, height) this.view.style.width = this.width / this.resolution + "px"; this.view.style.height = this.height / this.resolution + "px"; } + + if (this.renderSession.smoothProperty) + { + this.context[this.renderSession.smoothProperty] = (this.renderSession.scaleMode === PIXI.scaleModes.LINEAR); + } + }; /** @@ -22484,10 +22503,8 @@ PIXI.TilingSprite.prototype.generateTilingTexture = function(forcePowerOfTwo, re var texture = this.texture; var frame = texture.frame; - console.log('generateTilingTexture', texture, frame); - - var targetWidth = this._frame.sourceSizeW; - var targetHeight = this._frame.sourceSizeH; + var targetWidth = this._frame.sourceSizeW || this._frame.width; + var targetHeight = this._frame.sourceSizeH || this._frame.height; var dx = 0; var dy = 0; @@ -22709,7 +22726,7 @@ Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { }).call(this); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22720,7 +22737,7 @@ Object.defineProperty(PIXI.TilingSprite.prototype, 'height', { /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -22734,7 +22751,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.6', + VERSION: '2.4.7 RC1', /** * An array of Phaser game instances. @@ -23085,7 +23102,7 @@ var Phaser = Phaser || { }; /** -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -23240,7 +23257,7 @@ if (!window.console) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -23647,7 +23664,7 @@ Phaser.Utils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -24222,7 +24239,7 @@ PIXI.Circle = Phaser.Circle; /** * @author Richard Davey * @author Chad Engler -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -24548,7 +24565,7 @@ PIXI.Ellipse = Phaser.Ellipse; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25193,7 +25210,7 @@ Phaser.Line.reflect = function (a, b) { /** * @author Mat Groves http://matgroves.com/ @Doormat23 * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -25582,7 +25599,7 @@ PIXI.identityMatrix = Phaser.identityMatrix; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26490,7 +26507,7 @@ PIXI.Point = Phaser.Point; /** * @author Richard Davey * @author Adrien Brault -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -26652,6 +26669,7 @@ Phaser.Polygon.prototype = { * - An array of Point objects: `[new Phaser.Point(x1, y1), ...]` * - An array of objects with public x/y properties: `[obj1, obj2, ...]` * - An array of paired numbers that represent point coordinates: `[x1,y1, x2,y2, ...]` + * - An array of arrays with two elements representing x/y coordinates: `[[x1, y1], [x2, y2], ...]` * - As separate Point arguments: `setTo(new Phaser.Point(x1, y1), ...)` * - As separate objects with public x/y properties arguments: `setTo(obj1, obj2, ...)` * - As separate arguments representing point coordinates: `setTo(x1,y1, x2,y2, ...)` @@ -26685,6 +26703,10 @@ Phaser.Polygon.prototype = { var p = new PIXI.Point(points[i], points[i + 1]); i++; } + else if (Array.isArray(points[i])) + { + var p = new PIXI.Point(points[i][0], points[i][1]); + } else { var p = new PIXI.Point(points[i].x, points[i].y); @@ -26783,7 +26805,7 @@ PIXI.Polygon = Phaser.Polygon; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27791,7 +27813,7 @@ PIXI.EmptyRectangle = new Phaser.Rectangle(0, 0, 0, 0); /** * @author Mat Groves http://matgroves.com/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27902,7 +27924,7 @@ PIXI.RoundedRectangle = Phaser.RoundedRectangle; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -27984,12 +28006,12 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.target = null; /** - * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot + * @property {PIXI.DisplayObject} displayObject - The display object to which all game objects are added. Set by World.boot. */ this.displayObject = null; /** - * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot + * @property {Phaser.Point} scale - The scale of the display object to which all game objects are added. Set by World.boot. */ this.scale = null; @@ -28000,7 +28022,44 @@ Phaser.Camera = function (game, id, x, y, width, height) { this.totalInView = 0; /** - * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position + * The linear interpolation value to use when following a target. + * The default values of 1 means the camera will instantly snap to the target coordinates. + * A lower value, such as 0.1 means the camera will more slowly track the target, giving + * a smooth transition. You can set the horizontal and vertical values independently, and also + * adjust this value in real-time during your game. + * @property {Phaser.Point} lerp + * @default + */ + this.lerp = new Phaser.Point(1, 1); + + /** + * @property {Phaser.Signal} onShakeComplete - This signal is dispatched when the camera shake effect completes. + */ + this.onShakeComplete = new Phaser.Signal(); + + /** + * @property {Phaser.Signal} onFlashComplete - This signal is dispatched when the camera flash effect completes. + */ + this.onFlashComplete = new Phaser.Signal(); + + /** + * This signal is dispatched when the camera fade effect completes. + * When the fade effect completes you will be left with the screen black (or whatever + * color you faded to). In order to reset this call `Camera.resetFX`. This is called + * automatically when you change State. + * @property {Phaser.Signal} onFadeComplete + */ + this.onFadeComplete = new Phaser.Signal(); + + /** + * The Graphics object used to handle camera fx such as fade and flash. + * @property {Phaser.Graphics} fx + * @protected + */ + this.fx = null; + + /** + * @property {Phaser.Point} _targetPosition - Internal point used to calculate target position. * @private */ this._targetPosition = new Phaser.Point(); @@ -28019,6 +28078,32 @@ Phaser.Camera = function (game, id, x, y, width, height) { */ this._position = new Phaser.Point(); + /** + * @property {Object} _shake - The shake effect container. + * @private + */ + this._shake = { + intensity: 0, + duration: 0, + horizontal: false, + vertical: false, + shakeBounds: true, + x: 0, + y: 0 + }; + + /** + * @property {number} _fxDuration - FX duration timer. + * @private + */ + this._fxDuration = 0; + + /** + * @property {number} _fxType - The FX type running. + * @private + */ + this._fxType = 0; + }; /** @@ -28045,8 +28130,55 @@ Phaser.Camera.FOLLOW_TOPDOWN = 2; */ Phaser.Camera.FOLLOW_TOPDOWN_TIGHT = 3; +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_BOTH = 4; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_HORIZONTAL = 5; + +/** +* @constant +* @type {number} +*/ +Phaser.Camera.SHAKE_VERTICAL = 6; + +/** +* @constant +* @type {boolean} +*/ +Phaser.Camera.ENABLE_FX = true; + Phaser.Camera.prototype = { + /** + * Called automatically by Phaser.World. + * + * @method Phaser.Camera#boot + * @private + */ + boot: function () { + + this.displayObject = this.game.world; + + this.scale = this.game.world.scale; + + this.game.camera = this; + + if (Phaser.Graphics && Phaser.Camera.ENABLE_FX) + { + this.fx = new Phaser.Graphics(this.game); + + this.game.stage.addChild(this.fx); + } + + }, + /** * Camera preUpdate. Sets the total view counter to zero. * @@ -28060,6 +28192,9 @@ Phaser.Camera.prototype = { /** * Tell the camera which sprite to follow. + * + * You can set the follow type and a linear interpolation value. + * Use low lerp values (such as 0.1) to automatically smooth the camera motion. * * If you find you're getting a slight "jitter" effect when following a Sprite it's probably to do with sub-pixel rendering of the Sprite position. * This can be disabled by setting `game.renderer.renderSession.roundPixels = true` to force full pixel rendering. @@ -28067,12 +28202,17 @@ Phaser.Camera.prototype = { * @method Phaser.Camera#follow * @param {Phaser.Sprite|Phaser.Image|Phaser.Text} target - The object you want the camera to track. Set to null to not follow anything. * @param {number} [style] - Leverage one of the existing "deadzone" presets. If you use a custom deadzone, ignore this parameter and manually specify the deadzone after calling follow(). + * @param {float} [lerpX=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when horizontally tracking the target. The closer the value to 1, the faster the camera will track. + * @param {float} [lerpY=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when vertically tracking the target. The closer the value to 1, the faster the camera will track. */ - follow: function (target, style) { + follow: function (target, style, lerpX, lerpY) { if (style === undefined) { style = Phaser.Camera.FOLLOW_LOCKON; } + if (lerpX === undefined) { lerpX = 1; } + if (lerpY === undefined) { lerpY = 1; } this.target = target; + this.lerp.set(lerpX, lerpY); var helper; @@ -28140,16 +28280,156 @@ Phaser.Camera.prototype = { }, /** - * Update focusing and scrolling. + * This creates a camera shake effect. It works by applying a random amount of additional + * spacing on the x and y axis each frame. You can control the intensity and duration + * of the effect, and if it should effect both axis or just one. + * + * When the shake effect ends the signal Camera.onShakeComplete is dispatched. + * + * @method Phaser.Camera#shake + * @param {float} [intensity=0.05] - The intensity of the camera shake. Given as a percentage of the camera size representing the maximum distance that the camera can move while shaking. + * @param {number} [duration=500] - The duration of the shake effect in milliseconds. + * @param {boolean} [force=true] - If a camera shake effect is already running and force is true it will replace the previous effect, resetting the duration. + * @param {number} [direction=Phaser.Camera.SHAKE_BOTH] - The directions in which the camera can shake. Either Phaser.Camera.SHAKE_BOTH, Phaser.Camera.SHAKE_HORIZONTAL or Phaser.Camera.SHAKE_VERTICAL. + * @param {boolean} [shakeBounds=true] - Is the effect allowed to shake the camera beyond its bounds (if set?). + * @return {boolean} True if the shake effect was started, otherwise false. + */ + shake: function (intensity, duration, force, direction, shakeBounds) { + + if (intensity === undefined) { intensity = 0.05; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = true; } + if (direction === undefined) { direction = Phaser.Camera.SHAKE_BOTH; } + if (shakeBounds === undefined) { shakeBounds = true; } + + if (!force && this._shake.duration > 0) + { + // Can't reset an already running shake + return false; + } + + this._shake.intensity = intensity; + this._shake.duration = duration; + this._shake.shakeBounds = shakeBounds; + + this._shake.x = 0; + this._shake.y = 0; + + this._shake.horizontal = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_HORIZONTAL); + this._shake.vertical = (direction === Phaser.Camera.SHAKE_BOTH || direction === Phaser.Camera.SHAKE_VERTICAL); + + return true; + + }, + + /** + * This creates a camera flash effect. It works by filling the game with the solid fill + * color specified, and then fading it away to alpha 0 over the duration given. + * + * You can use this for things such as hit feedback effects. + * + * When the effect ends the signal Camera.onFlashComplete is dispatched. + * + * @method Phaser.Camera#flash + * @param {numer} [color=0xffffff] - The color of the flash effect. I.e. 0xffffff for white, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the flash effect in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + flash: function (color, duration, force) { + + if (color === undefined) { color = 0xffffff; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 1; + + this._fxDuration = duration; + this._fxType = 0; + + return true; + + }, + + /** + * This creates a camera fade effect. It works by filling the game with the + * color specified, over the duration given, ending with a solid fill. + * + * You can use this for things such as transitioning to a new scene. + * + * The game will be left 'filled' at the end of this effect, likely obscuring + * everything. In order to reset it you can call `Camera.resetFX` and it will clear the + * fade. Or you can call `Camera.flash` with the same color as the fade, and it will + * reverse the process, bringing the game back into view again. + * + * When the effect ends the signal Camera.onFadeComplete is dispatched. + * + * @method Phaser.Camera#fade + * @param {numer} [color=0x000000] - The color the game will fade to. I.e. 0x000000 for black, 0xff0000 for red, etc. + * @param {number} [duration=500] - The duration of the fade in milliseconds. + * @param {boolean} [force=false] - If a camera flash or fade effect is already running and force is true it will replace the previous effect, resetting the duration. + * @return {boolean} True if the effect was started, otherwise false. + */ + fade: function (color, duration, force) { + + if (color === undefined) { color = 0x000000; } + if (duration === undefined) { duration = 500; } + if (force === undefined) { force = false; } + + if (!this.fx || (!force && this._fxDuration > 0)) + { + return false; + } + + this.fx.clear(); + + this.fx.beginFill(color); + this.fx.drawRect(0, 0, this.width, this.height); + this.fx.endFill(); + + this.fx.alpha = 0; + + this._fxDuration = duration; + this._fxType = 1; + + return true; + + }, + + /** + * The camera update loop. This is called automatically by the core game loop. + * * @method Phaser.Camera#update + * @protected */ update: function () { + if (this._fxDuration > 0) + { + this.updateFX(); + } + if (this.target) { this.updateTarget(); } + if (this._shake.duration > 0) + { + this.updateShake(); + } + if (this.bounds) { this.checkBounds(); @@ -28158,26 +28438,90 @@ Phaser.Camera.prototype = { if (this.roundPx) { this.view.floor(); + this._shake.x = Math.floor(this._shake.x); + this._shake.y = Math.floor(this._shake.y); } - this.displayObject.position.x = -this.view.x; - this.displayObject.position.y = -this.view.y; + this.displayObject.position.x = -(this.view.x + this._shake.x); + this.displayObject.position.y = -(this.view.y + this._shake.y); }, /** - * Internal method + * Update the camera flash and fade effects. + * + * @method Phaser.Camera#updateFX + * @private + */ + updateFX: function () { + + if (this._fxType === 0) + { + // flash + this.fx.alpha -= this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha <= 0) + { + this._fxDuration = 0; + this.fx.alpha = 0; + this.onFlashComplete.dispatch(); + } + } + else + { + // fade + this.fx.alpha += this.game.time.elapsedMS / this._fxDuration; + + if (this.fx.alpha >= 1) + { + this._fxDuration = 0; + this.fx.alpha = 1; + this.onFadeComplete.dispatch(); + } + } + + }, + + /** + * Update the camera shake effect. + * + * @method Phaser.Camera#updateShake + * @private + */ + updateShake: function () { + + this._shake.duration -= this.game.time.elapsedMS; + + if (this._shake.duration <= 0) + { + this.onShakeComplete.dispatch(); + this._shake.x = 0; + this._shake.y = 0; + } + else + { + if (this._shake.horizontal) + { + this._shake.x = this.game.rnd.frac() * this._shake.intensity * this.view.width * 2 - this._shake.intensity * this.view.width; + } + + if (this._shake.vertical) + { + this._shake.y = this.game.rnd.frac() * this._shake.intensity * this.view.height * 2 - this._shake.intensity * this.view.height; + } + } + + }, + + /** + * Internal method that handles tracking a sprite. + * * @method Phaser.Camera#updateTarget * @private */ updateTarget: function () { - this._targetPosition.copyFrom(this.target); - - if (this.target.parent) - { - this._targetPosition.multiply(this.target.parent.worldTransform.a, this.target.parent.worldTransform.d); - } + this._targetPosition.copyFrom(this.target.world); if (this.deadzone) { @@ -28185,34 +28529,35 @@ Phaser.Camera.prototype = { if (this._edge < this.deadzone.left) { - this.view.x = this._targetPosition.x - this.deadzone.left; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.left, this.lerp.x); } else if (this._edge > this.deadzone.right) { - this.view.x = this._targetPosition.x - this.deadzone.right; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.right, this.lerp.x); } this._edge = this._targetPosition.y - this.view.y; if (this._edge < this.deadzone.top) { - this.view.y = this._targetPosition.y - this.deadzone.top; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.top, this.lerp.y); } else if (this._edge > this.deadzone.bottom) { - this.view.y = this._targetPosition.y - this.deadzone.bottom; + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.bottom, this.lerp.y); } } else { - this.view.x = this._targetPosition.x - this.view.halfWidth; - this.view.y = this._targetPosition.y - this.view.halfHeight; + this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.view.halfWidth, this.lerp.x); + this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.view.halfHeight, this.lerp.y); } }, /** * Update the Camera bounds to match the game world. + * * @method Phaser.Camera#setBoundsToWorld */ setBoundsToWorld: function () { @@ -28226,36 +28571,68 @@ Phaser.Camera.prototype = { /** * Method called to ensure the camera doesn't venture outside of the game world. + * Called automatically by Camera.update. + * * @method Phaser.Camera#checkBounds + * @protected */ checkBounds: function () { this.atLimit.x = false; this.atLimit.y = false; + var vx = this.view.x + this._shake.x; + var vw = this.view.right + this._shake.x; + var vy = this.view.y + this._shake.y; + var vh = this.view.bottom + this._shake.y; + // Make sure we didn't go outside the cameras bounds - if (this.view.x <= this.bounds.x * this.scale.x) + if (vx <= this.bounds.x * this.scale.x) { this.atLimit.x = true; this.view.x = this.bounds.x * this.scale.x; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.right >= this.bounds.right * this.scale.x) + if (vw >= this.bounds.right * this.scale.x) { this.atLimit.x = true; this.view.x = (this.bounds.right * this.scale.x) - this.width; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.x = 0; + } } - if (this.view.y <= this.bounds.top * this.scale.y) + if (vy <= this.bounds.top * this.scale.y) { this.atLimit.y = true; this.view.y = this.bounds.top * this.scale.y; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } - if (this.view.bottom >= this.bounds.bottom * this.scale.y) + if (vh >= this.bounds.bottom * this.scale.y) { this.atLimit.y = true; this.view.y = (this.bounds.bottom * this.scale.y) - this.height; + + if (!this._shake.shakeBounds) + { + // The camera is up against the bounds, so reset the shake + this._shake.y = 0; + } } }, @@ -28296,15 +28673,38 @@ Phaser.Camera.prototype = { /** * Resets the camera back to 0,0 and un-follows any object it may have been tracking. + * Also immediately resets any camera effects that may have been running such as + * shake, flash or fade. * * @method Phaser.Camera#reset */ reset: function () { this.target = null; + this.view.x = 0; this.view.y = 0; + this._shake.duration = 0; + + this.resetFX(); + + }, + + /** + * Resets any active FX, such as a fade or flash and immediately clears it. + * Useful to calling after a fade in order to remove the fade from the Stage. + * + * @method Phaser.Camera#resetFX + */ + resetFX: function () { + + this.fx.clear(); + + this.fx.alpha = 0; + + this._fxDuration = 0; + } }; @@ -28319,7 +28719,9 @@ Phaser.Camera.prototype.constructor = Phaser.Camera; Object.defineProperty(Phaser.Camera.prototype, "x", { get: function () { + return this.view.x; + }, set: function (value) { @@ -28342,7 +28744,9 @@ Object.defineProperty(Phaser.Camera.prototype, "x", { Object.defineProperty(Phaser.Camera.prototype, "y", { get: function () { + return this.view.y; + }, set: function (value) { @@ -28365,8 +28769,11 @@ Object.defineProperty(Phaser.Camera.prototype, "y", { Object.defineProperty(Phaser.Camera.prototype, "position", { get: function () { - this._position.set(this.view.centerX, this.view.centerY); + + this._position.set(this.view.x, this.view.y); + return this._position; + }, set: function (value) { @@ -28390,11 +28797,15 @@ Object.defineProperty(Phaser.Camera.prototype, "position", { Object.defineProperty(Phaser.Camera.prototype, "width", { get: function () { + return this.view.width; + }, set: function (value) { + this.view.width = value; + } }); @@ -28407,18 +28818,22 @@ Object.defineProperty(Phaser.Camera.prototype, "width", { Object.defineProperty(Phaser.Camera.prototype, "height", { get: function () { + return this.view.height; + }, set: function (value) { + this.view.height = value; + } }); /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -28647,7 +29062,7 @@ Phaser.State.prototype.constructor = Phaser.State; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -29438,20 +29853,63 @@ Object.defineProperty(Phaser.StateManager.prototype, "created", { /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** -* A Signal is an event dispatch mechanism that supports broadcasting to multiple listeners. +* Signals are what Phaser uses to handle events and event dispatching. +* You can listen for a Signal by binding a callback / function to it. +* This is done by using either `Signal.add` or `Signal.addOnce`. * -* Event listeners are uniquely identified by the listener/callback function and the context. +* For example you can listen for a touch or click event from the Input Manager +* by using its `onDown` Signal: +* +* `game.input.onDown.add(function() { ... });` +* +* Rather than inline your function, you can pass a reference: +* +* `game.input.onDown.add(clicked, this);` +* `function clicked () { ... }` +* +* In this case the second argument (`this`) is the context in which your function should be called. +* +* Now every time the InputManager dispatches the `onDown` signal (or event), your function +* will be called. +* +* Very often a Signal will send arguments to your function. +* This is specific to the Signal itself. +* If you're unsure then check the documentation, or failing that simply do: +* +* `Signal.add(function() { console.log(arguments); })` +* +* and it will log all of the arguments your function received from the Signal. +* +* Sprites have lots of default signals you can listen to in their Events class, such as: +* +* `sprite.events.onKilled` * +* Which is called automatically whenever the Sprite is killed. +* There are lots of other events, see the Events component for a list. +* +* As well as listening to pre-defined Signals you can also create your own: +* +* `var mySignal = new Phaser.Signal();` +* +* This creates a new Signal. You can bind a callback to it: +* +* `mySignal.add(myCallback, this);` +* +* and then finally when ready you can dispatch the Signal: +* +* `mySignal.dispatch(your arguments);` +* +* And your callback will be invoked. See the dispatch method for more details. +* * @class Phaser.Signal * @constructor */ -Phaser.Signal = function () { -}; +Phaser.Signal = function () {}; Phaser.Signal.prototype = { @@ -29497,7 +29955,7 @@ Phaser.Signal.prototype = { * @property {function} _boundDispatch - The bound dispatch function, if any. * @private */ - _boundDispatch: true, + _boundDispatch: false, /** * @method Phaser.Signal#validateListener @@ -29901,7 +30359,7 @@ Phaser.Signal.prototype.constructor = Phaser.Signal; /** * @author Miller Medeiros http://millermedeiros.github.com/js-signals/ * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30100,7 +30558,7 @@ Phaser.SignalBinding.prototype.constructor = Phaser.SignalBinding; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30348,7 +30806,7 @@ Object.defineProperty(Phaser.Filter.prototype, 'height', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30473,7 +30931,7 @@ Phaser.Plugin.prototype.constructor = Phaser.Plugin; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -30759,7 +31217,7 @@ Phaser.PluginManager.prototype.constructor = Phaser.PluginManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31180,7 +31638,7 @@ Object.defineProperty(Phaser.Stage.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -31469,7 +31927,7 @@ Phaser.Group.prototype.add = function (child, silent) { if (child.parent !== this) { - if (child.body && child.parent) + if (child.body && child.parent && child.parent.hash) { child.parent.removeFromHash(child); } @@ -31979,6 +32437,29 @@ Phaser.Group.prototype.getIndex = function (child) { }; +/** +* Searches the Group for the first instance of a child with the `name` +* property matching the given argument. Should more than one child have +* the same name only the first instance is returned. +* +* @method Phaser.Group#getByName +* @param {string} name - The name to search for. +* @return {any} The first child with a matching name, or null if none were found. +*/ +Phaser.Group.prototype.getByName = function (name) { + + for (var i = 0; i < this.children.length; i++) + { + if (this.children[i].name === name) + { + return this.children[i]; + } + } + + return null; + +}; + /** * Replaces a child of this group with the given newChild. The newChild cannot be a member of this group. * @@ -33500,7 +33981,7 @@ Object.defineProperty(Phaser.Group.prototype, "angle", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -33567,14 +34048,10 @@ Phaser.World.prototype.boot = function () { this.camera = new Phaser.Camera(this.game, 0, 0, 0, this.game.width, this.game.height); - this.camera.displayObject = this; - - this.camera.scale = this.scale; - - this.game.camera = this.camera; - this.game.stage.addChild(this); + this.camera.boot(); + }; /** @@ -33676,6 +34153,9 @@ Phaser.World.prototype.shutdown = function () { * If they do it will reposition the object to the opposite side of the world, creating a wrap-around effect. * If sprite has a P2 body then the body (sprite.body) should be passed as first parameter to the function. * +* Please understand there are limitations to this method. For example if you have scaled the World +* then objects won't always be re-positioned correctly, and you'll need to employ your own wrapping function. +* * @method Phaser.World#wrap * @param {Phaser.Sprite|Phaser.Image|Phaser.TileSprite|Phaser.Text} sprite - The object you wish to wrap around the world bounds. * @param {number} [padding=0] - Extra padding added equally to the sprite.x and y coordinates before checking if within the world bounds. Ignored if useBounds is true. @@ -33799,7 +34279,7 @@ Object.defineProperty(Phaser.World.prototype, "height", { Object.defineProperty(Phaser.World.prototype, "centerX", { get: function () { - return this.bounds.halfWidth; + return this.bounds.halfWidth + this.bounds.x; } }); @@ -33812,7 +34292,7 @@ Object.defineProperty(Phaser.World.prototype, "centerX", { Object.defineProperty(Phaser.World.prototype, "centerY", { get: function () { - return this.bounds.halfHeight; + return this.bounds.halfHeight + this.bounds.y; } }); @@ -33863,7 +34343,7 @@ Object.defineProperty(Phaser.World.prototype, "randomY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -34240,7 +34720,7 @@ Phaser.Game = function (width, height, renderer, parent, state, transparent, ant /** * @property {boolean} forceSingleUpdate - Should the game loop force a logic update, regardless of the delta timer? Set to true if you know you need this. You can toggle it on the fly. */ - this.forceSingleUpdate = false; + this.forceSingleUpdate = true; /** * @property {number} _nextNotification - The soonest game.time.time value that the next fpsProblemNotifier can be dispatched. @@ -34544,7 +35024,14 @@ Phaser.Game.prototype = { */ setUpRenderer: function () { - this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + if (this.config['canvas']) + { + this.canvas = this.config['canvas']; + } + else + { + this.canvas = Phaser.Canvas.create(this, this.width, this.height, this.config['canvasID'], true); + } if (this.config['canvasStyle']) { @@ -34866,23 +35353,29 @@ Phaser.Game.prototype = { this.state.destroy(); this.sound.destroy(); - this.scale.destroy(); this.stage.destroy(); this.input.destroy(); this.physics.destroy(); + this.plugins.destroy(); this.state = null; - this.cache = null; - this.input = null; - this.load = null; this.sound = null; + this.scale = null; this.stage = null; + this.input = null; + this.physics = null; + this.plugins = null; + + this.cache = null; + this.load = null; this.time = null; this.world = null; + this.isBooted = false; this.renderer.destroy(false); + Phaser.Canvas.removeFromDOM(this.canvas); Phaser.GAMES[this.id] = null; @@ -34902,8 +35395,14 @@ Phaser.Game.prototype = { if (!this._paused) { this._paused = true; + this.time.gamePaused(); - this.sound.setMute(); + + if (this.sound.muteOnPause) + { + this.sound.setMute(); + } + this.onPause.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -34928,9 +35427,16 @@ Phaser.Game.prototype = { if (this._paused && !this._codePaused) { this._paused = false; + this.time.gameResumed(); + this.input.reset(); - this.sound.unsetMute(); + + if (this.sound.muteOnPause) + { + this.sound.unsetMute(); + } + this.onResume.dispatch(event); // Avoids Cordova iOS crash event: https://github.com/photonstorm/phaser/issues/1800 @@ -35034,7 +35540,7 @@ Object.defineProperty(Phaser.Game.prototype, "paused", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -36122,7 +36628,7 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -36130,10 +36636,10 @@ Object.defineProperty(Phaser.Input.prototype, "worldY", { * The Mouse class is responsible for handling all aspects of mouse interaction with the browser. * * It captures and processes mouse events that happen on the game canvas object. -* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released +* It also adds a single `mouseup` listener to `window` which is used to capture the mouse being released * when not over the game. * -* You should not normally access this class directly, but instead use a Phaser.Pointer object +* You should not normally access this class directly, but instead use a Phaser.Pointer object * which normalises all game input for you, including accurate button handling. * * @class Phaser.Mouse @@ -36507,7 +37013,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse up event from the window. - * + * * @method Phaser.Mouse#onMouseUpGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -36529,7 +37035,7 @@ Phaser.Mouse.prototype = { /** * The internal method that handles the mouse out event from the window. - * + * * @method Phaser.Mouse#onMouseOutGlobal * @param {MouseEvent} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -36554,7 +37060,7 @@ Phaser.Mouse.prototype = { // the browser opening a context-menu or similar. // On OS X Chrome especially this is bad news, as it blocks // us then getting a mouseup event, so we need to force that through. - // + // // No matter what, we must cancel the left and right buttons this.input.mousePointer.stop(event); @@ -36683,7 +37189,7 @@ Phaser.Mouse.prototype = { /** * Internal pointerLockChange handler. - * + * * @method Phaser.Mouse#pointerLockChange * @param {Event} event - The native event from the browser. This gets stored in Mouse.event. */ @@ -36744,6 +37250,7 @@ Phaser.Mouse.prototype = { } window.removeEventListener('mouseup', this._onMouseUpGlobal, true); + window.removeEventListener('mouseout', this._onMouseOutGlobal, true); document.removeEventListener('pointerlockchange', this._pointerLockChange, true); document.removeEventListener('mozpointerlockchange', this._pointerLockChange, true); @@ -36841,7 +37348,7 @@ Object.defineProperties(WheelEventProxy.prototype, { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -37293,7 +37800,7 @@ Phaser.MSPointer.prototype.constructor = Phaser.MSPointer; /** * @author Richard Davey * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -37614,7 +38121,7 @@ Object.defineProperty(Phaser.DeviceButton.prototype, "duration", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -38850,7 +39357,7 @@ Phaser.PointerMode = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -39314,7 +39821,7 @@ Phaser.Touch.prototype.constructor = Phaser.Touch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -40268,13 +40775,19 @@ Phaser.InputHandler.prototype = { data.isUp = false; data.timeDown = this.game.time.time; + // It's possible the onInputDown event creates a new Sprite that is on-top of this one, so we ought to force a Pointer update + pointer.dirty = true; + if (this.sprite && this.sprite.events) { this.sprite.events.onInputDown$dispatch(this.sprite, pointer); + // The onInputDown event might have destroyed this sprite. + if (this.sprite === null) + { + return; + } } - // It's possible the onInputDown event created a new Sprite that is on-top of this one, so we ought to force a Pointer update - pointer.dirty = true; // Start drag if (this.draggable && this.isDragged === false) @@ -40632,13 +41145,13 @@ Phaser.InputHandler.prototype = { { if (this.dragFromCenter) { - this.sprite.centerOn(pointer.x, pointer.y); - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); - } - else - { - this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); + var bounds = this.sprite.getBounds(); + + this.sprite.cameraOffset.x = this.globalToLocalX(pointer.x) + (this.sprite.cameraOffset.x - bounds.centerX); + this.sprite.cameraOffset.y = this.globalToLocalY(pointer.y) + (this.sprite.cameraOffset.y - bounds.centerY); } + + this._dragPoint.setTo(this.sprite.cameraOffset.x - pointer.x, this.sprite.cameraOffset.y - pointer.y); } else { @@ -40920,7 +41433,7 @@ Phaser.InputHandler.prototype.constructor = Phaser.InputHandler; /** * @author @karlmacklin -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -41583,7 +42096,7 @@ Phaser.Gamepad.PS3XC_STICK_RIGHT_Y = 3; // analog stick, range -1..1 /** * @author @karlmacklin * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -42138,7 +42651,7 @@ Phaser.SinglePad.prototype.constructor = Phaser.SinglePad; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -42503,7 +43016,7 @@ Phaser.Key.prototype.constructor = Phaser.Key; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -42513,6 +43026,10 @@ Phaser.Key.prototype.constructor = Phaser.Key; * _Note_: many keyboards are unable to process certain combinations of keys due to hardware limitations known as ghosting. * See http://www.html5gamedevs.com/topic/4876-impossible-to-use-more-than-2-keyboard-input-buttons-at-the-same-time/ for more details. * +* Also please be aware that certain browser extensions can disable or override Phaser keyboard handling. +* For example the Chrome extension vimium is known to disable Phaser from using the D key. And there are others. +* So please check your extensions before opening Phaser issues. +* * @class Phaser.Keyboard * @constructor * @param {Phaser.Game} game - A reference to the currently running game. @@ -43317,7 +43834,7 @@ for (var key in Phaser.KeyCode) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43325,7 +43842,7 @@ Phaser.Component = function () {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43371,7 +43888,7 @@ Phaser.Component.Angle.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43412,7 +43929,7 @@ Phaser.Component.Animation.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43467,7 +43984,7 @@ Phaser.Component.AutoCull.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43588,7 +44105,7 @@ Phaser.Component.Bounds.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -43685,7 +44202,7 @@ Phaser.Component.BringToTop.prototype.moveDown = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44041,7 +44558,7 @@ Phaser.Component.Core.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44159,7 +44676,7 @@ Phaser.Component.Crop.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44228,7 +44745,7 @@ Phaser.Component.Delta.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44308,6 +44825,8 @@ Phaser.Component.Destroy.prototype = { this.events.destroy(); } + this.game.tweens.removeFrom(this); + var i = this.children.length; if (destroyChildren) @@ -44389,7 +44908,7 @@ Phaser.Component.Destroy.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44583,7 +45102,7 @@ for (var prop in Phaser.Events.prototype) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44672,7 +45191,7 @@ Phaser.Component.FixedToCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44779,7 +45298,7 @@ Phaser.Component.Health.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44816,7 +45335,7 @@ Phaser.Component.InCamera.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44889,7 +45408,7 @@ Phaser.Component.InputEnabled.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -44929,6 +45448,12 @@ Phaser.Component.InWorld.preUpdate = function () { else { this.renderable = false; + + if (this.outOfCameraBoundsKill) + { + this.kill(); + return false; + } } } @@ -44988,6 +45513,15 @@ Phaser.Component.InWorld.prototype = { */ outOfBoundsKill: false, + /** + * If this and the `autoCull` property are both set to `true`, then the `kill` method + * is called as soon as the Game Object leaves the camera bounds. + * + * @property {boolean} outOfCameraBoundsKill + * @default + */ + outOfCameraBoundsKill: false, + /** * @property {boolean} _outOfBoundsFired - Internal state var. * @private @@ -45014,7 +45548,7 @@ Phaser.Component.InWorld.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45143,7 +45677,7 @@ Phaser.Component.LifeSpan.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45184,6 +45718,8 @@ Phaser.Component.LoadTexture.prototype = { * to use a Texture Atlas later in development by simply searching your code for 'PENDING_ATLAS' * and swapping it to be the key of the atlas data. * + * Note: You cannot use a RenderTexture as a texture for a TileSprite. + * * @method * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - This is the image or texture used by the Sprite during rendering. It can be a string which is a reference to the Cache Image entry, or an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. * @param {string|number} [frame] - If this Sprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. @@ -45228,6 +45764,10 @@ Phaser.Component.LoadTexture.prototype = { { setFrame = !this.animations.loadFrameData(cache.getFrameData(key.key, Phaser.Cache.BITMAPDATA), frame); } + else + { + setFrame = !this.animations.loadFrameData(key.frameData, 0); + } } else if (Phaser.Video && key instanceof Phaser.Video) { @@ -45240,6 +45780,12 @@ Phaser.Component.LoadTexture.prototype = { key.onChangeSource.add(this.resizeFrame, this); this.texture.valid = valid; } + else if (Phaser.Tilemap && key instanceof Phaser.TilemapLayer) + { + // this.customRender = true; + + this.setTexture(PIXI.Texture.fromCanvas(key.canvas)); + } else if (key instanceof PIXI.Texture) { this.setTexture(key); @@ -45423,7 +45969,7 @@ Phaser.Component.LoadTexture.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45459,7 +46005,7 @@ Phaser.Component.Overlap.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45605,7 +46151,7 @@ Phaser.Component.PhysicsBody.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45669,7 +46215,7 @@ Phaser.Component.Reset.prototype.reset = function (x, y, health) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45837,7 +46383,7 @@ Phaser.Component.ScaleMinMax.prototype = { }; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -45891,7 +46437,7 @@ Phaser.Component.Smoothed.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46141,7 +46687,7 @@ Phaser.GameObjectFactory.prototype = { * @param {number} y - The y coordinate of the TileSprite. The coordinate is relative to any parent container this TileSprite may be in. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|Phaser.Video|PIXI.Texture} key - The image used as a texture by this display object during rendering. If a string Phaser will get for an entry in the Image Cache. Or it can be an instance of a RenderTexture, BitmapData, Video or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} [frame] - If a Texture Atlas or Sprite Sheet is used this allows you to specify the frame to be used. Use either an integer for a Frame ID or a string for a frame name. * @param {Phaser.Group} [group] - Optional Group to add the object to. If not specified it will be added to the World group. * @return {Phaser.TileSprite} The newly created TileSprite object. @@ -46454,7 +47000,7 @@ Phaser.GameObjectFactory.prototype.constructor = Phaser.GameObjectFactory; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -46622,7 +47168,7 @@ Phaser.GameObjectCreator.prototype = { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. - * @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Cache entry, or an instance of a RenderTexture or PIXI.Texture. + * @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. * @return {Phaser.TileSprite} The newly created tileSprite object. */ @@ -46884,7 +47430,7 @@ Phaser.GameObjectCreator.prototype.constructor = Phaser.GameObjectCreator; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47001,7 +47547,7 @@ Phaser.Sprite.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47094,7 +47640,7 @@ Phaser.Image.prototype.preUpdate = function() { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47690,7 +48236,7 @@ Phaser.Button.prototype.onInputUpHandler = function (sprite, pointer, isOver) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47732,7 +48278,7 @@ Phaser.SpriteBatch.prototype.constructor = Phaser.SpriteBatch; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -47854,11 +48400,16 @@ Phaser.BitmapData = function (game, key, width, height) { */ this.texture = new PIXI.Texture(this.baseTexture); + /** + * @property {Phaser.FrameData} frameData - The FrameData container this BitmapData uses for rendering. + */ + this.frameData = new Phaser.FrameData(); + /** * @property {Phaser.Frame} textureFrame - The Frame this BitmapData uses for rendering. * @default */ - this.textureFrame = new Phaser.Frame(0, 0, 0, width, height, 'bitmapData'); + this.textureFrame = this.frameData.addFrame(new Phaser.Frame(0, 0, 0, width, height, 'bitmapData')); this.texture.frame = this.textureFrame; @@ -48987,6 +49538,7 @@ Phaser.BitmapData.prototype = { } this._image = source.tintedTexture; + this._pos.set(0); } } else @@ -49589,6 +50141,8 @@ Phaser.BitmapData.prototype = { */ destroy: function () { + this.frameData.destroy(); + this.texture.destroy(true); PIXI.CanvasPool.remove(this); @@ -53361,7 +53915,7 @@ PIXI.CanvasGraphics.updateGraphicsTint = function(graphics) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53403,6 +53957,12 @@ Phaser.Graphics = function (game, x, y) { */ this.physicsType = Phaser.SPRITE; + /** + * @property {Phaser.Point} anchor - Required for a Graphics shape to work as a Physics body, do not modify this value. + * @private + */ + this.anchor = new Phaser.Point(); + PIXI.Graphics.call(this); Phaser.Component.Core.init.call(this, game, x, y, '', null); @@ -53571,7 +54131,7 @@ Phaser.Graphics.prototype.drawTriangles = function(vertices, indices, cull) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53725,7 +54285,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -53759,6 +54319,7 @@ Phaser.RenderTexture.prototype.render = function (displayObject, matrix, clear) * @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke). * @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used. * @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap. +* @param {number} [style.maxLines=0] - The maximum number of lines to be shown for wrapped text. * @param {number} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop. */ Phaser.Text = function (game, x, y, text, style) { @@ -54009,6 +54570,7 @@ Phaser.Text.prototype.setShadow = function (x, y, color, blur, shadowStroke, sha * @param {number} [style.strokeThickness=0] - A number that represents the thickness of the stroke. Default is 0 (no stroke). * @param {boolean} [style.wordWrap=false] - Indicates if word wrap should be used. * @param {number} [style.wordWrapWidth=100] - The width in pixels at which text will wrap. +* @param {number} [style.maxLines=0] - The maximum number of lines to be shown for wrapped text. * @param {number|array} [style.tabs=0] - The size (in pixels) of the tabs, for when text includes tab characters. 0 disables. Can be an array of varying tab sizes, one per tab stop. * @return {Phaser.Text} This Text instance. */ @@ -54025,6 +54587,7 @@ Phaser.Text.prototype.setStyle = function (style) { style.strokeThickness = style.strokeThickness || 0; style.wordWrap = style.wordWrap || false; style.wordWrapWidth = style.wordWrapWidth || 100; + style.maxLines = style.maxLines || 0; style.shadowOffsetX = style.shadowOffsetX || 0; style.shadowOffsetY = style.shadowOffsetY || 0; style.shadowColor = style.shadowColor || 'rgba(0,0,0,0)'; @@ -54061,6 +54624,7 @@ Phaser.Text.prototype.setStyle = function (style) { this._fontComponents = components; style.font = this.componentsToFont(this._fontComponents); + this.style = style; this.dirty = true; @@ -54096,7 +54660,14 @@ Phaser.Text.prototype.updateText = function () { var maxLineWidth = 0; var fontProperties = this.determineFontProperties(this.style.font); - for (var i = 0; i < lines.length; i++) + var drawnLines = lines.length; + + if (this.style.maxLines > 0 && this.style.maxLines < lines.length) + { + drawnLines = this.style.maxLines; + } + + for (var i = 0; i < drawnLines; i++) { if (tabs === 0) { @@ -54153,7 +54724,7 @@ Phaser.Text.prototype.updateText = function () { // Calculate text height var lineHeight = fontProperties.fontSize + this.style.strokeThickness + this.padding.y; - var height = lineHeight * lines.length; + var height = lineHeight * drawnLines; var lineSpacing = this._lineSpacing; if (lineSpacing < 0 && Math.abs(lineSpacing) > lineHeight) @@ -54164,7 +54735,7 @@ Phaser.Text.prototype.updateText = function () { // Adjust for line spacing if (lineSpacing !== 0) { - height += lineSpacing * lines.length; + height += (lineSpacing > 0) ? lineSpacing * lines.length : lineSpacing * (lines.length - 1); } this.canvas.height = height * this._res; @@ -54197,7 +54768,7 @@ Phaser.Text.prototype.updateText = function () { this._charCount = 0; // Draw text line by line - for (i = 0; i < lines.length; i++) + for (i = 0; i < drawnLines; i++) { // Split the line by @@ -54802,18 +55373,27 @@ Phaser.Text.prototype.fontToComponents = function (font) { if (m) { + var family = m[5].trim(); + + // If it looks like the value should be quoted, but isn't, then quote it. + if (!/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(family) && !/['",]/.exec(family)) + { + family = "'" + family + "'"; + } + return { font: font, fontStyle: m[1] || 'normal', fontVariant: m[2] || 'normal', fontWeight: m[3] || 'normal', fontSize: m[4] || 'medium', - fontFamily: m[5] + fontFamily: family }; } else { console.warn("Phaser.Text - unparsable CSS font: " + font); + return { font: font }; @@ -55886,7 +56466,7 @@ Phaser.Text.fontPropertiesContext = Phaser.Text.fontPropertiesCanvas.getContext( /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -55999,7 +56579,7 @@ Phaser.BitmapText = function (game, x, y, font, text, size, align) { * @property {string} _text - Internal cache var. * @private */ - this._text = text; + this._text = text.toString() || ''; /** * @property {string} _data - Internal cache var. @@ -56594,7 +57174,7 @@ Object.defineProperty(Phaser.BitmapText.prototype, 'smoothed', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -57199,7 +57779,7 @@ Object.defineProperty(Phaser.RetroFont.prototype, "smoothed", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd, Richard Davey +* @copyright 2016 Photon Storm Ltd, Richard Davey * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -57409,7 +57989,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -57462,7 +58042,7 @@ Object.defineProperty(Phaser.Rope.prototype, "segments", { * @param {number} y - The y coordinate (in world space) to position the TileSprite at. * @param {number} width - The width of the TileSprite. * @param {number} height - The height of the TileSprite. -* @param {string|Phaser.RenderTexture|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a RenderTexture, PIXI.Texture or BitmapData. +* @param {string|Phaser.BitmapData|PIXI.Texture} key - This is the image or texture used by the TileSprite during rendering. It can be a string which is a reference to the Phaser Image Cache entry, or an instance of a PIXI.Texture or BitmapData. * @param {string|number} frame - If this TileSprite is using part of a sprite sheet or texture atlas you can specify the exact frame to use by giving a string or numeric index. */ Phaser.TileSprite = function (game, x, y, width, height, key, frame) { @@ -57624,7 +58204,7 @@ Phaser.TileSprite.prototype.reset = function(x, y) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59001,7 +59581,7 @@ Phaser.Device.isAndroidStockBrowser = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59309,7 +59889,7 @@ Phaser.Canvas = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -59478,7 +60058,7 @@ Phaser.RequestAnimationFrame.prototype.constructor = Phaser.RequestAnimationFram /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -60374,16 +60954,29 @@ Phaser.Math = { }, /** - * Force a value within the boundaries by clamping `x` to the range `[a, b]`. + * Force a value within the boundaries by clamping it to the range `min`, `max`. * * @method Phaser.Math#clamp - * @param {number} x - * @param {number} a - * @param {number} b - * @return {number} + * @param {float} v - The value to be clamped. + * @param {float} min - The minimum bounds. + * @param {float} max - The maximum bounds. + * @return {number} The clamped value. */ - clamp: function (x, a, b) { - return ( x < a ) ? a : ( ( x > b ) ? b : x ); + clamp: function (v, min, max) { + + if (v < min) + { + return min; + } + else if (max < v) + { + return max; + } + else + { + return v; + } + }, /** @@ -60432,24 +61025,29 @@ Phaser.Math = { * Smoothstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smoothstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smoothstep: function (x, min, max) { + + // Scale, bias and saturate x to 0..1 range x = Math.max(0, Math.min(1, (x - min) / (max - min))); + + // Evaluate polynomial return x * x * (3 - 2 * x); + }, /** * Smootherstep function as detailed at http://en.wikipedia.org/wiki/Smoothstep * * @method Phaser.Math#smootherstep - * @param {number} x - * @param {number} min - * @param {number} max - * @return {number} + * @param {float} x - The input value. + * @param {float} min - The left edge. Should be smaller than the right edge. + * @param {float} max - The right edge. + * @return {float} A value between 0 and 1. */ smootherstep: function (x, min, max) { x = Math.max(0, Math.min(1, (x - min) / (max - min))); @@ -60514,7 +61112,7 @@ Phaser.Math.degToRad = function degToRad (degrees) { }; /** -* Convert degrees to radians. +* Convert radians to degrees. * * @method Phaser.Math#radToDeg * @param {number} radians - Angle in radians. @@ -60528,7 +61126,7 @@ Phaser.Math.radToDeg = function radToDeg (radians) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -60885,7 +61483,7 @@ Phaser.RandomDataGenerator.prototype.constructor = Phaser.RandomDataGenerator; /** * @author Timo Hausmann * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -61237,7 +61835,7 @@ Phaser.QuadTree.prototype.constructor = Phaser.QuadTree; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -61387,8 +61985,8 @@ Phaser.Net.prototype = { }, /** - * Returns the Query String as an object. - * If you specify a parameter it will return just the value of that parameter, should it exist. + * Takes a Uniform Resource Identifier (URI) component (previously created by encodeURIComponent or by a similar routine) and + * decodes it, replacing \ with spaces in the return. Used internally by the Net classes. * * @method Phaser.Net#decodeURI * @param {string} value - The URI component to be decoded. @@ -61404,7 +62002,7 @@ Phaser.Net.prototype.constructor = Phaser.Net; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -61765,7 +62363,7 @@ Phaser.TweenManager.prototype.constructor = Phaser.TweenManager; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -61842,8 +62440,9 @@ Phaser.Tween = function (target, game, manager) { this.onStart = new Phaser.Signal(); /** - * The onLoop event is fired if the Tween or any child tween loops. + * The onLoop event is fired if the Tween, or any child tweens loop. * It will be sent 2 parameters: the target object and this tween. + * * @property {Phaser.Signal} onLoop */ this.onLoop = new Phaser.Signal(); @@ -62312,10 +62911,9 @@ Phaser.Tween.prototype = { /** * Set how many times this tween and all of its children will repeat. * A tween (A) with 3 children (B,C,D) with a `repeatAll` value of 2 would play as: ABCDABCD before completing. - * When all child tweens have completed Tween.onLoop will be dispatched. * - * @method Phaser.Tween#repeat - * @param {number} total - How many times this tween and all children should repeat before completing. Set to zero to remove an active repeat. Set to -1 to repeat forever. + * @method Phaser.Tween#repeatAll + * @param {number} [total=0] - How many times this tween and all children should repeat before completing. Set to zero to remove an active repeat. Set to -1 to repeat forever. * @return {Phaser.Tween} This tween. Useful for method chaining. */ repeatAll: function (total) { @@ -62363,7 +62961,8 @@ Phaser.Tween.prototype = { }, /** - * Enables the looping of this tween and all child tweens. If this tween has no children this setting has no effect. + * Enables the looping of this tween. The tween will loop forever, and onComplete will never fire. + * * If `value` is `true` then this is the same as setting `Tween.repeatAll(-1)`. * If `value` is `false` it is the same as setting `Tween.repeatAll(0)` and will reset the `repeatCounter` to zero. * @@ -62374,21 +62973,14 @@ Phaser.Tween.prototype = { * .to({ y: 0 }, 1000, Phaser.Easing.Linear.None) * .loop(); * @method Phaser.Tween#loop - * @param {boolean} [value=true] - If `true` this tween and any child tweens will loop once they reach the end. Set to `false` to remove an active loop. + * @param {boolean} [value=true] - If `true` this tween will loop once it reaches the end. Set to `false` to remove an active loop. * @return {Phaser.Tween} This tween. Useful for method chaining. */ loop: function (value) { if (value === undefined) { value = true; } - if (value) - { - this.repeatAll(-1); - } - else - { - this.repeatCounter = 0; - } + this.repeatCounter = (value) ? -1 : 0; return this; @@ -62494,7 +63086,7 @@ Phaser.Tween.prototype = { */ update: function (time) { - if (this.pendingDelete) + if (this.pendingDelete || !this.target) { return false; } @@ -62528,7 +63120,7 @@ Phaser.Tween.prototype = { } else if (status === Phaser.TweenData.LOOPED) { - if (this.repeatCounter === -1) + if (this.timeline[this.current].repeatCounter === -1) { this.onLoop.dispatch(this.target, this); } @@ -62536,6 +63128,7 @@ Phaser.Tween.prototype = { { this.onRepeat.dispatch(this.target, this); } + return true; } else if (status === Phaser.TweenData.COMPLETE) @@ -62625,13 +63218,8 @@ Phaser.Tween.prototype = { return null; } - if (frameRate === undefined) { - frameRate = 60; - } - - if (data === undefined) { - data = []; - } + if (frameRate === undefined) { frameRate = 60; } + if (data === undefined) { data = []; } // Populate the tween data for (var i = 0; i < this.timeline.length; i++) @@ -62690,7 +63278,7 @@ Phaser.Tween.prototype.constructor = Phaser.Tween; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -62767,6 +63355,12 @@ Phaser.TweenData = function (parent) { */ this.repeatDelay = 0; + /** + * @property {number} repeatTotal - The total number of times this Tween will repeat. + * @readonly + */ + this.repeatTotal = 0; + /** * @property {boolean} interpolate - True if the Tween will use interpolation (i.e. is an Array to Array tween) * @default @@ -62883,7 +63477,7 @@ Phaser.TweenData.prototype = { this.duration = duration; this.easingFunction = ease; this.delay = delay; - this.repeatCounter = repeat; + this.repeatTotal = repeat; this.yoyo = yoyo; this.isFrom = false; @@ -62911,7 +63505,7 @@ Phaser.TweenData.prototype = { this.duration = duration; this.easingFunction = ease; this.delay = delay; - this.repeatCounter = repeat; + this.repeatTotal = repeat; this.yoyo = yoyo; this.isFrom = true; @@ -62961,6 +63555,7 @@ Phaser.TweenData.prototype = { this.value = 0; this.yoyoCounter = 0; + this.repeatCounter = this.repeatTotal; return this; @@ -63264,7 +63859,7 @@ Phaser.TweenData.prototype.constructor = Phaser.TweenData; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -63839,7 +64434,7 @@ Phaser.Easing.Power4 = Phaser.Easing.Quintic.Out; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -64468,7 +65063,7 @@ Phaser.Time.prototype.constructor = Phaser.Time; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65225,7 +65820,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65235,7 +65830,7 @@ Phaser.Timer.prototype.constructor = Phaser.Timer; * It consists of a delay, which is a value in milliseconds after which the event will fire. * When the event fires it calls a specific callback with the specified arguments. * -* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#add}, or {@link Phaser.Timer#add} methods to create a new event. +* Use {@link Phaser.Timer#add}, {@link Phaser.Timer#repeat}, or {@link Phaser.Timer#loop} methods to create a new event. * * @class Phaser.TimerEvent * @constructor @@ -65304,7 +65899,7 @@ Phaser.TimerEvent.prototype.constructor = Phaser.TimerEvent; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -65873,7 +66468,7 @@ Object.defineProperty(Phaser.AnimationManager.prototype, 'frameName', { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -66695,7 +67290,7 @@ Phaser.Animation.generateFrameNames = function (prefix, start, stop, suffix, zer /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -66926,7 +67521,7 @@ Phaser.Frame.prototype.constructor = Phaser.Frame; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67172,6 +67767,18 @@ Phaser.FrameData.prototype = { return output; + }, + + /** + * Destroys this FrameData collection by nulling the _frames and _frameNames arrays. + * + * @method Phaser.FrameData#destroy + */ + destroy: function () { + + this._frames = null; + this._frameNames = null; + } }; @@ -67193,7 +67800,7 @@ Object.defineProperty(Phaser.FrameData.prototype, "total", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -67521,7 +68128,7 @@ Phaser.AnimationParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -69544,7 +70151,7 @@ Phaser.Cache.prototype.constructor = Phaser.Cache; /* jshint wsh:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -72581,7 +73188,7 @@ Phaser.Loader.prototype.constructor = Phaser.Loader; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -72750,7 +73357,7 @@ Phaser.LoaderParser = { /** * @author Jeremy Dowell * @author Richard Davey - * @copyright 2015 Photon Storm Ltd. + * @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -72880,7 +73487,7 @@ Phaser.AudioSprite.prototype.constructor = Phaser.AudioSprite; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -73469,7 +74076,7 @@ Phaser.Sound.prototype = { if (volume === undefined) { volume = this._volume; } if (loop === undefined) { loop = this.loop; } - this.position = position; + this.position = Math.max(0, position); this.volume = volume; this.loop = loop; this.duration = 0; @@ -73575,7 +74182,7 @@ Phaser.Sound.prototype = { this._sound.currentTime = this.position; this._sound.muted = this._muted; - if (this._muted) + if (this._muted || this.game.sound.mute) { this._sound.volume = 0; } @@ -73650,7 +74257,7 @@ Phaser.Sound.prototype = { { if (this.usingWebAudio) { - var p = this.position + (this.pausedPosition / 1000); + var p = Math.max(0, this.position + (this.pausedPosition / 1000)); this._sound = this.context.createBufferSource(); this._sound.buffer = this._buffer; @@ -73781,17 +74388,17 @@ Phaser.Sound.prototype = { }, /** - * Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. - * Then increases the volume from 0 to 1 over the duration specified. - * - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (1) as the second parameter. - * - * @method Phaser.Sound#fadeIn - * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade in. - * @param {boolean} [loop=false] - Should the Sound be set to loop? Note that this doesn't cause the fade to repeat. - * @param {string} [marker=(current marker)] - The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of `''`. - */ + * Starts this sound playing (or restarts it if already doing so) and sets the volume to zero. + * Then increases the volume from 0 to 1 over the duration specified. + * + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (1) as the second parameter. + * + * @method Phaser.Sound#fadeIn + * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade in. + * @param {boolean} [loop=false] - Should the Sound be set to loop? Note that this doesn't cause the fade to repeat. + * @param {string} [marker=(current marker)] - The marker to start at; defaults to the current (last played) marker. To start playing from the beginning specify specify a marker of `''`. + */ fadeIn: function (duration, loop, marker) { if (loop === undefined) { loop = false; } @@ -73809,13 +74416,13 @@ Phaser.Sound.prototype = { }, /** - * Decreases the volume of this Sound from its current value to 0 over the duration specified. - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (0) as the second parameter. - * - * @method Phaser.Sound#fadeOut - * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade out. - */ + * Decreases the volume of this Sound from its current value to 0 over the duration specified. + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (0) as the second parameter. + * + * @method Phaser.Sound#fadeOut + * @param {number} [duration=1000] - The time in milliseconds over which the Sound should fade out. + */ fadeOut: function (duration) { this.fadeTo(duration, 0); @@ -73823,14 +74430,14 @@ Phaser.Sound.prototype = { }, /** - * Fades the volume of this Sound from its current value to the given volume over the duration specified. - * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, - * and the final volume (volume) as the second parameter. - * - * @method Phaser.Sound#fadeTo - * @param {number} [duration=1000] - The time in milliseconds during which the Sound should fade out. - * @param {number} [volume] - The volume which the Sound should fade to. This is a value between 0 and 1. - */ + * Fades the volume of this Sound from its current value to the given volume over the duration specified. + * At the end of the fade Sound.onFadeComplete is dispatched with this Sound object as the first parameter, + * and the final volume (volume) as the second parameter. + * + * @method Phaser.Sound#fadeTo + * @param {number} [duration=1000] - The time in milliseconds during which the Sound should fade out. + * @param {number} [volume] - The volume which the Sound should fade to. This is a value between 0 and 1. + */ fadeTo: function (duration, volume) { if (!this.isPlaying || this.paused || volume === this.volume) @@ -73853,11 +74460,11 @@ Phaser.Sound.prototype = { }, /** - * Internal handler for Sound.fadeIn, Sound.fadeOut and Sound.fadeTo. - * - * @method Phaser.Sound#fadeComplete - * @private - */ + * Internal handler for Sound.fadeIn, Sound.fadeOut and Sound.fadeTo. + * + * @method Phaser.Sound#fadeComplete + * @private + */ fadeComplete: function () { this.onFadeComplete.dispatch(this, this.volume); @@ -73869,6 +74476,28 @@ Phaser.Sound.prototype = { }, + /** + * Called automatically by SoundManager.volume. + * + * Sets the volume of AudioTag Sounds as a percentage of the Global Volume. + * + * You should not normally call this directly. + * + * @method Phaser.Sound#updateGlobalVolume + * @protected + * @param {float} globalVolume - The global SoundManager volume. + */ + updateGlobalVolume: function (globalVolume) { + + // this._volume is the % of the global volume this sound should be played at + + if (this.usingAudioTag && this._sound) + { + this._sound.volume = globalVolume * this._volume; + } + + }, + /** * Destroys this sound and all associated events and removes it from the SoundManager. * @@ -74031,7 +74660,7 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -74047,7 +74676,8 @@ Object.defineProperty(Phaser.Sound.prototype, "volume", { * * Mobile warning: There are some mobile devices (certain iPad 2 and iPad Mini revisions) that cannot play 48000 Hz audio. * When they try to play the audio becomes extremely distorted and buzzes, eventually crashing the sound system. -* The solution is to use a lower encoding rate such as 44100 Hz. +* The solution is to use a lower encoding rate such as 44100 Hz. Sometimes the audio context will +* be created with a sampleRate of 48000. If this happens and audio distorts you should re-create the context. * * @class Phaser.SoundManager * @constructor @@ -74125,6 +74755,15 @@ Phaser.SoundManager = function (game) { */ this.channels = 32; + /** + * Set to true to have all sound muted when the Phaser game pauses (such as on loss of focus), + * or set to false to keep audio playing, regardless of the game pause state. You may need to + * do this should you wish to control audio muting via external DOM buttons or similar. + * @property {boolean} muteOnPause + * @default + */ + this.muteOnPause = true; + /** * @property {boolean} _codeMuted - Internal mute tracking var. * @private @@ -74291,7 +74930,7 @@ Phaser.SoundManager.prototype = { /** * Sets the Input Manager touch callback to be SoundManager.unlock. * Required for iOS audio device unlocking. Mostly just used internally. - * + * * @method Phaser.SoundManager#setTouchLock */ setTouchLock: function () { @@ -74316,7 +74955,7 @@ Phaser.SoundManager.prototype = { /** * Enables the audio, usually after the first touch. - * + * * @method Phaser.SoundManager#unlock * @return {boolean} True if the callback should be removed, otherwise false. */ @@ -74761,12 +75400,20 @@ Phaser.SoundManager.prototype = { this.onSoundDecode.dispose(); - this.context.close(); - - if (this.context && window['PhaserGlobal']) + if (this.context) { - // Store this in the PhaserGlobal window var, if set, to allow for re-use if the game is created again without the page refreshing - window['PhaserGlobal'].audioContext = this.context; + if (window['PhaserGlobal']) + { + // Store this in the PhaserGlobal window var, if set, to allow for re-use if the game is created again without the page refreshing + window['PhaserGlobal'].audioContext = this.context; + } + else + { + if (this.context.close) + { + this.context.close(); + } + } } } @@ -74853,7 +75500,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { { if (this._sounds[i].usingAudioTag) { - this._sounds[i].volume = this._sounds[i].volume * value; + this._sounds[i].updateGlobalVolume(value); } } } @@ -74868,7 +75515,7 @@ Object.defineProperty(Phaser.SoundManager.prototype, "volume", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -77244,7 +77891,7 @@ Object.defineProperty(Phaser.ScaleManager.prototype, "isGameLandscape", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -77352,16 +77999,38 @@ Phaser.Utils.Debug.prototype = { this.sprite = this.game.make.image(0, 0, this.bmd); this.game.stage.addChild(this.sprite); + this.game.scale.onSizeChange.add(this.resize, this); + this.canvas = PIXI.CanvasPool.create(this, this.game.width, this.game.height); this.context = this.canvas.getContext('2d'); } }, + /** + * Internal method that resizes the BitmapData and Canvas. + * Called by ScaleManager.onSizeChange only in WebGL mode. + * + * @method Phaser.Utils.Debug#resize + * @protected + * @param {Phaser.ScaleManager} scaleManager - The Phaser ScaleManager. + * @param {number} width - The new width of the game. + * @param {number} height - The new height of the game. + */ + resize: function (scaleManager, width, height) { + + this.bmd.resize(width, height); + + this.canvas.width = width; + this.canvas.height = height; + + }, + /** * Internal method that clears the canvas (if a Sprite) ready for a new debug session. * * @method Phaser.Utils.Debug#preUpdate + * @protected */ preUpdate: function () { @@ -78075,7 +78744,7 @@ Phaser.Utils.Debug.prototype.constructor = Phaser.Utils.Debug; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -78508,7 +79177,7 @@ Phaser.Device.whenReady(function (device) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -78790,7 +79459,7 @@ Phaser.ArraySet.prototype.constructor = Phaser.ArraySet; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -79083,7 +79752,7 @@ Phaser.ArrayUtils = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -79272,7 +79941,7 @@ Phaser.LinkedList.prototype.constructor = Phaser.LinkedList; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -79477,7 +80146,7 @@ Phaser.Create.prototype.constructor = Phaser.Create; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -79805,7 +80474,7 @@ Phaser.FlexGrid.prototype.constructor = Phaser.FlexGrid; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -79921,7 +80590,7 @@ Phaser.FlexLayer.prototype.debug = function () { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -81261,7 +81930,7 @@ Phaser.Color = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -81511,6 +82180,10 @@ Phaser.Physics.prototype = { { this.matter.enable(object); } + else + { + console.warn(object.key + ' is attempting to enable a physics body using an unknown physics system.'); + } }, @@ -81689,7 +82362,7 @@ Phaser.Physics.prototype.constructor = Phaser.Physics; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -82636,29 +83309,32 @@ Phaser.Physics.Arcade.prototype = { return false; } + var resultX = false; + var resultY = false; + // Do we separate on x or y first? - - var result = false; - - // If we weren't having to carry around so much legacy baggage with us, we could do this properly. But alas ... if (this.forceX || Math.abs(this.gravity.y + body1.gravity.y) < Math.abs(this.gravity.x + body1.gravity.x)) { - result = (this.separateX(body1, body2, overlapOnly) || this.separateY(body1, body2, overlapOnly)); + resultX = this.separateX(body1, body2, overlapOnly); + + // Are they still intersecting? Let's do the other axis then + if (this.intersects(body1, body2)) + { + resultY = this.separateY(body1, body2, overlapOnly); + } } else { - result = (this.separateY(body1, body2, overlapOnly) || this.separateX(body1, body2, overlapOnly)); + resultY = this.separateY(body1, body2, overlapOnly); + + // Are they still intersecting? Let's do the other axis then + if (this.intersects(body1, body2)) + { + resultX = this.separateX(body1, body2, overlapOnly); + } } - if (overlapOnly) - { - // We already know they intersect from the check above, but by this point we know they've now had their overlapX/Y values populated - return true; - } - else - { - return result; - } + return (resultX || resultY); }, @@ -82672,156 +83348,248 @@ Phaser.Physics.Arcade.prototype = { */ intersects: function (body1, body2) { - if (body1.right <= body2.position.x) + if (body1.isCircle) { - return false; - } - - if (body1.bottom <= body2.position.y) - { - return false; - } - - if (body1.position.x >= body2.right) - { - return false; - } - - if (body1.position.y >= body2.bottom) - { - return false; - } - - return true; - - }, - - /** - * The core separation function to separate two physics bodies on the x axis. - * - * @private - * @method Phaser.Physics.Arcade#separateX - * @param {Phaser.Physics.Arcade.Body} body1 - The Body object to separate. - * @param {Phaser.Physics.Arcade.Body} body2 - The Body object to separate. - * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. - * @return {boolean} Returns true if the bodies were separated, otherwise false. - */ - separateX: function (body1, body2, overlapOnly) { - - // Can't separate two immovable bodies - if (body1.immovable && body2.immovable) - { - return false; - } - - var overlap = 0; - - // Check if the hulls actually overlap - if (this.intersects(body1, body2)) - { - var maxOverlap = body1.deltaAbsX() + body2.deltaAbsX() + this.OVERLAP_BIAS; - - if (body1.deltaX() === 0 && body2.deltaX() === 0) + if (body2.isCircle) { - // They overlap but neither of them are moving - body1.embedded = true; - body2.embedded = true; + // Circle vs. Circle + return Phaser.Math.distance(body1.center.x, body1.center.y, body2.center.x, body2.center.y) <= (body1.radius + body2.radius); } - else if (body1.deltaX() > body2.deltaX()) + else { - // Body1 is moving right and/or Body2 is moving left - overlap = body1.right - body2.x; - - if ((overlap > maxOverlap) || body1.checkCollision.right === false || body2.checkCollision.left === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.right = true; - body2.touching.none = false; - body2.touching.left = true; - } + // Circle vs. Rect + return this.circleBodyIntersects(body1, body2); } - else if (body1.deltaX() < body2.deltaX()) + } + else + { + if (body2.isCircle) { - // Body1 is moving left and/or Body2 is moving right - overlap = body1.x - body2.width - body2.x; - - if ((-overlap > maxOverlap) || body1.checkCollision.left === false || body2.checkCollision.right === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.left = true; - body2.touching.none = false; - body2.touching.right = true; - } + // Rect vs. Circle + return this.circleBodyIntersects(body2, body1); } - - // Resets the overlapX to zero if there is no overlap, or to the actual pixel value if there is - body1.overlapX = overlap; - body2.overlapX = overlap; - - // Then adjust their positions and velocities accordingly (if there was any overlap) - if (overlap !== 0) + else { - if (overlapOnly || body1.customSeparateX || body2.customSeparateX) + // Rect vs. Rect + if (body1.right <= body2.position.x) { - return true; + return false; } - var v1 = body1.velocity.x; - var v2 = body2.velocity.x; - - if (!body1.immovable && !body2.immovable) + if (body1.bottom <= body2.position.y) { - overlap *= 0.5; - - body1.x = body1.x - overlap; - body2.x += overlap; - - var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); - var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); - var avg = (nv1 + nv2) * 0.5; - - nv1 -= avg; - nv2 -= avg; - - body1.velocity.x = avg + nv1 * body1.bounce.x; - body2.velocity.x = avg + nv2 * body2.bounce.x; + return false; } - else if (!body1.immovable) - { - body1.x = body1.x - overlap; - body1.velocity.x = v2 - v1 * body1.bounce.x; - // This is special case code that handles things like vertically moving platforms you can ride - if (body2.moves) - { - body1.y += (body2.y - body2.prev.y) * body2.friction.y; - } + if (body1.position.x >= body2.right) + { + return false; } - else if (!body2.immovable) - { - body2.x += overlap; - body2.velocity.x = v1 - v2 * body2.bounce.x; - // This is special case code that handles things like vertically moving platforms you can ride - if (body1.moves) - { - body2.y += (body1.y - body1.prev.y) * body1.friction.y; - } + if (body1.position.y >= body2.bottom) + { + return false; } return true; } } - return false; + }, + + /** + * Calculates the horizontal overlap between two Bodies and sets their properties accordingly, including: + * `touching.left`, `touching.right` and `overlapX`. + * + * @method Phaser.Physics.Arcade#getOverlapX + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @return {float} Returns the amount of horizontal overlap between the two bodies. + */ + getOverlapX: function (body1, body2) { + + var overlap = 0; + var maxOverlap = body1.deltaAbsX() + body2.deltaAbsX() + this.OVERLAP_BIAS; + + if (body1.deltaX() === 0 && body2.deltaX() === 0) + { + // They overlap but neither of them are moving + body1.embedded = true; + body2.embedded = true; + } + else if (body1.deltaX() > body2.deltaX()) + { + // Body1 is moving right and / or Body2 is moving left + overlap = body1.right - body2.x; + + if ((overlap > maxOverlap) || body1.checkCollision.right === false || body2.checkCollision.left === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.right = true; + body2.touching.none = false; + body2.touching.left = true; + } + } + else if (body1.deltaX() < body2.deltaX()) + { + // Body1 is moving left and/or Body2 is moving right + overlap = body1.x - body2.width - body2.x; + + if ((-overlap > maxOverlap) || body1.checkCollision.left === false || body2.checkCollision.right === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.left = true; + body2.touching.none = false; + body2.touching.right = true; + } + } + + // Resets the overlapX to zero if there is no overlap, or to the actual pixel value if there is + body1.overlapX = overlap; + body2.overlapX = overlap; + + return overlap; + + }, + + /** + * Calculates the vertical overlap between two Bodies and sets their properties accordingly, including: + * `touching.up`, `touching.down` and `overlapY`. + * + * @method Phaser.Physics.Arcade#getOverlapY + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @return {float} Returns the amount of vertical overlap between the two bodies. + */ + getOverlapY: function (body1, body2) { + + var overlap = 0; + var maxOverlap = body1.deltaAbsY() + body2.deltaAbsY() + this.OVERLAP_BIAS; + + if (body1.deltaY() === 0 && body2.deltaY() === 0) + { + // They overlap but neither of them are moving + body1.embedded = true; + body2.embedded = true; + } + else if (body1.deltaY() > body2.deltaY()) + { + // Body1 is moving down and/or Body2 is moving up + overlap = body1.bottom - body2.y; + + if ((overlap > maxOverlap) || body1.checkCollision.down === false || body2.checkCollision.up === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.down = true; + body2.touching.none = false; + body2.touching.up = true; + } + } + else if (body1.deltaY() < body2.deltaY()) + { + // Body1 is moving up and/or Body2 is moving down + overlap = body1.y - body2.bottom; + + if ((-overlap > maxOverlap) || body1.checkCollision.up === false || body2.checkCollision.down === false) + { + overlap = 0; + } + else + { + body1.touching.none = false; + body1.touching.up = true; + body2.touching.none = false; + body2.touching.down = true; + } + } + + // Resets the overlapY to zero if there is no overlap, or to the actual pixel value if there is + body1.overlapY = overlap; + body2.overlapY = overlap; + + return overlap; + + }, + + /** + * The core separation function to separate two physics bodies on the x axis. + * + * @method Phaser.Physics.Arcade#separateX + * @private + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. + * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. + * @return {boolean} Returns true if the bodies were separated or overlap, otherwise false. + */ + separateX: function (body1, body2, overlapOnly) { + + var overlap = this.getOverlapX(body1, body2); + + // Can't separate two immovable bodies, or a body with its own custom separation logic + if (overlapOnly || overlap === 0 || (body1.immovable && body2.immovable) || body1.customSeparateX || body2.customSeparateX) + { + // return true if there was some overlap, otherwise false + return (overlap !== 0); + } + + // Adjust their positions and velocities accordingly (if there was any overlap) + var v1 = body1.velocity.x; + var v2 = body2.velocity.x; + + if (!body1.immovable && !body2.immovable) + { + overlap *= 0.5; + + body1.x -= overlap; + body2.x += overlap; + + var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); + var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); + var avg = (nv1 + nv2) * 0.5; + + nv1 -= avg; + nv2 -= avg; + + body1.velocity.x = avg + nv1 * body1.bounce.x; + body2.velocity.x = avg + nv2 * body2.bounce.x; + } + else if (!body1.immovable) + { + body1.x -= overlap; + body1.velocity.x = v2 - v1 * body1.bounce.x; + + // This is special case code that handles things like vertically moving platforms you can ride + if (body2.moves) + { + body1.y += (body2.y - body2.prev.y) * body2.friction.y; + } + } + else + { + body2.x += overlap; + body2.velocity.x = v1 - v2 * body2.bounce.x; + + // This is special case code that handles things like vertically moving platforms you can ride + if (body1.moves) + { + body2.y += (body1.y - body1.prev.y) * body1.friction.y; + } + } + + // If we got this far then there WAS overlap, and separation is complete, so return true + return true; }, @@ -82830,128 +83598,68 @@ Phaser.Physics.Arcade.prototype = { * * @private * @method Phaser.Physics.Arcade#separateY - * @param {Phaser.Physics.Arcade.Body} body1 - The Body object to separate. - * @param {Phaser.Physics.Arcade.Body} body2 - The Body object to separate. + * @param {Phaser.Physics.Arcade.Body} body1 - The first Body to separate. + * @param {Phaser.Physics.Arcade.Body} body2 - The second Body to separate. * @param {boolean} overlapOnly - If true the bodies will only have their overlap data set, no separation or exchange of velocity will take place. - * @return {boolean} Returns true if the bodies were separated, otherwise false. + * @return {boolean} Returns true if the bodies were separated or overlap, otherwise false. */ separateY: function (body1, body2, overlapOnly) { - // Can't separate two immovable or non-existing bodies - if (body1.immovable && body2.immovable) + var overlap = this.getOverlapY(body1, body2); + + // Can't separate two immovable bodies, or a body with its own custom separation logic + if (overlapOnly || overlap === 0 || (body1.immovable && body2.immovable) || body1.customSeparateY || body2.customSeparateY) { - return false; + // return true if there was some overlap, otherwise false + return (overlap !== 0); } - var overlap = 0; + // Adjust their positions and velocities accordingly (if there was any overlap) + var v1 = body1.velocity.y; + var v2 = body2.velocity.y; - // Check if the hulls actually overlap - if (this.intersects(body1, body2)) + if (!body1.immovable && !body2.immovable) { - var maxOverlap = body1.deltaAbsY() + body2.deltaAbsY() + this.OVERLAP_BIAS; + overlap *= 0.5; - if (body1.deltaY() === 0 && body2.deltaY() === 0) + body1.y -= overlap; + body2.y += overlap; + + var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); + var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); + var avg = (nv1 + nv2) * 0.5; + + nv1 -= avg; + nv2 -= avg; + + body1.velocity.y = avg + nv1 * body1.bounce.y; + body2.velocity.y = avg + nv2 * body2.bounce.y; + } + else if (!body1.immovable) + { + body1.y -= overlap; + body1.velocity.y = v2 - v1 * body1.bounce.y; + + // This is special case code that handles things like horizontal moving platforms you can ride + if (body2.moves) { - // They overlap but neither of them are moving - body1.embedded = true; - body2.embedded = true; + body1.x += (body2.x - body2.prev.x) * body2.friction.x; } - else if (body1.deltaY() > body2.deltaY()) + } + else + { + body2.y += overlap; + body2.velocity.y = v1 - v2 * body2.bounce.y; + + // This is special case code that handles things like horizontal moving platforms you can ride + if (body1.moves) { - // Body1 is moving down and/or Body2 is moving up - overlap = body1.bottom - body2.y; - - if ((overlap > maxOverlap) || body1.checkCollision.down === false || body2.checkCollision.up === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.down = true; - body2.touching.none = false; - body2.touching.up = true; - } + body2.x += (body1.x - body1.prev.x) * body1.friction.x; } - else if (body1.deltaY() < body2.deltaY()) - { - // Body1 is moving up and/or Body2 is moving down - overlap = body1.y - body2.bottom; - - if ((-overlap > maxOverlap) || body1.checkCollision.up === false || body2.checkCollision.down === false) - { - overlap = 0; - } - else - { - body1.touching.none = false; - body1.touching.up = true; - body2.touching.none = false; - body2.touching.down = true; - } - } - - // Resets the overlapY to zero if there is no overlap, or to the actual pixel value if there is - body1.overlapY = overlap; - body2.overlapY = overlap; - - // Then adjust their positions and velocities accordingly (if there was any overlap) - if (overlap !== 0) - { - if (overlapOnly || body1.customSeparateY || body2.customSeparateY) - { - return true; - } - - var v1 = body1.velocity.y; - var v2 = body2.velocity.y; - - if (!body1.immovable && !body2.immovable) - { - overlap *= 0.5; - - body1.y = body1.y - overlap; - body2.y += overlap; - - var nv1 = Math.sqrt((v2 * v2 * body2.mass) / body1.mass) * ((v2 > 0) ? 1 : -1); - var nv2 = Math.sqrt((v1 * v1 * body1.mass) / body2.mass) * ((v1 > 0) ? 1 : -1); - var avg = (nv1 + nv2) * 0.5; - - nv1 -= avg; - nv2 -= avg; - - body1.velocity.y = avg + nv1 * body1.bounce.y; - body2.velocity.y = avg + nv2 * body2.bounce.y; - } - else if (!body1.immovable) - { - body1.y = body1.y - overlap; - body1.velocity.y = v2 - v1 * body1.bounce.y; - - // This is special case code that handles things like horizontal moving platforms you can ride - if (body2.moves) - { - body1.x += (body2.x - body2.prev.x) * body2.friction.x; - } - } - else if (!body2.immovable) - { - body2.y += overlap; - body2.velocity.y = v1 - v2 * body2.bounce.y; - - // This is special case code that handles things like horizontal moving platforms you can ride - if (body1.moves) - { - body2.x += (body1.x - body1.prev.x) * body1.friction.x; - } - } - - return true; - } - } - return false; + // If we got this far then there WAS overlap, and separation is complete, so return true + return true; }, @@ -83411,7 +84119,7 @@ Phaser.Physics.Arcade.prototype = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -83878,10 +84586,11 @@ Phaser.Physics.Arcade.Body.prototype = { if (this.position.x !== this.prev.x || this.position.y !== this.prev.y) { - this.speed = Math.sqrt(this.velocity.x * this.velocity.x + this.velocity.y * this.velocity.y); this.angle = Math.atan2(this.velocity.y, this.velocity.x); } + this.speed = Math.sqrt(this.velocity.x * this.velocity.x + this.velocity.y * this.velocity.y); + // Now the State update will throw collision checks at the Body // And finally we'll integrate the new position back to the Sprite in postUpdate @@ -83978,23 +84687,6 @@ Phaser.Physics.Arcade.Body.prototype = { }, - /** - * Removes this bodys reference to its parent sprite, freeing it up for gc. - * - * @method Phaser.Physics.Arcade.Body#destroy - */ - destroy: function () { - - if (this.sprite.parent && this.sprite.parent instanceof Phaser.Group) - { - this.sprite.parent.removeFromHash(this.sprite); - } - - this.sprite.body = null; - this.sprite = null; - - }, - /** * Internal method. * @@ -84040,6 +84732,9 @@ Phaser.Physics.Arcade.Body.prototype = { * So it could be smaller or larger than the parent Sprite. You can also control the x and y offset, which * is the position of the Body relative to the top-left of the Sprite. * + * Calling `setSize` will have no effect if you have previously used `Body.setCircle`. To change a collision + * circle use `setCircle` instead. + * * @method Phaser.Physics.Arcade.Body#setSize * @param {number} width - The width of the Body. * @param {number} height - The height of the Body. @@ -84048,6 +84743,11 @@ Phaser.Physics.Arcade.Body.prototype = { */ setSize: function (width, height, offsetX, offsetY) { + if (this.isCircle) + { + return; + } + if (offsetX === undefined) { offsetX = this.offset.x; } if (offsetY === undefined) { offsetY = this.offset.y; } @@ -84063,6 +84763,47 @@ Phaser.Physics.Arcade.Body.prototype = { }, + /** + * Sets this Body as using a circle, of the given radius, for all collision detection instead of a rectangle. + * The radius is given in pixels and is the distance from the center of the circle to the edge. + * + * You can also control the x and y offset, which is the position of the Body relative to the top-left of the Sprite. + * + * @method Phaser.Physics.Arcade.Body#setCircle + * @param {number} [radius] - The radius of the Body in pixels. Pass a value of zero / undefined, to stop the Body using a circle for collision. + * @param {number} [offsetX] - The X offset of the Body from the Sprite position. + * @param {number} [offsetY] - The Y offset of the Body from the Sprite position. + */ + setCircle: function (radius, offsetX, offsetY) { + + if (offsetX === undefined) { offsetX = this.offset.x; } + if (offsetY === undefined) { offsetY = this.offset.y; } + + if (radius > 0) + { + this.isCircle = true; + this.radius = radius; + + this.sourceWidth = radius * 2; + this.sourceHeight = radius * 2; + + this.width = this.sourceWidth * this._sx; + this.height = this.sourceHeight * this._sy; + + this.halfWidth = Math.floor(this.width / 2); + this.halfHeight = Math.floor(this.height / 2); + + this.offset.setTo(offsetX, offsetY); + + this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight); + } + else + { + this.isCircle = false; + } + + }, + /** * Resets all Body values (velocity, acceleration, rotation, etc) * @@ -84104,7 +84845,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if the given coordinates are inside this Body, otherwise false. */ hitTest: function (x, y) { - return Phaser.Rectangle.contains(this, x, y); + + return (this.isCircle) ? Phaser.Circle.contains(this, x, y) : Phaser.Rectangle.contains(this, x, y); + }, /** @@ -84114,7 +84857,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onFloor: function () { + return this.blocked.down; + }, /** @@ -84124,7 +84869,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onCeiling: function(){ + return this.blocked.up; + }, /** @@ -84134,7 +84881,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {boolean} True if in contact with either the world bounds or a tile. */ onWall: function () { + return (this.blocked.left || this.blocked.right); + }, /** @@ -84144,7 +84893,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The absolute delta value. */ deltaAbsX: function () { + return (this.deltaX() > 0 ? this.deltaX() : -this.deltaX()); + }, /** @@ -84154,7 +84905,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The absolute delta value. */ deltaAbsY: function () { + return (this.deltaY() > 0 ? this.deltaY() : -this.deltaY()); + }, /** @@ -84164,7 +84917,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was to the right, negative if to the left. */ deltaX: function () { + return this.position.x - this.prev.x; + }, /** @@ -84174,7 +84929,9 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was downwards, negative if upwards. */ deltaY: function () { + return this.position.y - this.prev.y; + }, /** @@ -84184,20 +84941,43 @@ Phaser.Physics.Arcade.Body.prototype = { * @return {number} The delta value. Positive if the motion was clockwise, negative if anti-clockwise. */ deltaZ: function () { + return this.rotation - this.preRotation; + + }, + + /** + * Destroys this Body. + * + * First it calls Group.removeFromHash if the Game Object this Body belongs to is part of a Group. + * Then it nulls the Game Objects body reference, and nulls this Body.sprite reference. + * + * @method Phaser.Physics.Arcade.Body#destroy + */ + destroy: function () { + + if (this.sprite.parent && this.sprite.parent instanceof Phaser.Group) + { + this.sprite.parent.removeFromHash(this.sprite); + } + + this.sprite.body = null; + this.sprite = null; + } }; /** -* @name Phaser.Physics.Arcade.Body#bottom -* @property {number} bottom - The bottom value of this Body (same as Body.y + Body.height) -* @readonly +* @name Phaser.Physics.Arcade.Body#left +* @property {number} left - The x position of the Body. The same as `Body.x`. */ -Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "left", { get: function () { - return this.position.y + this.height; + + return this.position.x; + } }); @@ -84210,7 +84990,38 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "right", { get: function () { + return this.position.x + this.width; + + } + +}); + +/** +* @name Phaser.Physics.Arcade.Body#top +* @property {number} top - The y position of the Body. The same as `Body.y`. +*/ +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "top", { + + get: function () { + + return this.position.y; + + } + +}); + +/** +* @name Phaser.Physics.Arcade.Body#bottom +* @property {number} bottom - The bottom value of this Body (same as Body.y + Body.height) +* @readonly +*/ +Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "bottom", { + + get: function () { + + return this.position.y + this.height; + } }); @@ -84222,7 +85033,9 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "right", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "x", { get: function () { + return this.position.x; + }, set: function (value) { @@ -84239,7 +85052,9 @@ Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "x", { Object.defineProperty(Phaser.Physics.Arcade.Body.prototype, "y", { get: function () { + return this.position.y; + }, set: function (value) { @@ -84302,7 +85117,7 @@ Phaser.Physics.Arcade.Body.prototype.constructor = Phaser.Physics.Arcade.Body; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -84710,7 +85525,7 @@ Phaser.Utils.mixinPrototype(Phaser.Physics.Arcade.prototype, Phaser.Physics.Arca /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -85325,9 +86140,9 @@ Phaser.Physics.P2.prototype = { */ updateBoundsCollisionGroup: function (setCollisionGroup) { - var mask = this.everythingCollisionGroup.mask; + if (setCollisionGroup === undefined) { setCollisionGroup = true; } - if (setCollisionGroup === undefined) { mask = this.boundsCollisionGroup.mask; } + var mask = (setCollisionGroup) ? this.boundsCollisionGroup.mask : this.everythingCollisionGroup.mask; if (this.walls.left) { @@ -85349,6 +86164,8 @@ Phaser.Physics.P2.prototype = { this.walls.bottom.shapes[0].collisionGroup = mask; } + this._boundsOwnGroup = setCollisionGroup; + }, /** @@ -85378,77 +86195,10 @@ Phaser.Physics.P2.prototype = { if (bottom === undefined) { bottom = this._boundsBottom; } if (setCollisionGroup === undefined) { setCollisionGroup = this._boundsOwnGroup; } - if (this.walls.left) - { - this.world.removeBody(this.walls.left); - } - - if (this.walls.right) - { - this.world.removeBody(this.walls.right); - } - - if (this.walls.top) - { - this.world.removeBody(this.walls.top); - } - - if (this.walls.bottom) - { - this.world.removeBody(this.walls.bottom); - } - - if (left) - { - this.walls.left = new p2.Body({ mass: 0, position: [ this.pxmi(x), this.pxmi(y) ], angle: 1.5707963267948966 }); - this.walls.left.addShape(new p2.Plane()); - - if (setCollisionGroup) - { - this.walls.left.shapes[0].collisionGroup = this.boundsCollisionGroup.mask; - } - - this.world.addBody(this.walls.left); - } - - if (right) - { - this.walls.right = new p2.Body({ mass: 0, position: [ this.pxmi(x + width), this.pxmi(y) ], angle: -1.5707963267948966 }); - this.walls.right.addShape(new p2.Plane()); - - if (setCollisionGroup) - { - this.walls.right.shapes[0].collisionGroup = this.boundsCollisionGroup.mask; - } - - this.world.addBody(this.walls.right); - } - - if (top) - { - this.walls.top = new p2.Body({ mass: 0, position: [ this.pxmi(x), this.pxmi(y) ], angle: -3.141592653589793 }); - this.walls.top.addShape(new p2.Plane()); - - if (setCollisionGroup) - { - this.walls.top.shapes[0].collisionGroup = this.boundsCollisionGroup.mask; - } - - this.world.addBody(this.walls.top); - } - - if (bottom) - { - this.walls.bottom = new p2.Body({ mass: 0, position: [ this.pxmi(x), this.pxmi(y + height) ] }); - this.walls.bottom.addShape(new p2.Plane()); - - if (setCollisionGroup) - { - this.walls.bottom.shapes[0].collisionGroup = this.boundsCollisionGroup.mask; - } - - this.world.addBody(this.walls.bottom); - } + this.setupWall(left, 'left', x, y, 1.5707963267948966, setCollisionGroup); + this.setupWall(right, 'right', x + width, y, -1.5707963267948966, setCollisionGroup); + this.setupWall(top, 'top', x, y, -3.141592653589793, setCollisionGroup); + this.setupWall(bottom, 'bottom', x, y + height, 0, setCollisionGroup); // Remember the bounds settings in case they change later on via World.setBounds this._boundsLeft = left; @@ -85459,6 +86209,52 @@ Phaser.Physics.P2.prototype = { }, + /** + * Internal method called by setBounds. Responsible for creating, updating or + * removing the wall body shapes. + * + * @method Phaser.Physics.P2#setupWall + * @private + * @param {boolean} create - True to create the wall shape, false to remove it. + * @param {string} wall - The wall segment to update. + * @param {number} x - The x coordinate of the wall. + * @param {number} y - The y coordinate of the wall. + * @param {float} angle - The angle of the wall. + * @param {boolean} [setCollisionGroup=true] - If true the Bounds will be set to use its own Collision Group. + */ + setupWall: function (create, wall, x, y, angle, setCollisionGroup) { + + if (create) + { + // We need a left wall. Do we have one already? + if (this.walls[wall]) + { + this.walls[wall].position = [ this.pxmi(x), this.pxmi(y) ]; + } + else + { + this.walls[wall] = new p2.Body({ mass: 0, position: [ this.pxmi(x), this.pxmi(y) ], angle: angle }); + this.walls[wall].addShape(new p2.Plane()); + + if (setCollisionGroup) + { + this.walls[wall].shapes[0].collisionGroup = this.boundsCollisionGroup.mask; + } + + this.world.addBody(this.walls[wall]); + } + } + else + { + if (this.walls[wall]) + { + this.world.removeBody(this.walls[wall]); + this.walls[wall] = null; + } + } + + }, + /** * Pauses the P2 World independent of the game pause state. * @@ -86779,7 +87575,7 @@ Object.defineProperty(Phaser.Physics.P2.prototype, "total", { /** * @author Georgios Kaleadis https://github.com/georgiee * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -87008,7 +87804,7 @@ Phaser.Physics.P2.FixtureList.prototype = { }; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -87111,7 +87907,7 @@ Object.defineProperty(Phaser.Physics.P2.PointProxy.prototype, "my", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -87214,7 +88010,7 @@ Object.defineProperty(Phaser.Physics.P2.InversePointProxy.prototype, "my", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -87936,6 +88732,40 @@ Phaser.Physics.P2.Body.prototype = { }, + /** + * Applies a force to the Body that causes it to 'thrust' to the left, based on its current angle and the given speed. + * The speed is represented in pixels per second. So a value of 100 would move 100 pixels in 1 second (1000ms). + * + * @method Phaser.Physics.P2.Body#thrustLeft + * @param {number} speed - The speed at which it should move to the left. + */ + thrustLeft: function (speed) { + + var magnitude = this.world.pxmi(-speed); + var angle = this.data.angle; + + this.data.force[0] += magnitude * Math.cos(angle); + this.data.force[1] += magnitude * Math.sin(angle); + + }, + + /** + * Applies a force to the Body that causes it to 'thrust' to the right, based on its current angle and the given speed. + * The speed is represented in pixels per second. So a value of 100 would move 100 pixels in 1 second (1000ms). + * + * @method Phaser.Physics.P2.Body#thrustRight + * @param {number} speed - The speed at which it should move to the right. + */ + thrustRight: function (speed) { + + var magnitude = this.world.pxmi(-speed); + var angle = this.data.angle; + + this.data.force[0] -= magnitude * Math.cos(angle); + this.data.force[1] -= magnitude * Math.sin(angle); + + }, + /** * Applies a force to the Body that causes it to 'thrust' backwards (in reverse), based on its current angle and the given speed. * The speed is represented in pixels per second. So a value of 100 would move 100 pixels in 1 second (1000ms). @@ -89163,7 +89993,7 @@ Object.defineProperty(Phaser.Physics.P2.Body.prototype, "collideWorldBounds", { /** * @author George https://github.com/georgiee * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -89620,7 +90450,7 @@ Phaser.Utils.extend(Phaser.Physics.P2.BodyDebug.prototype, { var hex; hex = c.toString(16); - if (hex.len === 2) + if (hex.length === 2) { return hex; } @@ -89635,7 +90465,7 @@ Phaser.Utils.extend(Phaser.Physics.P2.BodyDebug.prototype, { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -89712,7 +90542,7 @@ Phaser.Physics.P2.Spring.prototype.constructor = Phaser.Physics.P2.Spring; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -89768,7 +90598,7 @@ Phaser.Physics.P2.Spring.prototype.constructor = Phaser.Physics.P2.Spring; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -89798,7 +90628,7 @@ Phaser.Physics.P2.Material.prototype.constructor = Phaser.Physics.P2.Material; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -89862,7 +90692,7 @@ Phaser.Physics.P2.ContactMaterial.prototype.constructor = Phaser.Physics.P2.Cont /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -89884,7 +90714,7 @@ Phaser.Physics.P2.CollisionGroup = function (bitmask) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -89934,7 +90764,7 @@ Phaser.Physics.P2.DistanceConstraint.prototype.constructor = Phaser.Physics.P2.D /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -89975,7 +90805,7 @@ Phaser.Physics.P2.GearConstraint.prototype.constructor = Phaser.Physics.P2.GearC /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -90020,7 +90850,7 @@ Phaser.Physics.P2.LockConstraint.prototype.constructor = Phaser.Physics.P2.LockC /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -90070,7 +90900,7 @@ Phaser.Physics.P2.PrismaticConstraint.prototype.constructor = Phaser.Physics.P2. /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -90122,7 +90952,7 @@ Phaser.Physics.P2.RevoluteConstraint.prototype.constructor = Phaser.Physics.P2.R /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -90253,7 +91083,7 @@ Phaser.ImageCollection.prototype.constructor = Phaser.ImageCollection; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -90661,7 +91491,7 @@ Object.defineProperty(Phaser.Tile.prototype, "bottom", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -92583,7 +93413,7 @@ Object.defineProperty(Phaser.Tilemap.prototype, "layer", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -93871,7 +94701,7 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -93884,7 +94714,7 @@ Object.defineProperty(Phaser.TilemapLayer.prototype, "collisionHeight", { Phaser.TilemapParser = { /** - * When scanning the Tiled map data the TilemapParser can either insert a null value (true) or + * When scanning the Tiled map data the TilemapParser can either insert a null value (true) or * a Phaser.Tile instance with an index of -1 (false, the default). Depending on your game type * depends how this should be configured. If you've a large sparsely populated map and the tile * data doesn't need to change then setting this value to `true` will help with memory consumption. @@ -94104,15 +94934,15 @@ Phaser.TilemapParser = { } var curl = json.layers[i]; - + // Base64 decode data if necessary - // NOTE: uncompressed base64 only. + // NOTE: uncompressed base64 only. if (!curl.compression && curl.encoding && curl.encoding === "base64") { var binaryString = window.atob(curl.data); var len = binaryString.length; var bytes = new Array( len ); // Interpret binaryString as an array of bytes representing - // little-endian encoded uint32 values. + // little-endian encoded uint32 values. for (var j = 0; j < len; j+=4) { bytes[j/4] = (binaryString.charCodeAt(j) | binaryString.charCodeAt(j+1) << 8 | @@ -94120,6 +94950,11 @@ Phaser.TilemapParser = { binaryString.charCodeAt(j+3) << 24) >>> 0; } curl.data = bytes; + delete curl.encoding; + } + else if(curl.compression){ + console.warn('TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer \'' + curl.name + '\''); + continue; } @@ -94163,7 +94998,7 @@ Phaser.TilemapParser = { flipped = false; gid = curl.data[t]; - // If true the current tile is flipped or rotated (Tiled TMX format) + // If true the current tile is flipped or rotated (Tiled TMX format) if (gid > 0x20000000) { flippedVal = 0; @@ -94188,7 +95023,7 @@ Phaser.TilemapParser = { gid -= 0x20000000; flippedVal += 1; } - + switch (flippedVal) { case 5: @@ -94317,7 +95152,7 @@ Phaser.TilemapParser = { else { var newCollection = new Phaser.ImageCollection(set.name, set.firstgid, set.tilewidth, set.tileheight, set.margin, set.spacing, set.properties); - + for (var ti in set.tiles) { var image = set.tiles[ti].image; @@ -94556,7 +95391,7 @@ Phaser.TilemapParser = { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -94774,7 +95609,7 @@ Phaser.Tileset.prototype = { if (rowCount % 1 !== 0 || colCount % 1 !== 0) { - console.warn("Phaser.Tileset - image tile area is not an even multiple of tile size"); + console.warn("Phaser.Tileset - " + this.name + " image tile area is not an even multiple of tile size"); } // In Tiled a tileset image that is not an even multiple of the tile dimensions @@ -94817,7 +95652,7 @@ Phaser.Tileset.prototype.constructor = Phaser.Tileset; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -94983,7 +95818,7 @@ Phaser.Particle.prototype.reset = function(x, y, health) { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -95064,7 +95899,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -95076,7 +95911,7 @@ Phaser.Particles.prototype.constructor = Phaser.Particles; Phaser.Particles.Arcade = {}; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -95617,7 +96452,7 @@ Phaser.Particles.Arcade.Emitter.prototype.start = function (explode, lifespan, f else { this.on = true; - this._quantity += quantity; + this._quantity = quantity; this._counter = 0; this._timer = this.game.time.time + frequency * this.game.time.slowMotion; } @@ -96078,21 +96913,21 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", { /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ /** * A Video object that takes a previously loaded Video from the Phaser Cache and handles playback of it. -* +* * Alternatively it takes a getUserMedia feed from an active webcam and streams the contents of that to * the Video instead (see `startMediaStream` method) -* +* * The video can then be applied to a Sprite as a texture. If multiple Sprites share the same Video texture and playback * changes (i.e. you pause the video, or seek to a new time) then this change will be seen across all Sprites simultaneously. * * Due to a bug in IE11 you cannot play a video texture to a Sprite in WebGL. For IE11 force Canvas mode. -* +* * If you need each Sprite to be able to play a video fully independently then you will need one Video object per Sprite. * Please understand the obvious performance implications of doing this, and the memory required to hold videos in RAM. * @@ -96101,7 +96936,7 @@ Object.defineProperty(Phaser.Particles.Arcade.Emitter.prototype, "bottom", { * it's worth noting that every single Video needs to be touch unlocked, not just the first one. You can use the `changeSource` * method to try and work around this limitation, but see the method help for details. * -* Small screen devices, especially iPod and iPhone will launch the video in its own native video player, +* Small screen devices, especially iPod and iPhone will launch the video in its own native video player, * outside of the Safari browser. There is no way to avoid this, it's a device imposed limitation. * * @class Phaser.Video @@ -96356,7 +97191,7 @@ Phaser.Video = function (game, key, url) { * A snapshot grabbed from the video. This is initially black. Populate it by calling Video.grab(). * When called the BitmapData is updated with a grab taken from the current video playing or active video stream. * If Phaser has been compiled without BitmapData support this property will always be `null`. - * + * * @property {Phaser.BitmapData} snapshot * @readOnly */ @@ -96796,11 +97631,11 @@ Phaser.Video.prototype = { /** * Stops the video playing. - * + * * This removes all locally set signals. - * + * * If you only wish to pause playback of the video, to resume at a later time, use `Video.paused = true` instead. - * If the video hasn't finished downloading calling `Video.stop` will not abort the download. To do that you need to + * If the video hasn't finished downloading calling `Video.stop` will not abort the download. To do that you need to * call `Video.destroy` instead. * * If you are using a video stream from a webcam then calling Stop will disconnect the MediaStream session and disable the webcam. @@ -96838,7 +97673,17 @@ Phaser.Video.prototype = { } else { - this.videoStream.stop(); + if (this.videoStream.getTracks) + { + this.videoStream.getTracks().forEach(function (track) { + track.stop(); + }); + } + else + { + this.videoStream.stop(); + } + } } @@ -97018,7 +97863,7 @@ Phaser.Video.prototype = { * On some mobile browsers you cannot play a video until the user has explicitly touched the video to allow it. * Phaser handles this via the `setTouchLock` method. However if you have 3 different videos, maybe an "Intro", "Start" and "Game Over" * split into three different Video objects, then you will need the user to touch-unlock every single one of them. - * + * * You can avoid this by using just one Video object and simply changing the video source. Once a Video element is unlocked it remains * unlocked, even if the source changes. So you can use this to your benefit to avoid forcing the user to 'touch' the video yet again. * @@ -97065,7 +97910,7 @@ Phaser.Video.prototype = { /** * Internal callback that monitors the download progress of a video after changing its source. - * + * * @method Phaser.Video#checkVideoProgress * @private */ @@ -97096,7 +97941,7 @@ Phaser.Video.prototype = { /** * Sets the Input Manager touch callback to be Video.unlock. * Required for mobile video unlocking. Mostly just used internally. - * + * * @method Phaser.Video#setTouchLock */ setTouchLock: function () { @@ -97110,7 +97955,7 @@ Phaser.Video.prototype = { * Enables the video on mobile devices, usually after the first touch. * If the SoundManager hasn't been unlocked then this will automatically unlock that as well. * Only one video can be pending unlock at any one time. - * + * * @method Phaser.Video#unlock */ unlock: function () { @@ -97174,7 +98019,7 @@ Phaser.Video.prototype = { /** * Removes the Video element from the DOM by calling parentNode.removeChild on itself. * Also removes the autoplay and src attributes and nulls the reference. - * + * * @method Phaser.Video#removeVideoElement */ removeVideoElement: function () { @@ -97320,7 +98165,7 @@ Object.defineProperty(Phaser.Video.prototype, "mute", { /** * Gets or sets the paused state of the Video. * If the video is still touch locked (such as on iOS devices) this call has no effect. -* +* * @name Phaser.Video#paused * @property {boolean} paused */ @@ -97424,7 +98269,7 @@ Object.defineProperty(Phaser.Video.prototype, "playbackRate", { * Gets or sets if the Video is set to loop. * Please note that at present some browsers (i.e. Chrome) do not support *seamless* video looping. * If the video isn't yet set this will always return false. -* +* * @name Phaser.Video#loop * @property {boolean} loop */ @@ -97471,7 +98316,7 @@ Phaser.Video.prototype.constructor = Phaser.Video; /* global Phaser:true */ /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ @@ -97515,7 +98360,7 @@ PIXI.TextureSilentFail = true; /** * @author Richard Davey -* @copyright 2015 Photon Storm Ltd. +* @copyright 2016 Photon Storm Ltd. * @license {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License} */ diff --git a/build/phaser.map b/build/phaser.map index d2c3d288a..cc3e49f56 100644 --- a/build/phaser.map +++ b/build/phaser.map @@ -1 +1 @@ -{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["e","exports","module","define","f","window","global","self","p2","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","Line","Scalar","lineInt","l1","l2","precision","a1","b1","c1","a2","b2","c2","det","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar",2,"Point","area","b","c","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","dot","magA","Math","sqrt","magB","angle","acos","sqdist",3,"Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","v","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","dist","copy","j","targetPoly","k","getCutEdges","min","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point",4,"abs",5,"./Polygon",6,"name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",7,"AABB","options","lowerBound","vec2","create","upperBound","setFromPoints","points","position","skinSize","l","rotate","cosAngle","cos","sinAngle","sin","x","y","add","aabb","extend","overlaps","u1","u2","containsPoint","point","overlapsRay","ray","dirFracX","direction","dirFracY","t1","t2","t3","t4","tmin","max","tmax","../math/vec2","../utils/Utils",8,"Broadphase","world","boundingVolumeType","Body","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",9,"NaiveBroadphase","constructor","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape",10,"Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","size","frictionEquationPool","FrictionEquationPool","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","set","radius","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","verts","lastCross","v0","v1","cross","crossLength","Circle","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id","id2","get","reset","eqs","ce","fe","release","createContactEquation","firstImpact","needsUpdate","enabled","offset","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","scale","normalize","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","convexCapsule_tempRect","width","height","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","xi","ai","sj","xj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","rect","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos","pos0","pos1","pow","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","circle","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","temp","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","data","heights","w","elementWidth","minCandidateNormal","idxA","floor","idxB","ceil","PI","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","tileHeight","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary",11,"Ray","checkCollisionResponse","undefined","skipBackfaces","collisionMask","collisionGroup","mode","ANY","callback","update","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","body","intersectBody","intersectBody_worldPosition","collisionResponse","worldPosition","shape","worldAngle","intersectShape","distance","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult",12,"RaycastResult","isStopped","getHitDistance","getHitPoint","out","lerp","stop","../collision/Ray",13,"SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","idx","Utils","appendArray","off","on","sortAxisList","sortList",14,"Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",15,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","G","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",16,"GearConstraint","ratio","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",17,"LockConstraint","localAngleB","rot","g","localOffsetB","force","xAxis",18,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","velocity","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vi","vj","wi","angularVelocity","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",19,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation",20,"./Equation",21,"computeB","h","GW","Gq","GiMf","computeGiMf","B",22,"ARRAY_TYPE","epsilon","timeStep","multiplier","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","multiply","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",23,"FrictionEquation","getSlipForce",24,"worldVectorA","worldVectorB",25,26,"EventEmitter","listener","context","_listeners","listeners","has","index","emit","event","listenerArray","target",27,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",28,29,"PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom",30,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","centroid","clone","subtract","mul","divide","div","sqrDist","len","sqrLen","negate","str","reflect","vector","getLineSegmentsIntersection","p0","p3","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y",31,"_idCounter","mass","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","m","I","r2","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","dt","wakeUpEvent","sleep","sleepEvent","sleepTick","time","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","end","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter",32,"LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring",33,"RotationalSpring","restAngle",34,35,"TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","apply","setBrakeForce","addToWorld","addBody","wheel","addConstraint","removeFromWorld","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint",36,"Capsule","GSSolver","Heightfield","Particle","Plane","Pool","Solver","World","Object","defineProperty","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World",37,"arguments","axes","updateArea","./Convex","./Shape",38,"intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a","d1",39,"Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint",40,"isArray","triangles","polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","denom","numer","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk",41,"key","maxValue","minValue","updateMaxMinValues","getLineSegment","start","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo",42,"raycast_normal","raycast_l0","raycast_l1","raycast_unit_y",43,44,"intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir",45,"material","sensor",46,"GS","iterations","tolerance","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","array","solve","sortEquations","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","sort","addEquation","removeEquation","ISLAND",48,"destroy","equation","./Pool",49,50,"IslandNodePool","IslandNode","../world/IslandNode",51,"IslandPool","Island","../world/Island",52,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","tick","current","keys","lastObject","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils",53,"OverlapKeeperRecord",54,"record",55,"objects","resize","object",56,"getKey","dict",57,"howmany","P2_ARRAY_TYPE","Float32Array",58,"bodyIds",59,"IslandManager","nodePool","islandPool","islands","nodes","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","root","child","neighbors","split","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode",60,61,"springs","disabledBodyCollisionPairs","solver","islandManager","gravity","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","stepping","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","hitTest","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Uint16Array","Uint32Array","ArrayBuffer","PI_2","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","children","_destroyCachedSprite","item","isMask","_filters","passes","filterPasses","_filterBlock","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","tx","ty","pt","wt","rotationCache","atan2","transformCallback","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","tempFilters","filters","anchor","DisplayObjectContainer","_width","_height","addChild","addChildAt","removeChild","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","removeChildren","beginIndex","endIndex","begin","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","maskManager","pushMask","mask","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","trim","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","remove","getNextPowerOfTwo","number","isPowerOfTwo","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","uniforms","uniformLocation","initUniforms","uniform","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","v2","paddingX","paddingY","centerX","centerY","normX","normY","beginPath","moveTo","lineTo","closePath","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","rawX","rawY","Rope","lastPoint","amount","total","nextPoint","perp","perpLength","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","RECTANGLE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","trunc","Function","bind","thisArg","bound","args","boundArgs","concat","TypeError","F","proto","arg","forEach","fun","CheapArray","assert","getProperty","obj","prop","parts","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","parseInt","innerWidth","innerHeight","pad","dir","padlen","isPlainObject","nodeType","hasOwnProperty","copyIsArray","deep","mixinPrototype","mixin","replace","mixinKeys","childNodes","cloneNode","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","round","output","contains","circumferencePoint","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotateAround","line","asSegment","intersectsPoints","midPoint","centerOn","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","newPos","tx1","invert","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","isZero","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","pointslength","parse","xProp","yProp","_points","closed","toNumberArray","flatten","inside","ix","iy","jx","jy","calculateArea","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","volume","sameDimensions","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","_targetPosition","_edge","_position","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","follow","helper","unfollow","focusOn","setPosition","focusOnXY","updateTarget","checkBounds","setBoundsToWorld","setSize","State","make","camera","cache","input","load","math","sound","tweens","particles","physics","rnd","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","Signal","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","boot","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","dispatch","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","removeFromHash","addToHash","events","onAddedToGroup$dispatch","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","_definedSize","stateChange","setBounds","useBounds","horizontal","vertical","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","enableStep","disableStep","removeFromDOM","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","multiInputOverride","MOUSE_TOUCH_COMBINE","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","worldVisible","TileSprite","Graphics","graphicsData","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","duration","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","processAxisChange","triggerCallback","disconnectingIndex","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","C","D","E","H","J","K","L","M","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","destroyTexture","onDestroy$dispatch","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","img","base","frameData","frameName","Overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","Tilemap","addToCache","uuid","addRenderTexture","video","bitmapData","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","ctx","imageData","textureFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","g1","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","newWidth","newHeight","op","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt2","dt3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","beginFill","fillColor","endFill","drawRect","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","clearDirty","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","sign","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","eliminateHoles","earcutLinked","clockwise","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","exec","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","FrameData","currentX","currentY","addFrame","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","linear","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","factorial","res","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","frac","integerInRange","realInRange","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","removeFrom","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","elapsedMS","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","onFadeComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","mute","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","entity","palettes","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularAcceleration","angularDrag","maxAngular","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","separateX","separateY","immovable","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","customSeparateX","bounce","moves","nv1","nv2","avg","deltaAbsY","overlapY","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","useElapsedTime","materials","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","_boundsLeft","_boundsRight","_boundsTop","_boundsBottom","_boundsOwnGroup","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","fixedStepTime","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","toJSON","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","map","collision","polyline","clearTilemapLayerBodies","getLayer","convertTilemap","optimize","collides","getTileRight","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","getFixtureByKey","getGroup","groupID","_ref","_results","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","removeCollisionGroup","clearCallback","shapeChanged","impulse","localX","localY","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","moveLeft","moveRight","updateSpriteTransform","resetDamping","resetMass","clearShapes","addCircle","addPlane","addParticle","addLine","addCapsule","setCircle","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","lw","vrot","_j","_ref1","randomPastelHex","drawCapsule","drawPlane","drawLine","drawRectangle","drawConvex","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","faces","TilemapParser","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","currentLayer","debugMap","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","customClass","lh","createLayer","getLayerIndex","TilemapLayer","indexes","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","curo","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"phaser.min.js","sources":["phaser.js"],"names":["e","exports","module","define","f","window","global","self","p2","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","Line","Scalar","lineInt","l1","l2","precision","a1","b1","c1","a2","b2","c2","det","eq","segmentsIntersect","p1","q1","q2","dx","dy","da","db","./Scalar",2,"Point","area","b","c","left","leftOn","right","rightOn","tmpPoint1","tmpPoint2","collinear","thresholdAngle","ab","bc","dot","magA","Math","sqrt","magB","angle","acos","sqdist",3,"Polygon","this","vertices","getIntersectionPoint","delta","prototype","at","v","first","last","clear","append","poly","from","to","push","makeCCW","br","reverse","tmp","N","pop","isReflex","tmpLine1","tmpLine2","canSee","p","dist","copy","j","targetPoly","k","getCutEdges","min","tmp1","tmp2","tmpPoly","nDiags","Number","MAX_VALUE","decomp","edges","slice","cutEdges","Array","polys","cutEdge","result","splice","indexOf","isSimple","path","quickDecomp","reflexVertices","steinerPoints","maxlevel","level","upperInt","lowerInt","upperDist","lowerDist","d","closestDist","upperIndex","lowerIndex","closestIndex","lowerPoly","upperPoly","console","warn","removeCollinearPoints","num","./Line","./Point",4,"abs",5,"./Polygon",6,"name","version","description","author","keywords","main","engines","node","repository","type","url","bugs","licenses","devDependencies","grunt","grunt-contrib-jshint","grunt-contrib-nodeunit","grunt-contrib-uglify","grunt-contrib-watch","grunt-browserify","grunt-contrib-concat","dependencies","poly-decomp",7,"AABB","options","lowerBound","vec2","create","upperBound","setFromPoints","points","position","skinSize","l","rotate","cosAngle","cos","sinAngle","sin","x","y","add","aabb","extend","overlaps","u1","u2","containsPoint","point","overlapsRay","ray","dirFracX","direction","dirFracY","t1","t2","t3","t4","tmin","max","tmax","../math/vec2","../utils/Utils",8,"Broadphase","world","boundingVolumeType","Body","BOUNDING_CIRCLE","setWorld","getCollisionPairs","boundingRadiusCheck","bodyA","bodyB","sub","d2","squaredLength","boundingRadius","aabbCheck","getAABB","boundingVolumeCheck","canCollide","KINEMATIC","STATIC","sleepState","SLEEPING","NAIVE","SAP","../objects/Body",9,"NaiveBroadphase","constructor","bodies","Ncolliding","bi","bj","aabbQuery","aabbNeedsUpdate","updateAABB","../collision/Broadphase","../shapes/Circle","../shapes/Particle","../shapes/Plane","../shapes/Shape",10,"Narrowphase","contactEquations","frictionEquations","enableFriction","enabledEquations","slipForce","frictionCoefficient","surfaceVelocity","contactEquationPool","ContactEquationPool","size","frictionEquationPool","FrictionEquationPool","restitution","stiffness","Equation","DEFAULT_STIFFNESS","relaxation","DEFAULT_RELAXATION","frictionStiffness","frictionRelaxation","enableFrictionReduction","collidingBodiesLastStep","TupleDictionary","contactSkinSize","setConvexToCapsuleShapeMiddle","convexShape","capsuleShape","set","radius","pointInConvex","worldPoint","convexOffset","convexAngle","worldVertex0","pic_worldVertex0","worldVertex1","pic_worldVertex1","r0","pic_r0","r1","pic_r1","verts","lastCross","v0","v1","cross","crossLength","Circle","Convex","Shape","Box","yAxis","fromValues","tmp3","tmp4","tmp5","tmp6","tmp7","tmp8","tmp9","tmp10","tmp11","tmp12","tmp13","tmp14","tmp15","tmp16","tmp17","tmp18","tmpArray","bodiesOverlap_shapePositionA","bodiesOverlap_shapePositionB","bodiesOverlap","shapePositionA","shapePositionB","Nshapesi","shapes","shapeA","toWorldFrame","Nshapesj","shapeB","collidedLastStep","id1","id","id2","get","reset","eqs","ce","fe","release","createContactEquation","firstImpact","needsUpdate","enabled","offset","createFrictionEquation","setSlipForce","relativeVelocity","createFrictionFromContact","contactPointA","contactPointB","rotate90cw","normalA","createFrictionFromAverage","numContacts","invNumContacts","scale","normalize","LINE","CONVEX","convexLine","convexBody","lineBody","lineShape","lineOffset","lineAngle","justTest","BOX","lineBox","boxBody","boxShape","boxOffset","boxAngle","convexCapsule_tempRect","width","height","convexCapsule_tempVec","CAPSULE","convexCapsule","convexPosition","capsuleBody","capsulePosition","capsuleAngle","circlePos","result1","circleConvex","result2","convexConvex","lineCapsule","linePosition","capsuleCapsule_tempVec1","capsuleCapsule_tempVec2","capsuleCapsule_tempRect1","capsuleCapsule","si","xi","ai","sj","xj","aj","enableFrictionBefore","circlePosi","circlePosj","circleCircle","rect","lineLine","positionA","angleA","positionB","angleB","PLANE","planeLine","planeBody","planeShape","planeOffset","planeAngle","worldVertex01","worldVertex11","worldEdge","worldEdgeUnit","worldNormal","worldTangent","PARTICLE","particleCapsule","particleBody","particleShape","particlePosition","particleAngle","circleLine","CIRCLE","circleBody","circleShape","circleOffset","circleAngle","lineRadius","circleRadius","orthoDist","lineToCircleOrthoUnit","projectedPoint","centerDist","lineToCircle","lineEndToLineRadius","radiusSum","pos","pos0","pos1","pow","circleCapsule","worldVertex","closestEdgeProjectedPoint","candidate","candidateDist","minCandidate","found","minCandidateDistance","candidateDistance","localVertex","particleConvex","particleOffset","convexToparticle","minEdgeNormal","offsetA","offsetB","radiusA","radiusB","planeConvex","numReported","particlePlane","circleParticle","planeCapsule_tmpCircle","planeCapsule_tmp1","planeCapsule_tmp2","planeCapsule","capsuleOffset","end1","end2","circle","numContacts1","circlePlane","numContacts2","numTotal","planeToCircle","temp","contact","sepAxis","worldPoint0","worldPoint1","penetrationVec","findSeparatingAxis","closestEdge1","getClosestEdge","closestEdge2","closestEdgeA","closestEdgeB","insideNumEdges","pcoa_tmp1","projectConvexOntoAxis","worldAxis","value","localAxis","fsa_tmp1","fsa_tmp2","fsa_tmp3","fsa_tmp4","fsa_tmp5","fsa_tmp6","offset1","angle1","offset2","angle2","maxDist","overlap","edge","normal","span1","span2","swapped","gce_tmp1","gce_tmp2","gce_tmp3","axis","flip","closestEdge","maxDot","circleHeightfield_candidate","circleHeightfield_dist","circleHeightfield_v0","circleHeightfield_v1","circleHeightfield_minCandidate","circleHeightfield_worldNormal","circleHeightfield_minCandidateNormal","HEIGHTFIELD","circleHeightfield","hfBody","hfShape","hfPos","hfAngle","data","heights","w","elementWidth","minCandidateNormal","idxA","floor","idxB","ceil","PI","convexHeightfield_v0","convexHeightfield_v1","convexHeightfield_tilePos","convexHeightfield_tempConvexShape","convexHeightfield","convexPos","tilePos","tileConvex","tileHeight","../equations/ContactEquation","../equations/Equation","../equations/FrictionEquation","../shapes/Box","../shapes/Convex","../utils/ContactEquationPool","../utils/FrictionEquationPool","../utils/TupleDictionary",11,"Ray","checkCollisionResponse","undefined","skipBackfaces","collisionMask","collisionGroup","mode","ANY","callback","update","distanceFromIntersectionSquared","intersect","squaredDistance","CLOSEST","ALL","intersectBodies","shouldStop","body","intersectBody","intersectBody_worldPosition","collisionResponse","worldPosition","shape","worldAngle","intersectShape","distance","_currentBody","_currentShape","raycast","reportIntersection","fraction","faceIndex","hasHit","../collision/AABB","../collision/RaycastResult",12,"RaycastResult","isStopped","getHitDistance","getHitPoint","out","lerp","stop","../collision/Ray",13,"SAPBroadphase","axisList","axisIndex","that","_addBodyHandler","_removeBodyHandler","idx","Utils","appendArray","off","on","sortAxisList","sortList",14,"Constraint","defaults","collideConnected","wakeUpBodies","equations","wakeUp","DISTANCE","GEAR","LOCK","PRISMATIC","REVOLUTE","setStiffness","setRelaxation",15,"DistanceConstraint","localAnchorA","localAnchorB","worldAnchorA","worldAnchorB","maxForce","ri","rj","computeGq","setMaxForce","upperLimitEnabled","upperLimit","lowerLimitEnabled","lowerLimit","normalEquation","G","violating","minForce","rixn","rjxn","getMaxForce","./Constraint",16,"GearConstraint","ratio","AngleLockEquation","maxTorque","setMaxTorque","setRatio","torque","getMaxTorque","../equations/AngleLockEquation",17,"LockConstraint","localAngleB","rot","g","localOffsetB","force","xAxis",18,"PrismaticConstraint","localAxisA","trans","gg","updateJacobian","disableRotationalLock","RotationalLockEquation","velocity","upperLimitEquation","ContactEquation","lowerLimitEquation","motorEquation","motorEnabled","motorSpeed","computeGW","vi","vj","wi","angularVelocity","wj","gmult","worldAxisA","orientedAnchorA","orientedAnchorB","relPosition","enableMotor","disableMotor","setLimits","lower","upper","../equations/RotationalLockEquation",19,"RevoluteConstraint","pivotA","pivotB","worldPivot","localPivotA","localPivotB","worldPivotA","worldPivotB","RotationalVelocityEquation","relAngle","motorIsEnabled","setMotorSpeed","speed","getMotorSpeed","../equations/RotationalVelocityEquation",20,"./Equation",21,"computeB","h","GW","Gq","GiMf","computeGiMf","B",22,"ARRAY_TYPE","epsilon","timeStep","multiplier","qi","qj","computeGWlambda","vlambda","wlambda","iMfi","iMfj","fi","ti","angularForce","fj","tj","invMassi","invMassSolve","invMassj","invIi","invInertiaSolve","invIj","multiply","massMultiplier","computeGiMGt","addToWlambda_temp","addToWlambda_Gi","addToWlambda_Gj","addToWlambda","deltalambda","Gi","Gj","computeInvC","eps",23,"FrictionEquation","getSlipForce",24,"worldVectorA","worldVectorB",25,26,"EventEmitter","listener","context","_listeners","listeners","has","index","emit","event","listenerArray","target",27,"ContactMaterial","materialA","materialB","Material","idCounter","friction","./Material",28,29,"PolyK","GetArea","sum","Triangulate","tgs","avl","al","i0","i1","i2","ax","ay","bx","by","cx","cy","earFound","_convex","_PointInTriangle","px","py","v0x","v0y","v1x","v1y","v2x","v2y","dot00","dot01","dot02","dot11","dot12","invDenom",30,"crossVZ","vec","zcomp","crossZV","toLocalFrame","framePosition","frameAngle","toGlobalFrame","localPoint","vectorToLocalFrame","worldVector","vectorToGlobalFrame","localVector","centroid","clone","subtract","mul","divide","div","sqrDist","len","sqrLen","negate","str","reflect","vector","getLineSegmentsIntersection","p0","p3","getLineSegmentsIntersectionFraction","s1_x","s1_y","s2_x","s2_y",31,"_idCounter","mass","invMass","inertia","invInertia","fixedRotation","fixedX","fixedY","interpolatedPosition","interpolatedAngle","previousPosition","previousAngle","damping","angularDamping","DYNAMIC","allowSleep","wantsToSleep","AWAKE","sleepSpeedLimit","sleepTimeLimit","gravityScale","idleTime","timeLastSleepy","ccdSpeedThreshold","ccdIterations","concavePath","_wakeUpAfterNarrowphase","updateMassProperties","updateSolveMassProperties","setDensity","density","totalArea","getArea","shapeAABB","bodyAngle","computeAABB","updateBoundingRadius","addShape","removeShape","m","I","r2","Icm","computeMomentOfInertia","applyForce","relativePoint","rotForce","Body_applyForce_forceWorld","Body_applyForce_pointWorld","Body_applyForce_pointLocal","applyForceLocal","localForce","worldForce","vectorToWorldFrame","Body_applyImpulse_velo","applyImpulse","impulseVector","velo","rotVelo","Body_applyImpulse_impulseWorld","Body_applyImpulse_pointWorld","Body_applyImpulse_pointLocal","applyImpulseLocal","localImpulse","worldImpulse","fromPolygon","convexes","optimalDecomp","cm","centerOfMass","updateTriangles","updateCenterOfMass","adjustCenterOfMass","adjustCenterOfMass_tmp2","adjustCenterOfMass_tmp3","adjustCenterOfMass_tmp4","offset_times_area","setZeroForce","resetConstraintVelocity","addConstraintVelocity","applyDamping","dt","wakeUpEvent","sleep","sleepEvent","sleepTick","time","dontSleep","speedSquared","speedLimitSquared","SLEEPY","overlapKeeper","bodiesAreOverlapping","integrate_fhMinv","integrate_velodt","integrate","minv","integrateToTimeOfImpact","end","startToEnd","rememberPosition","hit","startToEndAngle","timeOfImpact","rememberAngle","iter","tmid","narrowphase","getVelocityAtPoint","sleepyEvent","../events/EventEmitter",32,"LinearSpring","Spring","setWorldAnchorA","setWorldAnchorB","getWorldAnchorA","getWorldAnchorB","worldDistance","restLength","applyForce_r","applyForce_r_unit","applyForce_u","applyForce_f","applyForce_worldAnchorA","applyForce_worldAnchorB","applyForce_ri","applyForce_rj","applyForce_tmp","r_unit","rlen","ri_x_f","rj_x_f","./Spring",33,"RotationalSpring","restAngle",34,35,"TopDownVehicle","chassisBody","wheels","groundBody","preStepCallback","WheelConstraint","vehicle","forwardEquation","sideEquation","steerValue","engineForce","setSideFriction","sideFriction","localForwardVector","localPosition","apply","setBrakeForce","addToWorld","addBody","wheel","addConstraint","removeFromWorld","removeBody","removeConstraint","addWheel","wheelOptions","worldVelocity","getSpeed","tmpVec","../constraints/Constraint",36,"Capsule","GSSolver","Heightfield","Particle","Plane","Pool","Solver","World","Object","defineProperty","../package.json","./collision/AABB","./collision/Broadphase","./collision/NaiveBroadphase","./collision/Narrowphase","./collision/Ray","./collision/RaycastResult","./collision/SAPBroadphase","./constraints/Constraint","./constraints/DistanceConstraint","./constraints/GearConstraint","./constraints/LockConstraint","./constraints/PrismaticConstraint","./constraints/RevoluteConstraint","./equations/AngleLockEquation","./equations/ContactEquation","./equations/Equation","./equations/FrictionEquation","./equations/RotationalVelocityEquation","./events/EventEmitter","./material/ContactMaterial","./material/Material","./math/vec2","./objects/Body","./objects/LinearSpring","./objects/RotationalSpring","./objects/Spring","./objects/TopDownVehicle","./shapes/Box","./shapes/Capsule","./shapes/Circle","./shapes/Convex","./shapes/Heightfield","./shapes/Line","./shapes/Particle","./shapes/Plane","./shapes/Shape","./solver/GSSolver","./solver/Solver","./utils/ContactEquationPool","./utils/FrictionEquationPool","./utils/Pool","./utils/Utils","./world/World",37,"arguments","axes","updateArea","./Convex","./Shape",38,"intersectCapsule_hitPointWorld","intersectCapsule_normal","intersectCapsule_l0","intersectCapsule_l1","intersectCapsule_unit_y","hitPointWorld","l0","halfLen","diagonalLengthSquared","sqrtDelta","inv2a","d1",39,"Ray_intersectSphere_intersectionPoint","Ray_intersectSphere_normal","intersectionPoint",40,"isArray","triangles","polyk","tmpVec1","tmpVec2","projectOntoLocalAxis","projectOntoWorldAxis","shapeOffset","shapeAngle","polykVerts","id3","updateCenterOfMass_centroid","updateCenterOfMass_centroid_times_mass","updateCenterOfMass_a","updateCenterOfMass_b","updateCenterOfMass_c","centroid_times_mass","triangleArea","denom","numer","intersectConvex_rayStart","intersectConvex_rayEnd","intersectConvex_normal","rayStart","rayEnd","../math/polyk",41,"key","maxValue","minValue","updateMaxMinValues","getLineSegment","start","getSegmentIndex","getClampedSegmentIndex","intersectHeightfield_worldNormal","intersectHeightfield_l0","intersectHeightfield_l1","intersectHeightfield_localFrom","intersectHeightfield_localTo","localFrom","localTo",42,"raycast_normal","raycast_l0","raycast_l1","raycast_unit_y",43,44,"intersectPlane_planePointToFrom","intersectPlane_normal","intersectPlane_len","planePointToFrom","planeToFrom","planeToTo","n_dot_dir",45,"material","sensor",46,"GS","iterations","tolerance","arrayStep","lambda","Bs","invCs","useZeroRHS","frictionIterations","usedIterations","setArrayZero","array","solve","sortEquations","maxIter","maxFrictionIter","Neq","tolSquared","Nbodies","deltalambdaTot","iterateEquation","updateMultipliers","invDt","invC","lambdaj","GWlambda","lambdaj_plus_deltalambda","./Solver",47,"equationSortFunction","mockWorld","solveIsland","island","removeAllEquations","addEquations","getBodies","sort","addEquation","removeEquation","ISLAND",48,"destroy","equation","./Pool",49,50,"IslandNodePool","IslandNode","../world/IslandNode",51,"IslandPool","Island","../world/Island",52,"OverlapKeeper","overlappingShapesLastState","overlappingShapesCurrentState","recordPool","OverlapKeeperRecordPool","tmpDict","tmpArray1","tick","current","keys","lastObject","getByKey","setOverlapping","getNewOverlaps","getDiff","getEndOverlaps","dictA","dictB","lastData","isNewOverlap","idA","idB","getNewBodyOverlaps","getBodyDiff","getEndBodyOverlaps","accumulator","./OverlapKeeperRecord","./OverlapKeeperRecordPool","./TupleDictionary","./Utils",53,"OverlapKeeperRecord",54,"record",55,"objects","resize","object",56,"getKey","dict",57,"howmany","P2_ARRAY_TYPE","Float32Array",58,"bodyIds",59,"IslandManager","nodePool","islandPool","islands","nodes","queue","getUnvisitedNode","Nnodes","visited","visit","bds","Neqs","bfs","root","child","neighbors","split","ni","nj","./../utils/IslandNodePool","./../utils/IslandPool","./Island","./IslandNode",60,61,"springs","disabledBodyCollisionPairs","solver","islandManager","gravity","frictionGravity","useWorldGravityAsFrictionGravity","useFrictionGravityOnZeroGravity","broadphase","constraints","defaultMaterial","defaultContactMaterial","lastTimeStep","applySpringForces","applyGravity","solveConstraints","contactMaterials","stepping","bodiesToBeRemoved","islandSplit","emitImpactEvent","_constraintIdCounter","_bodyIdCounter","postStepEvent","addBodyEvent","removeBodyEvent","addSpringEvent","spring","impactEvent","contactEquation","postBroadphaseEvent","pairs","sleepMode","NO_SLEEPING","beginContactEvent","endContactEvent","preSolveEvent","BODY_SLEEPING","ISLAND_SLEEPING","constraint","addContactMaterial","contactMaterial","removeContactMaterial","getContactMaterial","cmats","step_mg","xiw","xjw","step","timeSinceLastCalled","maxSubSteps","internalStep","substeps","endOverlaps","Nsprings","np","mg","gravityLen","ignoredPairs","Nconstraints","Nresults","runNarrowphase","ev","glen","aiw","ajw","reducedMass","resolver","numFrictionBefore","numFrictionEquations","speedSquaredB","speedLimitSquaredB","speedSquaredA","speedLimitSquaredA","addSpring","evt","removeSpring","getBodyById","disableBodyCollision","enableBodyCollision","cs","cms","hitTest_tmp1","hitTest_tmp2","hitTest","pb","ps","pa","NS","setGlobalStiffness","setGlobalRelaxation","tmpAABB","../../package.json","../collision/Narrowphase","../collision/SAPBroadphase","../constraints/DistanceConstraint","../constraints/GearConstraint","../constraints/LockConstraint","../constraints/PrismaticConstraint","../constraints/RevoluteConstraint","../material/ContactMaterial","../material/Material","../objects/LinearSpring","../objects/RotationalSpring","../shapes/Capsule","../shapes/Line","../solver/GSSolver","../solver/Solver","../utils/OverlapKeeper","./IslandManager","PIXI","game","WEBGL_RENDERER","CANVAS_RENDERER","VERSION","_UID","Uint16Array","Uint32Array","ArrayBuffer","PI_2","RAD_TO_DEG","DEG_TO_RAD","RETINA_PREFIX","DisplayObject","pivot","rotation","alpha","visible","hitArea","renderable","parent","stage","worldAlpha","worldTransform","Matrix","worldScale","worldRotation","_sr","_cr","filterArea","_bounds","Rectangle","_currentBounds","_mask","_cacheAsBitmap","_cacheIsDirty","children","_destroyCachedSprite","item","isMask","_filters","passes","filterPasses","_filterBlock","blendMode","blendModes","MULTIPLY","NORMAL","_generateCachedSprite","updateTransform","tx","ty","pt","wt","rotationCache","atan2","transformCallback","transformCallbackContext","displayObjectUpdateTransform","getBounds","matrix","EmptyRectangle","getLocalBounds","identityMatrix","setStageReference","preUpdate","generateTexture","resolution","scaleMode","renderer","bounds","renderTexture","RenderTexture","_tempMatrix","render","updateCache","toGlobal","toLocal","applyInverse","_renderCachedSprite","renderSession","_cachedSprite","gl","Sprite","_renderWebGL","_renderCanvas","texture","tempFilters","filters","anchor","DisplayObjectContainer","_width","_height","addChild","addChildAt","removeChild","swapChildren","child2","index1","getChildIndex","index2","setChildIndex","currentIndex","getChildAt","removeChildAt","removeStageReference","removeChildren","beginIndex","endIndex","begin","range","removed","displayObjectContainerUpdateTransform","childBounds","childMaxX","childMaxY","minX","Infinity","minY","maxX","maxY","childVisible","matrixCache","spriteBatch","flush","filterManager","pushFilter","maskManager","pushMask","mask","popMask","popFilter","Texture","emptyTexture","tint","cachedTint","tintedTexture","shader","baseTexture","hasLoaded","onTextureUpdate","frame","setTexture","destroyBase","skipRender","valid","w0","w1","h0","h1","x1","y1","x2","y2","x3","y3","x4","y4","crop","currentBlendMode","globalCompositeOperation","blendModesCanvas","globalAlpha","smoothProperty","scaleModes","LINEAR","trim","roundPixels","setTransform","cw","ch","requiresReTint","CanvasTinter","getTintedTexture","drawImage","source","fromFrame","frameId","TextureCache","fromImage","imageId","crossorigin","SpriteBatch","textureThing","ready","initWebGL","fastSpriteBatch","WebGLFastSpriteBatch","setContext","shaderManager","setShader","fastShader","transform","isRotated","childTransform","hex2rgb","hex","rgb2hex","rgb","canUseNewCanvasBlendModes","document","pngHead","pngEnd","magenta","Image","src","yellow","canvas","CanvasPool","getContext","getImageData","remove","getNextPowerOfTwo","number","isPowerOfTwo","getFirst","container","createElement","pool","removeByCanvas","getTotal","getFree","initDefaultShaders","CompileVertexShader","shaderSrc","_CompileShader","VERTEX_SHADER","CompileFragmentShader","FRAGMENT_SHADER","shaderType","join","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","log","getShaderInfoLog","compileProgram","vertexSrc","fragmentSrc","fragmentShader","vertexShader","shaderProgram","createProgram","attachShader","linkProgram","getProgramParameter","LINK_STATUS","PixiShader","program","textureCount","firstRun","dirty","attributes","init","defaultVertexSrc","useProgram","uSampler","getUniformLocation","projectionVector","offsetVector","dimensions","aVertexPosition","getAttribLocation","aTextureCoord","colorAttribute","uniforms","uniformLocation","initUniforms","uniform","_init","initSampler2D","glMatrix","glValueLength","glFunc","uniformMatrix2fv","uniformMatrix3fv","uniformMatrix4fv","activeTexture","bindTexture","TEXTURE_2D","_glTextures","textureData","magFilter","minFilter","wrapS","CLAMP_TO_EDGE","wrapT","format","LUMINANCE","RGBA","repeat","REPEAT","pixelStorei","UNPACK_FLIP_Y_WEBGL","flipY","border","texImage2D","UNSIGNED_BYTE","texParameteri","TEXTURE_MAG_FILTER","TEXTURE_MIN_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","uniform1i","syncUniforms","transpose","z","_dirty","instances","updateTexture","deleteProgram","PixiFastShader","uMatrix","aPositionCoord","aScale","aRotation","StripShader","translationMatrix","attribute","PrimitiveShader","tintColor","ComplexPrimitiveShader","color","glContexts","WebGLRenderer","defaultRenderer","transparent","autoResize","preserveDrawingBuffer","clearBeforeRender","view","_contextOptions","antialias","premultipliedAlpha","stencil","projection","WebGLShaderManager","WebGLSpriteBatch","WebGLMaskManager","WebGLFilterManager","stencilManager","WebGLStencilManager","blendModeManager","WebGLBlendModeManager","drawCount","initContext","mapBlendModes","glContextId","disable","DEPTH_TEST","CULL_FACE","enable","BLEND","contextLost","viewport","bindFramebuffer","FRAMEBUFFER","clearColor","_bgColor","COLOR_BUFFER_BIT","renderDisplayObject","displayObject","buffer","setBlendMode","style","createTexture","UNPACK_PREMULTIPLY_ALPHA_WEBGL","NEAREST","mipmap","LINEAR_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","generateMipmap","_powerOf2","blendModesWebGL","modes","ONE","ONE_MINUS_SRC_ALPHA","ADD","SRC_ALPHA","DST_ALPHA","DST_COLOR","SCREEN","OVERLAY","DARKEN","LIGHTEN","COLOR_DODGE","COLOR_BURN","HARD_LIGHT","SOFT_LIGHT","DIFFERENCE","EXCLUSION","HUE","SATURATION","COLOR","LUMINOSITY","blendModeWebGL","blendFunc","maskData","WebGLGraphics","updateGraphics","_webGL","pushStencil","popStencil","stencilStack","count","graphics","webGLData","bindGraphics","STENCIL_TEST","STENCIL_BUFFER_BIT","colorMask","stencilFunc","ALWAYS","stencilOp","KEEP","INVERT","drawElements","TRIANGLE_FAN","indices","UNSIGNED_SHORT","EQUAL","DECR","INCR","TRIANGLE_STRIP","_currentGraphics","complexPrimitiveShader","uniform1f","toArray","uniform2f","uniform3fv","bindBuffer","ARRAY_BUFFER","vertexAttribPointer","FLOAT","ELEMENT_ARRAY_BUFFER","indexBuffer","primitiveShader","maxAttibs","attribState","tempAttribState","stack","defaultShader","stripShader","setAttribs","attribs","attribId","enableVertexAttribArray","disableVertexAttribArray","_currentId","currentShader","vertSize","numVerts","numIndices","positions","colors","lastIndexCount","drawing","currentBatchSize","currentBaseTexture","textures","shaders","sprites","AbstractFilter","vertexBuffer","createBuffer","bufferData","STATIC_DRAW","DYNAMIC_DRAW","sprite","uvs","_uvs","aX","aY","x0","y0","renderTilingSprite","tilingTexture","TextureUvs","tilePosition","tileScaleOffset","offsetX","offsetY","scaleX","tileScale","scaleY","TEXTURE0","stride","bufferSubData","subarray","nextTexture","nextBlendMode","nextShader","batchSize","blendSwap","shaderSwap","skip","renderBatch","startIndex","TRIANGLES","deleteBuffer","maxSize","renderSprite","filterStack","texturePool","initShaderBuffers","filterBlock","_filterArea","_previous_stencil_mgr","filter","FilterTexture","padding","frameBuffer","_glFilterTexture","vertexArray","uvBuffer","uvArray","inputTexture","outputTexture","filterPass","applyFilterPass","sizeX","sizeY","currentFilter","colorBuffer","colorArray","createFramebuffer","DEFAULT","framebufferTexture2D","COLOR_ATTACHMENT0","renderBuffer","createRenderbuffer","bindRenderbuffer","RENDERBUFFER","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","renderbufferStorage","DEPTH_STENCIL","deleteFramebuffer","deleteTexture","CanvasBuffer","clearRect","CanvasMaskManager","save","cacheAlpha","CanvasGraphics","renderGraphicsMask","clip","restore","tintMethod","tintWithMultiply","fillStyle","toString","substr","fillRect","tintWithPerPixel","rgbValues","pixelData","pixels","canHandleAlpha","putImageData","checkInverseAlpha","s1","s2","canUseMultiply","CanvasRenderer","refresh","Phaser","Canvas","getSmoothingPrefix","navigator","isCocoonJS","screencanvas","rgba","removeView","useNew","BaseTextureCache","BaseTextureCacheIdGenerator","BaseTexture","complete","naturalWidth","naturalHeight","imageUrl","forceLoaded","_pixiId","unloadFromGPU","updateSourceImage","newSrc","glTexture","image","crossOrigin","fromCanvas","TextureCacheIdGenerator","FrameCache","TextureSilentFail","noFrame","isTiling","requiresUpdate","setFrame","onBaseTextureLoaded","_updateUvs","tw","th","addTextureToCache","removeTextureFromCache","textureBuffer","renderWebGL","renderCanvas","tempMatrix","updateBase","identity","translate","realResolution","getImage","getBase64","getCanvas","toDataURL","webGLPixels","Uint8Array","readPixels","tempCanvas","canvasData","Strip","canvasPadding","drawMode","DrawModes","_vertexBuffer","_initWebGL","_renderStrip","_indexBuffer","_uvBuffer","_colorBuffer","_renderCanvasTriangleStrip","_renderCanvasTriangles","_renderCanvasDrawTriangle","index0","textureSource","textureWidth","textureHeight","u0","v2","paddingX","paddingY","centerX","centerY","normX","normY","beginPath","moveTo","lineTo","closePath","deltaA","deltaB","deltaC","deltaD","deltaE","deltaF","renderStripFlat","strip","fill","updateFrame","rawX","rawY","Rope","lastPoint","amount","total","nextPoint","perp","perpLength","TilingSprite","textureDebug","canvasBuffer","tilePattern","refreshTexture","frameWidth","frameHeight","generateTilingTexture","createPattern","sessionBlendMode","forcePowerOfTwo","targetWidth","_frame","sourceSizeW","targetHeight","sourceSizeH","trimmed","spriteSourceSizeX","spriteSourceSizeY","strokeStyle","strokeRect","amd","WheelEventProxy","scaleFactor","deltaMode","_scaleFactor","_deltaMode","originalEvent","GAMES","AUTO","CANVAS","WEBGL","HEADLESS","NONE","LEFT","RIGHT","UP","DOWN","SPRITE","BUTTON","IMAGE","GRAPHICS","TEXT","TILESPRITE","BITMAPTEXT","GROUP","RENDERTEXTURE","TILEMAP","TILEMAPLAYER","EMITTER","POLYGON","BITMAPDATA","CANVAS_FILTER","WEBGL_FILTER","ELLIPSE","SPRITEBATCH","RETROFONT","POINTER","ROPE","RECTANGLE","MATRIX","POINT","ROUNDEDRECTANGLE","CREATURE","VIDEO","PENDING_ATLAS","trunc","Function","bind","thisArg","bound","args","boundArgs","concat","TypeError","F","proto","arg","forEach","fun","CheapArray","assert","getProperty","obj","prop","parts","setProperty","chanceRoll","chance","random","randomChoice","choice1","choice2","parseDimension","dimension","parseInt","innerWidth","innerHeight","pad","dir","padlen","isPlainObject","nodeType","hasOwnProperty","copyIsArray","deep","mixinPrototype","mixin","replace","mixinKeys","childNodes","cloneNode","diameter","_diameter","_radius","circumference","setTo","copyFrom","copyTo","dest","round","output","contains","circumferencePoint","asDegrees","offsetPoint","top","bottom","equals","intersects","degToRad","intersectsRectangle","halfWidth","xDist","halfHeight","yDist","xCornerDist","yCornerDist","xCornerDistSq","yCornerDistSq","maxCornerDistSq","Ellipse","normx","normy","fromSprite","startSprite","endSprite","useCenter","center","fromAngle","rotateAround","line","asSegment","intersectsPoints","midPoint","centerOn","pointOnLine","pointOnSegment","xMin","xMax","yMin","yMax","coordinatesOnLine","stepRate","results","sx","sy","err","e2","wrap","uc","ua","ub","normalAngle","fromArray","newPos","tx1","invert","clampX","clamp","clampY","radToDeg","getMagnitude","getMagnitudeSq","setMagnitude","magnitude","isZero","rperp","normalRightHand","negative","multiplyAdd","interpolate","project","amt","projectUnit","pointslength","parse","xProp","yProp","_points","closed","toNumberArray","flatten","inside","ix","iy","jx","jy","calculateArea","avgHeight","floorAll","ceilAll","inflate","containsRect","intersection","intersectsRaw","union","randomX","randomY","empty","inflatePoint","containsRaw","rx","ry","rw","rh","volume","sameDimensions","MIN_VALUE","RoundedRectangle","Camera","deadzone","roundPx","atLimit","totalInView","onShakeComplete","Signal","onFlashComplete","onFadeComplete","fx","_targetPosition","_edge","_position","_shake","intensity","duration","horizontal","vertical","shakeBounds","_fxDuration","_fxType","FOLLOW_LOCKON","FOLLOW_PLATFORMER","FOLLOW_TOPDOWN","FOLLOW_TOPDOWN_TIGHT","SHAKE_BOTH","SHAKE_HORIZONTAL","SHAKE_VERTICAL","ENABLE_FX","boot","camera","Graphics","follow","lerpX","lerpY","helper","unfollow","focusOn","setPosition","focusOnXY","shake","flash","beginFill","drawRect","endFill","fade","updateFX","updateTarget","updateShake","checkBounds","elapsedMS","dispatch","rnd","frac","math","linear","setBoundsToWorld","vx","vw","vy","vh","setSize","resetFX","State","make","cache","input","load","sound","tweens","particles","physics","preload","loadUpdate","loadRender","preRender","paused","resumed","pauseUpdate","shutdown","StateManager","pendingState","states","_pendingState","_clearWorld","_clearCache","_created","_args","onStateChange","onInitCallback","onPreloadCallback","onCreateCallback","onUpdateCallback","onRenderCallback","onResizeCallback","onPreRenderCallback","onLoadUpdateCallback","onLoadRenderCallback","onPausedCallback","onResumedCallback","onPauseUpdateCallback","onShutDownCallback","onPause","pause","onResume","resume","state","autoStart","newState","isBooted","callbackContext","clearWorld","clearCache","checkState","restart","dummy","previousStateKey","clearCurrentState","setCurrentState","totalQueuedFiles","totalQueuedPacks","loadComplete","removeAll","debug","link","unlink","_kickstart","getCurrentState","elapsedTime","renderType","_bindings","_prevParams","memorize","_shouldPropagate","active","_boundDispatch","validateListener","fnName","_registerListener","isOnce","listenerContext","priority","binding","prevIndex","_indexOfListener","SignalBinding","_addBinding","execute","_priority","cur","_listener","addOnce","_destroy","getNumListeners","halt","bindings","paramsArr","forget","dispose","_this","signal","_isOnce","_signal","callCount","params","handlerReturn","detach","isBound","getListener","getSignal","Filter","prevPoint","Date","mouse","date","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","sampleRate","iChannel0","iChannel1","iChannel2","iChannel3","setResolution","pointer","toFixed","totalElapsedSeconds","anchorX","anchorY","Plugin","hasPreUpdate","hasUpdate","hasPostUpdate","hasRender","hasPostRender","postRender","PluginManager","plugins","_len","_i","plugin","postUpdate","Stage","disableVisibilityChange","exists","currentRenderOrderID","_hiddenVar","_onChange","config","parseConfig","setBackgroundColor","DOM","getOffset","setUserSelect","setTouchAction","checkVisibility","webkitHidden","mozHidden","msHidden","hidden","visibilityChange","addEventListener","onblur","onfocus","onpagehide","onpageshow","device","cocoonJSApp","CocoonJS","App","onSuspended","onActivated","focusLoss","focusGain","gamePaused","gameResumed","Color","valueToColor","updateColor","removeEventListener","Group","addToStage","enableBody","physicsBodyType","Physics","ARCADE","physicsType","alive","ignoreDestroy","pendingDestroy","classType","cursor","enableBodyDebug","physicsSortDirection","onDestroy","cursorIndex","fixedToCamera","cameraOffset","hash","_sortProperty","RETURN_NONE","RETURN_TOTAL","RETURN_CHILD","SORT_ASCENDING","SORT_DESCENDING","silent","removeFromHash","addToHash","events","onAddedToGroup$dispatch","addMultiple","moveAll","addAt","updateZ","getAt","createMultiple","quantity","resetCursor","next","previous","swap","child1","bringToTop","getIndex","sendToBack","moveUp","moveDown","xy","getByName","oldChild","newChild","hasProperty","operation","checkProperty","checkAlive","checkVisible","setAll","setAllChildren","checkAll","addAll","property","subAll","multiplyAll","divideAll","callAllExists","existsValue","callbackFromArray","callAll","method","methodLength","contextLength","renderOrderID","predicate","checkExists","ArraySet","forEachExists","iterate","forEachAlive","forEachDead","order","ascendingSortHandler","descendingSortHandler","customSort","sortHandler","returnType","getFirstExists","createIfNull","resetChild","getFirstAlive","getFirstDead","loadTexture","getTop","getBottom","countLiving","countDead","getRandom","ArrayUtils","getRandomItem","destroyPhase","onRemovedFromGroup$dispatch","group","removeBetween","destroyChildren","soft","_definedSize","stateChange","setBounds","useBounds","between","Game","physicsConfig","isRunning","raf","net","Device","lockRender","pendingStep","stepCount","onBlur","onFocus","_paused","_codePaused","currentUpdateID","updatesThisFrame","_deltaTime","_lastCount","_spiraling","fpsProblemNotifier","forceSingleUpdate","_nextFpsNotification","enableDebug","RandomDataGenerator","now","whenReady","seed","ScaleManager","setUpRenderer","GameObjectFactory","GameObjectCreator","Cache","Loader","Time","TweenManager","Input","SoundManager","Particles","Create","Net","Debug","showDebugHeader","RequestAnimationFrame","stopFocus","focus","hideBanner","webAudio","chrome","webGL","contextRestored","cocoonJS","smoothed","addToDOM","preventDefault","clearGLTextures","updateLogic","desiredFpsMult","updateRender","slowMotion","desiredFps","slowStep","elapsed","enableStep","disableStep","removeFromDOM","muteOnPause","setMute","cordova","iOS","unsetMute","hitCanvas","hitContext","moveCallbacks","pollRate","multiInputOverride","MOUSE_TOUCH_COMBINE","maxPointers","tapRate","doubleTapRate","holdRate","justPressedRate","justReleasedRate","recordPointerHistory","recordRate","recordLimit","pointer1","pointer2","pointer3","pointer4","pointer5","pointer6","pointer7","pointer8","pointer9","pointer10","pointers","activePointer","mousePointer","keyboard","touch","mspointer","gamepad","resetLocked","onDown","onUp","onTap","onHold","minPriorityID","interactiveItems","_localPoint","_pollCounter","_oldPosition","_x","_y","MOUSE_OVERRIDES_TOUCH","TOUCH_OVERRIDES_MOUSE","MAX_POINTERS","Pointer","PointerMode","CURSOR","addPointer","Mouse","Touch","MSPointer","Keyboard","Gamepad","_onClickTrampoline","onClickTrampoline","addMoveCallback","deleteMoveCallback","TOUCH","hard","resetSpeed","startPointer","countActivePointers","updatePointer","identifier","move","stopPointer","limit","getPointer","isActive","getPointerFromIdentifier","getPointerFromId","pointerId","getLocalPosition","worldVisible","TileSprite","graphicsData","processClickTrampolines","mouseDownCallback","mouseUpCallback","mouseOutCallback","mouseOverCallback","mouseWheelCallback","capture","button","wheelDelta","locked","stopOnGameOut","pointerLock","_onMouseDown","_onMouseMove","_onMouseUp","_onMouseOut","_onMouseOver","_onMouseWheel","_wheelEvent","NO_BUTTON","LEFT_BUTTON","MIDDLE_BUTTON","RIGHT_BUTTON","BACK_BUTTON","FORWARD_BUTTON","WHEEL_UP","WHEEL_DOWN","android","onMouseDown","onMouseMove","onMouseUp","_onMouseUpGlobal","onMouseUpGlobal","_onMouseOutGlobal","onMouseOutGlobal","onMouseOut","onMouseOver","onMouseWheel","wheelEvent","mouseMoveCallback","withinGame","leftButton","rightButton","bindEvent","deltaY","requestPointerLock","element","mozRequestPointerLock","webkitRequestPointerLock","_pointerLockChange","pointerLockChange","pointerLockElement","mozPointerLockElement","webkitPointerLockElement","releasePointerLock","exitPointerLock","mozExitPointerLock","webkitExitPointerLock","_stubsGenerated","makeBinder","defineProperties","detail","deltaX","wheelDeltaX","deltaZ","pointerDownCallback","pointerMoveCallback","pointerUpCallback","_onMSPointerDown","_onMSPointerMove","_onMSPointerUp","_onMSPointerUpGlobal","_onMSPointerOut","_onMSPointerOver","onPointerDown","onPointerMove","onPointerUp","onPointerUpGlobal","onPointerOut","onPointerOver","pointerType","DeviceButton","buttonCode","isDown","isUp","timeDown","timeUp","repeats","altKey","shiftKey","ctrlKey","onFloat","padFloat","justPressed","justReleased","pointerMode","CONTACT","middleButton","backButton","forwardButton","eraserButton","ERASER_BUTTON","_holdSent","_history","_nextDrop","_stateReset","clientX","clientY","pageX","pageY","screenX","screenY","rawMovementX","rawMovementY","movementX","movementY","isMouse","previousTapTime","totalTouches","msSinceLastClick","targetObject","positionDown","positionUp","_clickTrampolines","_trampolineTargetObject","resetButtons","processButtonsDown","buttons","processButtonsUp","updateButtons","down","toLowerCase","totalActivePointers","_touchedHandler","processInteractiveObjects","shift","fromClick","pollLocked","mozMovementX","webkitMovementX","mozMovementY","webkitMovementY","isDragged","highestRenderOrderID","highestInputPriorityID","candidateTarget","currentNode","checked","validForInput","checkPointerDown","checkPointerOver","priorityID","_pointerOutHandler","_pointerOverHandler","leave","currentPointers","addClickTrampoline","callbackArgs","trampolines","trampoline","_releasedHandler","resetMovement","touchLockCallbacks","touchStartCallback","touchMoveCallback","touchEndCallback","touchEnterCallback","touchLeaveCallback","touchCancelCallback","_onTouchStart","_onTouchMove","_onTouchEnd","_onTouchEnter","_onTouchLeave","_onTouchCancel","onTouchStart","onTouchMove","onTouchEnd","onTouchEnter","onTouchLeave","onTouchCancel","consumeDocumentTouches","_documentTouchMove","addTouchLockCallback","onEnd","removeTouchLockCallback","cb","changedTouches","InputHandler","useHandCursor","_setHandCursor","allowHorizontalDrag","allowVerticalDrag","snapOffset","snapOnDrag","snapOnRelease","snapX","snapY","snapOffsetX","snapOffsetY","pixelPerfectOver","pixelPerfectClick","pixelPerfectAlpha","draggable","boundsRect","boundsSprite","scaleLayer","dragOffset","dragFromCenter","dragStartPoint","snapPoint","_dragPoint","_dragPhase","_wasEnabled","_tempPoint","_pointerData","isOver","isOut","timeOver","timeOut","downDuration","onAddedToGroup","addedToGroup","onRemovedFromGroup","removedFromGroup","flagged","highestID","highestRenderID","includePixelPerfect","isPixelPerfect","pointerX","pointerY","pointerDown","pointerUp","pointerTimeDown","pointerTimeUp","pointerOver","pointerOut","pointerTimeOver","pointerTimeOut","pointerDragged","fastTest","checkPixel","_dx","_dy","_draggedPointerID","updateDrag","sendEvent","onInputOver$dispatch","onInputOut$dispatch","onInputDown$dispatch","startDrag","onInputUp$dispatch","stopDrag","fromStart","globalToLocalX","globalToLocalY","checkBoundsRect","checkBoundsSprite","onDragUpdate","justOver","delay","overDuration","justOut","enableDrag","lockCenter","pixelPerfect","alphaThreshold","disableDrag","onDragStart$dispatch","grid","boundsFluid","scaleFluidInversed","onDragStop$dispatch","setDragLock","allowHorizontal","allowVertical","enableSnap","onDrag","onRelease","disableSnap","_gamepadIndexMap","_rawPads","_active","_gamepadSupportAvailable","webkitGetGamepads","webkitGamepads","userAgent","getGamepads","_prevRawGamepadTypes","_prevTimestamps","onConnectCallback","onDisconnectCallback","onDownCallback","onUpCallback","onAxisCallback","onFloatCallback","_ongamepadconnected","_gamepaddisconnected","_gamepads","SinglePad","addCallbacks","callbacks","onConnect","onDisconnect","onAxis","_onGamepadConnected","onGamepadConnected","_onGamepadDisconnected","onGamepadDisconnected","newPad","connect","removedPad","disconnect","_pollGamepads","pad1","pollStatus","pad2","pad3","pad4","rawGamepads","gamepadsChanged","singlePad","validConnections","rawIndices","padIndices","connected","rawPad","setDeadZones","deadZone","BUTTON_0","BUTTON_1","BUTTON_2","BUTTON_3","BUTTON_4","BUTTON_5","BUTTON_6","BUTTON_7","BUTTON_8","BUTTON_9","BUTTON_10","BUTTON_11","BUTTON_12","BUTTON_13","BUTTON_14","BUTTON_15","AXIS_0","AXIS_1","AXIS_2","AXIS_3","AXIS_4","AXIS_5","AXIS_6","AXIS_7","AXIS_8","AXIS_9","XBOX360_A","XBOX360_B","XBOX360_X","XBOX360_Y","XBOX360_LEFT_BUMPER","XBOX360_RIGHT_BUMPER","XBOX360_LEFT_TRIGGER","XBOX360_RIGHT_TRIGGER","XBOX360_BACK","XBOX360_START","XBOX360_STICK_LEFT_BUTTON","XBOX360_STICK_RIGHT_BUTTON","XBOX360_DPAD_LEFT","XBOX360_DPAD_RIGHT","XBOX360_DPAD_UP","XBOX360_DPAD_DOWN","XBOX360_STICK_LEFT_X","XBOX360_STICK_LEFT_Y","XBOX360_STICK_RIGHT_X","XBOX360_STICK_RIGHT_Y","PS3XC_X","PS3XC_CIRCLE","PS3XC_SQUARE","PS3XC_TRIANGLE","PS3XC_L1","PS3XC_R1","PS3XC_L2","PS3XC_R2","PS3XC_SELECT","PS3XC_START","PS3XC_STICK_LEFT_BUTTON","PS3XC_STICK_RIGHT_BUTTON","PS3XC_DPAD_UP","PS3XC_DPAD_DOWN","PS3XC_DPAD_LEFT","PS3XC_DPAD_RIGHT","PS3XC_STICK_LEFT_X","PS3XC_STICK_LEFT_Y","PS3XC_STICK_RIGHT_X","PS3XC_STICK_RIGHT_Y","padParent","_padParent","_rawPad","_prevTimestamp","_buttons","_buttonsLen","_axes","_axesLen","getButton","timestamp","rawButtonVal","isNaN","processButtonDown","processButtonUp","processButtonFloat","processAxisChange","triggerCallback","disconnectingIndex","axisCode","buttonValue","Key","keycode","_enabled","keyCode","onHoldCallback","onHoldContext","_justDown","_justUp","processKeyDown","processKeyUp","upDuration","pressEvent","onPressCallback","_keys","_capture","_onKeyDown","_onKeyPress","_onKeyUp","_k","onPress","addKey","addKeyCapture","addKeys","removeKey","removeKeyCapture","createCursorKeys","up","KeyCode","processKeyPress","clearCaptures","String","fromCharCode","charCode","A","charCodeAt","C","D","E","H","J","K","L","M","O","P","Q","R","S","T","U","V","W","X","Y","Z","ZERO","TWO","THREE","FOUR","FIVE","SIX","SEVEN","EIGHT","NINE","NUMPAD_0","NUMPAD_1","NUMPAD_2","NUMPAD_3","NUMPAD_4","NUMPAD_5","NUMPAD_6","NUMPAD_7","NUMPAD_8","NUMPAD_9","NUMPAD_MULTIPLY","NUMPAD_ADD","NUMPAD_ENTER","NUMPAD_SUBTRACT","NUMPAD_DECIMAL","NUMPAD_DIVIDE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","F13","F14","F15","COLON","EQUALS","COMMA","UNDERSCORE","PERIOD","QUESTION_MARK","TILDE","OPEN_BRACKET","BACKWARD_SLASH","CLOSED_BRACKET","QUOTES","BACKSPACE","TAB","CLEAR","ENTER","SHIFT","CONTROL","ALT","CAPS_LOCK","ESC","SPACEBAR","PAGE_UP","PAGE_DOWN","END","HOME","PLUS","MINUS","INSERT","DELETE","HELP","NUM_LOCK","match","Component","Angle","wrapAngle","Animation","play","frameRate","loop","killOnComplete","animations","AutoCull","autoCull","inCamera","checkWorldBounds","Bounds","BringToTop","Core","install","components","Events","PhysicsBody","AnimationManager","LoadTexture","FixedToCamera","previousRotation","fresh","_exists","P2JS","customRender","Crop","cropRect","_crop","updateCrop","resetFrame","Delta","Destroy","destroyTexture","onDestroy$dispatch","removeFrom","Video","onChangeSource","resizeFrame","BitmapText","_glyphs","_parent","_onDestroy","_onAddedToGroup","_onRemovedFromGroup","_onRemovedFromWorld","_onKilled","_onRevived","_onEnterBounds","_onOutOfBounds","_onInputOver","_onInputOut","_onInputDown","_onInputUp","_onDragStart","_onDragUpdate","_onDragStop","_onAnimationStart","_onAnimationComplete","_onAnimationLoop","onRemovedFromWorld","onKilled","onRevived","onOutOfBounds","onEnterBounds","onInputOver","onInputOut","onInputDown","onInputUp","onDragStart","onDragStop","onAnimationStart","onAnimationComplete","onAnimationLoop","backing","_fixedToCamera","Health","health","maxHealth","damage","kill","setHealth","heal","InCamera","InputEnabled","inputEnabled","InWorld","outOfCameraBoundsKill","_outOfBoundsFired","onEnterBounds$dispatch","onOutOfBounds$dispatch","outOfBoundsKill","inWorld","LifeSpan","lifespan","physicsElapsedMS","revive","onRevived$dispatch","onKilled$dispatch","stopAnimation","BitmapData","hasFrameData","loadFrameData","getFrameData","frameData","Tilemap","TilemapLayer","img","base","frameName","Overlap","_reset","Reset","ScaleMinMax","scaleMin","scaleMax","checkTransform","setScaleMinMax","Smoothed","existing","creature","mesh","Creature","tween","physicsGroup","audio","audioSprite","addSprite","tileSprite","rope","text","Text","overFrame","outFrame","downFrame","upFrame","Button","emitter","maxParticles","Arcade","Emitter","retroFont","font","characterWidth","characterHeight","chars","charsPerRow","xSpacing","ySpacing","xOffset","yOffset","RetroFont","bitmapText","tilemap","tileWidth","addToCache","uuid","addRenderTexture","video","bitmapData","addBitmapData","Tween","align","preUpdatePhysics","preUpdateLifeSpan","preUpdateInWorld","preUpdateCore","_onOverFrame","_onOutFrame","_onDownFrame","_onUpFrame","onOverSound","onOutSound","onDownSound","onUpSound","onOverSoundMarker","onOutSoundMarker","onDownSoundMarker","onUpSoundMarker","onOverMouseOnly","justReleasedPreventsOver","freezeFrames","forceOut","setFrames","onInputOverHandler","onInputOutHandler","onInputDownHandler","onInputUpHandler","removedFromWorld","STATE_OVER","STATE_OUT","STATE_DOWN","STATE_UP","clearFrames","setStateFrame","switchImmediately","frameKey","changeStateFrame","setStateSound","marker","soundKey","markerKey","Sound","AudioSprite","playStateSound","setSounds","overSound","overMarker","downSound","downMarker","outSound","outMarker","upSound","upMarker","setOverSound","setOutSound","setDownSound","setUpSound","changedUp","ctx","imageData","FrameData","textureFrame","addFrame","Frame","disableTextureUpload","cls","_image","_pos","_size","_scale","_rotate","_alpha","prev","_anchor","_tempR","_tempG","_tempB","_circle","_swapCanvas","moveH","moveV","draw","addImage","processPixelRGB","pixel","createColor","unpackPixel","getPixel32","setPixel32","processPixel","replaceRGB","g1","g2","region","packPixel","setHSL","bHaveH","bHaveS","bHaveL","HSLtoRGB","shiftHSL","red","green","blue","immediate","LITTLE_ENDIAN","setPixel","getPixel","getPixelRGB","hsl","hsv","getPixels","getFirstPixel","scan","newWidth","newHeight","op","copyRect","drawGroup","drawGroupProxy","drawFull","renderGraphics","shadow","blur","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","alphaMask","sourceRect","maskRect","blendSourceAtop","blendReset","extract","destination","prevFont","fillText","arc","lineWidth","stroke","textureLine","blendSourceOver","blendSourceIn","blendSourceOut","blendDestinationOver","blendDestinationIn","blendDestinationOut","blendDestinationAtop","blendXor","blendAdd","blendMultiply","blendScreen","blendOverlay","blendDarken","blendLighten","blendColorDodge","blendColorBurn","blendHardLight","blendSoftLight","blendDifference","blendExclusion","blendHue","blendSaturation","blendColor","blendLuminosity","getSmoothingEnabled","setSmoothingEnabled","getTransform","translateX","translateY","skewX","skewY","fillAlpha","lineColor","currentPath","boundsPadding","_localBounds","webGLDirty","cachedSpriteDirty","lineStyle","lineAlpha","drawShape","quadraticCurveTo","cpX","cpY","toX","toY","xa","ya","fromX","fromY","bezierCurveTo","cpX2","cpY2","dt2","dt3","arcTo","mm","dd","cc","tt","k1","k2","j1","j2","qx","qy","startAngle","endAngle","anticlockwise","segments","sweep","segs","startX","startY","filling","theta","theta2","cTheta","sTheta","segMinus","remainder","real","fillColor","drawRoundedRect","drawCircle","drawEllipse","drawPolygon","clearDirty","updateCachedSpriteTexture","_prevTint","updateLocalBounds","tempPoint","RECT","RREC","CIRC","ELIP","cachedSprite","destroyCachedSprite","GraphicsData","POLY","_lineTint","_fillTint","sign","EarCut","holeIndices","dim","hasHoles","outerLen","outerNode","linkedList","eliminateHoles","earcutLinked","clockwise","insertNode","filterPoints","again","steiner","removeNode","ear","pass","indexCurve","isEarHashed","isEar","cureLocalIntersections","splitEarcut","pointInTriangle","minTX","minTY","maxTX","maxTY","minZ","zOrder","maxZ","nextZ","prevZ","locallyInside","isValidDiagonal","splitPolygon","list","getLeftmost","compareX","eliminateHole","hole","findHoleBridge","hx","hy","tan","tanMin","sortLinked","q","tail","numMerges","pSize","qSize","inSize","leftmost","intersectsPolygon","middleInside","Node","an","bp","stencilBufferLimit","lastIndex","graphicsDataPool","switchMode","canDrawUsingSimple","buildPoly","buildComplexPoly","buildLine","buildRectangle","buildCircle","buildRoundedRectangle","upload","WebGLGraphicsData","rectData","vertPos","tempPoints","rrectData","recPoints","quadraticBezierCurve","vecPos","getPt","n1","n2","perc","diff","xb","yb","circleData","totalSegs","seg","firstPoint","midPointX","midPointY","unshift","p1x","p1y","p2x","p2y","p3x","p3y","perpx","perpy","perp2x","perp2y","perp3x","perp3y","pdist","indexCount","indexStart","glPoints","glIndicies","updateGraphicsTint","kappa","ox","oy","xe","ye","xm","ym","maxRadius","tintR","tintG","tintB","drawTriangle","cull","triangle","cameraToFace","faceNormal","drawTriangles","point1","point2","point3","renderXY","renderRawXY","textBounds","strokeColors","fontStyles","fontWeights","autoRound","useAdvancedWrap","_res","_text","_fontComponents","_lineSpacing","_charCount","setStyle","updateText","setShadow","shadowStroke","shadowFill","backgroundColor","boundsAlignH","boundsAlignV","strokeThickness","wordWrap","wordWrapWidth","maxLines","tabs","fontToComponents","fontStyle","fontVariant","fontWeight","fontSize","componentsToFont","outputText","runWordWrap","lines","lineWidths","maxLineWidth","fontProperties","determineFontProperties","drawnLines","measureText","tab","section","snapToCeil","lineHeight","lineSpacing","textBaseline","lineCap","lineJoin","linePositionX","linePositionY","ascent","updateLine","updateShadow","strokeText","renderTabLine","snap","letter","clearColors","clearFontValues","addColor","addStrokeColor","addFontStyle","addFontWeight","weight","precalculateWordWrap","wrappedLines","advancedWordWrap","basicWordWrap","linesCount","currentLineWidth","words","word","wordWithSpace","wordWidth","newWord","secondPart","spaceLeft","wordWidthWithSpace","updateFont","family","exec","fontFamily","setText","parseList","setTextBounds","properties","fontPropertiesCache","fontPropertiesCanvas","fontPropertiesContext","baseline","descent","imagedata","parseFloat","textWidth","textHeight","_prevAnchor","_maxWidth","_data","getBitmapFont","_font","_fontSize","_align","_tint","sourceWidth","sourceHeight","scanLine","lastSpace","prevCharCode","maxWidth","test","charAt","charData","kerning","xAdvance","cleanText","re","purgeGlyphs","kept","checkImageKey","characterSpacingX","characterSpacingY","characterPerRow","multiLine","autoUpperCase","customSpacingX","customSpacingY","fixedWidth","fontSet","grabData","currentX","currentY","updateFrameData","stamp","ALIGN_LEFT","ALIGN_RIGHT","ALIGN_CENTER","TEXT_SET1","TEXT_SET2","TEXT_SET3","TEXT_SET4","TEXT_SET5","TEXT_SET6","TEXT_SET7","TEXT_SET8","TEXT_SET9","TEXT_SET10","TEXT_SET11","setFixedWidth","lineAlignment","content","characterSpacing","allowLowerCase","buildRetroFontText","getLongestLine","pasteLine","longestLine","removeUnsupportedCharacters","stripCR","newString","aChar","code","updateOffset","diffX","diffY","frames","getFrames","newText","toUpperCase","_hasUpdateAnimation","_updateAnimationCallback","updateAnimation","_updateAnimation","difference","_scroll","def","physicsElapsed","autoScroll","stopScroll","deviceReadyAt","initialized","desktop","iOSVersion","nodeWebkit","electron","ejecta","crosswalk","chromeOS","linux","macOS","windows","windowsPhone","canvasBitBltShift","file","fileSystem","localStorage","worker","css3D","typedArray","vibration","getUserMedia","quirksMode","arora","chromeVersion","epiphany","firefox","firefoxVersion","ie","ieVersion","trident","tridentVersion","mobileSafari","midori","opera","safari","safariVersion","webApp","silk","audioData","ogg","opus","mp3","wav","m4a","webm","dolby","oggVideo","h264Video","mp4Video","webmVideo","vp9Video","hlsVideo","iPhone","iPhone4","iPad","pixelRatio","littleEndian","support32bit","fullscreen","requestFullscreen","cancelFullscreen","fullscreenKeyboard","onInitialized","nonPrimer","readyCheck","_readyCheck","_monitor","_queue","readyState","setTimeout","_initialize","_checkOS","vita","kindle","RegExp","$1","_checkFeatures","getItem","error","WebGLRenderingContext","compatMode","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","oGetUserMedia","URL","webkitURL","mozURL","msURL","_checkInput","documentElement","maxTouchPoints","msPointerEnabled","pointerEnabled","_checkFullScreenSupport","fs","cfs","Element","_checkBrowser","$3","process","versions","_checkVideo","videoElement","canPlayType","_checkAudio","audioElement","major","minor","$2","_checkDevice","Int8Array","_checkIsLittleEndian","Uint8ClampedArray","Int32Array","_checkIsUint8ClampedImageData","vibrate","webkitVibrate","mozVibrate","msVibrate","elem","createImageData","_checkCSS3D","has3d","el","transforms","webkitTransform","OTransform","msTransform","MozTransform","insertBefore","getComputedStyle","getPropertyValue","canPlayAudio","canPlayVideo","isConsoleOpen","profile","profileEnd","isAndroidStockBrowser","matches","skipPool","display","msTouchAction","overflowHidden","getElementById","overflow","appendChild","parentNode","vendor","prefix","setImageRenderingCrisp","types","msInterpolationMode","setImageRenderingBicubic","forceSetTimeOut","vendors","requestAnimationFrame","cancelAnimationFrame","_isSetTimeOut","_onLoop","_timeOutID","updateSetTimeout","updateRAF","rafTime","timeToCall","clearTimeout","isSetTimeOut","isRAF","PI2","fuzzyEqual","fuzzyLessThan","fuzzyGreaterThan","fuzzyCeil","val","fuzzyFloor","average","shear","snapTo","gap","snapToFloor","roundTo","place","floorTo","ceilTo","angleBetween","angleBetweenY","angleBetweenPoints","angleBetweenPointsY","reverseAngle","angleRad","normalizeAngle","maxAdd","minSub","wrapValue","isOdd","isEven","minProperty","maxProperty","radians","linearInterpolation","bezierInterpolation","bernstein","catmullRomInterpolation","catmullRom","factorial","res","roundAwayFromZero","sinCosGenerator","sinAmplitude","cosAmplitude","frequency","frq","cosTable","sinTable","distanceSq","distancePow","clampBottom","within","mapLinear","smoothstep","smootherstep","percent","degreeToRadiansFactor","radianToDegreesFactor","degrees","seeds","s0","sow","integer","integerInRange","realInRange","pick","ary","weightedPick","QuadTree","maxObjects","maxLevels","_empty","subWidth","subHeight","populate","populateHandler","insert","retrieve","returnObjects","getHostName","location","hostname","checkDomainName","domain","updateQueryString","redirect","href","separator","getQueryString","parameter","keyValues","search","substring","decodeURI","decodeURIComponent","frameBased","_tweens","_add","easeMap","Power0","Easing","Power1","Power2","Power3","Power4","Linear","None","Quad","Quadratic","Out","Cubic","Quart","Quartic","Quint","Quintic","Sine","Sinusoidal","Expo","Exponential","Circ","Circular","Elastic","Back","Bounce","Quad.easeIn","In","Cubic.easeIn","Quart.easeIn","Quint.easeIn","Sine.easeIn","Expo.easeIn","Circ.easeIn","Elastic.easeIn","Back.easeIn","Bounce.easeIn","Quad.easeOut","Cubic.easeOut","Quart.easeOut","Quint.easeOut","Sine.easeOut","Expo.easeOut","Circ.easeOut","Elastic.easeOut","Back.easeOut","Bounce.easeOut","Quad.easeInOut","InOut","Cubic.easeInOut","Quart.easeInOut","Quint.easeInOut","Sine.easeInOut","Expo.easeInOut","Circ.easeInOut","Elastic.easeInOut","Back.easeInOut","Bounce.easeInOut","_pauseAll","_resumeAll","getAll","pendingDelete","_manager","addTweens","numTweens","isTweening","some","_pause","_resume","pauseAll","resumeAll","manager","timeline","timeScale","repeatCounter","onStart","onLoop","onRepeat","onChildComplete","onComplete","chainedTween","isPaused","_onUpdateCallback","_onUpdateCallbackContext","_pausedTime","_hasStarted","ease","yoyo","Default","TweenData","vEnd","loadValues","updateTweenData","repeatDelay","yoyoDelay","easing","interpolation","repeatAll","chain","startTime","status","PENDING","RUNNING","LOOPED","COMPLETE","generateData","vStart","vStartCache","vEndCache","repeatTotal","inReverse","easingFunction","interpolationFunction","interpolationContext","isFrom","yoyoCounter","ms","fps","blob","reversed","asin","prevTime","_desiredFps","suggestedFps","advancedTiming","fpsMin","fpsMax","msMin","msMax","pauseDuration","timeExpected","Timer","_frameCount","_elapsedAccumulator","_started","_timeLastSecond","_pauseStarted","_justResumed","_timers","timer","autoDestroy","previousDateNow","updateAdvancedTiming","updateTimers","elapsedSince","since","elapsedSecondsSince","running","expired","nextTick","timeCap","_pauseTotal","_now","_marked","_diff","_newTick","MINUTE","SECOND","HALF","QUARTER","repeatCount","TimerEvent","clearEvents","clearPendingEvents","adjustEvents","baseTime","currentFrame","currentAnim","updateIfVisible","isLoaded","_frameData","_anims","_outputFrames","anim","copyFrameData","useNumericIndex","getFrameIndexes","validateFrames","checkFrameName","isPlaying","getAnimation","refreshFrame","getFrame","getFrameByName","_frameIndex","_frames","loopCount","isFinished","_pauseStartTime","_frameDiff","_frameSkip","onUpdate","_timeLastFrame","_timeNextFrame","updateCurrentFrame","onAnimationStart$dispatch","useLocalFrameIndex","frameIndex","dispatchComplete","onAnimationComplete$dispatch","onAnimationLoop$dispatch","signalUpdate","fromPlay","generateFrameNames","suffix","zeroPad","rotated","rotationDirection","spriteSourceSizeW","spriteSourceSizeH","setTrim","actualWidth","actualHeight","destX","destY","destWidth","destHeight","getRect","_frameNames","getFrameRange","AnimationParser","spriteSheet","frameMax","margin","spacing","row","column","JSONData","json","newFrame","filename","sourceSize","spriteSourceSize","JSONDataPyxel","signature","tileheight","tilewidth","JSONDataHash","XMLData","xml","getElementsByTagName","frameX","frameY","autoResolveURL","_cache","binary","bitmapFont","_urlMap","_urlResolver","_urlTemp","onSoundUnlock","_cacheMap","TEXTURE","SOUND","PHYSICS","BINARY","BITMAPFONT","JSON","XML","SHADER","RENDER_TEXTURE","addDefaultImage","addMissingImage","addCanvas","removeImage","_resolveURL","addSound","audioTag","decoded","isDecoding","touchLocked","addText","addPhysicsData","addTilemap","mapData","addBinary","binaryData","addBitmapFont","atlasData","atlasType","LoaderParser","jsonBitmapFont","xmlBitmapFont","addJSON","addXML","addVideo","isBlob","addShader","addSpriteSheet","addTextureAtlas","TEXTURE_ATLAS_XML_STARLING","TEXTURE_ATLAS_JSON_PYXEL","reloadSound","getSound","reloadSoundComplete","updateSound","decodedSound","isSoundDecoded","isSoundReady","checkKey","checkURL","checkCanvasKey","checkTextureKey","checkSoundKey","checkTextKey","checkPhysicsKey","checkTilemapKey","checkBinaryKey","checkBitmapDataKey","checkBitmapFontKey","checkJSONKey","checkXMLKey","checkVideoKey","checkShaderKey","checkRenderTextureKey","full","getTextureFrame","getSoundData","getText","getPhysicsData","fixtureKey","fixtures","fixture","getTilemapData","getBinary","getBitmapData","getJSON","getXML","getVideo","getShader","getRenderTexture","getBaseTexture","getFrameCount","getFrameByIndex","getPixiTexture","getPixiBaseTexture","getURL","getKeys","removeCanvas","removeFromPixi","removeSound","removeText","removePhysics","removeTilemap","removeBinary","removeBitmapData","removeBitmapFont","removeJSON","removeXML","removeVideo","removeShader","removeRenderTexture","removeSpriteSheet","removeTextureAtlas","atlas","baseURL","isLoading","preloadSprite","onLoadStart","onLoadComplete","onPackComplete","onFileStart","onFileComplete","onFileError","useXDomainRequest","_warnedAboutXDomainRequest","enableParallel","maxParallelDownloads","_withSyncPointDepth","_fileList","_flightQueue","_processingHead","_fileLoadStarted","_totalPackCount","_totalFileCount","_loadedPackCount","_loadedFileCount","TEXTURE_ATLAS_JSON_ARRAY","TEXTURE_ATLAS_JSON_HASH","PHYSICS_LIME_CORONA_JSON","PHYSICS_PHASER_JSON","setPreloadSprite","checkKeyExists","getAssetIndex","bestFound","loaded","loading","getAsset","fileIndex","addToFileList","overwrite","extension","syncPoint","currentFile","replaceInFileList","pack","images","urls","script","spritesheet","autoDecode","noAudio","jsonURL","jsonData","audiosprite","loadEvent","asBlob","CSV","TILED_JSON","LIME_CORONA_JSON","textureURL","atlasURL","parseXml","atlasJSONArray","atlasJSONHash","atlasXML","withSyncPoint","addSyncPoint","asset","removeFile","updateProgress","processLoadQueue","finishedLoading","requestUrl","requestObject","progress","syncblock","inflightLimit","processPack","loadFile","abnormal","asyncComplete","errorMessage","packData","transformUrl","xhrLoad","fileComplete","loadImageTag","getAudioURL","usingWebAudio","usingAudioTag","loadAudioTag","fileError","getVideoURL","loadVideoTag","jsonLoadComplete","xmlLoadComplete","csvLoadComplete","onload","onerror","controls","autoplay","videoLoadEvent","canplay","Audio","playThroughEvent","XDomainRequest","xhrLoadWithXDR","xhr","XMLHttpRequest","open","responseType","message","send","timeout","ontimeout","onprogress","videoType","uri","lastIndexOf","audioType","reason","loadNext","responseText","Blob","response","decode","language","defer","head","contentType","domparser","DOMParser","parseFromString","ActiveXObject","async","loadXML","totalLoadedFiles","totalLoadedPacks","progressFloat","info","common","getAttribute","letters","kernings","second","finalizeBitmapFont","_face","_lineHeight","_id","_xoffset","_yoffset","_xadvance","_second","_first","_amount","bitmapFontData","autoplayKey","sounds","spritemap","addMarker","connectToMaster","markers","totalDuration","currentTime","durationMS","stopTime","pausedPosition","pausedTime","currentMarker","fadeTween","pendingPlayback","override","allowMultiple","externalNode","masterGainNode","gainNode","_sound","masterGain","createGain","createGainNode","gain","soundHasUnlocked","onDecoded","onPlay","onStop","onMute","onMarkerComplete","_volume","_buffer","_muted","_tempMarker","_tempPosition","_tempVolume","_muteVolume","_tempLoop","_onDecodedEventDispatched","removeMarker","onEndedHandler","onended","isDecoded","loopFull","forceRestart","noteOff","createBufferSource","noteGrainOn","muted","mute","prevMarker","fadeIn","fadeTo","fadeOut","fadeComplete","updateGlobalVolume","globalVolume","onSoundDecode","onVolumeChange","onUnMute","channels","_codeMuted","_unlockSource","_sounds","_watchList","_watching","_watchCallback","_watchContext","disableAudio","disableWebAudio","audioContext","fakeiOSTouchLock","setTouchLock","unlock","noteOn","stopAll","soundData","decodeAudioData","setDecodedCallback","files","playbackState","PLAYING_STATE","FINISHED_STATE","removeByKey","close","dom","minWidth","minHeight","maxHeight","forceLandscape","forcePortrait","incorrectOrientation","_pageAlignHorizontally","_pageAlignVertically","onOrientationChange","enterIncorrectOrientation","leaveIncorrectOrientation","fullScreenTarget","_createdFullScreenTarget","onFullScreenInit","onFullScreenChange","onFullScreenError","screenOrientation","getScreenOrientation","scaleFactorInversed","aspectRatio","sourceAspectRatio","windowConstraints","compatibility","supportsFullScreen","orientationFallback","noMargins","scrollTo","forceMinimumDocumentHeight","canExpandParent","clickTrampoline","_scaleMode","NO_SCALE","_fullScreenScaleMode","parentIsWindow","parentScaleFactor","trackParentInterval","onSizeChange","onResize","onResizeContext","_pendingScaleMode","_fullScreenRestore","_gameSize","_userScaleFactor","_userScaleTrim","_lastUpdate","_updateThrottle","_updateThrottleReset","_parentBounds","_tempBounds","_lastReportedCanvasSize","_lastReportedGameSize","_booted","setupScale","EXACT_FIT","SHOW_ALL","RESIZE","USER_SCALE","compat","_orientationChange","orientationChange","_windowResize","windowResize","_fullScreenChange","fullScreenChange","_fullScreenError","fullScreenError","_gameResumed","setGameSize","FlexGrid","fullScreenScaleMode","getParentBounds","visualBounds","updateDimensions","queueUpdate","currentScaleMode","setUserScale","hScale","vScale","hTrim","vTrim","setResizeCallback","signalSizeChange","setMinMax","prevThrottle","prevWidth","prevHeight","boundsChanged","orientationChanged","updateOrientationState","updateLayout","throttle","updateScalingAndBounds","forceOrientation","classifyOrientation","orientation","previousOrientation","previouslyIncorrect","isLandscape","isPortrait","changed","correctnessChanged","scrollTop","reflowGame","setMaximum","setExactFit","isFullScreen","boundingParent","setShowAll","resetCanvas","reflowCanvas","layoutBounds","clientRect","getBoundingClientRect","parentRect","offsetParent","wc","windowBounds","alignCanvas","parentBounds","canvasBounds","currentEdge","targetEdge","marginLeft","marginRight","marginTop","marginBottom","pageAlignHorizontally","pageAlignVertically","cssWidth","cssHeight","expanding","createFullScreenTarget","fsTarget","background","startFullScreen","allowTrampoline","cleanupCreatedTarget","initData","targetElement","ALLOW_KEYBOARD_INPUT","stopFullScreen","prepScreenMode","enteringFullscreen","createdTarget","scaleSprite","letterBox","scaleX1","scaleY1","scaleX2","scaleY2","scaleOnWidth","bmd","columnWidth","renderShadow","currentAlpha","scaleManager","currentColor","soundInfo","cameraInfo","hideIfUp","downColor","upColor","worldX","worldY","spriteInputInfo","justDown","justUp","inputInfo","spriteBounds","filled","rectangle","ropeSegments","segment","spriteInfo","spriteCoords","lineInfo","geom","forceType","quadTree","quadtree","NINJA","Ninja","BOX2D","Box2D","renderBody","bodyInfo","renderBodyInfo","box2d","box2dWorld","renderDebugDraw","box2dBody","box","scrollY","scrollLeft","scrollX","clientTop","clientLeft","cushion","calibrate","coords","getAspectRatio","inLayoutViewport","primaryFallback","screen","mozOrientation","msOrientation","PORTRAIT","LANDSCAPE","matchMedia","documentBounds","pageXOffset","pageYOffset","treatAsDesktop","clientWidth","clientHeight","offsetWidth","scrollWidth","offsetHeight","scrollHeight","randomIndex","removeRandomItem","shuffle","transposeMatrix","sourceRowCount","sourceColCount","rotateMatrix","findClosest","arr","NaN","low","high","POSITIVE_INFINITY","numberArray","numberArrayStep","LinkedList","entity","palettes","PALETTE_ARNE","PALETTE_JMP","PALETTE_CGA","PALETTE_C64","PALETTE_JAPANESE_MACHINE","pixelWidth","pixelHeight","palette","cellWidth","cellHeight","boundsCustom","boundsFull","boundsNone","positionCustom","positionFluid","positionFull","positionNone","scaleCustom","scaleFluid","scaleFull","scaleNone","customWidth","customHeight","customOffsetX","customOffsetY","ratioH","ratioV","layers","createCustomLayer","layer","FlexLayer","createFluidLayer","createFullLayer","createFixedLayer","persist","fitSprite","topLeft","topMiddle","topRight","bottomLeft","bottomMiddle","bottomRight","RGBtoHSL","RGBtoHSV","fromRGBA","toRGBA","hueToColor","HSVtoRGB","color32","getColor","getColor32","RGBtoString","componentToHex","hexToRGB","hexToColor","webToColor","web","tempColor","getRGB","HSVColorWheel","HSLColorWheel","interpolateColor","color1","color2","steps","currentStep","src1","src2","interpolateColorWithRGB","or","og","ob","interpolateRGB","getRandomColor","getWebRGB","getAlpha","getAlphaFloat","getRed","getGreen","getBlue","blendNormal","blendAverage","blendSubtract","blendNegation","blendLinearDodge","blendLinearBurn","blendLinearLight","blendVividLight","blendPinLight","blendHardMix","blendReflect","blendGlow","blendPhoenix","arcade","ninja","chipmunk","matter","CHIPMUNK","MATTERJS","P2","Matter","startSystem","system","enableAABB","checkCollision","OVERLAP_BIAS","forceX","sortDirection","LEFT_RIGHT","skipQuadTree","_total","SORT_NONE","RIGHT_LEFT","TOP_BOTTOM","BOTTOM_TOP","updateMotion","velocityDelta","computeVelocity","angularAcceleration","angularDrag","maxAngular","acceleration","drag","maxVelocity","allowGravity","object1","object2","overlapCallback","processCallback","collideHandler","collide","collideCallback","sortLeftRight","sortRightLeft","sortTopBottom","sortBottomTop","overlapOnly","collideGroupVsSelf","collideSpriteVsSprite","collideSpriteVsGroup","collideSpriteVsTilemapLayer","collideGroupVsGroup","collideGroupVsTilemapLayer","sprite1","sprite2","separate","items","group1","group2","body1","body2","resultX","resultY","separateX","separateY","isCircle","circleBodyIntersects","getOverlapX","maxOverlap","deltaAbsX","embedded","touching","none","overlapX","getOverlapY","deltaAbsY","overlapY","immovable","customSeparateX","bounce","moves","nv1","nv2","avg","customSeparateY","getObjectsUnderPointer","getObjectsAtLocation","callbackArg","moveToObject","maxTime","distanceBetween","moveToPointer","angleToPointer","distanceToPointer","moveToXY","distanceToXY","velocityFromAngle","velocityFromRotation","accelerationFromRotation","accelerateToObject","xSpeedMax","ySpeedMax","accelerateToPointer","accelerateToXY","angleToXY","worldAngleToPointer","allowRotation","preRotation","newVelocity","deltaMax","facing","collideWorldBounds","any","wasTouching","blocked","tilePadding","syncBounds","_sx","_sy","updateBounds","asx","asy","check","setCircle","onFloor","onCeiling","onWall","TilemapCollision","TILE_BIAS","tilemapLayer","getTiles","separateTile","tile","collisionCallback","collisionCallbackContext","faceLeft","faceRight","faceTop","faceBottom","tileCheckX","tileCheckY","collideRight","collideLeft","processTileSeparationX","collideDown","collideUp","processTileSeparationY","useElapsedTime","materials","InversePointProxy","walls","onBodyAdded","onBodyRemoved","onSpringAdded","onSpringRemoved","onConstraintAdded","onConstraintRemoved","onContactMaterialAdded","onContactMaterialRemoved","postBroadphaseCallback","onBeginContact","onEndContact","mpx","mpxi","pxm","pxmi","beginContactHandler","endContactHandler","collisionGroups","nothingCollisionGroup","CollisionGroup","boundsCollisionGroup","everythingCollisionGroup","boundsCollidesWith","_toRemove","_collisionGroupID","_boundsLeft","_boundsRight","_boundsTop","_boundsBottom","_boundsOwnGroup","removeBodyNextStep","setImpactEvents","impactHandler","setPostBroadphaseCallback","postBroadphaseHandler","_bodyCallbacks","_bodyCallbackContext","_groupCallbacks","_groupCallbackContext","setCollisionGroup","setWorldMaterial","updateBoundsCollisionGroup","setupWall","wall","fixedStepTime","impactCallback","createDistanceConstraint","getBody","createGearConstraint","createRevoluteConstraint","createLockConstraint","createPrismaticConstraint","lockRotation","anchorA","anchorB","setMaterial","createMaterial","createContactMaterial","getSprings","getConstraints","filterStatic","physicsPosition","query","toJSON","createCollisionGroup","bitmask","createSpring","worldA","worldB","localA","localB","createRotationalSpring","createBody","addPolygon","createParticle","convertCollisionObjects","map","collision","polyline","clearTilemapLayerBodies","getLayer","convertTilemap","optimize","collides","getTileRight","addRectangle","FixtureList","rawList","namedFixtures","groupedFixtures","allFixtures","setCategory","bit","setter","getFixtures","setMask","setSensor","getFixtureByKey","getGroup","groupID","_ref","_results","callee","PointProxy","collidesWith","removeNextStep","debugBody","_collideWorldBounds","setRectangleFromSprite","createBodyCallback","createGroupCallback","getCollisionMask","updateCollisionMask","clearCollision","clearGroup","clearMask","removeCollisionGroup","clearCallback","shapeChanged","impulse","localX","localY","setZeroRotation","setZeroVelocity","setZeroDamping","rotateLeft","rotateRight","moveForward","moveBackward","thrust","thrustLeft","thrustRight","moveLeft","moveRight","updateSpriteTransform","resetDamping","resetMass","clearShapes","addCircle","addPlane","addParticle","addLine","addCapsule","setRectangle","addPhaserPolygon","createdFixtures","fixtureData","shapesOfFixture","addFixture","generatedShapes","categoryBits","maskBits","isSensor","polygons","loadPolygon","BodyDebug","settings","defaultSettings","pixelsPerLengthUnit","debugPolygons","ppu","lw","vrot","_j","_ref1","randomPastelHex","drawCapsule","drawPlane","drawLine","drawRectangle","drawConvex","drawPath","lastx","lasty","diagMargin","diagSize","maxLength","xd","yd","mix","rgbToHex","ImageCollection","firstgid","imageWidth","imageHeight","imageMargin","imageSpacing","containsImageIndex","imageIndex","gid","Tile","flipped","scanned","setCollisionCallback","setCollision","resetCollision","isInteresting","faces","TilemapParser","widthInPixels","heightInPixels","tilesets","imagecollections","tiles","collideIndexes","currentLayer","debugMap","_tempA","NORTH","EAST","SOUTH","WEST","setTileSize","createBlankLayer","addTilesetImage","tileset","tileMargin","tileSpacing","getTilesetIndex","setImage","newSet","Tileset","countX","countY","columns","rows","createFromObjects","CustomClass","adjustY","createFromTiles","replacements","customClass","lh","createLayer","getLayerIndex","indexes","getImageIndex","setTileIndexCallback","setTileLocationCallback","recalculate","setCollisionByIndex","calculateFaces","setCollisionBetween","setCollisionByExclusion","setPreventRecalculate","preventingRecalculate","needToRecalculate","above","below","getTileAbove","getTileBelow","getTileLeft","setLayer","hasTile","removeTile","removeTileWorldXY","putTile","putTileWorldXY","searchTileIndex","getTile","nonNull","getTileWorldXY","paste","tileblock","tileA","tileB","swapHandler","removeAllLayers","dump","txt","renderSettings","enableScrollDelta","overdrawRatio","copyCanvas","debugSettings","missingImageFill","debuggedTileOverfill","forceFullRedraw","debugAlpha","facingEdgeStroke","collidingTileOverfill","scrollFactorX","scrollFactorY","rayStepRate","_wrap","_mc","renderWidth","renderHeight","_scrollX","_scrollY","ensureSharedCopyCanvas","sharedCopyCanvas","resizeWorld","_fixX","_unfixX","_fixY","_unfixY","getTileX","getTileY","getTileXY","getRayCastTiles","interestingFace","coord","fetchAll","wy","wx","resolveTileset","tileIndex","setIndex","containsTileIndex","resetTilesetCache","setScale","xScale","yScale","shiftCanvas","copyW","copyH","copyContext","renderRegion","lastAlpha","xmax","ymax","baseX","baseY","normStartX","normStartY","tileColor","renderDeltaScroll","shiftX","shiftY","renderW","renderH","trueTop","trueBottom","trueLeft","trueRight","renderFull","redrawAll","mc","renderDebug","INSERT_NULL","getEmptyData","parseCSV","parseTiledJSON","fields","sliced","curl","compression","encoding","binaryString","atob","bytes","opacity","flippedVal","curi","tileproperties","tileProperties","updateTileData","imagewidth","imageheight","newCollection","curo","polygon","ellipse","sid","drawCoords","coordIndex","setSpacing","rowCount","colCount","autoScale","scaleData","_s","autoAlpha","alphaData","_a","onEmit","setAlphaData","setScaleData","emitters","ID","minParticleSpeed","maxParticleSpeed","minParticleScale","maxParticleScale","minRotation","maxRotation","minParticleAlpha","maxParticleAlpha","particleClass","particleDrag","particleAnchor","emitX","emitY","particleBringToTop","particleSendToBack","_minParticleScale","_maxParticleScale","_quantity","_timer","_counter","_flowQuantity","_flowTotal","_explode","emitParticle","makeParticles","particle","rndKey","rndFrame","explode","flow","forceQuantity","setXSpeed","setYSpeed","setRotation","setAlpha","rate","tweenData","onAccess","onError","onTimeout","videoStream","isStreaming","retryLimit","retry","retryInterval","_retryID","_pending","_autoplay","_endCallback","_playCallback","_video","createVideoFromBlob","videoWidth","videoHeight","createVideoFromURL","snapshot","connectToMediaStream","stream","startMediaStream","captureAudio","removeVideoElement","setAttribute","getUserMediaTimeout","getUserMediaSuccess","getUserMediaError","mozSrcObject","createObjectURL","onloadeddata","checkStream","checkVideoProgress","change","playbackRate","setPause","setResume","playHandler","getTracks","track","playing","ended","changeSource","grab","hasChildNodes","firstChild","removeAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/build/phaser.min.js b/build/phaser.min.js index 4fe312e64..002fe8df7 100644 --- a/build/phaser.min.js +++ b/build/phaser.min.js @@ -1,27 +1,27 @@ -/* Phaser v2.4.6 - http://phaser.io - @photonstorm - (c) 2015 Photon Storm Ltd. */ +/* Phaser v2.4.7 - http://phaser.io - @photonstorm - (c) 2016 Photon Storm Ltd. */ !function(a){if("object"==typeof exports)module.exports=a();else if("function"==typeof define,1){var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.p2=a()}else define(a)}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&1>=i&&j>=0&&1>=j}},{"./Scalar":4}],2:[function(a,b,c){function d(){}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){return d.area(a,b,c)>0},d.leftOn=function(a,b,c){return d.area(a,b,c)>=0},d.right=function(a,b,c){return d.area(a,b,c)<0},d.rightOn=function(a,b,c){return d.area(a,b,c)<=0};var e=[],f=[];d.collinear=function(a,b,c,g){if(g){var h=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];var j=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));return g>m}return 0==d.area(a,b,c)},d.sqdist=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d}},{}],3:[function(a,b,c){function d(){this.vertices=[]}function e(a,b,c,d,e){e=e||0;var f=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;return h.eq(m,0,e)?[0,0]:[(k*i-g*l)/m,(f*l-j*i)/m]}var f=a("./Line"),g=a("./Point"),h=a("./Scalar");b.exports=d,d.prototype.at=function(a){var b=this.vertices,c=b.length;return b[0>a?a%c+c:a%c]},d.prototype.first=function(){return this.vertices[0]},d.prototype.last=function(){return this.vertices[this.vertices.length-1]},d.prototype.clear=function(){this.vertices.length=0},d.prototype.append=function(a,b,c){if("undefined"==typeof b)throw new Error("From is not given!");if("undefined"==typeof c)throw new Error("To is not given!");if(b>c-1)throw new Error("lol1");if(c>a.vertices.length)throw new Error("lol2");if(0>b)throw new Error("lol3");for(var d=b;c>d;d++)this.vertices.push(a.vertices[d])},d.prototype.makeCCW=function(){for(var a=0,b=this.vertices,c=1;cb[a][0])&&(a=c);g.left(this.at(a-1),this.at(a),this.at(a+1))||this.reverse()},d.prototype.reverse=function(){for(var a=[],b=0,c=this.vertices.length;b!==c;b++)a.push(this.vertices.pop());this.vertices=a},d.prototype.isReflex=function(a){return g.right(this.at(a-1),this.at(a),this.at(a+1))};var i=[],j=[];d.prototype.canSee=function(a,b){var c,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(var k=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)a)for(var f=a;b>=f;f++)e.vertices.push(this.vertices[f]);else{for(var f=0;b>=f;f++)e.vertices.push(this.vertices[f]);for(var f=a;f0?this.slice(a):[this]},d.prototype.slice=function(a){if(0==a.length)return[this];if(a instanceof Array&&a.length&&a[0]instanceof Array&&2==a[0].length&&a[0][0]instanceof Array){for(var b=[this],c=0;cc;c++)if(f.segmentsIntersect(a[b],a[b+1],a[c],a[c+1]))return!1;for(var b=1;bh)return console.warn("quickDecomp: max level ("+h+") reached."),a;for(var x=0;xo&&(n=o,k=l,r=y))),g.left(v.at(x+1),v.at(x),v.at(y+1))&&g.rightOn(v.at(x+1),v.at(x),v.at(y))&&(l=e(v.at(x+1),v.at(x),v.at(y),v.at(y+1)),g.left(v.at(x-1),v.at(x),l)&&(o=g.sqdist(v.vertices[x],l),m>o&&(m=o,j=l,q=y)));if(r==(q+1)%this.vertices.length)l[0]=(k[0]+j[0])/2,l[1]=(k[1]+j[1])/2,c.push(l),q>x?(t.append(v,x,q+1),t.vertices.push(l),u.vertices.push(l),0!=r&&u.append(v,r,v.vertices.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,v.vertices.length),t.append(v,0,q+1),t.vertices.push(l),u.vertices.push(l),u.append(v,r,x+1));else{if(r>q&&(q+=this.vertices.length),p=Number.MAX_VALUE,r>q)return a;for(var y=r;q>=y;++y)g.leftOn(v.at(x-1),v.at(x),v.at(y))&&g.rightOn(v.at(x+1),v.at(x),v.at(y))&&(o=g.sqdist(v.at(x),v.at(y)),p>o&&(p=o,s=y%this.vertices.length));s>x?(t.append(v,x,s+1),0!=s&&u.append(v,s,w.length),u.append(v,0,x+1)):(0!=x&&t.append(v,x,w.length),t.append(v,0,s+1),u.append(v,s,x+1))}return t.vertices.length3&&c>=0;--c)g.collinear(this.at(c-1),this.at(c),this.at(c+1),a)&&(this.vertices.splice(c%this.vertices.length,1),c--,b++);return b}},{"./Line":1,"./Point":2,"./Scalar":4}],4:[function(a,b,c){function d(){}b.exports=d,d.eq=function(a,b,c){return c=c||0,Math.abs(a-b) (http://steffe.se)",keywords:["p2.js","p2","physics","engine","2d"],main:"./src/p2.js",engines:{node:"*"},repository:{type:"git",url:"https://github.com/schteppe/p2.js.git"},bugs:{url:"https://github.com/schteppe/p2.js/issues"},licenses:[{type:"MIT"}],devDependencies:{grunt:"^0.4.5","grunt-contrib-jshint":"^0.11.2","grunt-contrib-nodeunit":"^0.4.1","grunt-contrib-uglify":"~0.4.0","grunt-contrib-watch":"~0.5.0","grunt-browserify":"~2.0.1","grunt-contrib-concat":"^0.4.0"},dependencies:{"poly-decomp":"0.1.0"}}},{}],7:[function(a,b,c){function d(a){this.lowerBound=e.create(),a&&a.lowerBound&&e.copy(this.lowerBound,a.lowerBound),this.upperBound=e.create(),a&&a.upperBound&&e.copy(this.upperBound,a.upperBound)}var e=a("../math/vec2");a("../utils/Utils");b.exports=d;var f=e.create();d.prototype.setFromPoints=function(a,b,c,d){var g=this.lowerBound,h=this.upperBound;"number"!=typeof c&&(c=0),0!==c?e.rotate(g,a[0],c):e.copy(g,a[0]),e.copy(h,g);for(var i=Math.cos(c),j=Math.sin(c),k=1;ko;o++)l[o]>h[o]&&(h[o]=l[o]),l[o]c&&(this.lowerBound[b]=c);var d=a.upperBound[b];this.upperBound[b]i?-1:h>i?-1:h}},{"../math/vec2":30,"../utils/Utils":57}],8:[function(a,b,c){function d(a){this.type=a,this.result=[],this.world=null,this.boundingVolumeType=d.AABB}var e=a("../math/vec2"),f=a("../objects/Body");b.exports=d,d.AABB=1,d.BOUNDING_CIRCLE=2,d.prototype.setWorld=function(a){this.world=a},d.prototype.getCollisionPairs=function(a){};var g=e.create();d.boundingRadiusCheck=function(a,b){e.sub(g,a.position,b.position);var c=e.squaredLength(g),d=a.boundingRadius+b.boundingRadius;return d*d>=c},d.aabbCheck=function(a,b){return a.getAABB().overlaps(b.getAABB())},d.prototype.boundingVolumeCheck=function(a,b){var c;switch(this.boundingVolumeType){case d.BOUNDING_CIRCLE:c=d.boundingRadiusCheck(a,b);break;case d.AABB:c=d.aabbCheck(a,b);break;default:throw new Error("Bounding volume type not recognized: "+this.boundingVolumeType)}return c},d.canCollide=function(a,b){var c=f.KINEMATIC,d=f.STATIC;return a.type===d&&b.type===d?!1:a.type===c&&b.type===d||a.type===d&&b.type===c?!1:a.type===c&&b.type===c?!1:a.sleepState===f.SLEEPING&&b.sleepState===f.SLEEPING?!1:a.sleepState===f.SLEEPING&&b.type===d||b.sleepState===f.SLEEPING&&a.type===d?!1:!0},d.NAIVE=1,d.SAP=2},{"../math/vec2":30,"../objects/Body":31}],9:[function(a,b,c){function d(){e.call(this,e.NAIVE)}var e=(a("../shapes/Circle"),a("../shapes/Plane"),a("../shapes/Shape"),a("../shapes/Particle"),a("../collision/Broadphase"));a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.getCollisionPairs=function(a){var b=a.bodies,c=this.result;c.length=0;for(var d=0,f=b.length;d!==f;d++)for(var g=b[d],h=0;d>h;h++){var i=b[h];e.canCollide(g,i)&&this.boundingVolumeCheck(g,i)&&c.push(g,i)}return c},d.prototype.aabbQuery=function(a,b,c){c=c||[];for(var d=a.bodies,e=0;e=r*n)return!1;n=r}return!0}var g=a("../math/vec2"),h=g.sub,i=g.add,j=g.dot,k=(a("../utils/Utils"),a("../utils/ContactEquationPool")),l=a("../utils/FrictionEquationPool"),m=a("../utils/TupleDictionary"),n=a("../equations/Equation"),o=(a("../equations/ContactEquation"),a("../equations/FrictionEquation"),a("../shapes/Circle")),p=a("../shapes/Convex"),q=a("../shapes/Shape"),r=(a("../objects/Body"),a("../shapes/Box"));b.exports=d;var s=g.fromValues(0,1),t=g.fromValues(0,0),u=g.fromValues(0,0),v=g.fromValues(0,0),w=g.fromValues(0,0),x=g.fromValues(0,0),y=g.fromValues(0,0),z=g.fromValues(0,0),A=g.fromValues(0,0),B=g.fromValues(0,0),C=g.fromValues(0,0),D=g.fromValues(0,0),E=g.fromValues(0,0),F=g.fromValues(0,0),G=g.fromValues(0,0),H=g.fromValues(0,0),I=g.fromValues(0,0),J=g.fromValues(0,0),K=g.fromValues(0,0),L=[],M=g.create(),N=g.create();d.prototype.bodiesOverlap=function(a,b){for(var c=M,d=N,e=0,f=a.shapes.length;e!==f;e++){var g=a.shapes[e];a.toWorldFrame(c,g.position);for(var h=0,i=b.shapes.length;h!==i;h++){var j=b.shapes[h];if(b.toWorldFrame(d,j.position),this[g.type|j.type](a,g,c,g.angle+a.angle,b,j,d,j.angle+b.angle,!0))return!0}}return!1},d.prototype.collidedLastStep=function(a,b){var c=0|a.id,d=0|b.id;return!!this.collidingBodiesLastStep.get(c,d)},d.prototype.reset=function(){this.collidingBodiesLastStep.reset();for(var a=this.contactEquations,b=a.length;b--;){var c=a[b],d=c.bodyA.id,e=c.bodyB.id;this.collidingBodiesLastStep.set(d,e,!0)}for(var f=this.contactEquations,g=this.frictionEquations,h=0;hp;p++){g.set(m,(0===p?-1:1)*b.length/2,0),g.rotate(m,m,d),g.add(m,m,c);for(var q=0;2>q;q++){g.set(n,(0===q?-1:1)*h.length/2,0),g.rotate(n,n,j),g.add(n,n,i),this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var r=this.circleCircle(a,b,m,d,f,h,n,j,k,b.radius,h.radius);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&r)return!0;o+=r}}this.enableFrictionReduction&&(l=this.enableFriction,this.enableFriction=!1);var s=S;e(s,b);var t=this.convexCapsule(a,s,c,d,f,h,i,j,k);if(this.enableFrictionReduction&&(this.enableFriction=l),k&&t)return!0;if(o+=t,this.enableFrictionReduction){var l=this.enableFriction;this.enableFriction=!1}e(s,h);var u=this.convexCapsule(f,s,i,j,a,b,c,d,k);return this.enableFrictionReduction&&(this.enableFriction=l),k&&u?!0:(o+=u,this.enableFrictionReduction&&o&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(o)),o)},d.prototype[q.LINE|q.LINE]=d.prototype.lineLine=function(a,b,c,d,e,f,g,h,i){return i?!1:0},d.prototype[q.PLANE|q.LINE]=d.prototype.planeLine=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=w,r=x,C=y,D=z,E=A,F=B,G=L,H=0;g.set(n,-f.length/2,0),g.set(o,f.length/2,0),g.rotate(p,n,l),g.rotate(q,o,l),i(p,p,k),i(q,q,k),g.copy(n,p),g.copy(o,q),h(r,o,n),g.normalize(C,r),g.rotate90cw(F,C),g.rotate(E,s,d),G[0]=n,G[1]=o;for(var I=0;IK){if(m)return!0;var M=this.createContactEquation(a,e,b,f);H++,g.copy(M.normalA,E),g.normalize(M.normalA,M.normalA),g.scale(D,E,K),h(M.contactPointA,J,D),h(M.contactPointA,M.contactPointA,a.position),h(M.contactPointB,J,k),i(M.contactPointB,M.contactPointB,k),h(M.contactPointB,M.contactPointB,e.position),this.contactEquations.push(M),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(M))}}return m?!1:(this.enableFrictionReduction||H&&this.enableFriction&&this.frictionEquations.push(this.createFrictionFromAverage(H)),H)},d.prototype[q.PARTICLE|q.CAPSULE]=d.prototype.particleCapsule=function(a,b,c,d,e,f,g,h,i){return this.circleLine(a,b,c,d,e,f,g,h,i,f.radius,0)},d.prototype[q.CIRCLE|q.LINE]=d.prototype.circleLine=function(a,b,c,d,e,f,k,l,m,n,o){var n=n||0,o="undefined"!=typeof o?o:b.radius,p=t,q=u,r=v,s=w,H=x,I=y,J=z,K=A,M=B,N=C,O=D,P=E,Q=F,R=G,S=L;g.set(K,-f.length/2,0),g.set(M,f.length/2,0),g.rotate(N,K,l),g.rotate(O,M,l),i(N,N,k),i(O,O,k),g.copy(K,N),g.copy(M,O),h(I,M,K),g.normalize(J,I),g.rotate90cw(H,J),h(P,c,K);var T=j(P,H);h(s,K,k),h(Q,c,k);var U=o+n;if(Math.abs(T)W&&X>V){if(m)return!0;var Y=this.createContactEquation(a,e,b,f);return g.scale(Y.normalA,p,-1),g.normalize(Y.normalA,Y.normalA),g.scale(Y.contactPointA,Y.normalA,o),i(Y.contactPointA,Y.contactPointA,c),h(Y.contactPointA,Y.contactPointA,a.position),h(Y.contactPointB,r,k),i(Y.contactPointB,Y.contactPointB,k),h(Y.contactPointB,Y.contactPointB,e.position),this.contactEquations.push(Y),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(Y)),1}}S[0]=K,S[1]=M;for(var Z=0;ZQ&&(g.copy(J,B),L=Q,g.scale(A,s,Q),g.add(A,A,B),K=!0)}}if(K){if(m)return!0;var R=this.createContactEquation(a,e,b,j);return g.sub(R.normalA,J,c),g.normalize(R.normalA,R.normalA),g.scale(R.contactPointA,R.normalA,n),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,A,k),i(R.contactPointB,R.contactPointB,k),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}if(n>0)for(var N=0;NQ&&(I=Q,g.scale(E,s,Q),g.add(E,E,c),g.copy(H,s),L=!0)}if(L){var R=this.createContactEquation(a,e,b,k);return g.scale(R.normalA,H,-1),g.normalize(R.normalA,R.normalA),g.set(R.contactPointA,0,0),i(R.contactPointA,R.contactPointA,c),h(R.contactPointA,R.contactPointA,a.position),h(R.contactPointB,E,l),i(R.contactPointB,R.contactPointB,l),h(R.contactPointB,R.contactPointB,e.position),this.contactEquations.push(R),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(R)),1}return 0},d.prototype[q.CIRCLE]=d.prototype.circleCircle=function(a,b,c,d,e,f,j,k,l,m,n){var o=t,m=m||b.radius,n=n||f.radius;h(o,c,j);var p=m+n;if(g.squaredLength(o)>Math.pow(p,2))return 0;if(l)return!0;var q=this.createContactEquation(a,e,b,f);return h(q.normalA,j,c),g.normalize(q.normalA,q.normalA),g.scale(q.contactPointA,q.normalA,m),g.scale(q.contactPointB,q.normalA,-n),i(q.contactPointA,q.contactPointA,c),h(q.contactPointA,q.contactPointA,a.position),i(q.contactPointB,q.contactPointB,j),h(q.contactPointB,q.contactPointB,e.position),this.contactEquations.push(q),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(q)),1},d.prototype[q.PLANE|q.CONVEX]=d.prototype[q.PLANE|q.BOX]=d.prototype.planeConvex=function(a,b,c,d,e,f,k,l,m){var n=t,o=u,p=v,q=0;g.rotate(o,s,d);for(var r=0;r!==f.vertices.length;r++){var w=f.vertices[r];if(g.rotate(n,w,l),i(n,n,k),h(p,n,c),j(p,o)<=0){if(m)return!0;q++;var x=this.createContactEquation(a,e,b,f);h(p,n,c),g.copy(x.normalA,o);var y=j(p,x.normalA);g.scale(p,x.normalA,y),h(x.contactPointB,n,e.position),h(x.contactPointA,n,p),h(x.contactPointA,x.contactPointA,a.position),this.contactEquations.push(x),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(x))}}return this.enableFrictionReduction&&this.enableFriction&&q&&this.frictionEquations.push(this.createFrictionFromAverage(q)),q},d.prototype[q.PARTICLE|q.PLANE]=d.prototype.particlePlane=function(a,b,c,d,e,f,i,k,l){var m=t,n=u;k=k||0,h(m,c,i),g.rotate(n,s,k);var o=j(m,n);if(o>0)return 0;if(l)return!0;var p=this.createContactEquation(e,a,f,b);return g.copy(p.normalA,n),g.scale(m,p.normalA,o),h(p.contactPointA,c,m),h(p.contactPointA,p.contactPointA,e.position),h(p.contactPointB,c,a.position),this.contactEquations.push(p),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(p)),1},d.prototype[q.CIRCLE|q.PARTICLE]=d.prototype.circleParticle=function(a,b,c,d,e,f,j,k,l){var m=t;if(h(m,j,c),g.squaredLength(m)>Math.pow(b.radius,2))return 0;if(l)return!0;var n=this.createContactEquation(a,e,b,f);return g.copy(n.normalA,m),g.normalize(n.normalA,n.normalA),g.scale(n.contactPointA,n.normalA,b.radius),i(n.contactPointA,n.contactPointA,c),h(n.contactPointA,n.contactPointA,a.position),h(n.contactPointB,j,e.position),this.contactEquations.push(n),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(n)),1};var X=new o({radius:1}),Y=g.create(),Z=g.create();g.create();d.prototype[q.PLANE|q.CAPSULE]=d.prototype.planeCapsule=function(a,b,c,d,e,f,h,j,k){var l=Y,m=Z,n=X;g.set(l,-f.length/2,0),g.rotate(l,l,j),i(l,l,h),g.set(m,f.length/2,0),g.rotate(m,m,j),i(m,m,h),n.radius=f.radius;var o;this.enableFrictionReduction&&(o=this.enableFriction,this.enableFriction=!1);var p=this.circlePlane(e,n,l,0,a,b,c,d,k),q=this.circlePlane(e,n,m,0,a,b,c,d,k);if(this.enableFrictionReduction&&(this.enableFriction=o),k)return p||q;var r=p+q;return this.enableFrictionReduction&&r&&this.frictionEquations.push(this.createFrictionFromAverage(r)),r},d.prototype[q.CIRCLE|q.PLANE]=d.prototype.circlePlane=function(a,b,c,d,e,f,k,l,m){var n=a,o=b,p=c,q=e,r=k,w=l;w=w||0;var x=t,y=u,z=v;h(x,p,r),g.rotate(y,s,w);var A=j(y,x);if(A>o.radius)return 0;if(m)return!0;var B=this.createContactEquation(q,n,f,b);return g.copy(B.normalA,y),g.scale(B.contactPointB,B.normalA,-o.radius),i(B.contactPointB,B.contactPointB,p),h(B.contactPointB,B.contactPointB,n.position),g.scale(z,B.normalA,A),h(B.contactPointA,x,z),i(B.contactPointA,B.contactPointA,r),h(B.contactPointA,B.contactPointA,q.position),this.contactEquations.push(B),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(B)),1},d.prototype[q.CONVEX]=d.prototype[q.CONVEX|q.BOX]=d.prototype[q.BOX]=d.prototype.convexConvex=function(a,b,c,e,f,k,l,m,n,o){var p=t,q=u,r=v,s=w,y=x,C=z,D=A,E=B,F=0,o="number"==typeof o?o:0,G=d.findSeparatingAxis(b,c,e,k,l,m,p);if(!G)return 0;h(D,l,c),j(p,D)>0&&g.scale(p,p,-1);var H=d.getClosestEdge(b,e,p,!0),I=d.getClosestEdge(k,m,p);if(-1===H||-1===I)return 0;for(var J=0;2>J;J++){var K=H,L=I,M=b,N=k,O=c,P=l,Q=e,R=m,S=a,T=f;if(0===J){var U;U=K,K=L,L=U,U=M,M=N,N=U,U=O,O=P,P=U,U=Q,Q=R,R=U,U=S,S=T,T=U}for(var V=L;L+2>V;V++){var W=N.vertices[(V+N.vertices.length)%N.vertices.length];g.rotate(q,W,R),i(q,q,P);for(var X=0,Y=K-1;K+2>Y;Y++){var Z=M.vertices[(Y+M.vertices.length)%M.vertices.length],$=M.vertices[(Y+1+M.vertices.length)%M.vertices.length];g.rotate(r,Z,Q),g.rotate(s,$,Q),i(r,r,O),i(s,s,O),h(y,s,r),g.rotate90cw(E,y),g.normalize(E,E),h(D,q,r);var _=j(E,D);(Y===K&&o>=_||Y!==K&&0>=_)&&X++}if(X>=3){if(n)return!0;var aa=this.createContactEquation(S,T,M,N);F++;var Z=M.vertices[K%M.vertices.length],$=M.vertices[(K+1)%M.vertices.length];g.rotate(r,Z,Q),g.rotate(s,$,Q),i(r,r,O),i(s,s,O),h(y,s,r),g.rotate90cw(aa.normalA,y),g.normalize(aa.normalA,aa.normalA),h(D,q,r);var _=j(aa.normalA,D);g.scale(C,aa.normalA,_),h(aa.contactPointA,q,O),h(aa.contactPointA,aa.contactPointA,C),i(aa.contactPointA,aa.contactPointA,O),h(aa.contactPointA,aa.contactPointA,S.position),h(aa.contactPointB,q,P),i(aa.contactPointB,aa.contactPointB,P),h(aa.contactPointB,aa.contactPointB,T.position),this.contactEquations.push(aa),this.enableFrictionReduction||this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(aa))}}}return this.enableFrictionReduction&&this.enableFriction&&F&&this.frictionEquations.push(this.createFrictionFromAverage(F)),F};var $=g.fromValues(0,0);d.projectConvexOntoAxis=function(a,b,c,d,e){var f,h,i=null,k=null,l=$;g.rotate(l,d,-c);for(var m=0;mi)&&(i=h),(null===k||k>h)&&(k=h);if(k>i){var n=k;k=i,i=n}var o=j(b,d);g.set(e,k+o,i+o)};var _=g.fromValues(0,0),aa=g.fromValues(0,0),ba=g.fromValues(0,0),ca=g.fromValues(0,0),da=g.fromValues(0,0),ea=g.fromValues(0,0);d.findSeparatingAxis=function(a,b,c,e,f,i,j){var k=null,l=!1,m=!1,n=_,o=aa,p=ba,q=ca,s=da,t=ea;if(a instanceof r&&e instanceof r)for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;2!==x;x++){0===x?g.set(q,0,1):1===x&&g.set(q,1,0),0!==w&&g.rotate(q,q,w),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(g.copy(j,q),k=B,m=l)}}else for(var u=0;2!==u;u++){var v=a,w=c;1===u&&(v=e,w=i);for(var x=0;x!==v.vertices.length;x++){g.rotate(o,v.vertices[x],w),g.rotate(p,v.vertices[(x+1)%v.vertices.length],w),h(n,p,o),g.rotate90cw(q,n),g.normalize(q,q),d.projectConvexOntoAxis(a,b,c,q,s),d.projectConvexOntoAxis(e,f,i,q,t);var y=s,z=t,A=!1;s[0]>t[0]&&(z=s,y=t,A=!0);var B=z[0]-y[1];l=0>=B,(null===k||B>k)&&(g.copy(j,q),k=B,m=l)}}return m};var fa=g.fromValues(0,0),ga=g.fromValues(0,0),ha=g.fromValues(0,0);d.getClosestEdge=function(a,b,c,d){var e=fa,f=ga,i=ha;g.rotate(e,c,-b),d&&g.scale(e,e,-1);for(var k=-1,l=a.vertices.length,m=-1,n=0;n!==l;n++){h(f,a.vertices[(n+1)%l],a.vertices[n%l]),g.rotate90cw(i,f),g.normalize(i,i);var o=j(i,e);(-1===k||o>m)&&(k=n%l,m=o)}return k};var ia=g.create(),ja=g.create(),ka=g.create(),la=g.create(),ma=g.create(),na=g.create(),oa=g.create();d.prototype[q.CIRCLE|q.HEIGHTFIELD]=d.prototype.circleHeightfield=function(a,b,c,d,e,f,j,k,l,m){var n=f.heights,m=m||b.radius,o=f.elementWidth,p=ja,q=ia,r=ma,s=oa,t=na,u=ka,v=la,w=Math.floor((c[0]-m-j[0])/o),x=Math.ceil((c[0]+m-j[0])/o);0>w&&(w=0),x>=n.length&&(x=n.length-1);for(var y=n[w],z=n[x],A=w;x>A;A++)n[A]y&&(y=n[A]);if(c[1]-m>y)return l?!1:0;for(var B=!1,A=w;x>A;A++){g.set(u,A*o,n[A]),g.set(v,(A+1)*o,n[A+1]),g.add(u,u,j),g.add(v,v,j),g.sub(t,v,u),g.rotate(t,t,Math.PI/2),g.normalize(t,t),g.scale(q,t,-m),g.add(q,q,c),g.sub(p,q,u);var C=g.dot(p,t);if(q[0]>=u[0]&&q[0]=C){if(l)return!0;B=!0,g.scale(p,t,-C),g.add(r,q,p),g.copy(s,t);var D=this.createContactEquation(e,a,f,b);g.copy(D.normalA,s),g.scale(D.contactPointB,D.normalA,-m),i(D.contactPointB,D.contactPointB,c),h(D.contactPointB,D.contactPointB,a.position),g.copy(D.contactPointA,r),g.sub(D.contactPointA,D.contactPointA,e.position),this.contactEquations.push(D),this.enableFriction&&this.frictionEquations.push(this.createFrictionFromContact(D))}}if(B=!1,m>0)for(var A=w;x>=A;A++)if(g.set(u,A*o,n[A]),g.add(u,u,j),g.sub(p,c,u),g.squaredLength(p)q&&(q=0),r>=k.length&&(r=k.length-1);for(var s=k[q],t=k[r],u=q;r>u;u++)k[u]s&&(s=k[u]);if(a.aabb.lowerBound[1]>s)return j?!1:0;for(var v=0,u=q;r>u;u++){g.set(m,u*l,k[u]),g.set(n,(u+1)*l,k[u+1]),g.add(m,m,h),g.add(n,n,h);var w=100;g.set(o,.5*(n[0]+m[0]),.5*(n[1]+m[1]-w)),g.sub(p.vertices[0],n,o),g.sub(p.vertices[1],m,o),g.copy(p.vertices[2],p.vertices[1]),g.copy(p.vertices[3],p.vertices[0]),p.vertices[2][1]-=w,p.vertices[3][1]-=w,v+=this.convexConvex(a,b,c,d,e,p,o,0,j)}return v}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/FrictionEquation":23,"../math/vec2":30,"../objects/Body":31,"../shapes/Box":37,"../shapes/Circle":39,"../shapes/Convex":40,"../shapes/Shape":45,"../utils/ContactEquationPool":48,"../utils/FrictionEquationPool":49,"../utils/TupleDictionary":56,"../utils/Utils":57}],11:[function(a,b,c){function d(a){a=a||{},this.from=a.from?f.fromValues(a.from[0],a.from[1]):f.create(),this.to=a.to?f.fromValues(a.to[0],a.to[1]):f.create(),this.checkCollisionResponse=void 0!==a.checkCollisionResponse?a.checkCollisionResponse:!0,this.skipBackfaces=!!a.skipBackfaces,this.collisionMask=void 0!==a.collisionMask?a.collisionMask:-1,this.collisionGroup=void 0!==a.collisionGroup?a.collisionGroup:-1,this.mode=void 0!==a.mode?a.mode:d.ANY,this.callback=a.callback||function(a){},this.direction=f.create(),this.length=1,this.update()}function e(a,b,c){f.sub(h,c,a);var d=f.dot(h,b);return f.scale(i,b,d),f.add(i,i,a),f.squaredDistance(c,i)}b.exports=d;var f=a("../math/vec2");a("../collision/RaycastResult"),a("../shapes/Shape"),a("../collision/AABB");d.prototype.constructor=d,d.CLOSEST=1,d.ANY=2,d.ALL=4,d.prototype.update=function(){var a=this.direction;f.sub(a,this.to,this.from),this.length=f.length(a),f.normalize(a,a)},d.prototype.intersectBodies=function(a,b){for(var c=0,d=b.length;!a.shouldStop(this)&&d>c;c++){var e=b[c],f=e.getAABB();(f.overlapsRay(this)>=0||f.containsPoint(this.from))&&this.intersectBody(a,e)}};var g=f.create();d.prototype.intersectBody=function(a,b){var c=this.checkCollisionResponse;if(!c||b.collisionResponse)for(var d=g,e=0,h=b.shapes.length;h>e;e++){var i=b.shapes[e];if((!c||i.collisionResponse)&&0!==(this.collisionGroup&i.collisionMask)&&0!==(i.collisionGroup&this.collisionMask)){f.rotate(d,i.position,b.angle),f.add(d,d,b.position);var j=i.angle+b.angle;if(this.intersectShape(a,i,j,d,b),a.shouldStop(this))break}}},d.prototype.intersectShape=function(a,b,c,d,f){var g=this.from,h=e(g,this.direction,d);h>b.boundingRadius*b.boundingRadius||(this._currentBody=f,this._currentShape=b,b.raycast(a,this,d,c),this._currentBody=this._currentShape=null)},d.prototype.getAABB=function(a){var b=this.to,c=this.from;f.set(a.lowerBound,Math.min(b[0],c[0]),Math.min(b[1],c[1])),f.set(a.upperBound,Math.max(b[0],c[0]),Math.max(b[1],c[1]))};f.create();d.prototype.reportIntersection=function(a,b,c,e){var g=(this.from,this.to,this._currentShape),h=this._currentBody;if(!(this.skipBackfaces&&f.dot(c,this.direction)>0))switch(this.mode){case d.ALL:a.set(c,g,h,b,e),this.callback(a);break;case d.CLOSEST:(bc;c++){for(var e=a[c],f=c-1;f>=0&&!(a[f].aabb.lowerBound[b]<=e.aabb.lowerBound[b]);f--)a[f+1]=a[f];a[f+1]=e}return a},d.prototype.sortList=function(){var a=this.axisList,b=this.axisIndex;d.sortAxisList(a,b)},d.prototype.getCollisionPairs=function(a){var b=this.axisList,c=this.result,d=this.axisIndex;c.length=0;for(var e=b.length;e--;){var g=b[e];g.aabbNeedsUpdate&&g.updateAABB()}this.sortList();for(var h=0,i=0|b.length;h!==i;h++)for(var j=b[h],k=h+1;i>k;k++){var l=b[k],m=l.aabb.lowerBound[d]<=j.aabb.upperBound[d];if(!m)break;f.canCollide(j,l)&&this.boundingVolumeCheck(j,l)&&c.push(j,l)}return c},d.prototype.aabbQuery=function(a,b,c){c=c||[],this.sortList();var d=this.axisIndex,e="x";1===d&&(e="y"),2===d&&(e="z");for(var f=this.axisList,g=(b.lowerBound[e],b.upperBound[e],0);gthis.upperLimit&&(f.maxForce=0,f.minForce=-this.maxForce,this.distance=this.upperLimit,l=!0),this.lowerLimitEnabled&&this.positionc)h.scale(e.normalA,j,-1),h.sub(e.contactPointA,k,g.position),h.sub(e.contactPointB,l,i.position),h.scale(o,j,c),h.add(e.contactPointA,e.contactPointA,o),-1===a.indexOf(e)&&a.push(e);else{var u=a.indexOf(e);-1!==u&&a.splice(u,1)}if(this.lowerLimitEnabled&&d>s)h.scale(f.normalA,j,1),h.sub(f.contactPointA,k,g.position),h.sub(f.contactPointB,l,i.position),h.scale(o,j,d),h.sub(f.contactPointB,f.contactPointB,o),-1===a.indexOf(f)&&a.push(f);else{var u=a.indexOf(f);-1!==u&&a.splice(u,1)}},d.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},d.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},d.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)}},{"../equations/ContactEquation":21,"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../math/vec2":30,"./Constraint":14}],19:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,e.REVOLUTE,c);var d=this.maxForce="undefined"!=typeof c.maxForce?c.maxForce:Number.MAX_VALUE;this.pivotA=i.create(),this.pivotB=i.create(),c.worldPivot?(i.sub(this.pivotA,c.worldPivot,a.position),i.sub(this.pivotB,c.worldPivot,b.position),i.rotate(this.pivotA,this.pivotA,-a.angle),i.rotate(this.pivotB,this.pivotB,-b.angle)):(i.copy(this.pivotA,c.localPivotA),i.copy(this.pivotB,c.localPivotB));var o=this.equations=[new f(a,b,-d,d),new f(a,b,-d,d)],p=o[0],q=o[1],r=this;p.computeGq=function(){return i.rotate(j,r.pivotA,a.angle),i.rotate(k,r.pivotB,b.angle),i.add(n,b.position,k),i.sub(n,n,a.position),i.sub(n,n,j),i.dot(n,l)},q.computeGq=function(){return i.rotate(j,r.pivotA,a.angle),i.rotate(k,r.pivotB,b.angle),i.add(n,b.position,k),i.sub(n,n,a.position),i.sub(n,n,j),i.dot(n,m)},q.minForce=p.minForce=-d,q.maxForce=p.maxForce=d,this.motorEquation=new g(a,b),this.motorEnabled=!1,this.angle=0,this.lowerLimitEnabled=!1,this.upperLimitEnabled=!1,this.lowerLimit=0,this.upperLimit=0,this.upperLimitEquation=new h(a,b),this.lowerLimitEquation=new h(a,b),this.upperLimitEquation.minForce=0,this.lowerLimitEquation.maxForce=0}var e=a("./Constraint"),f=a("../equations/Equation"),g=a("../equations/RotationalVelocityEquation"),h=a("../equations/RotationalLockEquation"),i=a("../math/vec2");b.exports=d;var j=i.create(),k=i.create(),l=i.fromValues(1,0),m=i.fromValues(0,1),n=i.create();d.prototype=new e,d.prototype.constructor=d,d.prototype.setLimits=function(a,b){"number"==typeof a?(this.lowerLimit=a,this.lowerLimitEnabled=!0):(this.lowerLimit=a,this.lowerLimitEnabled=!1),"number"==typeof b?(this.upperLimit=b,this.upperLimitEnabled=!0):(this.upperLimit=b,this.upperLimitEnabled=!1)},d.prototype.update=function(){var a=this.bodyA,b=this.bodyB,c=this.pivotA,d=this.pivotB,e=this.equations,f=(e[0],e[1],e[0]),g=e[1],h=this.upperLimit,n=this.lowerLimit,o=this.upperLimitEquation,p=this.lowerLimitEquation,q=this.angle=b.angle-a.angle;if(this.upperLimitEnabled&&q>h)o.angle=h,-1===e.indexOf(o)&&e.push(o);else{var r=e.indexOf(o);-1!==r&&e.splice(r,1)}if(this.lowerLimitEnabled&&n>q)p.angle=n,-1===e.indexOf(p)&&e.push(p);else{var r=e.indexOf(p);-1!==r&&e.splice(r,1)}i.rotate(j,c,a.angle),i.rotate(k,d,b.angle),f.G[0]=-1,f.G[1]=0,f.G[2]=-i.crossLength(j,l),f.G[3]=1,f.G[4]=0,f.G[5]=i.crossLength(k,l),g.G[0]=0,g.G[1]=-1,g.G[2]=-i.crossLength(j,m),g.G[3]=0,g.G[4]=1,g.G[5]=i.crossLength(k,m)},d.prototype.enableMotor=function(){this.motorEnabled||(this.equations.push(this.motorEquation),this.motorEnabled=!0)},d.prototype.disableMotor=function(){if(this.motorEnabled){var a=this.equations.indexOf(this.motorEquation);this.equations.splice(a,1),this.motorEnabled=!1}},d.prototype.motorIsEnabled=function(){return!!this.motorEnabled},d.prototype.setMotorSpeed=function(a){if(this.motorEnabled){var b=this.equations.indexOf(this.motorEquation);this.equations[b].relativeVelocity=a}},d.prototype.getMotorSpeed=function(){return this.motorEnabled?this.motorEquation.relativeVelocity:!1}},{"../equations/Equation":22,"../equations/RotationalLockEquation":24,"../equations/RotationalVelocityEquation":25,"../math/vec2":30,"./Constraint":14}],20:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0,this.ratio="number"==typeof c.ratio?c.ratio:1,this.setRatio(this.ratio)}var e=a("./Equation");a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeGq=function(){return this.ratio*this.bodyA.angle-this.bodyB.angle+this.angle},d.prototype.setRatio=function(a){var b=this.G;b[2]=a,b[5]=-1,this.ratio=a},d.prototype.setMaxTorque=function(a){this.maxForce=a,this.minForce=-a}},{"../math/vec2":30,"./Equation":22}],21:[function(a,b,c){function d(a,b){e.call(this,a,b,0,Number.MAX_VALUE),this.contactPointA=f.create(),this.penetrationVec=f.create(),this.contactPointB=f.create(),this.normalA=f.create(),this.restitution=0,this.firstImpact=!1,this.shapeA=null,this.shapeB=null}var e=a("./Equation"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeB=function(a,b,c){var d=this.bodyA,e=this.bodyB,g=this.contactPointA,h=this.contactPointB,i=d.position,j=e.position,k=this.penetrationVec,l=this.normalA,m=this.G,n=f.crossLength(g,l),o=f.crossLength(h,l);m[0]=-l[0],m[1]=-l[1],m[2]=-n,m[3]=l[0],m[4]=l[1],m[5]=o,f.add(k,j,h),f.sub(k,k,i),f.sub(k,k,g);var p,q;this.firstImpact&&0!==this.restitution?(q=0,p=1/b*(1+this.restitution)*this.computeGW()):(q=f.dot(l,k)+this.offset,p=this.computeGW());var r=this.computeGiMf(),s=-q*a-p*b-c*r;return s}},{"../math/vec2":30,"./Equation":22}],22:[function(a,b,c){function d(a,b,c,e){this.minForce="undefined"==typeof c?-Number.MAX_VALUE:c,this.maxForce="undefined"==typeof e?Number.MAX_VALUE:e,this.bodyA=a,this.bodyB=b,this.stiffness=d.DEFAULT_STIFFNESS,this.relaxation=d.DEFAULT_RELAXATION,this.G=new f.ARRAY_TYPE(6);for(var g=0;6>g;g++)this.G[g]=0;this.offset=0,this.a=0,this.b=0,this.epsilon=0,this.timeStep=1/60,this.needsUpdate=!0,this.multiplier=0,this.relativeVelocity=0,this.enabled=!0}b.exports=d;var e=a("../math/vec2"),f=a("../utils/Utils");a("../objects/Body");d.prototype.constructor=d,d.DEFAULT_STIFFNESS=1e6,d.DEFAULT_RELAXATION=4,d.prototype.update=function(){var a=this.stiffness,b=this.relaxation,c=this.timeStep;this.a=4/(c*(1+4*b)),this.b=4*b/(1+4*b),this.epsilon=4/(c*c*a*(1+4*b)),this.needsUpdate=!1},d.prototype.gmult=function(a,b,c,d,e){return a[0]*b[0]+a[1]*b[1]+a[2]*c+a[3]*d[0]+a[4]*d[1]+a[5]*e},d.prototype.computeB=function(a,b,c){var d=this.computeGW(),e=this.computeGq(),f=this.computeGiMf();return-e*a-d*b-f*c};var g=e.create(),h=e.create();d.prototype.computeGq=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=(b.position,c.position,b.angle),e=c.angle;return this.gmult(a,g,d,h,e)+this.offset},d.prototype.computeGW=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.velocity,e=c.velocity,f=b.angularVelocity,g=c.angularVelocity;return this.gmult(a,d,f,e,g)+this.relativeVelocity},d.prototype.computeGWlambda=function(){var a=this.G,b=this.bodyA,c=this.bodyB,d=b.vlambda,e=c.vlambda,f=b.wlambda,g=c.wlambda;return this.gmult(a,d,f,e,g)};var i=e.create(),j=e.create();d.prototype.computeGiMf=function(){var a=this.bodyA,b=this.bodyB,c=a.force,d=a.angularForce,f=b.force,g=b.angularForce,h=a.invMassSolve,k=b.invMassSolve,l=a.invInertiaSolve,m=b.invInertiaSolve,n=this.G;return e.scale(i,c,h),e.multiply(i,a.massMultiplier,i),e.scale(j,f,k),e.multiply(j,b.massMultiplier,j),this.gmult(n,i,d*l,j,g*m)},d.prototype.computeGiMGt=function(){var a=this.bodyA,b=this.bodyB,c=a.invMassSolve,d=b.invMassSolve,e=a.invInertiaSolve,f=b.invInertiaSolve,g=this.G;return g[0]*g[0]*c*a.massMultiplier[0]+g[1]*g[1]*c*a.massMultiplier[1]+g[2]*g[2]*e+g[3]*g[3]*d*b.massMultiplier[0]+g[4]*g[4]*d*b.massMultiplier[1]+g[5]*g[5]*f};var k=e.create(),l=e.create(),m=e.create();e.create(),e.create(),e.create();d.prototype.addToWlambda=function(a){var b=this.bodyA,c=this.bodyB,d=k,f=l,g=m,h=b.invMassSolve,i=c.invMassSolve,j=b.invInertiaSolve,n=c.invInertiaSolve,o=this.G;f[0]=o[0],f[1]=o[1],g[0]=o[3],g[1]=o[4],e.scale(d,f,h*a),e.multiply(d,d,b.massMultiplier),e.add(b.vlambda,b.vlambda,d),b.wlambda+=j*o[2]*a,e.scale(d,g,i*a),e.multiply(d,d,c.massMultiplier),e.add(c.vlambda,c.vlambda,d),c.wlambda+=n*o[5]*a},d.prototype.computeInvC=function(a){return 1/(this.computeGiMGt()+a)}},{"../math/vec2":30,"../objects/Body":31,"../utils/Utils":57}],23:[function(a,b,c){function d(a,b,c){f.call(this,a,b,-c,c),this.contactPointA=e.create(),this.contactPointB=e.create(),this.t=e.create(),this.contactEquations=[],this.shapeA=null,this.shapeB=null,this.frictionCoefficient=.3}var e=a("../math/vec2"),f=a("./Equation");a("../utils/Utils");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.setSlipForce=function(a){this.maxForce=a,this.minForce=-a},d.prototype.getSlipForce=function(){return this.maxForce},d.prototype.computeB=function(a,b,c){var d=(this.bodyA,this.bodyB,this.contactPointA),f=this.contactPointB,g=this.t,h=this.G;h[0]=-g[0],h[1]=-g[1],h[2]=-e.crossLength(d,g),h[3]=g[0],h[4]=g[1],h[5]=e.crossLength(f,g);var i=this.computeGW(),j=this.computeGiMf(),k=-i*b-c*j;return k}},{"../math/vec2":30,"../utils/Utils":57,"./Equation":22}],24:[function(a,b,c){function d(a,b,c){c=c||{},e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.angle=c.angle||0;var d=this.G;d[2]=1,d[5]=-1}var e=a("./Equation"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d;var g=f.create(),h=f.create(),i=f.fromValues(1,0),j=f.fromValues(0,1);d.prototype.computeGq=function(){return f.rotate(g,i,this.bodyA.angle+this.angle),f.rotate(h,j,this.bodyB.angle),f.dot(g,h)}},{"../math/vec2":30,"./Equation":22}],25:[function(a,b,c){function d(a,b){e.call(this,a,b,-Number.MAX_VALUE,Number.MAX_VALUE),this.relativeVelocity=1,this.ratio=1}var e=a("./Equation");a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeB=function(a,b,c){var d=this.G;d[2]=-1,d[5]=this.ratio;var e=this.computeGiMf(),f=this.computeGW(),g=-f*b-c*e;return g}},{"../math/vec2":30,"./Equation":22}],26:[function(a,b,c){var d=function(){};b.exports=d,d.prototype={constructor:d,on:function(a,b,c){b.context=c||this,void 0===this._listeners&&(this._listeners={});var d=this._listeners;return void 0===d[a]&&(d[a]=[]),-1===d[a].indexOf(b)&&d[a].push(b),this},has:function(a,b){if(void 0===this._listeners)return!1;var c=this._listeners;if(b){if(void 0!==c[a]&&-1!==c[a].indexOf(b))return!0}else if(void 0!==c[a])return!0;return!1},off:function(a,b){if(void 0===this._listeners)return this;var c=this._listeners,d=c[a].indexOf(b);return-1!==d&&c[a].splice(d,1),this},emit:function(a){if(void 0===this._listeners)return this;var b=this._listeners,c=b[a.type];if(void 0!==c){a.target=this;for(var d=0,e=c.length;e>d;d++){var f=c[d];f.call(f.context,a)}}return this}}},{}],27:[function(a,b,c){function d(a,b,c){if(c=c||{},!(a instanceof e&&b instanceof e))throw new Error("First two arguments must be Material instances.");this.id=d.idCounter++,this.materialA=a,this.materialB=b,this.friction="undefined"!=typeof c.friction?Number(c.friction):.3,this.restitution="undefined"!=typeof c.restitution?Number(c.restitution):0,this.stiffness="undefined"!=typeof c.stiffness?Number(c.stiffness):f.DEFAULT_STIFFNESS,this.relaxation="undefined"!=typeof c.relaxation?Number(c.relaxation):f.DEFAULT_RELAXATION,this.frictionStiffness="undefined"!=typeof c.frictionStiffness?Number(c.frictionStiffness):f.DEFAULT_STIFFNESS,this.frictionRelaxation="undefined"!=typeof c.frictionRelaxation?Number(c.frictionRelaxation):f.DEFAULT_RELAXATION,this.surfaceVelocity="undefined"!=typeof c.surfaceVelocity?Number(c.surfaceVelocity):0,this.contactSkinSize=.005}var e=a("./Material"),f=a("../equations/Equation");b.exports=d,d.idCounter=0},{"../equations/Equation":22,"./Material":28}],28:[function(a,b,c){function d(a){this.id=a||d.idCounter++}b.exports=d,d.idCounter=0},{}],29:[function(a,b,c){var d={};d.GetArea=function(a){if(a.length<6)return 0;for(var b=a.length-2,c=0,d=0;b>d;d+=2)c+=(a[d+2]-a[d])*(a[d+1]+a[d+3]);return c+=(a[0]-a[b])*(a[b+1]+a[1]),.5*-c},d.Triangulate=function(a){var b=a.length>>1;if(3>b)return[];for(var c=[],e=[],f=0;b>f;f++)e.push(f);for(var f=0,g=b;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(d._convex(k,l,m,n,o,p)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!=h&&s!=i&&s!=j&&d._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)c.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g)break}return c.push(e[0],e[1],e[2]),c},d._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},d._convex=function(a,b,c,d,e,f){return(b-d)*(e-c)+(c-a)*(f-d)>=0},b.exports=d},{}],30:[function(a,b,c){var d=b.exports={},e=a("../utils/Utils");d.crossLength=function(a,b){return a[0]*b[1]-a[1]*b[0]},d.crossVZ=function(a,b,c){return d.rotate(a,b,-Math.PI/2),d.scale(a,a,c),a},d.crossZV=function(a,b,c){return d.rotate(a,c,Math.PI/2),d.scale(a,a,b),a},d.rotate=function(a,b,c){if(0!==c){var d=Math.cos(c),e=Math.sin(c),f=b[0],g=b[1];a[0]=d*f-e*g,a[1]=e*f+d*g}else a[0]=b[0],a[1]=b[1]},d.rotate90cw=function(a,b){var c=b[0],d=b[1];a[0]=d,a[1]=-c},d.toLocalFrame=function(a,b,c,e){d.copy(a,b),d.sub(a,a,c),d.rotate(a,a,-e)},d.toGlobalFrame=function(a,b,c,e){d.copy(a,b),d.rotate(a,a,e),d.add(a,a,c)},d.vectorToLocalFrame=function(a,b,c){d.rotate(a,b,-c)},d.vectorToGlobalFrame=function(a,b,c){d.rotate(a,b,c)},d.centroid=function(a,b,c,e){return d.add(a,b,c),d.add(a,a,e),d.scale(a,a,1/3),a},d.create=function(){var a=new e.ARRAY_TYPE(2);return a[0]=0,a[1]=0,a},d.clone=function(a){var b=new e.ARRAY_TYPE(2);return b[0]=a[0],b[1]=a[1],b},d.fromValues=function(a,b){var c=new e.ARRAY_TYPE(2);return c[0]=a,c[1]=b,c},d.copy=function(a,b){return a[0]=b[0],a[1]=b[1],a},d.set=function(a,b,c){return a[0]=b,a[1]=c,a},d.add=function(a,b,c){return a[0]=b[0]+c[0],a[1]=b[1]+c[1],a},d.subtract=function(a,b,c){return a[0]=b[0]-c[0],a[1]=b[1]-c[1],a},d.sub=d.subtract,d.multiply=function(a,b,c){return a[0]=b[0]*c[0],a[1]=b[1]*c[1],a},d.mul=d.multiply,d.divide=function(a,b,c){return a[0]=b[0]/c[0],a[1]=b[1]/c[1],a},d.div=d.divide,d.scale=function(a,b,c){return a[0]=b[0]*c,a[1]=b[1]*c,a},d.distance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},d.dist=d.distance,d.squaredDistance=function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return c*c+d*d},d.sqrDist=d.squaredDistance,d.length=function(a){var b=a[0],c=a[1];return Math.sqrt(b*b+c*c)},d.len=d.length,d.squaredLength=function(a){var b=a[0],c=a[1];return b*b+c*c},d.sqrLen=d.squaredLength,d.negate=function(a,b){return a[0]=-b[0],a[1]=-b[1],a},d.normalize=function(a,b){var c=b[0],d=b[1],e=c*c+d*d;return e>0&&(e=1/Math.sqrt(e),a[0]=b[0]*e,a[1]=b[1]*e),a},d.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]},d.str=function(a){return"vec2("+a[0]+", "+a[1]+")"},d.lerp=function(a,b,c,d){var e=b[0],f=b[1];return a[0]=e+d*(c[0]-e),a[1]=f+d*(c[1]-f),a},d.reflect=function(a,b,c){var d=b[0]*c[0]+b[1]*c[1];a[0]=b[0]-2*c[0]*d,a[1]=b[1]-2*c[1]*d},d.getLineSegmentsIntersection=function(a,b,c,e,f){var g=d.getLineSegmentsIntersectionFraction(b,c,e,f);return 0>g?!1:(a[0]=b[0]+g*(c[0]-b[0]),a[1]=b[1]+g*(c[1]-b[1]),!0)},d.getLineSegmentsIntersectionFraction=function(a,b,c,d){var e,f,g=b[0]-a[0],h=b[1]-a[1],i=d[0]-c[0],j=d[1]-c[1];return e=(-h*(a[0]-c[0])+g*(a[1]-c[1]))/(-i*h+g*j),f=(i*(a[1]-c[1])-j*(a[0]-c[0]))/(-i*h+g*j),e>=0&&1>=e&&f>=0&&1>=f?f:-1}},{"../utils/Utils":57}],31:[function(a,b,c){function d(a){a=a||{},k.call(this),this.id=a.id||++d._idCounter,this.world=null,this.shapes=[],this.mass=a.mass||0,this.invMass=0,this.inertia=0,this.invInertia=0,this.invMassSolve=0,this.invInertiaSolve=0,this.fixedRotation=!!a.fixedRotation,this.fixedX=!!a.fixedX,this.fixedY=!!a.fixedY,this.massMultiplier=e.create(),this.position=e.fromValues(0,0),a.position&&e.copy(this.position,a.position),this.interpolatedPosition=e.fromValues(0,0),this.interpolatedAngle=0,this.previousPosition=e.fromValues(0,0),this.previousAngle=0,this.velocity=e.fromValues(0,0),a.velocity&&e.copy(this.velocity,a.velocity),this.vlambda=e.fromValues(0,0),this.wlambda=0,this.angle=a.angle||0,this.angularVelocity=a.angularVelocity||0,this.force=e.create(),a.force&&e.copy(this.force,a.force),this.angularForce=a.angularForce||0,this.damping="number"==typeof a.damping?a.damping:.1,this.angularDamping="number"==typeof a.angularDamping?a.angularDamping:.1,this.type=d.STATIC,"undefined"!=typeof a.type?this.type=a.type:a.mass?this.type=d.DYNAMIC:this.type=d.STATIC,this.boundingRadius=0,this.aabb=new j,this.aabbNeedsUpdate=!0, this.allowSleep=void 0!==a.allowSleep?a.allowSleep:!0,this.wantsToSleep=!1,this.sleepState=d.AWAKE,this.sleepSpeedLimit=void 0!==a.sleepSpeedLimit?a.sleepSpeedLimit:.2,this.sleepTimeLimit=void 0!==a.sleepTimeLimit?a.sleepTimeLimit:1,this.gravityScale=void 0!==a.gravityScale?a.gravityScale:1,this.collisionResponse=void 0!==a.collisionResponse?a.collisionResponse:!0,this.idleTime=0,this.timeLastSleepy=0,this.ccdSpeedThreshold=void 0!==a.ccdSpeedThreshold?a.ccdSpeedThreshold:-1,this.ccdIterations=void 0!==a.ccdIterations?a.ccdIterations:10,this.concavePath=null,this._wakeUpAfterNarrowphase=!1,this.updateMassProperties()}var e=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=new k,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){var b=this.getArea();this.mass=b*a,this.updateMassProperties()},d.prototype.getArea=function(){for(var a=0,b=0;bc&&(c=g+h)}this.boundingRadius=c},d.prototype.addShape=function(a,b,c){if(a.body)throw new Error("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){var b=this.shapes.indexOf(a);return-1!==b?(this.shapes.splice(b,1),this.aabbNeedsUpdate=!0,a.body=null,!0):!1},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{var a=this.shapes,b=a.length,c=this.mass/b,f=0;if(this.fixedRotation)this.inertia=Number.MAX_VALUE,this.invInertia=0;else{for(var g=0;b>g;g++){var h=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){var c=e.crossLength(b,a);this.angularForce+=c}};var n=e.create(),o=e.create(),p=e.create();d.prototype.applyForceLocal=function(a,b){b=b||p;var c=n,d=o;this.vectorToWorldFrame(c,a),this.vectorToWorldFrame(d,b),this.applyForce(c,d)};var q=e.create();d.prototype.applyImpulse=function(a,b){if(this.type===d.DYNAMIC){var c=q;if(e.scale(c,a,this.invMass),e.multiply(c,this.massMultiplier,c),e.add(this.velocity,c,this.velocity),b){var f=e.crossLength(b,a);f*=this.invInertia,this.angularVelocity+=f}}};var r=e.create(),s=e.create(),t=e.create();d.prototype.applyImpulseLocal=function(a,b){b=b||t;var c=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)},d.prototype.fromPolygon=function(a,b){b=b||{};for(var c=this.shapes.length;c>=0;--c)this.removeShape(this.shapes[c]);var d=new f.Polygon;if(d.vertices=a,d.makeCCW(),"number"==typeof b.removeCollinearPoints&&d.removeCollinearPoints(b.removeCollinearPoints),"undefined"==typeof b.skipSimpleCheck&&!d.isSimple())return!1;this.concavePath=d.vertices.slice(0);for(var c=0;c=g?(this.idleTime=0,this.sleepState=d.AWAKE):(this.idleTime+=c,this.sleepState=d.SLEEPY),this.idleTime>this.sleepTimeLimit&&(b?this.wantsToSleep=!0:this.sleep())}},d.prototype.overlaps=function(a){return this.world.overlapKeeper.bodiesAreOverlapping(this,a)};var x=e.create(),y=e.create();d.prototype.integrate=function(a){var b=this.invMass,c=this.force,d=this.position,f=this.velocity;e.copy(this.previousPosition,this.position),this.previousAngle=this.angle,this.fixedRotation||(this.angularVelocity+=this.angularForce*this.invInertia*a),e.scale(x,c,a*b),e.multiply(x,this.massMultiplier,x),e.add(f,x,f),this.integrateToTimeOfImpact(a)||(e.scale(y,f,a),e.add(d,d,y),this.fixedRotation||(this.angle+=this.angularVelocity*a)),this.aabbNeedsUpdate=!0};var z=new h,A=new i({mode:i.ALL}),B=e.create(),C=e.create(),D=e.create(),E=e.create();d.prototype.integrateToTimeOfImpact=function(a){if(this.ccdSpeedThreshold<0||e.squaredLength(this.velocity)=j&&ir;r++){var s=this.radius*(2*r-1);f.set(o,-q,s),f.set(p,q,s),f.toGlobalFrame(o,o,c,d),f.toGlobalFrame(p,p,c,d);var t=f.getLineSegmentsIntersectionFraction(e,g,o,p);if(t>=0&&(f.rotate(n,l,d),f.scale(n,n,2*r-1),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}for(var u=Math.pow(this.radius,2)+Math.pow(q,2),r=0;2>r;r++){f.set(o,q*(2*r-1),0),f.toGlobalFrame(o,o,c,d);var v=Math.pow(g[0]-e[0],2)+Math.pow(g[1]-e[1],2),w=2*((g[0]-e[0])*(e[0]-o[0])+(g[1]-e[1])*(e[1]-o[1])),x=Math.pow(e[0]-o[0],2)+Math.pow(e[1]-o[1],2)-Math.pow(this.radius,2),t=Math.pow(w,2)-4*v*x;if(!(0>t))if(0===t){if(f.lerp(m,e,g,t),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,t,n,-1),a.shouldStop(b)))return}else{var y=Math.sqrt(t),z=1/(2*v),A=(-w-y)*z,B=(-w+y)*z;if(A>=0&&1>=A&&(f.lerp(m,e,g,A),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,A,n,-1),a.shouldStop(b))))return;if(B>=0&&1>=B&&(f.lerp(m,e,g,B),f.squaredDistance(m,c)>u&&(f.sub(n,m,o),f.normalize(n,n),b.reportIntersection(a,B,n,-1),a.shouldStop(b))))return}}}},{"../math/vec2":30,"./Shape":45}],39:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={radius:arguments[0]},console.warn("The Circle constructor signature has changed. Please use the following format: new Circle({ radius: 1 })")),a=a||{},this.radius=a.radius||1,a.type=e.CIRCLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){var b=this.radius;return a*b*b/2},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.radius},d.prototype.updateArea=function(){this.area=Math.PI*this.radius*this.radius},d.prototype.computeAABB=function(a,b,c){var d=this.radius;f.set(a.upperBound,d,d),f.set(a.lowerBound,-d,-d),b&&(f.add(a.lowerBound,a.lowerBound,b),f.add(a.upperBound,a.upperBound,b))};var g=f.create(),h=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,i=b.to,j=this.radius,k=Math.pow(i[0]-e[0],2)+Math.pow(i[1]-e[1],2),l=2*((i[0]-e[0])*(e[0]-c[0])+(i[1]-e[1])*(e[1]-c[1])),m=Math.pow(e[0]-c[0],2)+Math.pow(e[1]-c[1],2)-Math.pow(j,2),n=Math.pow(l,2)-4*k*m,o=g,p=h;if(!(0>n))if(0===n)f.lerp(o,e,i,n),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,n,p,-1);else{var q=Math.sqrt(n),r=1/(2*k),s=(-l-q)*r,t=(-l+q)*r;if(s>=0&&1>=s&&(f.lerp(o,e,i,s),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,s,p,-1),a.shouldStop(b)))return;t>=0&&1>=t&&(f.lerp(o,e,i,t),f.sub(p,o,c),f.normalize(p,p),b.reportIntersection(a,t,p,-1))}}},{"../math/vec2":30,"./Shape":45}],40:[function(a,b,c){function d(a){Array.isArray(arguments[0])&&(a={vertices:arguments[0],axes:arguments[1]},console.warn("The Convex constructor signature has changed. Please use the following format: new Convex({ vertices: [...], ... })")),a=a||{},this.vertices=[];for(var b=void 0!==a.vertices?a.vertices:[],c=0;ce)&&(e=d),(null===g||g>d)&&(g=d);if(g>e){var j=g;g=e,e=j}f.set(b,g,e)},d.prototype.projectOntoWorldAxis=function(a,b,c,d){var e=i;this.projectOntoLocalAxis(a,d),0!==c?f.rotate(e,a,c):e=a;var g=f.dot(b,e);f.set(d,d[0]+g,d[1]+g)},d.prototype.updateTriangles=function(){this.triangles.length=0;for(var a=[],b=0;bg;e=g,g++){var h=this.vertices[e],i=this.vertices[g],j=Math.abs(f.crossLength(h,i)),k=f.dot(i,i)+f.dot(i,h)+f.dot(h,h);b+=j*k,c+=j}return a/6*(b/c)},d.prototype.updateBoundingRadius=function(){for(var a=this.vertices,b=0,c=0;c!==a.length;c++){var d=f.squaredLength(a[c]);d>b&&(b=d)}this.boundingRadius=Math.sqrt(b)},d.triangleArea=function(a,b,c){return.5*((b[0]-a[0])*(c[1]-a[1])-(c[0]-a[0])*(b[1]-a[1]))},d.prototype.updateArea=function(){this.updateTriangles(),this.area=0;for(var a=this.triangles,b=this.vertices,c=0;c!==a.length;c++){var e=a[c],f=b[e[0]],g=b[e[1]],h=b[e[2]],i=d.triangleArea(f,g,h);this.area+=i}},d.prototype.computeAABB=function(a,b,c){a.setFromPoints(this.vertices,b,c,0)};var o=f.create(),p=f.create(),q=f.create();d.prototype.raycast=function(a,b,c,d){var e=o,g=p,h=q,i=this.vertices;f.toLocalFrame(e,b.from,c,d),f.toLocalFrame(g,b.to,c,d);for(var j=i.length,k=0;j>k&&!a.shouldStop(b);k++){var l=i[k],m=i[(k+1)%j],n=f.getLineSegmentsIntersectionFraction(e,g,l,m);n>=0&&(f.sub(h,m,l),f.rotate(h,h,-Math.PI/2+d),f.normalize(h,h),b.reportIntersection(a,n,h,k))}}},{"../math/polyk":29,"../math/vec2":30,"./Shape":45,"poly-decomp":5}],41:[function(a,b,c){function d(a){if(Array.isArray(arguments[0])){if(a={heights:arguments[0]},"object"==typeof arguments[1])for(var b in arguments[1])a[b]=arguments[1][b];console.warn("The Heightfield constructor signature has changed. Please use the following format: new Heightfield({ heights: [...], ... })")}a=a||{},this.heights=a.heights?a.heights.slice(0):[],this.maxValue=a.maxValue||null,this.minValue=a.minValue||null,this.elementWidth=a.elementWidth||.1,(void 0===a.maxValue||void 0===a.minValue)&&this.updateMaxMinValues(),a.type=e.HEIGHTFIELD,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.updateMaxMinValues=function(){for(var a=this.heights,b=a[0],c=a[0],d=0;d!==a.length;d++){var e=a[d];e>b&&(b=e),c>e&&(c=e)}this.maxValue=b,this.minValue=c},d.prototype.computeMomentOfInertia=function(a){return Number.MAX_VALUE},d.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},d.prototype.updateArea=function(){for(var a=this.heights,b=0,c=0;cs){var t=r;r=s,s=t}for(var u=0;u=0&&(f.sub(m,o,n),f.rotate(m,m,d+Math.PI/2),f.normalize(m,m),b.reportIntersection(a,v,m,-1),a.shouldStop(b)))return}}},{"../math/vec2":30,"../utils/Utils":57,"./Shape":45}],42:[function(a,b,c){function d(a){"number"==typeof arguments[0]&&(a={length:arguments[0]},console.warn("The Line constructor signature has changed. Please use the following format: new Line({ length: 1, ... })")),a=a||{},this.length=a.length||1,a.type=e.LINE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return a*Math.pow(this.length,2)/12},d.prototype.updateBoundingRadius=function(){this.boundingRadius=this.length/2};var g=[f.create(),f.create()];d.prototype.computeAABB=function(a,b,c){var d=this.length/2;f.set(g[0],-d,0),f.set(g[1],d,0),a.setFromPoints(g,b,c,0)};var h=(f.create(),f.create()),i=f.create(),j=f.create(),k=f.fromValues(0,1);d.prototype.raycast=function(a,b,c,d){var e=b.from,g=b.to,l=i,m=j,n=this.length/2;f.set(l,-n,0),f.set(m,n,0),f.toGlobalFrame(l,l,c,d),f.toGlobalFrame(m,m,c,d);var o=f.getLineSegmentsIntersectionFraction(l,m,e,g);if(o>=0){var p=h;f.rotate(p,k,d),b.reportIntersection(a,o,p,-1)}}},{"../math/vec2":30,"./Shape":45}],43:[function(a,b,c){function d(a){a=a||{},a.type=e.PARTICLE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=0},d.prototype.computeAABB=function(a,b,c){f.copy(a.lowerBound,b),f.copy(a.upperBound,b)}},{"../math/vec2":30,"./Shape":45}],44:[function(a,b,c){function d(a){a=a||{},a.type=e.PLANE,e.call(this,a)}var e=a("./Shape"),f=a("../math/vec2");a("../utils/Utils");b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.computeMomentOfInertia=function(a){return 0},d.prototype.updateBoundingRadius=function(){this.boundingRadius=Number.MAX_VALUE},d.prototype.computeAABB=function(a,b,c){var d=c%(2*Math.PI),e=f.set,g=Number.MAX_VALUE,h=a.lowerBound,i=a.upperBound;0===d?(e(h,-g,-g),e(i,g,0)):d===Math.PI/2?(e(h,0,-g),e(i,g,g)):d===Math.PI?(e(h,-g,0),e(i,g,g)):d===3*Math.PI/2?(e(h,-g,-g),e(i,0,g)):(e(h,-g,-g),e(i,g,g)),f.add(h,h,b),f.add(i,i,b)},d.prototype.updateArea=function(){this.area=Number.MAX_VALUE};var g=f.create(),h=(f.create(),f.create(),f.create()),i=f.create();d.prototype.raycast=function(a,b,c,d){var e=b.from,j=b.to,k=b.direction,l=g,m=h,n=i;f.set(m,0,1),f.rotate(m,m,d),f.sub(n,e,c);var o=f.dot(n,m);f.sub(n,j,c);var p=f.dot(n,m);if(!(o*p>0||f.squaredDistance(e,j)=w*w)break}for(d.updateMultipliers(k,q,1/a),x=0;x!==l;x++){var z=k[x];if(z instanceof i){for(var A=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];var y=d.iterateEquation(x,v,v.epsilon,u,t,q,p,a,c);w+=Math.abs(y)}if(this.usedIterations++,m>=w*w)break}for(r=0;r!==o;r++)n[r].addConstraintVelocity();d.updateMultipliers(k,q,1/a)}},d.updateMultipliers=function(a,b,c){for(var d=a.length;d--;)a[d].multiplier=b[d]*c},d.iterateEquation=function(a,b,c,d,e,f,g,h,i){var j=d[a],k=e[a],l=f[a],m=b.computeGWlambda(),n=b.maxForce,o=b.minForce;g&&(j=0);var p=k*(j-m-c*l),q=l+p;return o*h>q?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){function d(a,b){a=a||{},e.call(this),this.type=b,this.equations=[],this.equationSortFunction=a.equationSortFunction||!1}var e=(a("../utils/Utils"),a("../events/EventEmitter"));b.exports=d,d.prototype=new e,d.prototype.constructor=d,d.prototype.solve=function(a,b){throw new Error("Solver.solve should be implemented by subclasses!")};var f={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(var b=0,c=a.length;b!==c;b++){var d=a[b];d.enabled&&this.equations.push(d)}},d.prototype.removeEquation=function(a){var b=this.equations.indexOf(a);-1!==b&&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){function d(){f.apply(this,arguments)}var e=a("../equations/ContactEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/ContactEquation":21,"./Pool":55}],49:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../equations/FrictionEquation"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=null,this}},{"../equations/FrictionEquation":23,"./Pool":55}],50:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/IslandNode"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/IslandNode":60,"./Pool":55}],51:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("../world/Island"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.reset(),this}},{"../world/Island":58,"./Pool":55}],52:[function(a,b,c){function d(){this.overlappingShapesLastState=new e,this.overlappingShapesCurrentState=new e,this.recordPool=new f({size:16}),this.tmpDict=new e,this.tmpArray1=[]}var e=a("./TupleDictionary"),f=(a("./OverlapKeeperRecord"),a("./OverlapKeeperRecordPool"));a("./Utils");b.exports=d,d.prototype.tick=function(){for(var a=this.overlappingShapesLastState,b=this.overlappingShapesCurrentState,c=a.keys.length;c--;){var d=a.keys[c],e=a.getByKey(d);b.getByKey(d);e&&this.recordPool.release(e)}a.reset(),a.copy(b),b.reset()},d.prototype.setOverlapping=function(a,b,c,d){var e=(this.overlappingShapesLastState,this.overlappingShapesCurrentState);if(!e.get(b.id,d.id)){var f=this.recordPool.get();f.set(a,b,c,d),e.set(b.id,d.id,f)}},d.prototype.getNewOverlaps=function(a){return this.getDiff(this.overlappingShapesLastState,this.overlappingShapesCurrentState,a)},d.prototype.getEndOverlaps=function(a){return this.getDiff(this.overlappingShapesCurrentState,this.overlappingShapesLastState,a)},d.prototype.bodiesAreOverlapping=function(a,b){for(var c=this.overlappingShapesCurrentState,d=c.keys.length;d--;){var e=c.keys[d],f=c.data[e];if(f.bodyA===a&&f.bodyB===b||f.bodyA===b&&f.bodyB===a)return!0}return!1},d.prototype.getDiff=function(a,b,c){var c=c||[],d=a,e=b;c.length=0;for(var f=e.keys.length;f--;){var g=e.keys[f],h=e.data[g];if(!h)throw new Error("Key "+g+" had no data!");var i=d.data[g];i||c.push(h)}return c},d.prototype.isNewOverlap=function(a,b){var c=0|a.id,d=0|b.id,e=this.overlappingShapesLastState,f=this.overlappingShapesCurrentState;return!e.get(c,d)&&!!f.get(c,d)},d.prototype.getNewBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getNewOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getEndBodyOverlaps=function(a){this.tmpArray1.length=0;var b=this.getEndOverlaps(this.tmpArray1);return this.getBodyDiff(b,a)},d.prototype.getBodyDiff=function(a,b){b=b||[];for(var c=this.tmpDict,d=a.length;d--;){var e=a[d];c.set(0|e.bodyA.id,0|e.bodyB.id,e)}for(d=c.keys.length;d--;){var e=c.getByKey(c.keys[d]);e&&b.push(e.bodyA,e.bodyB)}return c.reset(),b}},{"./OverlapKeeperRecord":53,"./OverlapKeeperRecordPool":54,"./TupleDictionary":56,"./Utils":57}],53:[function(a,b,c){function d(a,b,c,d){this.shapeA=b,this.shapeB=d,this.bodyA=a,this.bodyB=c}b.exports=d,d.prototype.set=function(a,b,c,e){d.call(this,a,b,c,e)}},{}],54:[function(a,b,c){function d(){f.apply(this,arguments)}var e=a("./OverlapKeeperRecord"),f=a("./Pool");b.exports=d,d.prototype=new f,d.prototype.constructor=d,d.prototype.create=function(){return new e},d.prototype.destroy=function(a){return a.bodyA=a.bodyB=a.shapeA=a.shapeB=null,this}},{"./OverlapKeeperRecord":53,"./Pool":55}],55:[function(a,b,c){function d(a){a=a||{},this.objects=[],void 0!==a.size&&this.resize(a.size)}b.exports=d,d.prototype.resize=function(a){for(var b=this.objects;b.length>a;)b.pop();for(;b.length(0|b)?a<<16|65535&b:b<<16|65535&a)},d.prototype.getByKey=function(a){return a=0|a,this.data[a]},d.prototype.get=function(a,b){return this.data[this.getKey(a,b)]},d.prototype.set=function(a,b,c){if(!c)throw new Error("No data!");var d=this.getKey(a,b);return this.data[d]||this.keys.push(d),this.data[d]=c,d},d.prototype.reset=function(){for(var a=this.data,b=this.keys,c=b.length;c--;)delete a[b[c]];b.length=0},d.prototype.copy=function(a){this.reset(),e.appendArray(this.keys,a.keys);for(var b=a.keys.length;b--;){var c=a.keys[b];this.data[c]=a.data[c]}}},{"./Utils":57}],57:[function(a,b,c){function d(){}b.exports=d,d.appendArray=function(a,b){if(b.length<15e4)a.push.apply(a,b);else for(var c=0,d=b.length;c!==d;++c)a.push(b[c])},d.splice=function(a,b,c){c=c||1;for(var d=b,e=a.length-c;e>d;d++)a[d]=a[d+c];a.length=e},"undefined"!=typeof P2_ARRAY_TYPE?d.ARRAY_TYPE=P2_ARRAY_TYPE:"undefined"!=typeof Float32Array?d.ARRAY_TYPE=Float32Array:d.ARRAY_TYPE=Array,d.extend=function(a,b){for(var c in b)a[c]=b[c]},d.defaults=function(a,b){a=a||{};for(var c in b)c in a||(a[c]=b[c]);return a}},{}],58:[function(a,b,c){function d(){this.equations=[],this.bodies=[]}var e=a("../objects/Body");b.exports=d,d.prototype.reset=function(){this.equations.length=this.bodies.length=0};var f=[];d.prototype.getBodies=function(a){var b=a||[],c=this.equations;f.length=0;for(var d=0;d!==c.length;d++){var e=c[d];-1===f.indexOf(e.bodyA.id)&&(b.push(e.bodyA),f.push(e.bodyA.id)),-1===f.indexOf(e.bodyB.id)&&(b.push(e.bodyB),f.push(e.bodyB.id))}return b},d.prototype.wantsToSleep=function(){for(var a=0;a=a&&c>d;)this.internalStep(a),this.time+=a,this.accumulator-=a,d++;for(var e=this.accumulator%a/a,g=0;g!==this.bodies.length;g++){var h=this.bodies[g];f.lerp(h.interpolatedPosition,h.previousPosition,h.position,e),h.interpolatedAngle=h.previousAngle+e*(h.angle-h.previousAngle)}}};var y=[];d.prototype.internalStep=function(a){this.stepping=!0;var b=this.springs.length,c=this.springs,e=this.bodies,g=this.gravity,h=this.solver,i=this.bodies.length,j=this.broadphase,k=this.narrowphase,l=this.constraints,n=v,o=(f.scale,f.add),p=(f.rotate,this.islandManager);if(this.overlapKeeper.tick(),this.lastTimeStep=a,this.useWorldGravityAsFrictionGravity){var q=f.length(this.gravity);0===q&&this.useFrictionGravityOnZeroGravity||(this.frictionGravity=q)}if(this.applyGravity)for(var r=0;r!==i;r++){var t=e[r],u=t.force;t.type===m.DYNAMIC&&t.sleepState!==m.SLEEPING&&(f.scale(n,g,t.mass*t.gravityScale),o(u,u,n))}if(this.applySpringForces)for(var r=0;r!==b;r++){var w=c[r];w.applyForce()}if(this.applyDamping)for(var r=0;r!==i;r++){var t=e[r];t.type===m.DYNAMIC&&t.applyDamping(a)}for(var x=j.getCollisionPairs(this),z=this.disabledBodyCollisionPairs,r=z.length-2;r>=0;r-=2)for(var A=x.length-2;A>=0;A-=2)(z[r]===x[A]&&z[r+1]===x[A+1]||z[r+1]===x[A]&&z[r]===x[A+1])&&x.splice(A,2);var B=l.length;for(r=0;r!==B;r++){var C=l[r];if(!C.collideConnected)for(var A=x.length-2;A>=0;A-=2)(C.bodyA===x[A]&&C.bodyB===x[A+1]||C.bodyB===x[A]&&C.bodyA===x[A+1])&&x.splice(A,2)}this.postBroadphaseEvent.pairs=x,this.emit(this.postBroadphaseEvent),this.postBroadphaseEvent.pairs=null,k.reset(this);for(var r=0,D=x.length;r!==D;r+=2)for(var E=x[r],F=x[r+1],G=0,H=E.shapes.length;G!==H;G++)for(var I=E.shapes[G],J=I.position,K=I.angle,L=0,M=F.shapes.length;L!==M;L++){var N=F.shapes[L],O=N.position,P=N.angle,Q=this.defaultContactMaterial;if(I.material&&N.material){var R=this.getContactMaterial(I.material,N.material);R&&(Q=R)}this.runNarrowphase(k,E,I,J,K,F,N,O,P,Q,this.frictionGravity)}for(var r=0;r!==i;r++){var S=e[r];S._wakeUpAfterNarrowphase&&(S.wakeUp(),S._wakeUpAfterNarrowphase=!1)}if(this.has("endContact")){this.overlapKeeper.getEndOverlaps(y);for(var T=this.endContactEvent,L=y.length;L--;){var U=y[L];T.shapeA=U.shapeA,T.shapeB=U.shapeB,T.bodyA=U.bodyA,T.bodyB=U.bodyB,this.emit(T)}y.length=0}var V=this.preSolveEvent;V.contactEquations=k.contactEquations,V.frictionEquations=k.frictionEquations,this.emit(V),V.contactEquations=V.frictionEquations=null;var B=l.length;for(r=0;r!==B;r++)l[r].update();if(k.contactEquations.length||k.frictionEquations.length||B)if(this.islandSplit){for(p.equations.length=0,s.appendArray(p.equations,k.contactEquations),s.appendArray(p.equations,k.frictionEquations),r=0;r!==B;r++)s.appendArray(p.equations,l[r].equations);p.split(this);for(var r=0;r!==p.islands.length;r++){var W=p.islands[r];W.equations.length&&h.solveIsland(a,W)}}else{for(h.addEquations(k.contactEquations),h.addEquations(k.frictionEquations),r=0;r!==B;r++)h.addEquations(l[r].equations);this.solveConstraints&&h.solve(a,this),h.removeAllEquations()}for(var r=0;r!==i;r++){var S=e[r];S.integrate(a)}for(var r=0;r!==i;r++)e[r].setZeroForce();if(this.emitImpactEvent&&this.has("impact"))for(var X=this.impactEvent,r=0;r!==k.contactEquations.length;r++){var Y=k.contactEquations[r];Y.firstImpact&&(X.bodyA=Y.bodyA,X.bodyB=Y.bodyB,X.shapeA=Y.shapeA,X.shapeB=Y.shapeB,X.contactEquation=Y,this.emit(X))}if(this.sleepMode===d.BODY_SLEEPING)for(r=0;r!==i;r++)e[r].sleepTick(this.time,!1,a);else if(this.sleepMode===d.ISLAND_SLEEPING&&this.islandSplit){for(r=0;r!==i;r++)e[r].sleepTick(this.time,!0,a);for(var r=0;r0,a.frictionCoefficient=k.friction;var p;p=b.type===m.STATIC||b.type===m.KINEMATIC?g.mass:g.type===m.STATIC||g.type===m.KINEMATIC?b.mass:b.mass*g.mass/(b.mass+g.mass),a.slipForce=k.friction*l*p,a.restitution=k.restitution,a.surfaceVelocity=k.surfaceVelocity,a.frictionStiffness=k.frictionStiffness,a.frictionRelaxation=k.frictionRelaxation,a.stiffness=k.stiffness,a.relaxation=k.relaxation,a.contactSkinSize=k.contactSkinSize,a.enabledEquations=b.collisionResponse&&g.collisionResponse&&c.collisionResponse&&h.collisionResponse;var q=a[c.type|h.type],r=0;if(q){var s=c.sensor||h.sensor,t=a.frictionEquations.length;r=c.type=2*y&&(b._wakeUpAfterNarrowphase=!0)}if(g.allowSleep&&g.type===m.DYNAMIC&&g.sleepState===m.SLEEPING&&b.sleepState===m.AWAKE&&b.type!==m.STATIC){var z=f.squaredLength(b.velocity)+Math.pow(b.angularVelocity,2),A=Math.pow(b.sleepSpeedLimit,2);z>=2*A&&(g._wakeUpAfterNarrowphase=!0)}if(this.overlapKeeper.setOverlapping(b,c,g,h),this.has("beginContact")&&this.overlapKeeper.isNewOverlap(c,h)){var B=this.beginContactEvent;if(B.shapeA=c,B.shapeB=h,B.bodyA=b,B.bodyB=g,B.contactEquations.length=0,"number"==typeof r)for(var C=a.contactEquations.length-r;C1)for(var C=a.frictionEquations.length-u;C=0;b--)this.removeConstraint(a[b]);for(var c=this.bodies,b=c.length-1;b>=0;b--)this.removeBody(c[b]);for(var e=this.springs,b=e.length-1;b>=0;b--)this.removeSpring(e[b]);for(var f=this.contactMaterials,b=f.length-1;b>=0;b--)this.removeContactMaterial(f[b]);d.apply(this)};var z=f.create(),A=(f.fromValues(0,0),f.fromValues(0,0));d.prototype.hitTest=function(a,b,c){c=c||0;var d=new m({position:a}),e=new k,l=a,n=0,o=z,p=A;d.addShape(e);for(var q=this.narrowphase,r=[],s=0,t=b.length;s!==t;s++)for(var u=b[s],v=0,w=u.shapes.length;v!==w;v++){var x=u.shapes[v];f.rotate(o,x.position,u.angle),f.add(o,o,u.position);var y=x.angle+u.angle;(x instanceof g&&q.circleParticle(u,x,o,y,d,e,l,n,!0)||x instanceof h&&q.particleConvex(d,e,l,n,u,x,o,y,!0)||x instanceof i&&q.particlePlane(d,e,l,n,u,x,o,y,!0)||x instanceof j&&q.particleCapsule(d,e,l,n,u,x,o,y,!0)||x instanceof k&&f.squaredLength(f.sub(p,o,a))=0&&b<=this.children.length)return a.parent&&a.parent.removeChild(a),a.parent=this,this.children.splice(b,0,a),this.stage&&a.setStageReference(this.stage),a;throw new Error(a+"addChildAt: The index "+b+" supplied is out of bounds "+this.children.length)},b.DisplayObjectContainer.prototype.swapChildren=function(a,b){if(a!==b){var c=this.getChildIndex(a),d=this.getChildIndex(b);if(0>c||0>d)throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller.");this.children[c]=b,this.children[d]=a}},b.DisplayObjectContainer.prototype.getChildIndex=function(a){ -var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gj;j++){var l=this.children[j];l.visible&&(i=!0,a=this.children[j].getBounds(),e=ec?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var m=this._bounds;return m.x=e,m.y=f,m.width=g-e,m.height=h-f,m},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0,d=this.children.length;d>c;c++)this.children[c].updateTransform();var e=this.getBounds();return this.worldTransform=a,e},b.DisplayObjectContainer.prototype.setStageReference=function(a){this.stage=a;for(var b=0;bi){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d,this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a]; -return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}.call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.6",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c,b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point), -b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.prototype={preUpdate:function(){this.totalInView=0},follow:function(a,b){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),this.target=a;var d;switch(b){case c.Camera.FOLLOW_PLATFORMER:var e=this.width/8,f=this.height/3;this.deadzone=new c.Rectangle((this.width-e)/2,(this.height-f)/2-.25*f,e,f);break;case c.Camera.FOLLOW_TOPDOWN:d=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:d=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-d)/2,(this.height-d)/2,d,d);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},update:function(){this.target&&this.updateTarget(),this.bounds&&this.checkBounds(),this.roundPx&&this.view.floor(),this.displayObject.position.x=-this.view.x,this.displayObject.position.y=-this.view.y},updateTarget:function(){this._targetPosition.copyFrom(this.target),this.target.parent&&this._targetPosition.multiply(this.target.parent.worldTransform.a,this.target.parent.worldTransform.d),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this._targetPosition.x-this.deadzone.right),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this._targetPosition.y-this.deadzone.bottom)):(this.view.x=this._targetPosition.x-this.view.halfWidth,this.view.y=this._targetPosition.y-this.view.halfHeight)},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1,this.view.x<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x),this.view.right>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width),this.view.y<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y),this.view.bottom>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height)},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.centerX,this.view.centerY),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!0,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.replace=function(a,b){var d=this.getIndex(a);return-1!==d?(b.parent&&(b.parent instanceof c.Group?b.parent.remove(b):b.parent.removeChild(b)),this.remove(a),this.addAt(b,d),a):void 0},c.Group.prototype.hasProperty=function(a,b){var c=b.length;return 1===c&&b[0]in a?!0:2===c&&b[0]in a&&b[1]in a[b[0]]?!0:3===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]?!0:4===c&&b[0]in a&&b[1]in a[b[0]]&&b[2]in a[b[0]][b[1]]&&b[3]in a[b[0]][b[1]][b[2]]?!0:!1},c.Group.prototype.setProperty=function(a,b,c,d,e){if(void 0===e&&(e=!1),d=d||0,!this.hasProperty(a,b)&&(!e||d>0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.camera.displayObject=this,this.camera.scale=this.scale,this.game.camera=this.camera,this.game.stage.addChild(this)},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting.");this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,this.sprite&&this.sprite.events&&this.sprite.events.onInputDown$dispatch(this.sprite,a),a.dirty=!0,this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera)this.dragFromCenter?(this.sprite.centerOn(a.x,a.y),this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)):this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y);else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if((this.autoCull||this.checkWorldBounds)&&(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull&&(this.game.world.camera.view.intersects(this._bounds)?(this.renderable=!0,this.game.world.camera.totalInView++):this.renderable=!1),this.checkWorldBounds))if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1;return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),e.hasFrameData(a.key,c.Cache.BITMAPDATA)&&(f=!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b));else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h),this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e){(void 0===d||0===d)&&(d=256),(void 0===e||0===e)&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=PIXI.CanvasPool.create(this,d,e),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,d,e,"bitmapData"),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if((void 0===a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture);else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if((void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.type===c.EMITTER||a.type===c.BITMAPTEXT)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&(j+=c[k-1]),h=j+l}else for(var k=0;kp&&Math.abs(p)>n&&(p=-n),0!==p&&(o+=p*b.length),this.canvas.height=o*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var q,r;for(this._charCount=0,g=0;g0&&(r+=p*g),"right"===this.style.align?q+=e-d[g]:"center"===this.style.align&&(q+=(e-d[g])/2),this.autoRound&&(q=Math.round(q),r=Math.round(r)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[g],q,r):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[g],q,r):this.renderTabLine(b[g],q,r,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[g],q,r):this.renderTabLine(b[g],q,r,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=PIXI.CanvasPool.create(c.Text.fontPropertiesCanvas),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE, -this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f,this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=(m.xAdvance+o)*b,i.push(d+(m.xOffset+o)*b),d+=(m.xAdvance+o)*b,g=l}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0; -},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),(void 0===d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"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(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=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=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.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(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),a?this.repeatAll(-1):this.repeatCounter=0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{ -get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0,this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=b,this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=this.position+this.pausedPosition/1e3;this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=this.game.make.bitmapData(this.game.width,this.game.height),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){ -return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter&&this.matter.enable(a)},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},separateX:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;if(0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(d=a.right-b.x,d>e||a.checkCollision.right===!1||b.checkCollision.left===!1?d=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()e||a.checkCollision.left===!1||b.checkCollision.right===!1?d=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=d,b.overlapX=d,0!==d){if(c||a.customSeparateX||b.customSeparateX)return!0;var f=a.velocity.x,g=b.velocity.x;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.x+=d,b.velocity.x=f-g*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x=a.x-d,a.velocity.x=g-f*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x=a.x-d,b.x+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.x=j+h*a.bounce.x,b.velocity.x=j+i*b.bounce.x}return!0}}return!1},separateY:function(a,b,c){if(a.immovable&&b.immovable)return!1;var d=0;if(this.intersects(a,b)){var e=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;if(0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(d=a.bottom-b.y,d>e||a.checkCollision.down===!1||b.checkCollision.up===!1?d=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()e||a.checkCollision.up===!1||b.checkCollision.down===!1?d=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=d,b.overlapY=d,0!==d){if(c||a.customSeparateY||b.customSeparateY)return!0;var f=a.velocity.y,g=b.velocity.y;if(a.immovable||b.immovable)a.immovable?b.immovable||(b.y+=d,b.velocity.y=f-g*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y=a.y-d,a.velocity.y=g-f*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y=a.y-d,b.y+=d;var h=Math.sqrt(g*g*b.mass/a.mass)*(g>0?1:-1),i=Math.sqrt(f*f*a.mass/b.mass)*(f>0?1:-1),j=.5*(h+i);h-=j,i-=j,a.velocity.y=j+h*a.bounce.y,b.velocity.y=j+i*b.bounce.y}return!0}}return!1},getObjectsUnderPointer:function(a,b,c,d){ -return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)},worldAngleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.world.x,d=b.worldY-a.world.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,c.Physics.P2=function(a,b){this.game=a,void 0===b?b={gravity:[0,0],broadphase:new p2.SAPBroadphase}:(b.hasOwnProperty("gravity")||(b.gravity=[0,0]),b.hasOwnProperty("broadphase")||(b.broadphase=new p2.SAPBroadphase)),this.config=b,this.world=new p2.World(this.config),this.frameRate=1/60,this.useElapsedTime=!1,this.paused=!1,this.materials=[],this.gravity=new c.Physics.P2.InversePointProxy(this,this.world.gravity),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new c.Signal,this.onBodyRemoved=new c.Signal,this.onSpringAdded=new c.Signal,this.onSpringRemoved=new c.Signal,this.onConstraintAdded=new c.Signal,this.onConstraintRemoved=new c.Signal,this.onContactMaterialAdded=new c.Signal,this.onContactMaterialRemoved=new c.Signal,this.postBroadphaseCallback=null,this.callbackContext=null,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&b.hasOwnProperty("mpxi")&&b.hasOwnProperty("pxmi")&&(this.mpx=b.mpx,this.mpxi=b.mpxi,this.pxm=b.pxm,this.pxmi=b.pxmi),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this.boundsCollidesWith=[],this._toRemove=[],this._collisionGroupID=2,this._boundsLeft=!0,this._boundsRight=!0,this._boundsTop=!0,this._boundsBottom=!0,this._boundsOwnGroup=!1,this.setBoundsToWorld(!0,!0,!0,!0,!1)},c.Physics.P2.prototype={removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b,d){void 0===b&&(b=!1),void 0===d&&(d=!0);var e=1;if(Array.isArray(a))for(e=a.length;e--;)a[e]instanceof c.Group?this.enable(a[e].children,b,d):(this.enableBody(a[e],b),d&&a[e].hasOwnProperty("children")&&a[e].children.length>0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,"undefined"!=typeof a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){var b=this.everythingCollisionGroup.mask;void 0===a&&(b=this.boundsCollisionGroup.mask),this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b)},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.walls.left&&this.world.removeBody(this.walls.left),this.walls.right&&this.world.removeBody(this.walls.right),this.walls.top&&this.world.removeBody(this.walls.top),this.walls.bottom&&this.world.removeBody(this.walls.bottom),e&&(this.walls.left=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:1.5707963267948966}),this.walls.left.addShape(new p2.Plane),i&&(this.walls.left.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.left)),f&&(this.walls.right=new p2.Body({mass:0,position:[this.pxmi(a+c),this.pxmi(b)],angle:-1.5707963267948966}),this.walls.right.addShape(new p2.Plane),i&&(this.walls.right.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.right)),g&&(this.walls.top=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b)],angle:-3.141592653589793}),this.walls.top.addShape(new p2.Plane),i&&(this.walls.top.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.top)),h&&(this.walls.bottom=new p2.Body({mass:0,position:[this.pxmi(a),this.pxmi(b+d)]}),this.walls.bottom.addShape(new p2.Plane),i&&(this.walls.bottom.shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls.bottom)),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||(this.useElapsedTime?this.world.step(this.game.time.physicsElapsed):this.world.step(this.frameRate))},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.addSpring(a.data):this.world.addSpring(a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.removeSpring(a.data):this.world.removeSpring(a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),d=this.getBody(d),a&&d?this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),"undefined"!=typeof b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;de;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(c.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(c.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(c.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(c.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(c.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(c.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(c.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(c.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(c.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),c.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},c.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[], -this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},c.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.PointProxy.prototype.constructor=c.Physics.P2.PointProxy,Object.defineProperty(c.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),c.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.InversePointProxy.prototype.constructor=c.Physics.P2.InversePointProxy,Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),c.Physics.P2.Body=function(a,b,d,e,f){b=b||null,d=d||0,e=e||0,void 0===f&&(f=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=c.Physics.P2JS,this.offset=new c.Point,this.data=new p2.Body({position:[this.world.pxmi(d),this.world.pxmi(e)],mass:f}),this.data.parent=this,this.velocity=new c.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new c.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new c.Point,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this.dirty=!1,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this._reset=!1,b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},c.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if(void 0===b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if(void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},removeCollisionGroup:function(a,b,c){void 0===b&&(b=!0);var d;if(Array.isArray(a))for(var e=0;e-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));else d=this.collidesWith.indexOf(a),d>-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));var f=this.getCollisionMask();if(void 0===c)for(var e=this.data.shapes.length-1;e>=0;e--)this.data.shapes[e].collisionMask=f;else c.collisionMask=f},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass(),this.shapeChanged()},getVelocityAtPoint:function(a,b){return this.data.getVelocityAtPoint(a,b)},applyDamping:function(a){this.data.applyDamping(a)},applyImpulse:function(a,b,c){this.data.applyImpulse(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyImpulseLocal:function(a,b,c){this.data.applyImpulseLocal(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.dirty=!0,this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform(),this.dirty=!1},reset:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){void 0===g&&(g=1),void 0===f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){void 0===d&&(d=1),void 0===c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if(void 0===f&&(f=1),void 0===d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for(void 0===e&&(e=1),void 0===c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;void 0===f&&(f=1),void 0===d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},drawCapsule:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1);var j=Math.cos(d),k=Math.sin(d);a.beginFill(h,1),a.drawCircle(-e/2*j+b,-e/2*k+c,2*-f),a.drawCircle(e/2*j+b,e/2*k+c,2*-f),a.endFill(),a.lineStyle(i,g,0),a.beginFill(h,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c),a.lineTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.endFill(),a.lineStyle(i,g,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.moveTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.len?b:b+"0"}}),c.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,void 0===d&&(d=1),void 0===e&&(e=100),void 0===f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,void 0===d&&(d=null),void 0===e&&(e=100),void 0===f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},c.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),c.Physics.P2.Material.prototype.constructor=c.Physics.P2.Material,c.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},c.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),c.Physics.P2.ContactMaterial.prototype.constructor=c.Physics.P2.ContactMaterial,c.Physics.P2.CollisionGroup=function(a){this.mask=a},c.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){void 0===d&&(d=100),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},c.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),c.Physics.P2.DistanceConstraint.prototype.constructor=c.Physics.P2.DistanceConstraint,c.Physics.P2.GearConstraint=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},c.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),c.Physics.P2.GearConstraint.prototype.constructor=c.Physics.P2.GearConstraint,c.Physics.P2.LockConstraint=function(a,b,c,d,e,f){void 0===d&&(d=[0,0]),void 0===e&&(e=0),void 0===f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},c.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),c.Physics.P2.LockConstraint.prototype.constructor=c.Physics.P2.LockConstraint,c.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){void 0===d&&(d=!0),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=[0,0]),void 0===h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},c.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),c.Physics.P2.PrismaticConstraint.prototype.constructor=c.Physics.P2.PrismaticConstraint,c.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){void 0===f&&(f=Number.MAX_VALUE),void 0===g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},c.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),c.Physics.P2.RevoluteConstraint.prototype.constructor=c.Physics.P2.RevoluteConstraint,c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rl;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;i>t;t++){if(m=0,n=!1,p=g.data[t],p>536870912)switch(o=0,p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}p>0?(r.push(new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight)),r[r.length-1].rotation=m,r[r.length-1].flipped=n):c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight)),q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var u=[],f=0;fG;G++)if(F.objects[G].gid){var H={gid:F.objects[G].gid,name:F.objects[G].name,type:F.objects[G].hasOwnProperty("type")?F.objects[G].type:"",x:F.objects[G].x,y:F.objects[G].y,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),D[F.name].push(H)}else if(F.objects[G].polyline){var H={name:F.objects[G].name,type:F.objects[G].type,x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),H.polyline=[];for(var I=0;I=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0, -this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity+=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),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.stop()),this.videoStream=null,this.isStreaming=!1):(this.video.removeEventListener("ended",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(var b=0;b0?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){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.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(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._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(){return this._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.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); +var b=this.children.indexOf(a);if(-1===b)throw new Error("The supplied DisplayObject must be a child of the caller");return b},b.DisplayObjectContainer.prototype.setChildIndex=function(a,b){if(0>b||b>=this.children.length)throw new Error("The supplied index is out of bounds");var c=this.getChildIndex(a);this.children.splice(c,1),this.children.splice(b,0,a)},b.DisplayObjectContainer.prototype.getChildAt=function(a){if(0>a||a>=this.children.length)throw new Error("getChildAt: Supplied index "+a+" does not exist in the child list, or the supplied DisplayObject must be a child of the caller");return this.children[a]},b.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b)return this.removeChildAt(b)},b.DisplayObjectContainer.prototype.removeChildAt=function(a){var b=this.getChildAt(a);return this.stage&&b.removeStageReference(),b.parent=void 0,this.children.splice(a,1),b},b.DisplayObjectContainer.prototype.removeChildren=function(a,b){var c=a||0,d="number"==typeof b?b:this.children.length,e=d-c;if(e>0&&d>=e){for(var f=this.children.splice(c,e),g=0;gc?g:c,h=h>d?h:d)}if(!i)return b.EmptyRectangle;var l=this._bounds;return l.x=e,l.y=f,l.width=g-e,l.height=h-f,l},b.DisplayObjectContainer.prototype.getLocalBounds=function(){var a=this.worldTransform;this.worldTransform=b.identityMatrix;for(var c=0;ci){i*=-1;var s=d;d=-e,e=-s}if(0>l){l*=-1;var s=f;f=-g,g=-s}q=i*e+m,o=i*d+m,r=l*g+n,p=l*f+n}else{var t=i*e+k*g+m,u=l*g+j*e+n,v=i*d+k*g+m,w=l*g+j*d+n,x=i*d+k*f+m,y=l*f+j*d+n,z=i*e+k*f+m,A=l*f+j*e+n;q=q>t?t:q,q=q>v?v:q,q=q>x?x:q,q=q>z?z:q,r=r>u?u:r,r=r>w?w:r,r=r>y?y:r,r=r>A?A:r,o=t>o?t:o,o=v>o?v:o,o=x>o?x:o,o=z>o?z:o,p=u>p?u:p,p=w>p?w:p,p=y>p?y:p,p=A>p?A:p}var B=this._bounds;return B.x=q,B.width=o-q,B.y=r,B.height=p-r,this._currentBounds=B,B},b.Sprite.prototype._renderWebGL=function(a,b){if(this.visible&&!(this.alpha<=0)&&this.renderable){var c=this.worldTransform;if(b&&(c=b),this._mask||this._filters){var d=a.spriteBatch;this._filters&&(d.flush(),a.filterManager.pushFilter(this._filterBlock)),this._mask&&(d.stop(),a.maskManager.pushMask(this.mask,a),d.start()),d.render(this);for(var e=0;e>16&255)/255,(a>>8&255)/255,(255&a)/255]},b.rgb2hex=function(a){return(255*a[0]<<16)+(255*a[1]<<8)+255*a[2]},b.canUseNewCanvasBlendModes=function(){if(void 0===document)return!1;var a="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/",c="AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",d=new Image;d.src=a+"AP804Oa6"+c;var e=new Image;e.src=a+"/wCKxvRF"+c;var f=b.CanvasPool.create(this,6,1),g=f.getContext("2d");if(g.globalCompositeOperation="multiply",g.drawImage(d,0,0),g.drawImage(e,2,0),!g.getImageData(2,0,1,1))return!1;var h=g.getImageData(2,0,1,1).data;return b.CanvasPool.remove(this),255===h[0]&&0===h[1]&&0===h[2]},b.getNextPowerOfTwo=function(a){if(a>0&&0===(a&a-1))return a;for(var b=1;a>b;)b<<=1;return b},b.isPowerOfTwo=function(a,b){return a>0&&0===(a&a-1)&&b>0&&0===(b&b-1)},b.CanvasPool={create:function(a,c,d){var e,f=b.CanvasPool.getFirst();if(-1===f){var g={parent:a,canvas:document.createElement("canvas")};b.CanvasPool.pool.push(g),e=g.canvas}else b.CanvasPool.pool[f].parent=a,e=b.CanvasPool.pool[f].canvas;return void 0!==c&&(e.width=c,e.height=d),e},getFirst:function(){for(var a=b.CanvasPool.pool,c=0;cd;d+=6,e+=4)this.indices[d+0]=e+0,this.indices[d+1]=e+1,this.indices[d+2]=e+2,this.indices[d+3]=e+0,this.indices[d+4]=e+2,this.indices[d+5]=e+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.dirty=!0,this.textures=[],this.blendModes=[],this.shaders=[],this.sprites=[],this.defaultShader=new b.AbstractFilter(["precision lowp float;","varying vec2 vTextureCoord;","varying vec4 vColor;","uniform sampler2D uSampler;","void main(void) {"," gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;","}"])},b.WebGLSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW),this.currentBlendMode=99999;var c=new b.PixiShader(a);c.fragmentSrc=this.defaultShader.fragmentSrc,c.uniforms={},c.init(),this.defaultShader.shaders[a.id]=c},b.WebGLSpriteBatch.prototype.begin=function(a){this.renderSession=a,this.shader=this.renderSession.shaderManager.defaultShader,this.start()},b.WebGLSpriteBatch.prototype.end=function(){this.flush()},b.WebGLSpriteBatch.prototype.render=function(a,b){var c=a.texture,d=a.worldTransform;b&&(d=b),this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture);var e=c._uvs;if(e){var f,g,h,i,j=a.anchor.x,k=a.anchor.y;if(c.trim){var l=c.trim;g=l.x-j*l.width,f=g+c.crop.width,i=l.y-k*l.height,h=i+c.crop.height}else f=c.frame.width*(1-j),g=c.frame.width*-j,h=c.frame.height*(1-k),i=c.frame.height*-k;var m=4*this.currentBatchSize*this.vertSize,n=c.baseTexture.resolution,o=d.a/n,p=d.b/n,q=d.c/n,r=d.d/n,s=d.tx,t=d.ty,u=this.colors,v=this.positions;this.renderSession.roundPixels?(v[m]=o*g+q*i+s|0,v[m+1]=r*i+p*g+t|0,v[m+5]=o*f+q*i+s|0,v[m+6]=r*i+p*f+t|0,v[m+10]=o*f+q*h+s|0,v[m+11]=r*h+p*f+t|0,v[m+15]=o*g+q*h+s|0,v[m+16]=r*h+p*g+t|0):(v[m]=o*g+q*i+s,v[m+1]=r*i+p*g+t,v[m+5]=o*f+q*i+s,v[m+6]=r*i+p*f+t,v[m+10]=o*f+q*h+s,v[m+11]=r*h+p*f+t,v[m+15]=o*g+q*h+s,v[m+16]=r*h+p*g+t),v[m+2]=e.x0,v[m+3]=e.y0,v[m+7]=e.x1,v[m+8]=e.y1,v[m+12]=e.x2,v[m+13]=e.y2,v[m+17]=e.x3,v[m+18]=e.y3;var w=a.tint;u[m+4]=u[m+9]=u[m+14]=u[m+19]=(w>>16)+(65280&w)+((255&w)<<16)+(255*a.worldAlpha<<24),this.sprites[this.currentBatchSize++]=a}},b.WebGLSpriteBatch.prototype.renderTilingSprite=function(a){var c=a.tilingTexture;this.currentBatchSize>=this.size&&(this.flush(),this.currentBaseTexture=c.baseTexture),a._uvs||(a._uvs=new b.TextureUvs);var d=a._uvs,e=c.baseTexture.width,f=c.baseTexture.height;a.tilePosition.x%=e*a.tileScaleOffset.x,a.tilePosition.y%=f*a.tileScaleOffset.y;var g=a.tilePosition.x/(e*a.tileScaleOffset.x),h=a.tilePosition.y/(f*a.tileScaleOffset.y),i=a.width/e/(a.tileScale.x*a.tileScaleOffset.x),j=a.height/f/(a.tileScale.y*a.tileScaleOffset.y);d.x0=0-g,d.y0=0-h,d.x1=1*i-g,d.y1=0-h,d.x2=1*i-g,d.y2=1*j-h,d.x3=0-g,d.y3=1*j-h;var k=a.tint,l=(k>>16)+(65280&k)+((255&k)<<16)+(255*a.worldAlpha<<24),m=this.positions,n=this.colors,o=a.width,p=a.height,q=a.anchor.x,r=a.anchor.y,s=o*(1-q),t=o*-q,u=p*(1-r),v=p*-r,w=4*this.currentBatchSize*this.vertSize,x=c.baseTexture.resolution,y=a.worldTransform,z=y.a/x,A=y.b/x,B=y.c/x,C=y.d/x,D=y.tx,E=y.ty;m[w++]=z*t+B*v+D,m[w++]=C*v+A*t+E,m[w++]=d.x0,m[w++]=d.y0,n[w++]=l,m[w++]=z*s+B*v+D,m[w++]=C*v+A*s+E,m[w++]=d.x1,m[w++]=d.y1,n[w++]=l,m[w++]=z*s+B*u+D,m[w++]=C*u+A*s+E,m[w++]=d.x2,m[w++]=d.y2,n[w++]=l,m[w++]=z*t+B*u+D,m[w++]=C*u+A*t+E,m[w++]=d.x3,m[w++]=d.y3,n[w++]=l,this.sprites[this.currentBatchSize++]=a},b.WebGLSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a,c=this.gl;if(this.dirty){this.dirty=!1,c.activeTexture(c.TEXTURE0),c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a=this.defaultShader.shaders[c.id];var d=4*this.vertSize;c.vertexAttribPointer(a.aVertexPosition,2,c.FLOAT,!1,d,0),c.vertexAttribPointer(a.aTextureCoord,2,c.FLOAT,!1,d,8),c.vertexAttribPointer(a.colorAttribute,4,c.UNSIGNED_BYTE,!0,d,16)}if(this.currentBatchSize>.5*this.size)c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices);else{var e=this.positions.subarray(0,4*this.currentBatchSize*this.vertSize);c.bufferSubData(c.ARRAY_BUFFER,0,e)}for(var f,g,h,i,j=0,k=0,l=null,m=this.renderSession.blendModeManager.currentBlendMode,n=null,o=!1,p=!1,q=0,r=this.currentBatchSize;r>q;q++){i=this.sprites[q],f=i.tilingTexture?i.tilingTexture.baseTexture:i.texture.baseTexture,g=i.blendMode,h=i.shader||this.defaultShader,o=m!==g,p=n!==h;var s=f.skipRender;if(s&&i.children.length>0&&(s=!1),(l!==f&&!s||o||p)&&(this.renderBatch(l,j,k),k=q,j=0,l=f,o&&(m=g,this.renderSession.blendModeManager.setBlendMode(m)),p)){n=h,a=n.shaders[c.id],a||(a=new b.PixiShader(c),a.fragmentSrc=n.fragmentSrc,a.uniforms=n.uniforms,a.init(),n.shaders[c.id]=a),this.renderSession.shaderManager.setShader(a),a.dirty&&a.syncUniforms();var t=this.renderSession.projection;c.uniform2f(a.projectionVector,t.x,t.y);var u=this.renderSession.offset;c.uniform2f(a.offsetVector,u.x,u.y)}j++}this.renderBatch(l,j,k),this.currentBatchSize=0}},b.WebGLSpriteBatch.prototype.renderBatch=function(a,b,c){if(0!==b){var d=this.gl;if(a._dirty[d.id]){if(!this.renderSession.renderer.updateTexture(a))return}else d.bindTexture(d.TEXTURE_2D,a._glTextures[d.id]);d.drawElements(d.TRIANGLES,6*b,d.UNSIGNED_SHORT,6*c*2),this.renderSession.drawCount++}},b.WebGLSpriteBatch.prototype.stop=function(){this.flush(),this.dirty=!0},b.WebGLSpriteBatch.prototype.start=function(){this.dirty=!0},b.WebGLSpriteBatch.prototype.destroy=function(){this.vertices=null,this.indices=null,this.gl.deleteBuffer(this.vertexBuffer),this.gl.deleteBuffer(this.indexBuffer),this.currentBaseTexture=null,this.gl=null},b.WebGLFastSpriteBatch=function(a){this.vertSize=10,this.maxSize=6e3,this.size=this.maxSize;var c=4*this.size*this.vertSize,d=6*this.maxSize;this.vertices=new b.Float32Array(c),this.indices=new b.Uint16Array(d),this.vertexBuffer=null,this.indexBuffer=null,this.lastIndexCount=0;for(var e=0,f=0;d>e;e+=6,f+=4)this.indices[e+0]=f+0,this.indices[e+1]=f+1,this.indices[e+2]=f+2,this.indices[e+3]=f+0,this.indices[e+4]=f+2,this.indices[e+5]=f+3;this.drawing=!1,this.currentBatchSize=0,this.currentBaseTexture=null,this.currentBlendMode=0,this.renderSession=null,this.shader=null,this.matrix=null,this.setContext(a)},b.WebGLFastSpriteBatch.prototype.constructor=b.WebGLFastSpriteBatch,b.WebGLFastSpriteBatch.prototype.setContext=function(a){this.gl=a,this.vertexBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertices,a.DYNAMIC_DRAW)},b.WebGLFastSpriteBatch.prototype.begin=function(a,b){this.renderSession=b,this.shader=this.renderSession.shaderManager.fastShader,this.matrix=a.worldTransform.toArray(!0),this.start()},b.WebGLFastSpriteBatch.prototype.end=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.render=function(a){var b=a.children,c=b[0];if(c.texture._uvs){this.currentBaseTexture=c.texture.baseTexture,c.blendMode!==this.renderSession.blendModeManager.currentBlendMode&&(this.flush(),this.renderSession.blendModeManager.setBlendMode(c.blendMode));for(var d=0,e=b.length;e>d;d++)this.renderSprite(b[d]);this.flush()}},b.WebGLFastSpriteBatch.prototype.renderSprite=function(a){if(a.visible&&(a.texture.baseTexture===this.currentBaseTexture||a.texture.baseTexture.skipRender||(this.flush(),this.currentBaseTexture=a.texture.baseTexture,a.texture._uvs))){var b,c,d,e,f,g,h,i,j=this.vertices;if(b=a.texture._uvs,c=a.texture.frame.width,d=a.texture.frame.height,a.texture.trim){var k=a.texture.trim;f=k.x-a.anchor.x*k.width,e=f+a.texture.crop.width,h=k.y-a.anchor.y*k.height,g=h+a.texture.crop.height}else e=a.texture.frame.width*(1-a.anchor.x),f=a.texture.frame.width*-a.anchor.x,g=a.texture.frame.height*(1-a.anchor.y),h=a.texture.frame.height*-a.anchor.y;i=4*this.currentBatchSize*this.vertSize,j[i++]=f,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x0,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=h,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x1,j[i++]=b.y1,j[i++]=a.alpha,j[i++]=e,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x2,j[i++]=b.y2,j[i++]=a.alpha,j[i++]=f,j[i++]=g,j[i++]=a.position.x,j[i++]=a.position.y,j[i++]=a.scale.x,j[i++]=a.scale.y,j[i++]=a.rotation,j[i++]=b.x3,j[i++]=b.y3,j[i++]=a.alpha,this.currentBatchSize++,this.currentBatchSize>=this.size&&this.flush()}},b.WebGLFastSpriteBatch.prototype.flush=function(){if(0!==this.currentBatchSize){var a=this.gl;if(this.currentBaseTexture._glTextures[a.id]||this.renderSession.renderer.updateTexture(this.currentBaseTexture,a),a.bindTexture(a.TEXTURE_2D,this.currentBaseTexture._glTextures[a.id]),this.currentBatchSize>.5*this.size)a.bufferSubData(a.ARRAY_BUFFER,0,this.vertices);else{var b=this.vertices.subarray(0,4*this.currentBatchSize*this.vertSize);a.bufferSubData(a.ARRAY_BUFFER,0,b)}a.drawElements(a.TRIANGLES,6*this.currentBatchSize,a.UNSIGNED_SHORT,0),this.currentBatchSize=0,this.renderSession.drawCount++}},b.WebGLFastSpriteBatch.prototype.stop=function(){this.flush()},b.WebGLFastSpriteBatch.prototype.start=function(){var a=this.gl;a.activeTexture(a.TEXTURE0),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);var b=this.renderSession.projection;a.uniform2f(this.shader.projectionVector,b.x,b.y),a.uniformMatrix3fv(this.shader.uMatrix,!1,this.matrix);var c=4*this.vertSize;a.vertexAttribPointer(this.shader.aVertexPosition,2,a.FLOAT,!1,c,0),a.vertexAttribPointer(this.shader.aPositionCoord,2,a.FLOAT,!1,c,8),a.vertexAttribPointer(this.shader.aScale,2,a.FLOAT,!1,c,16),a.vertexAttribPointer(this.shader.aRotation,1,a.FLOAT,!1,c,24),a.vertexAttribPointer(this.shader.aTextureCoord,2,a.FLOAT,!1,c,28),a.vertexAttribPointer(this.shader.colorAttribute,1,a.FLOAT,!1,c,36)},b.WebGLFilterManager=function(){this.filterStack=[],this.offsetX=0,this.offsetY=0},b.WebGLFilterManager.prototype.constructor=b.WebGLFilterManager,b.WebGLFilterManager.prototype.setContext=function(a){this.gl=a,this.texturePool=[],this.initShaderBuffers()},b.WebGLFilterManager.prototype.begin=function(a,b){this.renderSession=a,this.defaultShader=a.shaderManager.defaultShader;var c=this.renderSession.projection;this.width=2*c.x,this.height=2*-c.y,this.buffer=b},b.WebGLFilterManager.prototype.pushFilter=function(a){var c=this.gl,d=this.renderSession.projection,e=this.renderSession.offset;a._filterArea=a.target.filterArea||a.target.getBounds(),a._previous_stencil_mgr=this.renderSession.stencilManager,this.renderSession.stencilManager=new b.WebGLStencilManager,this.renderSession.stencilManager.setContext(c),c.disable(c.STENCIL_TEST),this.filterStack.push(a);var f=a.filterPasses[0];this.offsetX+=a._filterArea.x,this.offsetY+=a._filterArea.y;var g=this.texturePool.pop();g?g.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution):g=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),c.bindTexture(c.TEXTURE_2D,g.texture);var h=a._filterArea,i=f.padding;h.x-=i,h.y-=i,h.width+=2*i,h.height+=2*i,h.x<0&&(h.x=0),h.width>this.width&&(h.width=this.width),h.y<0&&(h.y=0),h.height>this.height&&(h.height=this.height),c.bindFramebuffer(c.FRAMEBUFFER,g.frameBuffer),c.viewport(0,0,h.width*this.renderSession.resolution,h.height*this.renderSession.resolution),d.x=h.width/2,d.y=-h.height/2,e.x=-h.x,e.y=-h.y,c.colorMask(!0,!0,!0,!0),c.clearColor(0,0,0,0),c.clear(c.COLOR_BUFFER_BIT),a._glFilterTexture=g},b.WebGLFilterManager.prototype.popFilter=function(){var a=this.gl,c=this.filterStack.pop(),d=c._filterArea,e=c._glFilterTexture,f=this.renderSession.projection,g=this.renderSession.offset;if(c.filterPasses.length>1){a.viewport(0,0,d.width*this.renderSession.resolution,d.height*this.renderSession.resolution),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),this.vertexArray[0]=0,this.vertexArray[1]=d.height,this.vertexArray[2]=d.width,this.vertexArray[3]=d.height,this.vertexArray[4]=0,this.vertexArray[5]=0,this.vertexArray[6]=d.width,this.vertexArray[7]=0,a.bufferSubData(a.ARRAY_BUFFER,0,this.vertexArray),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),this.uvArray[2]=d.width/this.width,this.uvArray[5]=d.height/this.height,this.uvArray[6]=d.width/this.width,this.uvArray[7]=d.height/this.height,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvArray);var h=e,i=this.texturePool.pop();i||(i=new b.FilterTexture(this.gl,this.width*this.renderSession.resolution,this.height*this.renderSession.resolution)),i.resize(this.width*this.renderSession.resolution,this.height*this.renderSession.resolution),a.bindFramebuffer(a.FRAMEBUFFER,i.frameBuffer),a.clear(a.COLOR_BUFFER_BIT),a.disable(a.BLEND);for(var j=0;j0?a.enable(a.STENCIL_TEST):a.disable(a.STENCIL_TEST),this.applyFilterPass(m,d,n,o),this.texturePool.push(e),c._glFilterTexture=null},b.WebGLFilterManager.prototype.applyFilterPass=function(a,c,d,e){var f=this.gl,g=a.shaders[f.id];g||(g=new b.PixiShader(f),g.fragmentSrc=a.fragmentSrc,g.uniforms=a.uniforms,g.init(),a.shaders[f.id]=g),this.renderSession.shaderManager.setShader(g),f.uniform2f(g.projectionVector,d/2,-e/2),f.uniform2f(g.offsetVector,0,0),a.uniforms.dimensions&&(a.uniforms.dimensions.value[0]=this.width,a.uniforms.dimensions.value[1]=this.height,a.uniforms.dimensions.value[2]=this.vertexArray[0],a.uniforms.dimensions.value[3]=this.vertexArray[5]),g.syncUniforms(),f.bindBuffer(f.ARRAY_BUFFER,this.vertexBuffer),f.vertexAttribPointer(g.aVertexPosition,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.uvBuffer),f.vertexAttribPointer(g.aTextureCoord,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ARRAY_BUFFER,this.colorBuffer),f.vertexAttribPointer(g.colorAttribute,2,f.FLOAT,!1,0,0),f.bindBuffer(f.ELEMENT_ARRAY_BUFFER,this.indexBuffer),f.drawElements(f.TRIANGLES,6,f.UNSIGNED_SHORT,0),this.renderSession.drawCount++},b.WebGLFilterManager.prototype.initShaderBuffers=function(){var a=this.gl;this.vertexBuffer=a.createBuffer(),this.uvBuffer=a.createBuffer(),this.colorBuffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.vertexArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer),a.bufferData(a.ARRAY_BUFFER,this.vertexArray,a.STATIC_DRAW),this.uvArray=new b.Float32Array([0,0,1,0,0,1,1,1]),a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer),a.bufferData(a.ARRAY_BUFFER,this.uvArray,a.STATIC_DRAW),this.colorArray=new b.Float32Array([1,16777215,1,16777215,1,16777215,1,16777215]),a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer),a.bufferData(a.ARRAY_BUFFER,this.colorArray,a.STATIC_DRAW),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array([0,1,2,1,3,2]),a.STATIC_DRAW)},b.WebGLFilterManager.prototype.destroy=function(){var a=this.gl;this.filterStack=null,this.offsetX=0,this.offsetY=0;for(var b=0;b=0;a--){var c=this._glTextures[a],d=b.glContexts[a];d&&c&&d.deleteTexture(c)}this._glTextures.length=0,this.dirty()},b.BaseTexture.fromImage=function(a,c,d){var e=b.BaseTextureCache[a];if(void 0===c&&-1===a.indexOf("data:")&&(c=!0),!e){var f=new Image;c&&(f.crossOrigin=""),f.src=a,e=new b.BaseTexture(f,d),e.imageUrl=a,b.BaseTextureCache[a]=e,-1!==a.indexOf(b.RETINA_PREFIX+".")&&(e.resolution=2)}return e},b.BaseTexture.fromCanvas=function(a,c){a._pixiId||(a._pixiId="canvas_"+b.TextureCacheIdGenerator++),0===a.width&&(a.width=1),0===a.height&&(a.height=1);var d=b.BaseTextureCache[a._pixiId];return d||(d=new b.BaseTexture(a,c),b.BaseTextureCache[a._pixiId]=d),d},b.TextureCache={},b.FrameCache={},b.TextureSilentFail=!1,b.TextureCacheIdGenerator=0,b.Texture=function(a,c,d,e){this.noFrame=!1,c||(this.noFrame=!0,c=new b.Rectangle(0,0,1,1)),a instanceof b.Texture&&(a=a.baseTexture),this.baseTexture=a,this.frame=c,this.trim=e,this.valid=!1,this.isTiling=!1,this.requiresUpdate=!1,this.requiresReTint=!1,this._uvs=null,this.width=0,this.height=0,this.crop=d||new b.Rectangle(0,0,1,1),a.hasLoaded&&(this.noFrame&&(c=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(c))},b.Texture.prototype.constructor=b.Texture,b.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;this.noFrame&&(this.frame=new b.Rectangle(0,0,a.width,a.height)),this.setFrame(this.frame)},b.Texture.prototype.destroy=function(a){a&&this.baseTexture.destroy(),this.valid=!1},b.Texture.prototype.setFrame=function(a){if(this.noFrame=!1,this.frame=a,this.width=a.width,this.height=a.height,this.crop.x=a.x,this.crop.y=a.y,this.crop.width=a.width,this.crop.height=a.height,!this.trim&&(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)){if(!b.TextureSilentFail)throw new Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);return void(this.valid=!1)}this.valid=a&&a.width&&a.height&&this.baseTexture.source&&this.baseTexture.hasLoaded,this.trim&&(this.width=this.trim.width,this.height=this.trim.height,this.frame.width=this.trim.width,this.frame.height=this.trim.height),this.valid&&this._updateUvs()},b.Texture.prototype._updateUvs=function(){this._uvs||(this._uvs=new b.TextureUvs);var a=this.crop,c=this.baseTexture.width,d=this.baseTexture.height;this._uvs.x0=a.x/c,this._uvs.y0=a.y/d, +this._uvs.x1=(a.x+a.width)/c,this._uvs.y1=a.y/d,this._uvs.x2=(a.x+a.width)/c,this._uvs.y2=(a.y+a.height)/d,this._uvs.x3=a.x/c,this._uvs.y3=(a.y+a.height)/d},b.Texture.fromImage=function(a,c,d){var e=b.TextureCache[a];return e||(e=new b.Texture(b.BaseTexture.fromImage(a,c,d)),b.TextureCache[a]=e),e},b.Texture.fromFrame=function(a){var c=b.TextureCache[a];if(!c)throw new Error('The frameId "'+a+'" does not exist in the texture cache ');return c},b.Texture.fromCanvas=function(a,c){var d=b.BaseTexture.fromCanvas(a,c);return new b.Texture(d)},b.Texture.addTextureToCache=function(a,c){b.TextureCache[c]=a},b.Texture.removeTextureFromCache=function(a){var c=b.TextureCache[a];return delete b.TextureCache[a],delete b.BaseTextureCache[a],c},b.TextureUvs=function(){this.x0=0,this.y0=0,this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.x3=0,this.y3=0},b.RenderTexture=function(a,c,d,e,f){if(this.width=a||100,this.height=c||100,this.resolution=f||1,this.frame=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.crop=new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution),this.baseTexture=new b.BaseTexture,this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution,this.baseTexture._glTextures=[],this.baseTexture.resolution=this.resolution,this.baseTexture.scaleMode=e||b.scaleModes.DEFAULT,this.baseTexture.hasLoaded=!0,b.Texture.call(this,this.baseTexture,new b.Rectangle(0,0,this.width*this.resolution,this.height*this.resolution)),this.renderer=d||b.defaultRenderer,this.renderer.type===b.WEBGL_RENDERER){var g=this.renderer.gl;this.baseTexture._dirty[g.id]=!1,this.textureBuffer=new b.FilterTexture(g,this.width,this.height,this.baseTexture.scaleMode),this.baseTexture._glTextures[g.id]=this.textureBuffer.texture,this.render=this.renderWebGL,this.projection=new b.Point(.5*this.width,.5*-this.height)}else this.render=this.renderCanvas,this.textureBuffer=new b.CanvasBuffer(this.width*this.resolution,this.height*this.resolution),this.baseTexture.source=this.textureBuffer.canvas;this.valid=!0,this.tempMatrix=new Phaser.Matrix,this._updateUvs()},b.RenderTexture.prototype=Object.create(b.Texture.prototype),b.RenderTexture.prototype.constructor=b.RenderTexture,b.RenderTexture.prototype.resize=function(a,c,d){(a!==this.width||c!==this.height)&&(this.valid=a>0&&c>0,this.width=a,this.height=c,this.frame.width=this.crop.width=a*this.resolution,this.frame.height=this.crop.height=c*this.resolution,d&&(this.baseTexture.width=this.width*this.resolution,this.baseTexture.height=this.height*this.resolution),this.renderer.type===b.WEBGL_RENDERER&&(this.projection.x=this.width/2,this.projection.y=-this.height/2),this.valid&&this.textureBuffer.resize(this.width,this.height))},b.RenderTexture.prototype.clear=function(){this.valid&&(this.renderer.type===b.WEBGL_RENDERER&&this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER,this.textureBuffer.frameBuffer),this.textureBuffer.clear())},b.RenderTexture.prototype.renderWebGL=function(a,b,c){if(this.valid&&0!==a.alpha){var d=a.worldTransform;d.identity(),d.translate(0,2*this.projection.y),b&&d.append(b),d.scale(1,-1);for(var e=0;ea;a++)this.shaders[a].dirty=!0},b.Strip=function(a){b.DisplayObjectContainer.call(this),this.texture=a,this.uvs=new b.Float32Array([0,1,1,1,1,0,0,1]),this.vertices=new b.Float32Array([0,0,100,0,100,100,0,100]),this.colors=new b.Float32Array([1,1,1,1]),this.indices=new b.Uint16Array([0,1,2,3]),this.dirty=!0,this.blendMode=b.blendModes.NORMAL,this.canvasPadding=0,this.drawMode=b.Strip.DrawModes.TRIANGLE_STRIP},b.Strip.prototype=Object.create(b.DisplayObjectContainer.prototype),b.Strip.prototype.constructor=b.Strip,b.Strip.prototype._renderWebGL=function(a){!this.visible||this.alpha<=0||(a.spriteBatch.stop(),this._vertexBuffer||this._initWebGL(a),a.shaderManager.setShader(a.shaderManager.stripShader),this._renderStrip(a),a.spriteBatch.start())},b.Strip.prototype._initWebGL=function(a){var b=a.gl;this._vertexBuffer=b.createBuffer(),this._indexBuffer=b.createBuffer(),this._uvBuffer=b.createBuffer(),this._colorBuffer=b.createBuffer(),b.bindBuffer(b.ARRAY_BUFFER,this._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,this.vertices,b.DYNAMIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._uvBuffer),b.bufferData(b.ARRAY_BUFFER,this.uvs,b.STATIC_DRAW),b.bindBuffer(b.ARRAY_BUFFER,this._colorBuffer),b.bufferData(b.ARRAY_BUFFER,this.colors,b.STATIC_DRAW),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,this.indices,b.STATIC_DRAW)},b.Strip.prototype._renderStrip=function(a){var c=a.gl,d=a.projection,e=a.offset,f=a.shaderManager.stripShader,g=this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?c.TRIANGLE_STRIP:c.TRIANGLES;a.blendModeManager.setBlendMode(this.blendMode),c.uniformMatrix3fv(f.translationMatrix,!1,this.worldTransform.toArray(!0)),c.uniform2f(f.projectionVector,d.x,-d.y),c.uniform2f(f.offsetVector,-e.x,-e.y),c.uniform1f(f.alpha,this.worldAlpha),this.dirty?(this.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,this.vertices,c.STATIC_DRAW),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.bufferData(c.ARRAY_BUFFER,this.uvs,c.STATIC_DRAW),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,this.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,this._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,this.vertices),c.vertexAttribPointer(f.aVertexPosition,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,this._uvBuffer),c.vertexAttribPointer(f.aTextureCoord,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),this.texture.baseTexture._dirty[c.id]?a.renderer.updateTexture(this.texture.baseTexture):c.bindTexture(c.TEXTURE_2D,this.texture.baseTexture._glTextures[c.id]),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,this._indexBuffer)),c.drawElements(g,this.indices.length,c.UNSIGNED_SHORT,0)},b.Strip.prototype._renderCanvas=function(a){var c=a.context,d=this.worldTransform;a.roundPixels?c.setTransform(d.a,d.b,d.c,d.d,0|d.tx,0|d.ty):c.setTransform(d.a,d.b,d.c,d.d,d.tx,d.ty),this.drawMode===b.Strip.DrawModes.TRIANGLE_STRIP?this._renderCanvasTriangleStrip(c):this._renderCanvasTriangles(c)},b.Strip.prototype._renderCanvasTriangleStrip=function(a){var b=this.vertices,c=this.uvs,d=b.length/2;this.count++;for(var e=0;d-2>e;e++){var f=2*e;this._renderCanvasDrawTriangle(a,b,c,f,f+2,f+4)}},b.Strip.prototype._renderCanvasTriangles=function(a){var b=this.vertices,c=this.uvs,d=this.indices,e=d.length;this.count++;for(var f=0;e>f;f+=3){var g=2*d[f],h=2*d[f+1],i=2*d[f+2];this._renderCanvasDrawTriangle(a,b,c,g,h,i)}},b.Strip.prototype._renderCanvasDrawTriangle=function(a,b,c,d,e,f){var g=this.texture.baseTexture.source,h=this.texture.width,i=this.texture.height,j=b[d],k=b[e],l=b[f],m=b[d+1],n=b[e+1],o=b[f+1],p=c[d]*h,q=c[e]*h,r=c[f]*h,s=c[d+1]*i,t=c[e+1]*i,u=c[f+1]*i;if(this.canvasPadding>0){var v=this.canvasPadding/this.worldTransform.a,w=this.canvasPadding/this.worldTransform.d,x=(j+k+l)/3,y=(m+n+o)/3,z=j-x,A=m-y,B=Math.sqrt(z*z+A*A);j=x+z/B*(B+v),m=y+A/B*(B+w),z=k-x,A=n-y,B=Math.sqrt(z*z+A*A),k=x+z/B*(B+v),n=y+A/B*(B+w),z=l-x,A=o-y,B=Math.sqrt(z*z+A*A),l=x+z/B*(B+v),o=y+A/B*(B+w)}a.save(),a.beginPath(),a.moveTo(j,m),a.lineTo(k,n),a.lineTo(l,o),a.closePath(),a.clip();var C=p*t+s*r+q*u-t*r-s*q-p*u,D=j*t+s*l+k*u-t*l-s*k-j*u,E=p*k+j*r+q*l-k*r-j*q-p*l,F=p*t*l+s*k*r+j*q*u-j*t*r-s*q*l-p*k*u,G=m*t+s*o+n*u-t*o-s*n-m*u,H=p*n+m*r+q*o-n*r-m*q-p*o,I=p*t*o+s*n*r+m*q*u-m*t*r-s*q*o-p*n*u;a.transform(D/C,G/C,E/C,H/C,F/C,I/C),a.drawImage(g,0,0),a.restore()},b.Strip.prototype.renderStripFlat=function(a){var b=this.context,c=a.vertices,d=c.length/2;this.count++,b.beginPath();for(var e=1;d-2>e;e++){var f=2*e,g=c[f],h=c[f+2],i=c[f+4],j=c[f+1],k=c[f+3],l=c[f+5];b.moveTo(g,j),b.lineTo(h,k),b.lineTo(i,l)}b.fillStyle="#FF0000",b.fill(),b.closePath()},b.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},b.Strip.prototype.getBounds=function(a){for(var c=a||this.worldTransform,d=c.a,e=c.b,f=c.c,g=c.d,h=c.tx,i=c.ty,j=-(1/0),k=-(1/0),l=1/0,m=1/0,n=this.vertices,o=0,p=n.length;p>o;o+=2){var q=n[o],r=n[o+1],s=d*q+f*r+h,t=g*r+e*q+i;l=l>s?s:l,m=m>t?t:m,j=s>j?s:j,k=t>k?t:k}if(l===-(1/0)||k===1/0)return b.EmptyRectangle;var u=this._bounds;return u.x=l,u.width=j-l,u.y=m,u.height=k-m,this._currentBounds=u,u},b.Strip.DrawModes={TRIANGLE_STRIP:0,TRIANGLES:1},b.Rope=function(a,c){b.Strip.call(this,a),this.points=c,this.vertices=new b.Float32Array(4*c.length),this.uvs=new b.Float32Array(4*c.length),this.colors=new b.Float32Array(2*c.length),this.indices=new b.Uint16Array(2*c.length),this.refresh()},b.Rope.prototype=Object.create(b.Strip.prototype),b.Rope.prototype.constructor=b.Rope,b.Rope.prototype.refresh=function(){var a=this.points;if(!(a.length<1)){var b=this.uvs,c=a[0],d=this.indices,e=this.colors;this.count-=.2,b[0]=0,b[1]=0,b[2]=0,b[3]=1,e[0]=1,e[1]=1,d[0]=0,d[1]=1;for(var f,g,h,i=a.length,j=1;i>j;j++)f=a[j],g=4*j,h=j/(i-1),j%2?(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1):(b[g]=h,b[g+1]=0,b[g+2]=h,b[g+3]=1),g=2*j,e[g]=1,e[g+1]=1,g=2*j,d[g]=g,d[g+1]=g+1,c=f}},b.Rope.prototype.updateTransform=function(){var a=this.points;if(!(a.length<1)){var c,d=a[0],e={x:0,y:0};this.count-=.2;for(var f,g,h,i,j,k=this.vertices,l=a.length,m=0;l>m;m++)f=a[m],g=4*m,c=m1&&(h=1),i=Math.sqrt(e.x*e.x+e.y*e.y),j=this.texture.height/2,e.x/=i,e.y/=i,e.x*=j,e.y*=j,k[g]=f.x+e.x,k[g+1]=f.y+e.y,k[g+2]=f.x-e.x,k[g+3]=f.y-e.y,d=f;b.DisplayObjectContainer.prototype.updateTransform.call(this)}},b.Rope.prototype.setTexture=function(a){this.texture=a},b.TilingSprite=function(a,c,d){b.Sprite.call(this,a),this._width=c||128,this._height=d||128,this.tileScale=new b.Point(1,1),this.tileScaleOffset=new b.Point(1,1),this.tilePosition=new b.Point,this.renderable=!0,this.tint=16777215,this.textureDebug=!1,this.blendMode=b.blendModes.NORMAL,this.canvasBuffer=null,this.tilingTexture=null,this.tilePattern=null,this.refreshTexture=!0,this.frameWidth=0,this.frameHeight=0},b.TilingSprite.prototype=Object.create(b.Sprite.prototype),b.TilingSprite.prototype.constructor=b.TilingSprite,b.TilingSprite.prototype.setTexture=function(a){this.texture!==a&&(this.texture=a,this.refreshTexture=!0,this.cachedTint=16777215)},b.TilingSprite.prototype._renderWebGL=function(a){if(this.visible&&this.renderable&&0!==this.alpha){if(this._mask&&(a.spriteBatch.stop(),a.maskManager.pushMask(this.mask,a),a.spriteBatch.start()),this._filters&&(a.spriteBatch.flush(),a.filterManager.pushFilter(this._filterBlock)),this.refreshTexture){if(this.generateTilingTexture(!0,a),!this.tilingTexture)return;this.tilingTexture.needsUpdate&&(a.renderer.updateTexture(this.tilingTexture.baseTexture),this.tilingTexture.needsUpdate=!1)}a.spriteBatch.renderTilingSprite(this);for(var b=0;bn?n:x,x=x>p?p:x,x=x>r?r:x,x=x>t?t:x,y=y>o?o:y,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=n>v?n:v,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=o>w?o:w,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w;var z=this._bounds;return z.x=x,z.width=v-x,z.y=y,z.height=w-y,this._currentBounds=z,z},b.TilingSprite.prototype.destroy=function(){b.Sprite.prototype.destroy.call(this),this.canvasBuffer&&(this.canvasBuffer.destroy(),this.canvasBuffer=null),this.tileScale=null,this.tileScaleOffset=null,this.tilePosition=null,this.tilingTexture&&(this.tilingTexture.destroy(!0),this.tilingTexture=null)},Object.defineProperty(b.TilingSprite.prototype,"width",{get:function(){return this._width},set:function(a){this._width=a}}),Object.defineProperty(b.TilingSprite.prototype,"height",{get:function(){return this._height},set:function(a){this._height=a}}),"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=b),exports.PIXI=b):"undefined"!=typeof define&&define.amd?define("PIXI",function(){return a.PIXI=b}()):a.PIXI=b,b}.call(this),function(){function a(a,b){this._scaleFactor=a,this._deltaMode=b,this.originalEvent=null}var b=this,c=c||{VERSION:"2.4.7 RC1",GAMES:[],AUTO:0,CANVAS:1,WEBGL:2,HEADLESS:3,NONE:0,LEFT:1,RIGHT:2,UP:3,DOWN:4,SPRITE:0,BUTTON:1,IMAGE:2,GRAPHICS:3,TEXT:4,TILESPRITE:5,BITMAPTEXT:6,GROUP:7,RENDERTEXTURE:8,TILEMAP:9,TILEMAPLAYER:10,EMITTER:11,POLYGON:12,BITMAPDATA:13,CANVAS_FILTER:14,WEBGL_FILTER:15,ELLIPSE:16,SPRITEBATCH:17,RETROFONT:18,POINTER:19,ROPE:20,CIRCLE:21,RECTANGLE:22,LINE:23,MATRIX:24,POINT:25,ROUNDEDRECTANGLE:26,CREATURE:27,VIDEO:28,PENDING_ATLAS:-1,blendModes:{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},scaleModes:{DEFAULT:0,LINEAR:0,NEAREST:1},PIXI:PIXI||{}};if(Math.trunc||(Math.trunc=function(a){return 0>a?Math.ceil(a):Math.floor(a)}),Function.prototype.bind||(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;return c.prototype=function f(a){return a&&(f.prototype=a),this instanceof f?void 0:new f}(d.prototype),c}}()),Array.isArray||(Array.isArray=function(a){return"[object Array]"==Object.prototype.toString.call(a)}),Array.prototype.forEach||(Array.prototype.forEach=function(a){"use strict";if(void 0===this||null===this)throw new TypeError;var b=Object(this),c=b.length>>>0;if("function"!=typeof a)throw new TypeError;for(var d=arguments.length>=2?arguments[1]:void 0,e=0;c>e;e++)e in b&&a.call(d,b[e],e,b)}),"function"!=typeof window.Uint32Array&&"object"!=typeof window.Uint32Array){var d=function(a){var b=new Array;window[a]=function(a){if("number"==typeof a){Array.call(this,a),this.length=a;for(var b=0;bf&&(a=a[g]);)g=c[f],f++;return a?a[d]:null},setProperty:function(a,b,c){for(var d=b.split("."),e=d.pop(),f=d.length,g=1,h=d[0];f>g&&(a=a[h]);)h=d[g],g++;return a&&(a[e]=c),a},chanceRoll:function(a){return void 0===a&&(a=50),a>0&&100*Math.random()<=a},randomChoice:function(a,b){return Math.random()<.5?a:b},parseDimension:function(a,b){var c=0,d=0;return"string"==typeof a?"%"===a.substr(-1)?(c=parseInt(a,10)/100,d=0===b?window.innerWidth*c:window.innerHeight*c):d=parseInt(a,10):d=a,d},pad:function(a,b,c,d){if(void 0===b)var b=0;if(void 0===c)var c=" ";if(void 0===d)var d=3;var e=0;if(b+1>=a.length)switch(d){case 1:a=new Array(b+1-a.length).join(c)+a;break;case 3:var f=Math.ceil((e=b-a.length)/2),g=e-f;a=new Array(g+1).join(c)+a+new Array(f+1).join(c);break;default:a+=new Array(b+1-a.length).join(c)}return a},isPlainObject:function(a){if("object"!=typeof a||a.nodeType||a===a.window)return!1;try{if(a.constructor&&!{}.hasOwnProperty.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(b){return!1}return!0},extend:function(){var a,b,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;for("boolean"==typeof h&&(k=h,h=arguments[1]||{},i=2),j===i&&(h=this,--i);j>i;i++)if(null!=(a=arguments[i]))for(b in a)d=h[b],e=a[b],h!==e&&(k&&e&&(c.Utils.isPlainObject(e)||(f=Array.isArray(e)))?(f?(f=!1,g=d&&Array.isArray(d)?d:[]):g=d&&c.Utils.isPlainObject(d)?d:{},h[b]=c.Utils.extend(k,g,e)):void 0!==e&&(h[b]=e));return h},mixinPrototype:function(a,b,c){void 0===c&&(c=!1);for(var d=Object.keys(b),e=0;e0&&(this._radius=.5*d),this.type=c.CIRCLE},c.Circle.prototype={circumference:function(){return 2*(Math.PI*this._radius)},random:function(a){void 0===a&&(a=new c.Point);var b=2*Math.PI*Math.random(),d=Math.random()+Math.random(),e=d>1?2-d:d,f=e*Math.cos(b),g=e*Math.sin(b);return a.x=this.x+f*this.radius,a.y=this.y+g*this.radius,a},getBounds:function(){return new c.Rectangle(this.x-this.radius,this.y-this.radius,this.diameter,this.diameter)},setTo:function(a,b,c){return this.x=a,this.y=b,this._diameter=c,this._radius=.5*c,this},copyFrom:function(a){return this.setTo(a.x,a.y,a.diameter)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.diameter=this._diameter,a},distance:function(a,b){var d=c.Math.distance(this.x,this.y,a.x,a.y);return b?Math.round(d):d},clone:function(a){return void 0===a||null===a?a=new c.Circle(this.x,this.y,this.diameter):a.setTo(this.x,this.y,this.diameter),a},contains:function(a,b){return c.Circle.contains(this,a,b)},circumferencePoint:function(a,b,d){return c.Circle.circumferencePoint(this,a,b,d)},offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},toString:function(){return"[{Phaser.Circle (x="+this.x+" y="+this.y+" diameter="+this.diameter+" radius="+this.radius+")}]"}},c.Circle.prototype.constructor=c.Circle,Object.defineProperty(c.Circle.prototype,"diameter",{get:function(){return this._diameter},set:function(a){a>0&&(this._diameter=a,this._radius=.5*a)}}),Object.defineProperty(c.Circle.prototype,"radius",{get:function(){return this._radius},set:function(a){a>0&&(this._radius=a,this._diameter=2*a)}}),Object.defineProperty(c.Circle.prototype,"left",{get:function(){return this.x-this._radius},set:function(a){a>this.x?(this._radius=0,this._diameter=0):this.radius=this.x-a}}),Object.defineProperty(c.Circle.prototype,"right",{get:function(){return this.x+this._radius},set:function(a){athis.y?(this._radius=0,this._diameter=0):this.radius=this.y-a}}),Object.defineProperty(c.Circle.prototype,"bottom",{get:function(){return this.y+this._radius},set:function(a){a0?Math.PI*this._radius*this._radius:0}}),Object.defineProperty(c.Circle.prototype,"empty",{get:function(){return 0===this._diameter},set:function(a){a===!0&&this.setTo(0,0,0)}}),c.Circle.contains=function(a,b,c){if(a.radius>0&&b>=a.left&&b<=a.right&&c>=a.top&&c<=a.bottom){var d=(a.x-b)*(a.x-b),e=(a.y-c)*(a.y-c);return d+e<=a.radius*a.radius}return!1},c.Circle.equals=function(a,b){return a.x==b.x&&a.y==b.y&&a.diameter==b.diameter},c.Circle.intersects=function(a,b){return c.Math.distance(a.x,a.y,b.x,b.y)<=a.radius+b.radius},c.Circle.circumferencePoint=function(a,b,d,e){return void 0===d&&(d=!1),void 0===e&&(e=new c.Point),d===!0&&(b=c.Math.degToRad(b)),e.x=a.x+a.radius*Math.cos(b),e.y=a.y+a.radius*Math.sin(b),e},c.Circle.intersectsRectangle=function(a,b){var c=Math.abs(a.x-b.x-b.halfWidth),d=b.halfWidth+a.radius;if(c>d)return!1;var e=Math.abs(a.y-b.y-b.halfHeight),f=b.halfHeight+a.radius;if(e>f)return!1;if(c<=b.halfWidth||e<=b.halfHeight)return!0;var g=c-b.halfWidth,h=e-b.halfHeight,i=g*g,j=h*h,k=a.radius*a.radius;return k>=i+j},PIXI.Circle=c.Circle,c.Ellipse=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.ELLIPSE},c.Ellipse.prototype={setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},getBounds:function(){return new c.Rectangle(this.x-this.width,this.y-this.height,this.width,this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},clone:function(a){return void 0===a||null===a?a=new c.Ellipse(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a},contains:function(a,b){return c.Ellipse.contains(this,a,b)},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random()*Math.PI*2,d=Math.random();return a.x=Math.sqrt(d)*Math.cos(b),a.y=Math.sqrt(d)*Math.sin(b),a.x=this.x+a.x*this.width/2,a.y=this.y+a.y*this.height/2,a},toString:function(){return"[{Phaser.Ellipse (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+")}]"}},c.Ellipse.prototype.constructor=c.Ellipse,Object.defineProperty(c.Ellipse.prototype,"left",{get:function(){return this.x},set:function(a){this.x=a}}),Object.defineProperty(c.Ellipse.prototype,"right",{get:function(){return this.x+this.width},set:function(a){ad+e},PIXI.Ellipse=c.Ellipse,c.Line=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.start=new c.Point(a,b),this.end=new c.Point(d,e),this.type=c.LINE},c.Line.prototype={setTo:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(c,d),this},fromSprite:function(a,b,c){return void 0===c&&(c=!1),c?this.setTo(a.center.x,a.center.y,b.center.x,b.center.y):this.setTo(a.x,a.y,b.x,b.y)},fromAngle:function(a,b,c,d){return this.start.setTo(a,b),this.end.setTo(a+Math.cos(c)*d,b+Math.sin(c)*d),this},rotate:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2;return this.start.rotate(c,d,a,b),this.end.rotate(c,d,a,b),this},rotateAround:function(a,b,c,d){return this.start.rotate(a,b,c,d),this.end.rotate(a,b,c,d),this},intersects:function(a,b,d){return c.Line.intersectsPoints(this.start,this.end,a.start,a.end,b,d)},reflect:function(a){return c.Line.reflect(this,a)},midPoint:function(a){return void 0===a&&(a=new c.Point),a.x=(this.start.x+this.end.x)/2,a.y=(this.start.y+this.end.y)/2,a},centerOn:function(a,b){var c=(this.start.x+this.end.x)/2,d=(this.start.y+this.end.y)/2,e=a-c,f=b-d;this.start.add(e,f),this.end.add(e,f)},pointOnLine:function(a,b){return(a-this.start.x)*(this.end.y-this.start.y)===(this.end.x-this.start.x)*(b-this.start.y)},pointOnSegment:function(a,b){var c=Math.min(this.start.x,this.end.x),d=Math.max(this.start.x,this.end.x),e=Math.min(this.start.y,this.end.y),f=Math.max(this.start.y,this.end.y);return this.pointOnLine(a,b)&&a>=c&&d>=a&&b>=e&&f>=b},random:function(a){void 0===a&&(a=new c.Point);var b=Math.random();return a.x=this.start.x+b*(this.end.x-this.start.x),a.y=this.start.y+b*(this.end.y-this.start.y),a},coordinatesOnLine:function(a,b){void 0===a&&(a=1),void 0===b&&(b=[]);var c=Math.round(this.start.x),d=Math.round(this.start.y),e=Math.round(this.end.x),f=Math.round(this.end.y),g=Math.abs(e-c),h=Math.abs(f-d),i=e>c?1:-1,j=f>d?1:-1,k=g-h;b.push([c,d]);for(var l=1;c!=e||d!=f;){var m=k<<1;m>-h&&(k-=h,c+=i),g>m&&(k+=g,d+=j),l%a===0&&b.push([c,d]),l++}return b},clone:function(a){return void 0===a||null===a?a=new c.Line(this.start.x,this.start.y,this.end.x,this.end.y):a.setTo(this.start.x,this.start.y,this.end.x,this.end.y),a}},Object.defineProperty(c.Line.prototype,"length",{get:function(){return Math.sqrt((this.end.x-this.start.x)*(this.end.x-this.start.x)+(this.end.y-this.start.y)*(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"angle",{get:function(){return Math.atan2(this.end.y-this.start.y,this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"slope",{get:function(){return(this.end.y-this.start.y)/(this.end.x-this.start.x)}}),Object.defineProperty(c.Line.prototype,"perpSlope",{get:function(){return-((this.end.x-this.start.x)/(this.end.y-this.start.y))}}),Object.defineProperty(c.Line.prototype,"x",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"y",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"left",{get:function(){return Math.min(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"right",{get:function(){return Math.max(this.start.x,this.end.x)}}),Object.defineProperty(c.Line.prototype,"top",{get:function(){return Math.min(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"bottom",{get:function(){return Math.max(this.start.y,this.end.y)}}),Object.defineProperty(c.Line.prototype,"width",{get:function(){return Math.abs(this.start.x-this.end.x)}}),Object.defineProperty(c.Line.prototype,"height",{get:function(){return Math.abs(this.start.y-this.end.y)}}),Object.defineProperty(c.Line.prototype,"normalX",{get:function(){return Math.cos(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalY",{get:function(){return Math.sin(this.angle-1.5707963267948966)}}),Object.defineProperty(c.Line.prototype,"normalAngle",{get:function(){return c.Math.wrap(this.angle-1.5707963267948966,-Math.PI,Math.PI)}}),c.Line.intersectsPoints=function(a,b,d,e,f,g){void 0===f&&(f=!0),void 0===g&&(g=new c.Point);var h=b.y-a.y,i=e.y-d.y,j=a.x-b.x,k=d.x-e.x,l=b.x*a.y-a.x*b.y,m=e.x*d.y-d.x*e.y,n=h*k-i*j;if(0===n)return null;if(g.x=(j*m-k*l)/n,g.y=(i*l-h*m)/n,f){var o=(e.y-d.y)*(b.x-a.x)-(e.x-d.x)*(b.y-a.y),p=((e.x-d.x)*(a.y-d.y)-(e.y-d.y)*(a.x-d.x))/o,q=((b.x-a.x)*(a.y-d.y)-(b.y-a.y)*(a.x-d.x))/o;return p>=0&&1>=p&&q>=0&&1>=q?g:null}return g},c.Line.intersects=function(a,b,d,e){return c.Line.intersectsPoints(a.start,a.end,b.start,b.end,d,e)},c.Line.reflect=function(a,b){return 2*b.normalAngle-3.141592653589793-a.angle},c.Matrix=function(a,b,d,e,f,g){a=a||1,b=b||0,d=d||0,e=e||1,f=f||0,g=g||0,this.a=a,this.b=b,this.c=d,this.d=e,this.tx=f,this.ty=g,this.type=c.MATRIX},c.Matrix.prototype={fromArray:function(a){return this.setTo(a[0],a[1],a[3],a[4],a[2],a[5])},setTo:function(a,b,c,d,e,f){return this.a=a,this.b=b,this.c=c,this.d=d,this.tx=e,this.ty=f,this},clone:function(a){return void 0===a||null===a?a=new c.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty):(a.a=this.a,a.b=this.b,a.c=this.c,a.d=this.d,a.tx=this.tx,a.ty=this.ty),a},copyTo:function(a){return a.copyFrom(this),a},copyFrom:function(a){return this.a=a.a,this.b=a.b,this.c=a.c,this.d=a.d,this.tx=a.tx,this.ty=a.ty,this},toArray:function(a,b){return void 0===b&&(b=new PIXI.Float32Array(9)),a?(b[0]=this.a,b[1]=this.b,b[2]=0,b[3]=this.c, +b[4]=this.d,b[5]=0,b[6]=this.tx,b[7]=this.ty,b[8]=1):(b[0]=this.a,b[1]=this.c,b[2]=this.tx,b[3]=this.b,b[4]=this.d,b[5]=this.ty,b[6]=0,b[7]=0,b[8]=1),b},apply:function(a,b){return void 0===b&&(b=new c.Point),b.x=this.a*a.x+this.c*a.y+this.tx,b.y=this.b*a.x+this.d*a.y+this.ty,b},applyInverse:function(a,b){void 0===b&&(b=new c.Point);var d=1/(this.a*this.d+this.c*-this.b),e=a.x,f=a.y;return b.x=this.d*d*e+-this.c*d*f+(this.ty*this.c-this.tx*this.d)*d,b.y=this.a*d*f+-this.b*d*e+(-this.ty*this.a+this.tx*this.b)*d,b},translate:function(a,b){return this.tx+=a,this.ty+=b,this},scale:function(a,b){return this.a*=a,this.d*=b,this.c*=a,this.b*=b,this.tx*=a,this.ty*=b,this},rotate:function(a){var b=Math.cos(a),c=Math.sin(a),d=this.a,e=this.c,f=this.tx;return this.a=d*b-this.b*c,this.b=d*c+this.b*b,this.c=e*b-this.d*c,this.d=e*c+this.d*b,this.tx=f*b-this.ty*c,this.ty=f*c+this.ty*b,this},append:function(a){var b=this.a,c=this.b,d=this.c,e=this.d;return this.a=a.a*b+a.b*d,this.b=a.a*c+a.b*e,this.c=a.c*b+a.d*d,this.d=a.c*c+a.d*e,this.tx=a.tx*b+a.ty*d+this.tx,this.ty=a.tx*c+a.ty*e+this.ty,this},identity:function(){return this.setTo(1,0,0,1,0,0)}},c.identityMatrix=new c.Matrix,PIXI.Matrix=c.Matrix,PIXI.identityMatrix=c.identityMatrix,c.Point=function(a,b){a=a||0,b=b||0,this.x=a,this.y=b,this.type=c.POINT},c.Point.prototype={copyFrom:function(a){return this.setTo(a.x,a.y)},invert:function(){return this.setTo(this.y,this.x)},setTo:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},set:function(a,b){return this.x=a||0,this.y=b||(0!==b?this.x:0),this},add:function(a,b){return this.x+=a,this.y+=b,this},subtract:function(a,b){return this.x-=a,this.y-=b,this},multiply:function(a,b){return this.x*=a,this.y*=b,this},divide:function(a,b){return this.x/=a,this.y/=b,this},clampX:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this},clampY:function(a,b){return this.y=c.Math.clamp(this.y,a,b),this},clamp:function(a,b){return this.x=c.Math.clamp(this.x,a,b),this.y=c.Math.clamp(this.y,a,b),this},clone:function(a){return void 0===a||null===a?a=new c.Point(this.x,this.y):a.setTo(this.x,this.y),a},copyTo:function(a){return a.x=this.x,a.y=this.y,a},distance:function(a,b){return c.Point.distance(this,a,b)},equals:function(a){return a.x===this.x&&a.y===this.y},angle:function(a,b){return void 0===b&&(b=!1),b?c.Math.radToDeg(Math.atan2(a.y-this.y,a.x-this.x)):Math.atan2(a.y-this.y,a.x-this.x)},rotate:function(a,b,d,e,f){return c.Point.rotate(this,a,b,d,e,f)},getMagnitude:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},getMagnitudeSq:function(){return this.x*this.x+this.y*this.y},setMagnitude:function(a){return this.normalize().multiply(a,a)},normalize:function(){if(!this.isZero()){var a=this.getMagnitude();this.x/=a,this.y/=a}return this},isZero:function(){return 0===this.x&&0===this.y},dot:function(a){return this.x*a.x+this.y*a.y},cross:function(a){return this.x*a.y-this.y*a.x},perp:function(){return this.setTo(-this.y,this.x)},rperp:function(){return this.setTo(this.y,-this.x)},normalRightHand:function(){return this.setTo(-1*this.y,this.x)},floor:function(){return this.setTo(Math.floor(this.x),Math.floor(this.y))},ceil:function(){return this.setTo(Math.ceil(this.x),Math.ceil(this.y))},toString:function(){return"[{Point (x="+this.x+" y="+this.y+")}]"}},c.Point.prototype.constructor=c.Point,c.Point.add=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x+b.x,d.y=a.y+b.y,d},c.Point.subtract=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x-b.x,d.y=a.y-b.y,d},c.Point.multiply=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x*b.x,d.y=a.y*b.y,d},c.Point.divide=function(a,b,d){return void 0===d&&(d=new c.Point),d.x=a.x/b.x,d.y=a.y/b.y,d},c.Point.equals=function(a,b){return a.x===b.x&&a.y===b.y},c.Point.angle=function(a,b){return Math.atan2(a.y-b.y,a.x-b.x)},c.Point.negative=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.x,-a.y)},c.Point.multiplyAdd=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+b.x*d,a.y+b.y*d)},c.Point.interpolate=function(a,b,d,e){return void 0===e&&(e=new c.Point),e.setTo(a.x+(b.x-a.x)*d,a.y+(b.y-a.y)*d)},c.Point.perp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-a.y,a.x)},c.Point.rperp=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(a.y,-a.x)},c.Point.distance=function(a,b,d){var e=c.Math.distance(a.x,a.y,b.x,b.y);return d?Math.round(e):e},c.Point.project=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b)/b.getMagnitudeSq();return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.projectUnit=function(a,b,d){void 0===d&&(d=new c.Point);var e=a.dot(b);return 0!==e&&d.setTo(e*b.x,e*b.y),d},c.Point.normalRightHand=function(a,b){return void 0===b&&(b=new c.Point),b.setTo(-1*a.y,a.x)},c.Point.normalize=function(a,b){void 0===b&&(b=new c.Point);var d=a.getMagnitude();return 0!==d&&b.setTo(a.x/d,a.y/d),b},c.Point.rotate=function(a,b,d,e,f,g){if(f&&(e=c.Math.degToRad(e)),void 0===g){a.subtract(b,d);var h=Math.sin(e),i=Math.cos(e),j=i*a.x-h*a.y,k=h*a.x+i*a.y;a.x=j+b,a.y=k+d}else{var l=e+Math.atan2(a.y-d,a.x-b);a.x=b+g*Math.cos(l),a.y=d+g*Math.sin(l)}return a},c.Point.centroid=function(a,b){if(void 0===b&&(b=new c.Point),"[object Array]"!==Object.prototype.toString.call(a))throw new Error("Phaser.Point. Parameter 'points' must be an array");var d=a.length;if(1>d)throw new Error("Phaser.Point. Parameter 'points' array must not be empty");if(1===d)return b.copyFrom(a[0]),b;for(var e=0;d>e;e++)c.Point.add(b,a[e],b);return b.divide(d,d),b},c.Point.parse=function(a,b,d){b=b||"x",d=d||"y";var e=new c.Point;return a[b]&&(e.x=parseInt(a[b],10)),a[d]&&(e.y=parseInt(a[d],10)),e},PIXI.Point=c.Point,c.Polygon=function(){this.area=0,this._points=[],arguments.length>0&&this.setTo.apply(this,arguments),this.closed=!0,this.type=c.POLYGON},c.Polygon.prototype={toNumberArray:function(a){void 0===a&&(a=[]);for(var b=0;b=h&&j>b||b>=j&&h>b)&&(i-g)*(b-h)/(j-h)+g>a&&(d=!d)}return d},setTo:function(a){if(this.area=0,this._points=[],arguments.length>0){Array.isArray(a)||(a=Array.prototype.slice.call(arguments));for(var b=Number.MAX_VALUE,c=0,d=a.length;d>c;c++){if("number"==typeof a[c]){var e=new PIXI.Point(a[c],a[c+1]);c++}else if(Array.isArray(a[c]))var e=new PIXI.Point(a[c][0],a[c][1]);else var e=new PIXI.Point(a[c].x,a[c].y);this._points.push(e),e.yf;f++)b=this._points[f],c=f===g-1?this._points[0]:this._points[f+1],d=(b.y-a+(c.y-a))/2,e=b.x-c.x,this.area+=d*e;return this.area}},c.Polygon.prototype.constructor=c.Polygon,Object.defineProperty(c.Polygon.prototype,"points",{get:function(){return this._points},set:function(a){null!=a?this.setTo(a):this.setTo()}}),PIXI.Polygon=c.Polygon,c.Rectangle=function(a,b,d,e){a=a||0,b=b||0,d=d||0,e=e||0,this.x=a,this.y=b,this.width=d,this.height=e,this.type=c.RECTANGLE},c.Rectangle.prototype={offset:function(a,b){return this.x+=a,this.y+=b,this},offsetPoint:function(a){return this.offset(a.x,a.y)},setTo:function(a,b,c,d){return this.x=a,this.y=b,this.width=c,this.height=d,this},scale:function(a,b){return void 0===b&&(b=a),this.width*=a,this.height*=b,this},centerOn:function(a,b){return this.centerX=a,this.centerY=b,this},floor:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y)},floorAll:function(){this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.width=Math.floor(this.width),this.height=Math.floor(this.height)},ceil:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y)},ceilAll:function(){this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.width=Math.ceil(this.width),this.height=Math.ceil(this.height)},copyFrom:function(a){return this.setTo(a.x,a.y,a.width,a.height)},copyTo:function(a){return a.x=this.x,a.y=this.y,a.width=this.width,a.height=this.height,a},inflate:function(a,b){return c.Rectangle.inflate(this,a,b)},size:function(a){return c.Rectangle.size(this,a)},resize:function(a,b){return this.width=a,this.height=b,this},clone:function(a){return c.Rectangle.clone(this,a)},contains:function(a,b){return c.Rectangle.contains(this,a,b)},containsRect:function(a){return c.Rectangle.containsRect(a,this)},equals:function(a){return c.Rectangle.equals(this,a)},intersection:function(a,b){return c.Rectangle.intersection(this,a,b)},intersects:function(a){return c.Rectangle.intersects(this,a)},intersectsRaw:function(a,b,d,e,f){return c.Rectangle.intersectsRaw(this,a,b,d,e,f)},union:function(a,b){return c.Rectangle.union(this,a,b)},random:function(a){return void 0===a&&(a=new c.Point),a.x=this.randomX,a.y=this.randomY,a},toString:function(){return"[{Rectangle (x="+this.x+" y="+this.y+" width="+this.width+" height="+this.height+" empty="+this.empty+")}]"}},Object.defineProperty(c.Rectangle.prototype,"halfWidth",{get:function(){return Math.round(this.width/2)}}),Object.defineProperty(c.Rectangle.prototype,"halfHeight",{get:function(){return Math.round(this.height/2)}}),Object.defineProperty(c.Rectangle.prototype,"bottom",{get:function(){return this.y+this.height},set:function(a){a<=this.y?this.height=0:this.height=a-this.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomLeft",{get:function(){return new c.Point(this.x,this.bottom)},set:function(a){this.x=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"bottomRight",{get:function(){return new c.Point(this.right,this.bottom)},set:function(a){this.right=a.x,this.bottom=a.y}}),Object.defineProperty(c.Rectangle.prototype,"left",{get:function(){return this.x},set:function(a){a>=this.right?this.width=0:this.width=this.right-a,this.x=a}}),Object.defineProperty(c.Rectangle.prototype,"right",{get:function(){return this.x+this.width},set:function(a){a<=this.x?this.width=0:this.width=a-this.x}}),Object.defineProperty(c.Rectangle.prototype,"volume",{get:function(){return this.width*this.height}}),Object.defineProperty(c.Rectangle.prototype,"perimeter",{get:function(){return 2*this.width+2*this.height}}),Object.defineProperty(c.Rectangle.prototype,"centerX",{get:function(){return this.x+this.halfWidth},set:function(a){this.x=a-this.halfWidth}}),Object.defineProperty(c.Rectangle.prototype,"centerY",{get:function(){return this.y+this.halfHeight},set:function(a){this.y=a-this.halfHeight}}),Object.defineProperty(c.Rectangle.prototype,"randomX",{get:function(){return this.x+Math.random()*this.width}}),Object.defineProperty(c.Rectangle.prototype,"randomY",{get:function(){return this.y+Math.random()*this.height}}),Object.defineProperty(c.Rectangle.prototype,"top",{get:function(){return this.y},set:function(a){a>=this.bottom?(this.height=0,this.y=a):this.height=this.bottom-a}}),Object.defineProperty(c.Rectangle.prototype,"topLeft",{get:function(){return new c.Point(this.x,this.y)},set:function(a){this.x=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"topRight",{get:function(){return new c.Point(this.x+this.width,this.y)},set:function(a){this.right=a.x,this.y=a.y}}),Object.defineProperty(c.Rectangle.prototype,"empty",{get:function(){return!this.width||!this.height},set:function(a){a===!0&&this.setTo(0,0,0,0)}}),c.Rectangle.prototype.constructor=c.Rectangle,c.Rectangle.inflate=function(a,b,c){return a.x-=b,a.width+=2*b,a.y-=c,a.height+=2*c,a},c.Rectangle.inflatePoint=function(a,b){return c.Rectangle.inflate(a,b.x,b.y)},c.Rectangle.size=function(a,b){return void 0===b||null===b?b=new c.Point(a.width,a.height):b.setTo(a.width,a.height),b},c.Rectangle.clone=function(a,b){return void 0===b||null===b?b=new c.Rectangle(a.x,a.y,a.width,a.height):b.setTo(a.x,a.y,a.width,a.height),b},c.Rectangle.contains=function(a,b,c){return a.width<=0||a.height<=0?!1:b>=a.x&&b=a.y&&c=a&&a+c>e&&f>=b&&b+d>f},c.Rectangle.containsPoint=function(a,b){return c.Rectangle.contains(a,b.x,b.y)},c.Rectangle.containsRect=function(a,b){return a.volume>b.volume?!1:a.x>=b.x&&a.y>=b.y&&a.rightb.right||a.y>b.bottom)},c.Rectangle.intersectsRaw=function(a,b,c,d,e,f){return void 0===f&&(f=0),!(b>a.right+f||ca.bottom+f||ed&&(d=a.x),a.xf&&(f=a.y),a.y=c&&a<=c+this.width){var d=this.y;if(b>=d&&b<=d+this.height)return!0}return!1}},c.RoundedRectangle.prototype.constructor=c.RoundedRectangle,PIXI.RoundedRectangle=c.RoundedRectangle,c.Camera=function(a,b,d,e,f,g){this.game=a,this.world=a.world,this.id=0,this.view=new c.Rectangle(d,e,f,g),this.bounds=new c.Rectangle(d,e,f,g),this.deadzone=null,this.visible=!0,this.roundPx=!0,this.atLimit={x:!1,y:!1},this.target=null,this.displayObject=null,this.scale=null,this.totalInView=0,this.lerp=new c.Point(1,1),this.onShakeComplete=new c.Signal,this.onFlashComplete=new c.Signal,this.onFadeComplete=new c.Signal,this.fx=null,this._targetPosition=new c.Point,this._edge=0,this._position=new c.Point,this._shake={intensity:0,duration:0,horizontal:!1,vertical:!1,shakeBounds:!0,x:0,y:0},this._fxDuration=0,this._fxType=0},c.Camera.FOLLOW_LOCKON=0,c.Camera.FOLLOW_PLATFORMER=1,c.Camera.FOLLOW_TOPDOWN=2,c.Camera.FOLLOW_TOPDOWN_TIGHT=3,c.Camera.SHAKE_BOTH=4,c.Camera.SHAKE_HORIZONTAL=5,c.Camera.SHAKE_VERTICAL=6,c.Camera.ENABLE_FX=!0,c.Camera.prototype={boot:function(){this.displayObject=this.game.world,this.scale=this.game.world.scale,this.game.camera=this,c.Graphics&&c.Camera.ENABLE_FX&&(this.fx=new c.Graphics(this.game),this.game.stage.addChild(this.fx))},preUpdate:function(){this.totalInView=0},follow:function(a,b,d,e){void 0===b&&(b=c.Camera.FOLLOW_LOCKON),void 0===d&&(d=1),void 0===e&&(e=1),this.target=a,this.lerp.set(d,e);var f;switch(b){case c.Camera.FOLLOW_PLATFORMER:var g=this.width/8,h=this.height/3;this.deadzone=new c.Rectangle((this.width-g)/2,(this.height-h)/2-.25*h,g,h);break;case c.Camera.FOLLOW_TOPDOWN:f=Math.max(this.width,this.height)/4,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_TOPDOWN_TIGHT:f=Math.max(this.width,this.height)/8,this.deadzone=new c.Rectangle((this.width-f)/2,(this.height-f)/2,f,f);break;case c.Camera.FOLLOW_LOCKON:this.deadzone=null;break;default:this.deadzone=null}},unfollow:function(){this.target=null},focusOn:function(a){this.setPosition(Math.round(a.x-this.view.halfWidth),Math.round(a.y-this.view.halfHeight))},focusOnXY:function(a,b){this.setPosition(Math.round(a-this.view.halfWidth),Math.round(b-this.view.halfHeight))},shake:function(a,b,d,e,f){return void 0===a&&(a=.05),void 0===b&&(b=500),void 0===d&&(d=!0),void 0===e&&(e=c.Camera.SHAKE_BOTH),void 0===f&&(f=!0),!d&&this._shake.duration>0?!1:(this._shake.intensity=a,this._shake.duration=b,this._shake.shakeBounds=f,this._shake.x=0,this._shake.y=0,this._shake.horizontal=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_HORIZONTAL,this._shake.vertical=e===c.Camera.SHAKE_BOTH||e===c.Camera.SHAKE_VERTICAL,!0)},flash:function(a,b,c){return void 0===a&&(a=16777215),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=1,this._fxDuration=b,this._fxType=0,!0)},fade:function(a,b,c){return void 0===a&&(a=0),void 0===b&&(b=500),void 0===c&&(c=!1),!this.fx||!c&&this._fxDuration>0?!1:(this.fx.clear(),this.fx.beginFill(a),this.fx.drawRect(0,0,this.width,this.height),this.fx.endFill(),this.fx.alpha=0,this._fxDuration=b,this._fxType=1,!0)},update:function(){this._fxDuration>0&&this.updateFX(),this.target&&this.updateTarget(),this._shake.duration>0&&this.updateShake(),this.bounds&&this.checkBounds(),this.roundPx&&(this.view.floor(),this._shake.x=Math.floor(this._shake.x),this._shake.y=Math.floor(this._shake.y)),this.displayObject.position.x=-(this.view.x+this._shake.x),this.displayObject.position.y=-(this.view.y+this._shake.y)},updateFX:function(){0===this._fxType?(this.fx.alpha-=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha<=0&&(this._fxDuration=0,this.fx.alpha=0,this.onFlashComplete.dispatch())):(this.fx.alpha+=this.game.time.elapsedMS/this._fxDuration,this.fx.alpha>=1&&(this._fxDuration=0,this.fx.alpha=1,this.onFadeComplete.dispatch()))},updateShake:function(){this._shake.duration-=this.game.time.elapsedMS,this._shake.duration<=0?(this.onShakeComplete.dispatch(),this._shake.x=0,this._shake.y=0):(this._shake.horizontal&&(this._shake.x=this.game.rnd.frac()*this._shake.intensity*this.view.width*2-this._shake.intensity*this.view.width),this._shake.vertical&&(this._shake.y=this.game.rnd.frac()*this._shake.intensity*this.view.height*2-this._shake.intensity*this.view.height))},updateTarget:function(){this._targetPosition.copyFrom(this.target.world),this.deadzone?(this._edge=this._targetPosition.x-this.view.x,this._edgethis.deadzone.right&&(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.deadzone.right,this.lerp.x)),this._edge=this._targetPosition.y-this.view.y,this._edgethis.deadzone.bottom&&(this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.deadzone.bottom,this.lerp.y))):(this.view.x=this.game.math.linear(this.view.x,this._targetPosition.x-this.view.halfWidth,this.lerp.x),this.view.y=this.game.math.linear(this.view.y,this._targetPosition.y-this.view.halfHeight,this.lerp.y))},setBoundsToWorld:function(){this.bounds&&this.bounds.copyFrom(this.game.world.bounds)},checkBounds:function(){this.atLimit.x=!1,this.atLimit.y=!1;var a=this.view.x+this._shake.x,b=this.view.right+this._shake.x,c=this.view.y+this._shake.y,d=this.view.bottom+this._shake.y;a<=this.bounds.x*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.x*this.scale.x,this._shake.shakeBounds||(this._shake.x=0)),b>=this.bounds.right*this.scale.x&&(this.atLimit.x=!0,this.view.x=this.bounds.right*this.scale.x-this.width,this._shake.shakeBounds||(this._shake.x=0)),c<=this.bounds.top*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.top*this.scale.y,this._shake.shakeBounds||(this._shake.y=0)),d>=this.bounds.bottom*this.scale.y&&(this.atLimit.y=!0,this.view.y=this.bounds.bottom*this.scale.y-this.height,this._shake.shakeBounds||(this._shake.y=0))},setPosition:function(a,b){this.view.x=a,this.view.y=b,this.bounds&&this.checkBounds()},setSize:function(a,b){this.view.width=a,this.view.height=b},reset:function(){this.target=null,this.view.x=0,this.view.y=0,this._shake.duration=0,this.resetFX()},resetFX:function(){this.fx.clear(),this.fx.alpha=0,this._fxDuration=0}},c.Camera.prototype.constructor=c.Camera,Object.defineProperty(c.Camera.prototype,"x",{get:function(){return this.view.x},set:function(a){this.view.x=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"y",{get:function(){return this.view.y},set:function(a){this.view.y=a,this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"position",{get:function(){return this._position.set(this.view.x,this.view.y),this._position},set:function(a){"undefined"!=typeof a.x&&(this.view.x=a.x),"undefined"!=typeof a.y&&(this.view.y=a.y),this.bounds&&this.checkBounds()}}),Object.defineProperty(c.Camera.prototype,"width",{get:function(){return this.view.width},set:function(a){this.view.width=a}}),Object.defineProperty(c.Camera.prototype,"height",{get:function(){return this.view.height},set:function(a){this.view.height=a}}),c.State=function(){this.game=null,this.key="",this.add=null,this.make=null,this.camera=null,this.cache=null,this.input=null,this.load=null,this.math=null,this.sound=null,this.scale=null,this.stage=null,this.time=null,this.tweens=null,this.world=null,this.particles=null,this.physics=null,this.rnd=null},c.State.prototype={init:function(){},preload:function(){},loadUpdate:function(){},loadRender:function(){},create:function(){},update:function(){},preRender:function(){},render:function(){},resize:function(){},paused:function(){},resumed:function(){},pauseUpdate:function(){},shutdown:function(){}},c.State.prototype.constructor=c.State,c.StateManager=function(a,b){this.game=a,this.states={},this._pendingState=null,"undefined"!=typeof b&&null!==b&&(this._pendingState=b),this._clearWorld=!1,this._clearCache=!1,this._created=!1,this._args=[],this.current="",this.onStateChange=new c.Signal,this.onInitCallback=null,this.onPreloadCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPreRenderCallback=null,this.onLoadUpdateCallback=null,this.onLoadRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.onShutDownCallback=null},c.StateManager.prototype={boot:function(){this.game.onPause.add(this.pause,this),this.game.onResume.add(this.resume,this),null!==this._pendingState&&"string"!=typeof this._pendingState&&this.add("default",this._pendingState,!0)},add:function(a,b,d){void 0===d&&(d=!1);var e;return b instanceof c.State?e=b:"object"==typeof b?(e=b,e.game=this.game):"function"==typeof b&&(e=new b(this.game)),this.states[a]=e,d&&(this.game.isBooted?this.start(a):this._pendingState=a),e},remove:function(a){this.current===a&&(this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onPreRenderCallback=null,this.onRenderCallback=null,this.onResizeCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null),delete this.states[a]},start:function(a,b,c){void 0===b&&(b=!0),void 0===c&&(c=!1),this.checkState(a)&&(this._pendingState=a,this._clearWorld=b,this._clearCache=c,arguments.length>3&&(this._args=Array.prototype.splice.call(arguments,3)))},restart:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!1),this._pendingState=this.current,this._clearWorld=a,this._clearCache=b,arguments.length>2&&(this._args=Array.prototype.slice.call(arguments,2))},dummy:function(){},preUpdate:function(){if(this._pendingState&&this.game.isBooted){var a=this.current;if(this.clearCurrentState(),this.setCurrentState(this._pendingState),this.onStateChange.dispatch(this.current,a),this.current!==this._pendingState)return;this._pendingState=null,this.onPreloadCallback?(this.game.load.reset(!0),this.onPreloadCallback.call(this.callbackContext,this.game),0===this.game.load.totalQueuedFiles()&&0===this.game.load.totalQueuedPacks()?this.loadComplete():this.game.load.start()):this.loadComplete()}},clearCurrentState:function(){this.current&&(this.onShutDownCallback&&this.onShutDownCallback.call(this.callbackContext,this.game),this.game.tweens.removeAll(),this.game.camera.reset(),this.game.input.reset(!0),this.game.physics.clear(),this.game.time.removeAll(),this.game.scale.reset(this._clearWorld),this.game.debug&&this.game.debug.reset(),this._clearWorld&&(this.game.world.shutdown(),this._clearCache&&this.game.cache.destroy()))},checkState:function(a){return this.states[a]?this.states[a].preload||this.states[a].create||this.states[a].update||this.states[a].render?!0:(console.warn("Invalid Phaser State object given. Must contain at least a one of the required functions: preload, create, update or render"),!1):(console.warn("Phaser.StateManager - No state found with the key: "+a),!1)},link:function(a){this.states[a].game=this.game,this.states[a].add=this.game.add,this.states[a].make=this.game.make,this.states[a].camera=this.game.camera,this.states[a].cache=this.game.cache,this.states[a].input=this.game.input,this.states[a].load=this.game.load,this.states[a].math=this.game.math,this.states[a].sound=this.game.sound,this.states[a].scale=this.game.scale,this.states[a].state=this,this.states[a].stage=this.game.stage,this.states[a].time=this.game.time,this.states[a].tweens=this.game.tweens,this.states[a].world=this.game.world,this.states[a].particles=this.game.particles,this.states[a].rnd=this.game.rnd,this.states[a].physics=this.game.physics,this.states[a].key=a},unlink:function(a){this.states[a]&&(this.states[a].game=null,this.states[a].add=null,this.states[a].make=null,this.states[a].camera=null,this.states[a].cache=null,this.states[a].input=null,this.states[a].load=null,this.states[a].math=null,this.states[a].sound=null,this.states[a].scale=null,this.states[a].state=null,this.states[a].stage=null,this.states[a].time=null,this.states[a].tweens=null,this.states[a].world=null,this.states[a].particles=null,this.states[a].rnd=null,this.states[a].physics=null)},setCurrentState:function(a){this.callbackContext=this.states[a],this.link(a),this.onInitCallback=this.states[a].init||this.dummy,this.onPreloadCallback=this.states[a].preload||null,this.onLoadRenderCallback=this.states[a].loadRender||null,this.onLoadUpdateCallback=this.states[a].loadUpdate||null,this.onCreateCallback=this.states[a].create||null,this.onUpdateCallback=this.states[a].update||null,this.onPreRenderCallback=this.states[a].preRender||null,this.onRenderCallback=this.states[a].render||null,this.onResizeCallback=this.states[a].resize||null,this.onPausedCallback=this.states[a].paused||null,this.onResumedCallback=this.states[a].resumed||null,this.onPauseUpdateCallback=this.states[a].pauseUpdate||null,this.onShutDownCallback=this.states[a].shutdown||this.dummy,""!==this.current&&this.game.physics.reset(),this.current=a,this._created=!1,this.onInitCallback.apply(this.callbackContext,this._args),a===this._pendingState&&(this._args=[]),this.game._kickstart=!0},getCurrentState:function(){return this.states[this.current]},loadComplete:function(){this._created===!1&&this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game),this._created===!1&&this.onCreateCallback?(this._created=!0,this.onCreateCallback.call(this.callbackContext,this.game)):this._created=!0},pause:function(){this._created&&this.onPausedCallback&&this.onPausedCallback.call(this.callbackContext,this.game)},resume:function(){this._created&&this.onResumedCallback&&this.onResumedCallback.call(this.callbackContext,this.game)},update:function(){this._created?this.onUpdateCallback&&this.onUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},pauseUpdate:function(){this._created?this.onPauseUpdateCallback&&this.onPauseUpdateCallback.call(this.callbackContext,this.game):this.onLoadUpdateCallback&&this.onLoadUpdateCallback.call(this.callbackContext,this.game)},preRender:function(a){this._created&&this.onPreRenderCallback&&this.onPreRenderCallback.call(this.callbackContext,this.game,a)},resize:function(a,b){this.onResizeCallback&&this.onResizeCallback.call(this.callbackContext,a,b)},render:function(){this._created?this.onRenderCallback&&(this.game.renderType===c.CANVAS?(this.game.context.save(),this.game.context.setTransform(1,0,0,1,0,0),this.onRenderCallback.call(this.callbackContext,this.game),this.game.context.restore()):this.onRenderCallback.call(this.callbackContext,this.game)):this.onLoadRenderCallback&&this.onLoadRenderCallback.call(this.callbackContext,this.game)},destroy:function(){this._clearWorld=!0,this._clearCache=!0,this.clearCurrentState(),this.callbackContext=null,this.onInitCallback=null,this.onShutDownCallback=null,this.onPreloadCallback=null,this.onLoadRenderCallback=null,this.onLoadUpdateCallback=null,this.onCreateCallback=null,this.onUpdateCallback=null,this.onRenderCallback=null,this.onPausedCallback=null,this.onResumedCallback=null,this.onPauseUpdateCallback=null,this.game=null,this.states={},this._pendingState=null,this.current=""}},c.StateManager.prototype.constructor=c.StateManager,Object.defineProperty(c.StateManager.prototype,"created",{get:function(){return this._created}}),c.Signal=function(){},c.Signal.prototype={_bindings:null,_prevParams:null,memorize:!1,_shouldPropagate:!0,active:!0,_boundDispatch:!1,validateListener:function(a,b){if("function"!=typeof a)throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}",b))},_registerListener:function(a,b,d,e,f){var g,h=this._indexOfListener(a,d);if(-1!==h){if(g=this._bindings[h],g.isOnce()!==b)throw new Error("You cannot add"+(b?"":"Once")+"() then add"+(b?"Once":"")+"() the same listener without removing the relationship first.")}else g=new c.SignalBinding(this,a,b,d,e,f),this._addBinding(g);return this.memorize&&this._prevParams&&g.execute(this._prevParams),g},_addBinding:function(a){this._bindings||(this._bindings=[]);var b=this._bindings.length;do b--;while(this._bindings[b]&&a._priority<=this._bindings[b]._priority);this._bindings.splice(b+1,0,a)},_indexOfListener:function(a,b){if(!this._bindings)return-1;void 0===b&&(b=null);for(var c,d=this._bindings.length;d--;)if(c=this._bindings[d],c._listener===a&&c.context===b)return d;return-1},has:function(a,b){return-1!==this._indexOfListener(a,b)},add:function(a,b,c){this.validateListener(a,"add");var d=[];if(arguments.length>3)for(var e=3;e3)for(var e=3;ea||a>=this.children.length?-1:this.getChildAt(a)},c.Group.prototype.create=function(a,b,c,d,e){void 0===e&&(e=!0);var f=new this.classType(this.game,a,b,c,d);return f.exists=e,f.visible=e,f.alive=e,f.z=this.children.length,this.addChild(f),this.enableBody&&this.game.physics.enable(f,this.physicsBodyType,this.enableBodyDebug),f.events&&f.events.onAddedToGroup$dispatch(f,this),null===this.cursor&&(this.cursor=f),f},c.Group.prototype.createMultiple=function(a,b,c,d){void 0===d&&(d=!1);for(var e=0;a>e;e++)this.create(0,0,b,c,d)},c.Group.prototype.updateZ=function(){for(var a=this.children.length;a--;)this.children[a].z=a},c.Group.prototype.resetCursor=function(a){return void 0===a&&(a=0),a>this.children.length-1&&(a=0),this.cursor?(this.cursorIndex=a,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.next=function(){return this.cursor?(this.cursorIndex>=this.children.length-1?this.cursorIndex=0:this.cursorIndex++,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.previous=function(){return this.cursor?(0===this.cursorIndex?this.cursorIndex=this.children.length-1:this.cursorIndex--,this.cursor=this.children[this.cursorIndex],this.cursor):void 0},c.Group.prototype.swap=function(a,b){this.swapChildren(a,b),this.updateZ()},c.Group.prototype.bringToTop=function(a){return a.parent===this&&this.getIndex(a)0&&(this.remove(a,!1,!0),this.addAt(a,0,!0)),a},c.Group.prototype.moveUp=function(a){if(a.parent===this&&this.getIndex(a)0){var b=this.getIndex(a),c=this.getAt(b-1);c&&this.swap(a,c)}return a},c.Group.prototype.xy=function(a,b,c){return 0>a||a>this.children.length?-1:(this.getChildAt(a).x=b,void(this.getChildAt(a).y=c))},c.Group.prototype.reverse=function(){this.children.reverse(),this.updateZ()},c.Group.prototype.getIndex=function(a){return this.children.indexOf(a)},c.Group.prototype.getByName=function(a){for(var b=0;b0))return!1;var f=b.length;return 1===f?0===d?a[b[0]]=c:1==d?a[b[0]]+=c:2==d?a[b[0]]-=c:3==d?a[b[0]]*=c:4==d&&(a[b[0]]/=c):2===f?0===d?a[b[0]][b[1]]=c:1==d?a[b[0]][b[1]]+=c:2==d?a[b[0]][b[1]]-=c:3==d?a[b[0]][b[1]]*=c:4==d&&(a[b[0]][b[1]]/=c):3===f?0===d?a[b[0]][b[1]][b[2]]=c:1==d?a[b[0]][b[1]][b[2]]+=c:2==d?a[b[0]][b[1]][b[2]]-=c:3==d?a[b[0]][b[1]][b[2]]*=c:4==d&&(a[b[0]][b[1]][b[2]]/=c):4===f&&(0===d?a[b[0]][b[1]][b[2]][b[3]]=c:1==d?a[b[0]][b[1]][b[2]][b[3]]+=c:2==d?a[b[0]][b[1]][b[2]][b[3]]-=c:3==d?a[b[0]][b[1]][b[2]][b[3]]*=c:4==d&&(a[b[0]][b[1]][b[2]][b[3]]/=c)),!0},c.Group.prototype.checkProperty=function(a,b,d,e){return void 0===e&&(e=!1),!c.Utils.getProperty(a,b)&&e?!1:c.Utils.getProperty(a,b)!==d?!1:!0},c.Group.prototype.set=function(a,b,c,d,e,f,g){return void 0===g&&(g=!1),b=b.split("."),void 0===d&&(d=!1),void 0===e&&(e=!1),(d===!1||d&&a.alive)&&(e===!1||e&&a.visible)?this.setProperty(a,b,c,f,g):void 0},c.Group.prototype.setAll=function(a,b,c,d,e,f){void 0===c&&(c=!1),void 0===d&&(d=!1),void 0===f&&(f=!1),a=a.split("."),e=e||0;for(var g=0;g2){c=[];for(var d=2;d2){e=[];for(var f=2;f2){d=[null];for(var e=2;e2){d=[null];for(var e=2;e2){d=[null];for(var e=2;eb[this._sortProperty]?1:a.zb[this._sortProperty]?-1:0},c.Group.prototype.iterate=function(a,b,d,e,f,g){if(d===c.Group.RETURN_TOTAL&&0===this.children.length)return 0;for(var h=0,i=0;i0?this.children[this.children.length-1]:void 0},c.Group.prototype.getBottom=function(){return this.children.length>0?this.children[0]:void 0},c.Group.prototype.countLiving=function(){return this.iterate("alive",!0,c.Group.RETURN_TOTAL)},c.Group.prototype.countDead=function(){return this.iterate("alive",!1,c.Group.RETURN_TOTAL)},c.Group.prototype.getRandom=function(a,b){return 0===this.children.length?null:(a=a||0,b=b||this.children.length,c.ArrayUtils.getRandomItem(this.children,a,b))},c.Group.prototype.remove=function(a,b,c){if(void 0===b&&(b=!1),void 0===c&&(c=!1),0===this.children.length||-1===this.children.indexOf(a))return!1;c||!a.events||a.destroyPhase||a.events.onRemovedFromGroup$dispatch(a,this);var d=this.removeChild(a);return this.removeFromHash(a),this.updateZ(),this.cursor===a&&this.next(),b&&d&&d.destroy(!0),!0},c.Group.prototype.moveAll=function(a,b){if(void 0===b&&(b=!1),this.children.length>0&&a instanceof c.Group){do a.add(this.children[0],b);while(this.children.length>0);this.hash=[],this.cursor=null}return a},c.Group.prototype.removeAll=function(a,b){if(void 0===a&&(a=!1),void 0===b&&(b=!1),0!==this.children.length){do{!b&&this.children[0].events&&this.children[0].events.onRemovedFromGroup$dispatch(this.children[0],this);var c=this.removeChild(this.children[0]);this.removeFromHash(c),a&&c&&c.destroy(!0)}while(this.children.length>0);this.hash=[],this.cursor=null}},c.Group.prototype.removeBetween=function(a,b,c,d){if(void 0===b&&(b=this.children.length-1),void 0===c&&(c=!1),void 0===d&&(d=!1),0!==this.children.length){if(a>b||0>a||b>this.children.length)return!1;for(var e=b;e>=a;){!d&&this.children[e].events&&this.children[e].events.onRemovedFromGroup$dispatch(this.children[e],this);var f=this.removeChild(this.children[e]);this.removeFromHash(f),c&&f&&f.destroy(!0),this.cursor===this.children[e]&&(this.cursor=null),e--}this.updateZ()}},c.Group.prototype.destroy=function(a,b){null===this.game||this.ignoreDestroy||(void 0===a&&(a=!0),void 0===b&&(b=!1),this.onDestroy.dispatch(this,a,b),this.removeAll(a),this.cursor=null,this.filters=null,this.pendingDestroy=!1,b||(this.parent&&this.parent.removeChild(this),this.game=null,this.exists=!1))},Object.defineProperty(c.Group.prototype,"total",{get:function(){return this.iterate("exists",!0,c.Group.RETURN_TOTAL)}}),Object.defineProperty(c.Group.prototype,"length",{get:function(){return this.children.length}}),Object.defineProperty(c.Group.prototype,"angle",{get:function(){return c.Math.radToDeg(this.rotation)},set:function(a){this.rotation=c.Math.degToRad(a)}}),c.World=function(a){c.Group.call(this,a,null,"__world",!1),this.bounds=new c.Rectangle(0,0,a.width,a.height),this.camera=null,this._definedSize=!1,this._width=a.width,this._height=a.height,this.game.state.onStateChange.add(this.stateChange,this)},c.World.prototype=Object.create(c.Group.prototype),c.World.prototype.constructor=c.World,c.World.prototype.boot=function(){this.camera=new c.Camera(this.game,0,0,0,this.game.width,this.game.height),this.game.stage.addChild(this),this.camera.boot()},c.World.prototype.stateChange=function(){this.x=0,this.y=0,this.camera.reset()},c.World.prototype.setBounds=function(a,b,c,d){this._definedSize=!0,this._width=c,this._height=d,this.bounds.setTo(a,b,c,d),this.x=a,this.y=b,this.camera.bounds&&this.camera.bounds.setTo(a,b,Math.max(c,this.game.width),Math.max(d,this.game.height)),this.game.physics.setBoundsToWorld()},c.World.prototype.resize=function(a,b){this._definedSize&&(athis.bounds.right&&(a.x=this.bounds.left)),e&&(a.y+a._currentBounds.heightthis.bounds.bottom&&(a.y=this.bounds.top))):(d&&a.x+bthis.bounds.right&&(a.x=this.bounds.left-b),e&&a.y+bthis.bounds.bottom&&(a.y=this.bounds.top-b))},Object.defineProperty(c.World.prototype,"width",{get:function(){return this.bounds.width},set:function(a){ag;g++)e>g?f.push("color: #ff2424; background: #fff"):f.push("color: #959595; background: #fff");console.log.apply(console,f)}else window.console&&console.log("Phaser v"+a+" | Pixi.js "+PIXI.VERSION+" | "+b+" | "+d+" | http://phaser.io")}},setUpRenderer:function(){if(this.config.canvas?this.canvas=this.config.canvas:this.canvas=c.Canvas.create(this,this.width,this.height,this.config.canvasID,!0),this.config.canvasStyle?this.canvas.style=this.config.canvasStyle:this.canvas.style["-webkit-full-screen"]="width: 100%; height: 100%",this.renderType===c.HEADLESS||this.renderType===c.CANVAS||this.renderType===c.AUTO&&!this.device.webGL){if(!this.device.canvas)throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting."); +this.renderType=c.CANVAS,this.renderer=new PIXI.CanvasRenderer(this),this.context=this.renderer.context}else this.renderType=c.WEBGL,this.renderer=new PIXI.WebGLRenderer(this),this.context=null,this.canvas.addEventListener("webglcontextlost",this.contextLost.bind(this),!1),this.canvas.addEventListener("webglcontextrestored",this.contextRestored.bind(this),!1);this.device.cocoonJS&&(this.canvas.screencanvas=this.renderType===c.CANVAS?!0:!1),this.renderType!==c.HEADLESS&&(this.stage.smoothed=this.antialias,c.Canvas.addToDOM(this.canvas,this.parent,!1),c.Canvas.setTouchAction(this.canvas))},contextLost:function(a){a.preventDefault(),this.renderer.contextLost=!0},contextRestored:function(){this.renderer.initContext(),this.cache.clearGLTextures(),this.renderer.contextLost=!1},update:function(a){if(this.time.update(a),this._kickstart)return this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),this.updateRender(this.time.slowMotion*this.time.desiredFps),void(this._kickstart=!1);if(this._spiraling>1&&!this.forceSingleUpdate)this.time.time>this._nextFpsNotification&&(this._nextFpsNotification=this.time.time+1e4,this.fpsProblemNotifier.dispatch()),this._deltaTime=0,this._spiraling=0,this.updateRender(this.time.slowMotion*this.time.desiredFps);else{var b=1e3*this.time.slowMotion/this.time.desiredFps;this._deltaTime+=Math.max(Math.min(3*b,this.time.elapsed),0);var c=0;for(this.updatesThisFrame=Math.floor(this._deltaTime/b),this.forceSingleUpdate&&(this.updatesThisFrame=Math.min(1,this.updatesThisFrame));this._deltaTime>=b&&(this._deltaTime-=b,this.currentUpdateID=c,this.updateLogic(this.time.desiredFpsMult),this.stage.updateTransform(),c++,!this.forceSingleUpdate||1!==c);)this.time.refresh();c>this._lastCount?this._spiraling++:c=c.Input.MAX_POINTERS)return console.warn("Phaser.Input.addPointer: Maximum limit of "+c.Input.MAX_POINTERS+" pointers reached."),null;var a=this.pointers.length+1,b=new c.Pointer(this.game,a,c.PointerMode.TOUCH);return this.pointers.push(b),this["pointer"+a]=b,b},update:function(){if(this.keyboard&&this.keyboard.update(),this.pollRate>0&&this._pollCounter=0&&this.countActivePointers(this.maxPointers)>=this.maxPointers)return null;if(!this.pointer1.active)return this.pointer1.start(a);if(!this.pointer2.active)return this.pointer2.start(a);for(var b=2;b0;c++){var d=this.pointers[c];d.active&&b--}return a-b},getPointer:function(a){void 0===a&&(a=!1);for(var b=0;b=g&&this._localPoint.x=h&&this._localPoint.y=g&&this._localPoint.x=h&&this._localPoint.yi;i++)if(this.hitTest(a.children[i],b,d))return!0;return!1},onClickTrampoline:function(){this.activePointer.processClickTrampolines()}},c.Input.prototype.constructor=c.Input,Object.defineProperty(c.Input.prototype,"x",{get:function(){return this._x},set:function(a){this._x=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"y",{get:function(){return this._y},set:function(a){this._y=Math.floor(a)}}),Object.defineProperty(c.Input.prototype,"pollLocked",{get:function(){return this.pollRate>0&&this._pollCounterthis.game.time.time},justReleased:function(a){return a=a||250,this.isUp&&this.timeUp+a>this.game.time.time},reset:function(){this.isDown=!1,this.isUp=!0,this.timeDown=this.game.time.time,this.repeats=0,this.altKey=!1,this.shiftKey=!1,this.ctrlKey=!1},destroy:function(){this.onDown.dispose(),this.onUp.dispose(),this.onFloat.dispose(),this.parent=null,this.game=null}},c.DeviceButton.prototype.constructor=c.DeviceButton,Object.defineProperty(c.DeviceButton.prototype,"duration",{get:function(){return this.isUp?-1:this.game.time.time-this.timeDown}}),c.Pointer=function(a,b,d){this.game=a,this.id=b,this.type=c.POINTER,this.exists=!0,this.identifier=0,this.pointerId=null,this.pointerMode=d||c.PointerMode.CURSOR|c.PointerMode.CONTACT,this.target=null,this.button=null,this.leftButton=new c.DeviceButton(this,c.Pointer.LEFT_BUTTON),this.middleButton=new c.DeviceButton(this,c.Pointer.MIDDLE_BUTTON),this.rightButton=new c.DeviceButton(this,c.Pointer.RIGHT_BUTTON),this.backButton=new c.DeviceButton(this,c.Pointer.BACK_BUTTON),this.forwardButton=new c.DeviceButton(this,c.Pointer.FORWARD_BUTTON),this.eraserButton=new c.DeviceButton(this,c.Pointer.ERASER_BUTTON),this._holdSent=!1,this._history=[],this._nextDrop=0,this._stateReset=!1,this.withinGame=!1,this.clientX=-1,this.clientY=-1,this.pageX=-1,this.pageY=-1,this.screenX=-1,this.screenY=-1,this.rawMovementX=0,this.rawMovementY=0,this.movementX=0,this.movementY=0,this.x=-1,this.y=-1,this.isMouse=0===b,this.isDown=!1,this.isUp=!0,this.timeDown=0,this.timeUp=0,this.previousTapTime=0,this.totalTouches=0,this.msSinceLastClick=Number.MAX_VALUE,this.targetObject=null,this.active=!1,this.dirty=!1,this.position=new c.Point,this.positionDown=new c.Point,this.positionUp=new c.Point,this.circle=new c.Circle(0,0,44),this._clickTrampolines=null,this._trampolineTargetObject=null},c.Pointer.NO_BUTTON=0,c.Pointer.LEFT_BUTTON=1,c.Pointer.RIGHT_BUTTON=2,c.Pointer.MIDDLE_BUTTON=4,c.Pointer.BACK_BUTTON=8,c.Pointer.FORWARD_BUTTON=16,c.Pointer.ERASER_BUTTON=32,c.Pointer.prototype={resetButtons:function(){this.isDown=!1,this.isUp=!0,this.isMouse&&(this.leftButton.reset(),this.middleButton.reset(),this.rightButton.reset(),this.backButton.reset(),this.forwardButton.reset(),this.eraserButton.reset())},processButtonsDown:function(a,b){c.Pointer.LEFT_BUTTON&a&&this.leftButton.start(b),c.Pointer.RIGHT_BUTTON&a&&this.rightButton.start(b),c.Pointer.MIDDLE_BUTTON&a&&this.middleButton.start(b),c.Pointer.BACK_BUTTON&a&&this.backButton.start(b),c.Pointer.FORWARD_BUTTON&a&&this.forwardButton.start(b),c.Pointer.ERASER_BUTTON&a&&this.eraserButton.start(b)},processButtonsUp:function(a,b){a===c.Mouse.LEFT_BUTTON&&this.leftButton.stop(b),a===c.Mouse.RIGHT_BUTTON&&this.rightButton.stop(b),a===c.Mouse.MIDDLE_BUTTON&&this.middleButton.stop(b),a===c.Mouse.BACK_BUTTON&&this.backButton.stop(b),a===c.Mouse.FORWARD_BUTTON&&this.forwardButton.stop(b),5===a&&this.eraserButton.stop(b)},updateButtons:function(a){this.button=a.button;var b="down"===a.type.toLowerCase().substr(-4);void 0!==a.buttons?b?this.processButtonsDown(a.buttons,a):this.processButtonsUp(a.button,a):b?this.leftButton.start(a):(this.leftButton.stop(a),this.rightButton.stop(a)),1===a.buttons&&a.ctrlKey&&this.leftButton.isDown&&(this.leftButton.stop(a),this.rightButton.start(a)),this.isUp=!0,this.isDown=!1,(this.leftButton.isDown||this.rightButton.isDown||this.middleButton.isDown||this.backButton.isDown||this.forwardButton.isDown||this.eraserButton.isDown)&&(this.isUp=!1,this.isDown=!0)},start:function(a){var b=this.game.input;return a.pointerId&&(this.pointerId=a.pointerId),this.identifier=a.identifier,this.target=a.target,this.isMouse?this.updateButtons(a):(this.isDown=!0,this.isUp=!1),this.active=!0,this.withinGame=!0,this.dirty=!1,this._history=[],this._clickTrampolines=null,this._trampolineTargetObject=null,this.msSinceLastClick=this.game.time.time-this.timeDown,this.timeDown=this.game.time.time,this._holdSent=!1,this.move(a,!0),this.positionDown.setTo(this.x,this.y),(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.x=this.x,b.y=this.y,b.position.setTo(this.x,this.y),b.onDown.dispatch(this,a),b.resetSpeed(this.x,this.y)),this._stateReset=!1,this.totalTouches++,null!==this.targetObject&&this.targetObject._touchedHandler(this),this},update:function(){var a=this.game.input;this.active&&(this.dirty&&(a.interactiveItems.total>0&&this.processInteractiveObjects(!1),this.dirty=!1),this._holdSent===!1&&this.duration>=a.holdRate&&((a.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||a.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||a.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===a.totalActivePointers)&&a.onHold.dispatch(this),this._holdSent=!0),a.recordPointerHistory&&this.game.time.time>=this._nextDrop&&(this._nextDrop=this.game.time.time+a.recordRate,this._history.push({x:this.position.x,y:this.position.y}),this._history.length>a.recordLimit&&this._history.shift()))},move:function(a,b){var d=this.game.input;if(!d.pollLocked){if(void 0===b&&(b=!1),void 0!==a.button&&(this.button=a.button),b&&this.isMouse&&this.updateButtons(a),this.clientX=a.clientX,this.clientY=a.clientY,this.pageX=a.pageX,this.pageY=a.pageY,this.screenX=a.screenX,this.screenY=a.screenY,this.isMouse&&d.mouse.locked&&!b&&(this.rawMovementX=a.movementX||a.mozMovementX||a.webkitMovementX||0,this.rawMovementY=a.movementY||a.mozMovementY||a.webkitMovementY||0,this.movementX+=this.rawMovementX,this.movementY+=this.rawMovementY),this.x=(this.pageX-this.game.scale.offset.x)*d.scale.x,this.y=(this.pageY-this.game.scale.offset.y)*d.scale.y,this.position.setTo(this.x,this.y),this.circle.x=this.x,this.circle.y=this.y,(d.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||d.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||d.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===d.totalActivePointers)&&(d.activePointer=this,d.x=this.x,d.y=this.y,d.position.setTo(d.x,d.y),d.circle.x=d.x,d.circle.y=d.y),this.withinGame=this.game.scale.bounds.contains(this.pageX,this.pageY),this.game.paused)return this;for(var e=d.moveCallbacks.length;e--;)d.moveCallbacks[e].callback.call(d.moveCallbacks[e].context,this,this.x,this.y,b);return null!==this.targetObject&&this.targetObject.isDragged===!0?this.targetObject.update(this)===!1&&(this.targetObject=null):d.interactiveItems.total>0&&this.processInteractiveObjects(b),this}},processInteractiveObjects:function(a){for(var b=Number.MAX_VALUE,c=-1,d=null,e=this.game.input.interactiveItems.first;e;)e.checked=!1,e.validForInput(c,b,!1)&&(e.checked=!0,(a&&e.checkPointerDown(this,!0)||!a&&e.checkPointerOver(this,!0))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e)),e=this.game.input.interactiveItems.next;for(var e=this.game.input.interactiveItems.first;e;)!e.checked&&e.validForInput(c,b,!0)&&(a&&e.checkPointerDown(this,!1)||!a&&e.checkPointerOver(this,!1))&&(b=e.sprite.renderOrderID,c=e.priorityID,d=e),e=this.game.input.interactiveItems.next;return null===d?this.targetObject&&(this.targetObject._pointerOutHandler(this),this.targetObject=null):null===this.targetObject?(this.targetObject=d,d._pointerOverHandler(this)):this.targetObject===d?d.update(this)===!1&&(this.targetObject=null):(this.targetObject._pointerOutHandler(this),this.targetObject=d,this.targetObject._pointerOverHandler(this)),null!==this.targetObject},leave:function(a){this.withinGame=!1,this.move(a,!1)},stop:function(a){var b=this.game.input;return this._stateReset&&this.withinGame?void a.preventDefault():(this.timeUp=this.game.time.time,(b.multiInputOverride===c.Input.MOUSE_OVERRIDES_TOUCH||b.multiInputOverride===c.Input.MOUSE_TOUCH_COMBINE||b.multiInputOverride===c.Input.TOUCH_OVERRIDES_MOUSE&&0===b.totalActivePointers)&&(b.onUp.dispatch(this,a),this.duration>=0&&this.duration<=b.tapRate&&(this.timeUp-this.previousTapTime0&&(this.active=!1),this.withinGame=this.game.scale.bounds.contains(a.pageX,a.pageY),this.pointerId=null,this.identifier=null,this.positionUp.setTo(this.x,this.y),this.isMouse===!1&&b.currentPointers--,b.interactiveItems.callAll("_releasedHandler",this),this._clickTrampolines&&(this._trampolineTargetObject=this.targetObject),this.targetObject=null,this)},justPressed:function(a){return a=a||this.game.input.justPressedRate,this.isDown===!0&&this.timeDown+a>this.game.time.time},justReleased:function(a){return a=a||this.game.input.justReleasedRate,this.isUp&&this.timeUp+a>this.game.time.time},addClickTrampoline:function(a,b,c,d){if(this.isDown){for(var e=this._clickTrampolines=this._clickTrampolines||[],f=0;fd;d++)this._pointerData[d]={id:d,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1};this.snapOffset=new c.Point,this.enabled=!0,this._wasEnabled=!0}return this.sprite.events.onAddedToGroup.add(this.addedToGroup,this),this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup,this),this.flagged=!1,this.sprite},addedToGroup:function(){this._dragPhase||this._wasEnabled&&!this.enabled&&this.start()},removedFromGroup:function(){this._dragPhase||(this.enabled?(this._wasEnabled=!0,this.stop()):this._wasEnabled=!1)},reset:function(){this.enabled=!1,this.flagged=!1;for(var a=0;10>a;a++)this._pointerData[a]={id:a,x:0,y:0,isDown:!1,isUp:!1,isOver:!1,isOut:!1,timeOver:0,timeOut:0,timeDown:0,timeUp:0,downDuration:0,isDragged:!1}},stop:function(){this.enabled!==!1&&(this.enabled=!1,this.game.input.interactiveItems.remove(this))},destroy:function(){this.sprite&&(this._setHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.enabled=!1,this.game.input.interactiveItems.remove(this),this._pointerData.length=0,this.boundsRect=null,this.boundsSprite=null,this.sprite=null)},validForInput:function(a,b,c){return void 0===c&&(c=!0),!this.enabled||0===this.sprite.scale.x||0===this.sprite.scale.y||this.priorityIDa||this.priorityID===a&&this.sprite.renderOrderIDb;b++)if(this._pointerData[b].isOver)return!0;return!1}return this._pointerData[a].isOver},pointerOut:function(a){if(!this.enabled)return!1;if(void 0!==a)return this._pointerData[a].isOut;for(var b=0;10>b;b++)if(this._pointerData[b].isOut)return!0},pointerTimeOver:function(a){return a=a||0,this._pointerData[a].timeOver},pointerTimeOut:function(a){return a=a||0,this._pointerData[a].timeOut},pointerDragged:function(a){return a=a||0,this._pointerData[a].isDragged},checkPointerDown:function(a,b){return a.isDown&&this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectClick?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPointerOver:function(a,b){return this.enabled&&this.sprite&&this.sprite.parent&&this.sprite.visible&&this.sprite.parent.visible&&this.game.input.hitTest(this.sprite,a,this._tempPoint)?(void 0===b&&(b=!1),!b&&this.pixelPerfectOver?this.checkPixel(this._tempPoint.x,this._tempPoint.y):!0):!1},checkPixel:function(a,b,c){if(this.sprite.texture.baseTexture.source){if(null===a&&null===b){this.game.input.getLocalPosition(this.sprite,c,this._tempPoint);var a=this._tempPoint.x,b=this._tempPoint.y}if(0!==this.sprite.anchor.x&&(a-=-this.sprite.texture.frame.width*this.sprite.anchor.x),0!==this.sprite.anchor.y&&(b-=-this.sprite.texture.frame.height*this.sprite.anchor.y),a+=this.sprite.texture.frame.x,b+=this.sprite.texture.frame.y,this.sprite.texture.trim&&(a-=this.sprite.texture.trim.x,b-=this.sprite.texture.trim.y,athis.sprite.texture.crop.right||bthis.sprite.texture.crop.bottom))return this._dx=a,this._dy=b,!1;this._dx=a,this._dy=b,this.game.input.hitContext.clearRect(0,0,1,1),this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source,a,b,1,1,0,0,1,1);var d=this.game.input.hitContext.getImageData(0,0,1,1);if(d.data[3]>=this.pixelPerfectAlpha)return!0}return!1},update:function(a){return null!==this.sprite&&void 0!==this.sprite.parent?this.enabled&&this.sprite.visible&&this.sprite.parent.visible?this.draggable&&this._draggedPointerID===a.id?this.updateDrag(a):this._pointerData[a.id].isOver?this.checkPointerOver(a)?(this._pointerData[a.id].x=a.x-this.sprite.x,this._pointerData[a.id].y=a.y-this.sprite.y,!0):(this._pointerOutHandler(a),!1):void 0:(this._pointerOutHandler(a),!1):void 0},_pointerOverHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isOver===!1||a.dirty){var c=b.isOver===!1;b.isOver=!0,b.isOut=!1,b.timeOver=this.game.time.time,b.x=a.x-this.sprite.x,b.y=a.y-this.sprite.y,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="pointer",this._setHandCursor=!0),c&&this.sprite&&this.sprite.events&&this.sprite.events.onInputOver$dispatch(this.sprite,a)}}},_pointerOutHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];b.isOver=!1,b.isOut=!0,b.timeOut=this.game.time.time,this.useHandCursor&&b.isDragged===!1&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),this.sprite&&this.sprite.events&&this.sprite.events.onInputOut$dispatch(this.sprite,a)}},_touchedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(!b.isDown&&b.isOver){if(this.pixelPerfectClick&&!this.checkPixel(null,null,a))return;if(b.isDown=!0,b.isUp=!1,b.timeDown=this.game.time.time,a.dirty=!0,this.sprite&&this.sprite.events&&(this.sprite.events.onInputDown$dispatch(this.sprite,a),null===this.sprite))return;this.draggable&&this.isDragged===!1&&this.startDrag(a),this.bringToTop&&this.sprite.bringToTop()}}},_releasedHandler:function(a){if(null!==this.sprite){var b=this._pointerData[a.id];if(b.isDown&&a.isUp){b.isDown=!1,b.isUp=!0,b.timeUp=this.game.time.time,b.downDuration=b.timeUp-b.timeDown;var c=this.checkPointerOver(a);this.sprite&&this.sprite.events&&(this.sprite.events.onInputUp$dispatch(this.sprite,a,c),c&&(c=this.checkPointerOver(a))),b.isOver=c,!c&&this.useHandCursor&&(this.game.canvas.style.cursor="default",this._setHandCursor=!1),a.dirty=!0,this.draggable&&this.isDragged&&this._draggedPointerID===a.id&&this.stopDrag(a)}}},updateDrag:function(a,b){if(a.isUp)return this.stopDrag(a),!1;void 0===b&&(b=!1);var c=this.globalToLocalX(a.x)+this._dragPoint.x+this.dragOffset.x,d=this.globalToLocalY(a.y)+this._dragPoint.y+this.dragOffset.y;return this.sprite.fixedToCamera?(this.allowHorizontalDrag&&(this.sprite.cameraOffset.x=c),this.allowVerticalDrag&&(this.sprite.cameraOffset.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.cameraOffset.x,this.sprite.cameraOffset.y))):(this.allowHorizontalDrag&&(this.sprite.x=c),this.allowVerticalDrag&&(this.sprite.y=d),this.boundsRect&&this.checkBoundsRect(),this.boundsSprite&&this.checkBoundsSprite(),this.snapOnDrag&&(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY,this.snapPoint.set(this.sprite.x,this.sprite.y))),this.sprite.events.onDragUpdate.dispatch(this.sprite,a,c,d,this.snapPoint,b),!0},justOver:function(a,b){return a=a||0,b=b||500,this._pointerData[a].isOver&&this.overDuration(a)a;a++)this._pointerData[a].isDragged=!1;this.draggable=!1,this.isDragged=!1,this._draggedPointerID=-1},startDrag:function(a){var b=this.sprite.x,c=this.sprite.y;if(this.isDragged=!0,this._draggedPointerID=a.id,this._pointerData[a.id].isDragged=!0,this.sprite.fixedToCamera){if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.cameraOffset.x=this.globalToLocalX(a.x)+(this.sprite.cameraOffset.x-d.centerX),this.sprite.cameraOffset.y=this.globalToLocalY(a.y)+(this.sprite.cameraOffset.y-d.centerY)}this._dragPoint.setTo(this.sprite.cameraOffset.x-a.x,this.sprite.cameraOffset.y-a.y)}else{if(this.dragFromCenter){var d=this.sprite.getBounds();this.sprite.x=this.globalToLocalX(a.x)+(this.sprite.x-d.centerX),this.sprite.y=this.globalToLocalY(a.y)+(this.sprite.y-d.centerY)}this._dragPoint.setTo(this.sprite.x-this.globalToLocalX(a.x),this.sprite.y-this.globalToLocalY(a.y))}this.updateDrag(a,!0),this.bringToTop&&(this._dragPhase=!0,this.sprite.bringToTop()),this.dragStartPoint.set(b,c),this.sprite.events.onDragStart$dispatch(this.sprite,a,b,c)},globalToLocalX:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.x,a*=this.game.scale.grid.scaleFluidInversed.x),a},globalToLocalY:function(a){return this.scaleLayer&&(a-=this.game.scale.grid.boundsFluid.y,a*=this.game.scale.grid.scaleFluidInversed.y),a},stopDrag:function(a){this.isDragged=!1,this._draggedPointerID=-1,this._pointerData[a.id].isDragged=!1,this._dragPhase=!1,this.snapOnRelease&&(this.sprite.fixedToCamera?(this.sprite.cameraOffset.x=Math.round((this.sprite.cameraOffset.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.cameraOffset.y=Math.round((this.sprite.cameraOffset.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY):(this.sprite.x=Math.round((this.sprite.x-this.snapOffsetX%this.snapX)/this.snapX)*this.snapX+this.snapOffsetX%this.snapX,this.sprite.y=Math.round((this.sprite.y-this.snapOffsetY%this.snapY)/this.snapY)*this.snapY+this.snapOffsetY%this.snapY)),this.sprite.events.onDragStop$dispatch(this.sprite,a),this.checkPointerOver(a)===!1&&this._pointerOutHandler(a)},setDragLock:function(a,b){void 0===a&&(a=!0),void 0===b&&(b=!0),this.allowHorizontalDrag=a,this.allowVerticalDrag=b},enableSnap:function(a,b,c,d,e,f){void 0===c&&(c=!0),void 0===d&&(d=!1),void 0===e&&(e=0),void 0===f&&(f=0),this.snapX=a,this.snapY=b,this.snapOffsetX=e,this.snapOffsetY=f,this.snapOnDrag=c,this.snapOnRelease=d},disableSnap:function(){this.snapOnDrag=!1,this.snapOnRelease=!1},checkBoundsRect:function(){this.sprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsRect.right&&(this.sprite.cameraOffset.x=this.boundsRect.right-this.sprite.width),this.sprite.cameraOffset.ythis.boundsRect.bottom&&(this.sprite.cameraOffset.y=this.boundsRect.bottom-this.sprite.height)):(this.sprite.leftthis.boundsRect.right&&(this.sprite.x=this.boundsRect.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsRect.bottom&&(this.sprite.y=this.boundsRect.bottom-(this.sprite.height-this.sprite.offsetY)))},checkBoundsSprite:function(){this.sprite.fixedToCamera&&this.boundsSprite.fixedToCamera?(this.sprite.cameraOffset.xthis.boundsSprite.cameraOffset.x+this.boundsSprite.width&&(this.sprite.cameraOffset.x=this.boundsSprite.cameraOffset.x+this.boundsSprite.width-this.sprite.width),this.sprite.cameraOffset.ythis.boundsSprite.cameraOffset.y+this.boundsSprite.height&&(this.sprite.cameraOffset.y=this.boundsSprite.cameraOffset.y+this.boundsSprite.height-this.sprite.height)):(this.sprite.leftthis.boundsSprite.right&&(this.sprite.x=this.boundsSprite.right-(this.sprite.width-this.sprite.offsetX)),this.sprite.topthis.boundsSprite.bottom&&(this.sprite.y=this.boundsSprite.bottom-(this.sprite.height-this.sprite.offsetY)))}},c.InputHandler.prototype.constructor=c.InputHandler,c.Gamepad=function(a){this.game=a,this._gamepadIndexMap={},this._rawPads=[],this._active=!1,this.enabled=!0,this._gamepadSupportAvailable=!!navigator.webkitGetGamepads||!!navigator.webkitGamepads||-1!=navigator.userAgent.indexOf("Firefox/")||!!navigator.getGamepads,this._prevRawGamepadTypes=[],this._prevTimestamps=[],this.callbackContext=this,this.onConnectCallback=null,this.onDisconnectCallback=null,this.onDownCallback=null,this.onUpCallback=null,this.onAxisCallback=null,this.onFloatCallback=null,this._ongamepadconnected=null,this._gamepaddisconnected=null,this._gamepads=[new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this),new c.SinglePad(a,this)]},c.Gamepad.prototype={addCallbacks:function(a,b){"undefined"!=typeof b&&(this.onConnectCallback="function"==typeof b.onConnect?b.onConnect:this.onConnectCallback,this.onDisconnectCallback="function"==typeof b.onDisconnect?b.onDisconnect:this.onDisconnectCallback,this.onDownCallback="function"==typeof b.onDown?b.onDown:this.onDownCallback,this.onUpCallback="function"==typeof b.onUp?b.onUp:this.onUpCallback,this.onAxisCallback="function"==typeof b.onAxis?b.onAxis:this.onAxisCallback,this.onFloatCallback="function"==typeof b.onFloat?b.onFloat:this.onFloatCallback,this.callbackContext=a)},start:function(){if(!this._active){this._active=!0;var a=this;this._onGamepadConnected=function(b){return a.onGamepadConnected(b)},this._onGamepadDisconnected=function(b){return a.onGamepadDisconnected(b)},window.addEventListener("gamepadconnected",this._onGamepadConnected,!1),window.addEventListener("gamepaddisconnected",this._onGamepadDisconnected,!1)}},onGamepadConnected:function(a){var b=a.gamepad;this._rawPads.push(b),this._gamepads[b.index].connect(b)},onGamepadDisconnected:function(a){var b=a.gamepad;for(var c in this._rawPads)this._rawPads[c].index===b.index&&this._rawPads.splice(c,1);this._gamepads[b.index].disconnect()},update:function(){this._pollGamepads(),this.pad1.pollStatus(),this.pad2.pollStatus(),this.pad3.pollStatus(),this.pad4.pollStatus()},_pollGamepads:function(){if(navigator.getGamepads)var a=navigator.getGamepads();else if(navigator.webkitGetGamepads)var a=navigator.webkitGetGamepads();else if(navigator.webkitGamepads)var a=navigator.webkitGamepads();if(a){this._rawPads=[];for(var b=!1,c=0;c0&&d>this.deadZone||0>d&&d<-this.deadZone?this.processAxisChange(c,d):this.processAxisChange(c,0)}this._prevTimestamp=this._rawPad.timestamp}},connect:function(a){var b=!this.connected;this.connected=!0,this.index=a.index,this._rawPad=a,this._buttons=[],this._buttonsLen=a.buttons.length,this._axes=[],this._axesLen=a.axes.length;for(var d=0;dthis.maxHealth&&(this.health=this.maxHealth),this},heal:function(a){return this.alive&&(this.health+=a,this.health>this.maxHealth&&(this.health=this.maxHealth)),this}},c.Component.InCamera=function(){},c.Component.InCamera.prototype={inCamera:{get:function(){return this.game.world.camera.view.intersects(this._bounds)}}},c.Component.InputEnabled=function(){},c.Component.InputEnabled.prototype={input:null,inputEnabled:{get:function(){return this.input&&this.input.enabled},set:function(a){a?null===this.input?(this.input=new c.InputHandler(this),this.input.start()):this.input&&!this.input.enabled&&this.input.start():this.input&&this.input.enabled&&this.input.stop()}}},c.Component.InWorld=function(){},c.Component.InWorld.preUpdate=function(){if(this.autoCull||this.checkWorldBounds){if(this._bounds.copyFrom(this.getBounds()),this._bounds.x+=this.game.camera.view.x,this._bounds.y+=this.game.camera.view.y,this.autoCull)if(this.game.world.camera.view.intersects(this._bounds))this.renderable=!0,this.game.world.camera.totalInView++;else if(this.renderable=!1,this.outOfCameraBoundsKill)return this.kill(),!1;if(this.checkWorldBounds)if(this._outOfBoundsFired&&this.game.world.bounds.intersects(this._bounds))this._outOfBoundsFired=!1,this.events.onEnterBounds$dispatch(this);else if(!this._outOfBoundsFired&&!this.game.world.bounds.intersects(this._bounds)&&(this._outOfBoundsFired=!0,this.events.onOutOfBounds$dispatch(this),this.outOfBoundsKill))return this.kill(),!1}return!0},c.Component.InWorld.prototype={checkWorldBounds:!1,outOfBoundsKill:!1,outOfCameraBoundsKill:!1,_outOfBoundsFired:!1,inWorld:{get:function(){return this.game.world.bounds.intersects(this.getBounds())}}},c.Component.LifeSpan=function(){},c.Component.LifeSpan.preUpdate=function(){return this.lifespan>0&&(this.lifespan-=this.game.time.physicsElapsedMS,this.lifespan<=0)?(this.kill(),!1):!0},c.Component.LifeSpan.prototype={alive:!0,lifespan:0,revive:function(a){return void 0===a&&(a=100),this.alive=!0,this.exists=!0,this.visible=!0,"function"==typeof this.setHealth&&this.setHealth(a),this.events&&this.events.onRevived$dispatch(this),this},kill:function(){return this.alive=!1,this.exists=!1,this.visible=!1,this.events&&this.events.onKilled$dispatch(this),this}},c.Component.LoadTexture=function(){},c.Component.LoadTexture.prototype={customRender:!1,_frame:null,loadTexture:function(a,b,d){a===c.PENDING_ATLAS?(a=b,b=0):b=b||0,(d||void 0===d)&&this.animations&&this.animations.stop(),this.key=a,this.customRender=!1;var e=this.game.cache,f=!0,g=!this.texture.baseTexture.scaleMode;if(c.RenderTexture&&a instanceof c.RenderTexture)this.key=a.key,this.setTexture(a);else if(c.BitmapData&&a instanceof c.BitmapData)this.customRender=!0,this.setTexture(a.texture),f=e.hasFrameData(a.key,c.Cache.BITMAPDATA)?!this.animations.loadFrameData(e.getFrameData(a.key,c.Cache.BITMAPDATA),b):!this.animations.loadFrameData(a.frameData,0);else if(c.Video&&a instanceof c.Video){this.customRender=!0;var h=a.texture.valid;this.setTexture(a.texture),this.setFrame(a.texture.frame.clone()),a.onChangeSource.add(this.resizeFrame,this),this.texture.valid=h}else if(c.Tilemap&&a instanceof c.TilemapLayer)this.setTexture(PIXI.Texture.fromCanvas(a.canvas));else if(a instanceof PIXI.Texture)this.setTexture(a);else{var i=e.getImage(a,!0);this.key=i.key,this.setTexture(new PIXI.Texture(i.base)),"__default"===a?this.texture.baseTexture.skipRender=!0:this.texture.baseTexture.skipRender=!1,f=!this.animations.loadFrameData(i.frameData,b)}f&&(this._frame=c.Rectangle.clone(this.texture.frame)),g||(this.texture.baseTexture.scaleMode=1)},setFrame:function(a){this._frame=a,this.texture.frame.x=a.x,this.texture.frame.y=a.y,this.texture.frame.width=a.width,this.texture.frame.height=a.height,this.texture.crop.x=a.x,this.texture.crop.y=a.y,this.texture.crop.width=a.width,this.texture.crop.height=a.height,a.trimmed?(this.texture.trim?(this.texture.trim.x=a.spriteSourceSizeX,this.texture.trim.y=a.spriteSourceSizeY,this.texture.trim.width=a.sourceSizeW,this.texture.trim.height=a.sourceSizeH):this.texture.trim={x:a.spriteSourceSizeX,y:a.spriteSourceSizeY,width:a.sourceSizeW,height:a.sourceSizeH},this.texture.width=a.sourceSizeW,this.texture.height=a.sourceSizeH,this.texture.frame.width=a.sourceSizeW,this.texture.frame.height=a.sourceSizeH):!a.trimmed&&this.texture.trim&&(this.texture.trim=null),this.cropRect&&this.updateCrop(),this.texture.requiresReTint=!0,this.texture._updateUvs(),this.tilingTexture&&(this.refreshTexture=!0)},resizeFrame:function(a,b,c){this.texture.frame.resize(b,c),this.texture.setFrame(this.texture.frame)},resetFrame:function(){this._frame&&this.setFrame(this._frame)},frame:{get:function(){return this.animations.frame},set:function(a){this.animations.frame=a}},frameName:{get:function(){return this.animations.frameName},set:function(a){this.animations.frameName=a}}},c.Component.Overlap=function(){},c.Component.Overlap.prototype={overlap:function(a){return c.Rectangle.intersects(this.getBounds(),a.getBounds())}},c.Component.PhysicsBody=function(){},c.Component.PhysicsBody.preUpdate=function(){return this.fresh&&this.exists?(this.world.setTo(this.parent.position.x+this.position.x,this.parent.position.y+this.position.y),this.worldTransform.tx=this.world.x,this.worldTransform.ty=this.world.y,this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this.body&&this.body.preUpdate(),this.fresh=!1,!1):(this.previousPosition.set(this.world.x,this.world.y),this.previousRotation=this.rotation,this._exists&&this.parent.exists?!0:(this.renderOrderID=-1,!1))},c.Component.PhysicsBody.postUpdate=function(){this.exists&&this.body&&this.body.postUpdate()},c.Component.PhysicsBody.prototype={body:null,x:{get:function(){return this.position.x},set:function(a){this.position.x=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}},y:{get:function(){return this.position.y},set:function(a){this.position.y=a,this.body&&!this.body.dirty&&(this.body._reset=!0)}}},c.Component.Reset=function(){},c.Component.Reset.prototype.reset=function(a,b,c){return void 0===c&&(c=1),this.world.set(a,b),this.position.set(a,b),this.fresh=!0,this.exists=!0,this.visible=!0,this.renderable=!0,this.components.InWorld&&(this._outOfBoundsFired=!1),this.components.LifeSpan&&(this.alive=!0,this.health=c),this.components.PhysicsBody&&this.body&&this.body.reset(a,b,!1,!1),this},c.Component.ScaleMinMax=function(){},c.Component.ScaleMinMax.prototype={transformCallback:null,transformCallbackContext:this,scaleMin:null,scaleMax:null,checkTransform:function(a){this.scaleMin&&(a.athis.scaleMax.x&&(a.a=this.scaleMax.x),a.d>this.scaleMax.y&&(a.d=this.scaleMax.y))},setScaleMinMax:function(a,b,d,e){void 0===b?b=d=e=a:void 0===d&&(d=e=b,b=a),null===a?this.scaleMin=null:this.scaleMin?this.scaleMin.set(a,b):this.scaleMin=new c.Point(a,b),null===d?this.scaleMax=null:this.scaleMax?this.scaleMax.set(d,e):this.scaleMax=new c.Point(d,e),null===this.scaleMin?this.transformCallback=null:(this.transformCallback=this.checkTransform,this.transformCallbackContext=this)}},c.Component.Smoothed=function(){},c.Component.Smoothed.prototype={smoothed:{get:function(){return!this.texture.baseTexture.scaleMode},set:function(a){a?this.texture&&(this.texture.baseTexture.scaleMode=0):this.texture&&(this.texture.baseTexture.scaleMode=1)}}},c.GameObjectFactory=function(a){this.game=a,this.world=this.game.world},c.GameObjectFactory.prototype={existing:function(a){return this.world.add(a)},image:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Image(this.game,a,b,d,e))},sprite:function(a,b,c,d,e){return void 0===e&&(e=this.world),e.create(a,b,c,d)},creature:function(a,b,d,e,f){void 0===f&&(f=this.world);var g=new c.Creature(this.game,a,b,d,e);return f.add(g),g},tween:function(a){return this.game.tweens.create(a)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},physicsGroup:function(a,b,d,e){return new c.Group(this.game,b,d,e,!0,a)},spriteBatch:function(a,b,d){return void 0===a&&(a=null),void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},tileSprite:function(a,b,d,e,f,g,h){return void 0===h&&(h=this.world),h.add(new c.TileSprite(this.game,a,b,d,e,f,g))},rope:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.Rope(this.game,a,b,d,e,f))},text:function(a,b,d,e,f){return void 0===f&&(f=this.world),f.add(new c.Text(this.game,a,b,d,e))},button:function(a,b,d,e,f,g,h,i,j,k){return void 0===k&&(k=this.world),k.add(new c.Button(this.game,a,b,d,e,f,g,h,i,j))},graphics:function(a,b,d){return void 0===d&&(d=this.world),d.add(new c.Graphics(this.game,a,b))},emitter:function(a,b,d){return this.game.particles.add(new c.Particles.Arcade.Emitter(this.game,a,b,d))},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return void 0===g&&(g=this.world),g.add(new c.BitmapText(this.game,a,b,d,e,f))},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},video:function(a,b){return new c.Video(this.game,a,b)},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a},plugin:function(a){return this.game.plugins.add(a)}},c.GameObjectFactory.prototype.constructor=c.GameObjectFactory,c.GameObjectCreator=function(a){this.game=a,this.world=this.game.world},c.GameObjectCreator.prototype={image:function(a,b,d,e){return new c.Image(this.game,a,b,d,e)},sprite:function(a,b,d,e){return new c.Sprite(this.game,a,b,d,e)},tween:function(a){return new c.Tween(a,this.game,this.game.tweens)},group:function(a,b,d,e,f){return new c.Group(this.game,a,b,d,e,f)},spriteBatch:function(a,b,d){return void 0===b&&(b="group"),void 0===d&&(d=!1),new c.SpriteBatch(this.game,a,b,d)},audio:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},audioSprite:function(a){return this.game.sound.addSprite(a)},sound:function(a,b,c,d){return this.game.sound.add(a,b,c,d)},tileSprite:function(a,b,d,e,f,g){return new c.TileSprite(this.game,a,b,d,e,f,g)},rope:function(a,b,d,e,f){return new c.Rope(this.game,a,b,d,e,f)},text:function(a,b,d,e){return new c.Text(this.game,a,b,d,e)},button:function(a,b,d,e,f,g,h,i,j){return new c.Button(this.game,a,b,d,e,f,g,h,i,j)},graphics:function(a,b){return new c.Graphics(this.game,a,b)},emitter:function(a,b,d){return new c.Particles.Arcade.Emitter(this.game,a,b,d)},retroFont:function(a,b,d,e,f,g,h,i,j){return new c.RetroFont(this.game,a,b,d,e,f,g,h,i,j)},bitmapText:function(a,b,d,e,f,g){return new c.BitmapText(this.game,a,b,d,e,f,g)},tilemap:function(a,b,d,e,f){return new c.Tilemap(this.game,a,b,d,e,f)},renderTexture:function(a,b,d,e){(void 0===d||""===d)&&(d=this.game.rnd.uuid()),void 0===e&&(e=!1);var f=new c.RenderTexture(this.game,a,b,d);return e&&this.game.cache.addRenderTexture(d,f),f},bitmapData:function(a,b,d,e){void 0===e&&(e=!1),(void 0===d||""===d)&&(d=this.game.rnd.uuid());var f=new c.BitmapData(this.game,d,a,b);return e&&this.game.cache.addBitmapData(d,f),f},filter:function(a){var b=Array.prototype.slice.call(arguments,1),a=new c.Filter[a](this.game);return a.init.apply(a,b),a}},c.GameObjectCreator.prototype.constructor=c.GameObjectCreator,c.Sprite=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.SPRITE,this.physicsType=c.SPRITE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Sprite.prototype=Object.create(PIXI.Sprite.prototype),c.Sprite.prototype.constructor=c.Sprite,c.Component.Core.install.call(c.Sprite.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","Health","InCamera","InputEnabled","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Sprite.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Sprite.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Sprite.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Sprite.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Sprite.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Image=function(a,b,d,e,f){b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.IMAGE,PIXI.Sprite.call(this,PIXI.TextureCache.__default),c.Component.Core.init.call(this,a,b,d,e,f)},c.Image.prototype=Object.create(PIXI.Sprite.prototype),c.Image.prototype.constructor=c.Image,c.Component.Core.install.call(c.Image.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Destroy","FixedToCamera","InputEnabled","LifeSpan","LoadTexture","Overlap","Reset","Smoothed"]),c.Image.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Image.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Image.prototype.preUpdate=function(){return this.preUpdateInWorld()?this.preUpdateCore():!1},c.Button=function(a,b,d,e,f,g,h,i,j,k){b=b||0,d=d||0,e=e||null,f=f||null,g=g||this,c.Image.call(this,a,b,d,e,i),this.type=c.BUTTON,this.physicsType=c.SPRITE,this._onOverFrame=null,this._onOutFrame=null,this._onDownFrame=null,this._onUpFrame=null,this.onOverSound=null,this.onOutSound=null,this.onDownSound=null,this.onUpSound=null,this.onOverSoundMarker="",this.onOutSoundMarker="",this.onDownSoundMarker="",this.onUpSoundMarker="",this.onInputOver=new c.Signal,this.onInputOut=new c.Signal,this.onInputDown=new c.Signal,this.onInputUp=new c.Signal,this.onOverMouseOnly=!0,this.justReleasedPreventsOver=c.PointerMode.TOUCH,this.freezeFrames=!1,this.forceOut=!1,this.inputEnabled=!0,this.input.start(0,!0),this.input.useHandCursor=!0,this.setFrames(h,i,j,k),null!==f&&this.onInputUp.add(f,g),this.events.onInputOver.add(this.onInputOverHandler,this),this.events.onInputOut.add(this.onInputOutHandler,this),this.events.onInputDown.add(this.onInputDownHandler,this),this.events.onInputUp.add(this.onInputUpHandler,this),this.events.onRemovedFromWorld.add(this.removedFromWorld,this)},c.Button.prototype=Object.create(c.Image.prototype),c.Button.prototype.constructor=c.Button;var g="Over",h="Out",i="Down",j="Up";c.Button.prototype.clearFrames=function(){this.setFrames(null,null,null,null)},c.Button.prototype.removedFromWorld=function(){this.inputEnabled=!1},c.Button.prototype.setStateFrame=function(a,b,c){var d="_on"+a+"Frame";null!==b?(this[d]=b,c&&this.changeStateFrame(a)):this[d]=null},c.Button.prototype.changeStateFrame=function(a){if(this.freezeFrames)return!1;var b="_on"+a+"Frame",c=this[b];return"string"==typeof c?(this.frameName=c,!0):"number"==typeof c?(this.frame=c,!0):!1},c.Button.prototype.setFrames=function(a,b,c,d){this.setStateFrame(g,a,this.input.pointerOver()),this.setStateFrame(h,b,!this.input.pointerOver()),this.setStateFrame(i,c,this.input.pointerDown()),this.setStateFrame(j,d,this.input.pointerUp())},c.Button.prototype.setStateSound=function(a,b,d){var e="on"+a+"Sound",f="on"+a+"SoundMarker";b instanceof c.Sound||b instanceof c.AudioSprite?(this[e]=b,this[f]="string"==typeof d?d:""):(this[e]=null,this[f]="")},c.Button.prototype.playStateSound=function(a){var b="on"+a+"Sound",c=this[b];if(c){var d="on"+a+"SoundMarker",e=this[d];return c.play(e),!0}return!1},c.Button.prototype.setSounds=function(a,b,c,d,e,f,k,l){this.setStateSound(g,a,b),this.setStateSound(h,e,f),this.setStateSound(i,c,d),this.setStateSound(j,k,l)},c.Button.prototype.setOverSound=function(a,b){this.setStateSound(g,a,b)},c.Button.prototype.setOutSound=function(a,b){this.setStateSound(h,a,b)},c.Button.prototype.setDownSound=function(a,b){this.setStateSound(i,a,b)},c.Button.prototype.setUpSound=function(a,b){this.setStateSound(j,a,b)},c.Button.prototype.onInputOverHandler=function(a,b){b.justReleased()&&(this.justReleasedPreventsOver&b.pointerMode)===b.pointerMode||(this.changeStateFrame(g),(!this.onOverMouseOnly||b.isMouse)&&(this.playStateSound(g),this.onInputOver&&this.onInputOver.dispatch(this,b)))},c.Button.prototype.onInputOutHandler=function(a,b){this.changeStateFrame(h), +this.playStateSound(h),this.onInputOut&&this.onInputOut.dispatch(this,b)},c.Button.prototype.onInputDownHandler=function(a,b){this.changeStateFrame(i),this.playStateSound(i),this.onInputDown&&this.onInputDown.dispatch(this,b)},c.Button.prototype.onInputUpHandler=function(a,b,c){if(this.playStateSound(j),this.onInputUp&&this.onInputUp.dispatch(this,b,c),!this.freezeFrames)if(this.forceOut===!0||(this.forceOut&b.pointerMode)===b.pointerMode)this.changeStateFrame(h);else{var d=this.changeStateFrame(j);d||(c?this.changeStateFrame(g):this.changeStateFrame(h))}},c.SpriteBatch=function(a,b,d,e){(void 0===b||null===b)&&(b=a.world),PIXI.SpriteBatch.call(this),c.Group.call(this,a,b,d,e),this.type=c.SPRITEBATCH},c.SpriteBatch.prototype=c.Utils.extend(!0,c.SpriteBatch.prototype,PIXI.SpriteBatch.prototype,c.Group.prototype),c.SpriteBatch.prototype.constructor=c.SpriteBatch,c.BitmapData=function(a,b,d,e){(void 0===d||0===d)&&(d=256),(void 0===e||0===e)&&(e=256),this.game=a,this.key=b,this.width=d,this.height=e,this.canvas=PIXI.CanvasPool.create(this,d,e),this.context=this.canvas.getContext("2d",{alpha:!0}),this.ctx=this.context,this.imageData=this.context.getImageData(0,0,d,e),this.data=null,this.imageData&&(this.data=this.imageData.data),this.pixels=null,this.data&&(this.imageData.data.buffer?(this.buffer=this.imageData.data.buffer,this.pixels=new Uint32Array(this.buffer)):window.ArrayBuffer?(this.buffer=new ArrayBuffer(this.imageData.data.length),this.pixels=new Uint32Array(this.buffer)):this.pixels=this.imageData.data),this.baseTexture=new PIXI.BaseTexture(this.canvas),this.texture=new PIXI.Texture(this.baseTexture),this.frameData=new c.FrameData,this.textureFrame=this.frameData.addFrame(new c.Frame(0,0,0,d,e,"bitmapData")),this.texture.frame=this.textureFrame,this.type=c.BITMAPDATA,this.disableTextureUpload=!1,this.dirty=!1,this.cls=this.clear,this._image=null,this._pos=new c.Point,this._size=new c.Point,this._scale=new c.Point,this._rotate=0,this._alpha={prev:1,current:1},this._anchor=new c.Point,this._tempR=0,this._tempG=0,this._tempB=0,this._circle=new c.Circle,this._swapCanvas=void 0},c.BitmapData.prototype={move:function(a,b,c){return 0!==a&&this.moveH(a,c),0!==b&&this.moveV(b,c),this},moveH:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.height,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.width-a;b&&d.drawImage(f,0,0,a,e,g,0,a,e),d.drawImage(f,a,0,g,e,0,0,g,e)}else{var g=this.width-a;b&&d.drawImage(f,g,0,a,e,0,0,a,e),d.drawImage(f,0,0,g,e,a,0,g,e)}return this.clear(),this.copy(this._swapCanvas)},moveV:function(a,b){void 0===b&&(b=!0),void 0===this._swapCanvas&&(this._swapCanvas=PIXI.CanvasPool.create(this,this.width,this.height));var c=this._swapCanvas,d=c.getContext("2d"),e=this.width,f=this.canvas;if(d.clearRect(0,0,this.width,this.height),0>a){a=Math.abs(a);var g=this.height-a;b&&d.drawImage(f,0,0,e,a,0,g,e,a),d.drawImage(f,0,a,e,g,0,0,e,g)}else{var g=this.height-a;b&&d.drawImage(f,0,g,e,a,0,0,e,a),d.drawImage(f,0,0,e,g,0,a,e,g)}return this.clear(),this.copy(this._swapCanvas)},add:function(a){if(Array.isArray(a))for(var b=0;bm;m++)for(var n=d;h>n;n++)c.Color.unpackPixel(this.getPixel32(n,m),j),k=a.call(b,j,n,m),k!==!1&&null!==k&&void 0!==k&&(this.setPixel32(n,m,k.r,k.g,k.b,k.a,!1),l=!0);return l&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},processPixel:function(a,b,c,d,e,f){void 0===c&&(c=0),void 0===d&&(d=0),void 0===e&&(e=this.width),void 0===f&&(f=this.height);for(var g=c+e,h=d+f,i=0,j=0,k=!1,l=d;h>l;l++)for(var m=c;g>m;m++)i=this.getPixel32(m,l),j=a.call(b,i,m,l),j!==i&&(this.pixels[l*this.width+m]=j,k=!0);return k&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0),this},replaceRGB:function(a,b,d,e,f,g,h,i,j){var k=0,l=0,m=this.width,n=this.height,o=c.Color.packPixel(a,b,d,e);void 0!==j&&j instanceof c.Rectangle&&(k=j.x,l=j.y,m=j.width,n=j.height);for(var p=0;n>p;p++)for(var q=0;m>q;q++)this.getPixel32(k+q,l+p)===o&&this.setPixel32(k+q,l+p,f,g,h,i,!1);return this.context.putImageData(this.imageData,0,0),this.dirty=!0,this},setHSL:function(a,b,d,e){var f=a||0===a,g=b||0===b,h=d||0===d;if(f||g||h){void 0===e&&(e=new c.Rectangle(0,0,this.width,this.height));for(var i=c.Color.createColor(),j=e.y;j=0&&a<=this.width&&b>=0&&b<=this.height&&(c.Device.LITTLE_ENDIAN?this.pixels[b*this.width+a]=g<<24|f<<16|e<<8|d:this.pixels[b*this.width+a]=d<<24|e<<16|f<<8|g,h&&(this.context.putImageData(this.imageData,0,0),this.dirty=!0)),this},setPixel:function(a,b,c,d,e,f){return this.setPixel32(a,b,c,d,e,255,f)},getPixel:function(a,b,d){d||(d=c.Color.createColor());var e=~~(a+b*this.width);return e*=4,d.r=this.data[e],d.g=this.data[++e],d.b=this.data[++e],d.a=this.data[++e],d},getPixel32:function(a,b){return a>=0&&a<=this.width&&b>=0&&b<=this.height?this.pixels[b*this.width+a]:void 0},getPixelRGB:function(a,b,d,e,f){return c.Color.unpackPixel(this.getPixel32(a,b),d,e,f)},getPixels:function(a){return this.context.getImageData(a.x,a.y,a.width,a.height)},getFirstPixel:function(a){void 0===a&&(a=0);var b=c.Color.createColor(),d=0,e=0,f=1,g=!1;1===a?(f=-1,e=this.height):3===a&&(f=-1,d=this.width);do c.Color.unpackPixel(this.getPixel32(d,e),b),0===a||1===a?(d++,d===this.width&&(d=0,e+=f,(e>=this.height||0>=e)&&(g=!0))):(2===a||3===a)&&(e++,e===this.height&&(e=0,d+=f,(d>=this.width||0>=d)&&(g=!0)));while(0===b.a&&!g);return b.x=d,b.y=e,b},getBounds:function(a){return void 0===a&&(a=new c.Rectangle),a.x=this.getFirstPixel(2).x,a.x===this.width?a.setTo(0,0,0,0):(a.y=this.getFirstPixel(0).y,a.width=this.getFirstPixel(3).x-a.x+1,a.height=this.getFirstPixel(1).y-a.y+1,a)},addToWorld:function(a,b,c,d,e,f){e=e||1,f=f||1;var g=this.game.add.image(a,b,this);return g.anchor.set(c,d),g.scale.set(e,f),g},copy:function(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){if((void 0===a||null===a)&&(a=this),this._image=a,a instanceof c.Sprite||a instanceof c.Image||a instanceof c.Text||a instanceof PIXI.Sprite)this._pos.set(a.texture.crop.x,a.texture.crop.y),this._size.set(a.texture.crop.width,a.texture.crop.height),this._scale.set(a.scale.x,a.scale.y),this._anchor.set(a.anchor.x,a.anchor.y),this._rotate=a.rotation,this._alpha.current=a.alpha,this._image=a.texture.baseTexture.source,(void 0===g||null===g)&&(g=a.x),(void 0===h||null===h)&&(h=a.y),a.texture.trim&&(g+=a.texture.trim.x-a.anchor.x*a.texture.trim.width,h+=a.texture.trim.y-a.anchor.y*a.texture.trim.height),16777215!==a.tint&&(a.cachedTint!==a.tint&&(a.cachedTint=a.tint,a.tintedTexture=PIXI.CanvasTinter.getTintedTexture(a,a.tint)),this._image=a.tintedTexture,this._pos.set(0));else{if(this._pos.set(0),this._scale.set(1),this._anchor.set(0),this._rotate=0,this._alpha.current=1,a instanceof c.BitmapData)this._image=a.canvas;else if("string"==typeof a){if(a=this.game.cache.getImage(a),null===a)return;this._image=a}this._size.set(this._image.width,this._image.height)}if((void 0===b||null===b)&&(b=0),(void 0===d||null===d)&&(d=0),e&&(this._size.x=e),f&&(this._size.y=f),(void 0===g||null===g)&&(g=b),(void 0===h||null===h)&&(h=d),(void 0===i||null===i)&&(i=this._size.x),(void 0===j||null===j)&&(j=this._size.y),"number"==typeof k&&(this._rotate=k),"number"==typeof l&&(this._anchor.x=l),"number"==typeof m&&(this._anchor.y=m),"number"==typeof n&&(this._scale.x=n),"number"==typeof o&&(this._scale.y=o),"number"==typeof p&&(this._alpha.current=p),void 0===q&&(q=null),void 0===r&&(r=!1),!(this._alpha.current<=0||0===this._scale.x||0===this._scale.y||0===this._size.x||0===this._size.y)){var s=this.context;return this._alpha.prev=s.globalAlpha,s.save(),s.globalAlpha=this._alpha.current,q&&(this.op=q),r&&(g|=0,h|=0),s.translate(g,h),s.scale(this._scale.x,this._scale.y),s.rotate(this._rotate),s.drawImage(this._image,this._pos.x+b,this._pos.y+d,this._size.x,this._size.y,-i*this._anchor.x,-j*this._anchor.y,i,j),s.restore(),s.globalAlpha=this._alpha.prev,this.dirty=!0,this}},copyRect:function(a,b,c,d,e,f,g){return this.copy(a,b.x,b.y,b.width,b.height,c,d,b.width,b.height,0,0,0,1,1,e,f,g)},draw:function(a,b,c,d,e,f,g){return this.copy(a,null,null,null,null,b,c,d,e,null,null,null,null,null,null,f,g)},drawGroup:function(a,b,c){return a.total>0&&a.forEachExists(this.drawGroupProxy,this,b,c),this},drawGroupProxy:function(a,b,d){if(a.type===c.EMITTER||a.type===c.BITMAPTEXT)for(var e=0;eb.width&&(e=b.width);var f=this.context;return f.fillStyle=f.createPattern(b,d),this._circle=new c.Circle(a.start.x,a.start.y,b.height),this._circle.circumferencePoint(a.angle-1.5707963267948966,!1,this._pos),f.save(),f.translate(this._pos.x,this._pos.y),f.rotate(a.angle),f.fillRect(0,0,e,b.height),f.restore(),this.dirty=!0,this}},render:function(){return!this.disableTextureUpload&&this.dirty&&(this.baseTexture.dirty(),this.dirty=!1),this},destroy:function(){this.frameData.destroy(),this.texture.destroy(!0),PIXI.CanvasPool.remove(this)},blendReset:function(){return this.op="source-over",this},blendSourceOver:function(){return this.op="source-over",this},blendSourceIn:function(){return this.op="source-in",this},blendSourceOut:function(){return this.op="source-out",this},blendSourceAtop:function(){return this.op="source-atop",this},blendDestinationOver:function(){return this.op="destination-over",this},blendDestinationIn:function(){return this.op="destination-in",this},blendDestinationOut:function(){return this.op="destination-out",this},blendDestinationAtop:function(){return this.op="destination-atop",this},blendXor:function(){return this.op="xor",this},blendAdd:function(){return this.op="lighter",this},blendMultiply:function(){return this.op="multiply",this},blendScreen:function(){return this.op="screen",this},blendOverlay:function(){return this.op="overlay",this},blendDarken:function(){return this.op="darken",this},blendLighten:function(){return this.op="lighten",this},blendColorDodge:function(){return this.op="color-dodge",this},blendColorBurn:function(){return this.op="color-burn",this},blendHardLight:function(){return this.op="hard-light",this},blendSoftLight:function(){return this.op="soft-light",this},blendDifference:function(){return this.op="difference",this},blendExclusion:function(){return this.op="exclusion",this},blendHue:function(){return this.op="hue",this},blendSaturation:function(){return this.op="saturation",this},blendColor:function(){return this.op="color",this},blendLuminosity:function(){return this.op="luminosity",this}},Object.defineProperty(c.BitmapData.prototype,"smoothed",{get:function(){c.Canvas.getSmoothingEnabled(this.context)},set:function(a){c.Canvas.setSmoothingEnabled(this.context,a)}}),Object.defineProperty(c.BitmapData.prototype,"op",{get:function(){return this.context.globalCompositeOperation},set:function(a){this.context.globalCompositeOperation=a}}),c.BitmapData.getTransform=function(a,b,c,d,e,f){return"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),"number"!=typeof c&&(c=1),"number"!=typeof d&&(d=1),"number"!=typeof e&&(e=0),"number"!=typeof f&&(f=0),{sx:c,sy:d,scaleX:c,scaleY:d,skewX:e,skewY:f,translateX:a,translateY:b,tx:a,ty:b}},c.BitmapData.prototype.constructor=c.BitmapData,PIXI.Graphics=function(){PIXI.DisplayObjectContainer.call(this),this.renderable=!0,this.fillAlpha=1,this.lineWidth=0,this.lineColor=0,this.graphicsData=[],this.tint=16777215,this.blendMode=PIXI.blendModes.NORMAL,this.currentPath=null,this._webGL=[],this.isMask=!1,this.boundsPadding=0,this._localBounds=new PIXI.Rectangle(0,0,1,1),this.dirty=!0,this.webGLDirty=!1,this.cachedSpriteDirty=!1},PIXI.Graphics.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Graphics.prototype.constructor=PIXI.Graphics,PIXI.Graphics.prototype.lineStyle=function(a,b,c){return this.lineWidth=a||0,this.lineColor=b||0,this.lineAlpha=void 0===c?1:c,this.currentPath&&(this.currentPath.shape.points.length?this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))):(this.currentPath.lineWidth=this.lineWidth,this.currentPath.lineColor=this.lineColor,this.currentPath.lineAlpha=this.lineAlpha)),this},PIXI.Graphics.prototype.moveTo=function(a,b){return this.drawShape(new PIXI.Polygon([a,b])),this},PIXI.Graphics.prototype.lineTo=function(a,b){return this.currentPath||this.moveTo(0,0),this.currentPath.shape.points.push(a,b),this.dirty=!0,this},PIXI.Graphics.prototype.quadraticCurveTo=function(a,b,c,d){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);var e,f,g=20,h=this.currentPath.shape.points;0===h.length&&this.moveTo(0,0);for(var i=h[h.length-2],j=h[h.length-1],k=0,l=1;g>=l;++l)k=l/g,e=i+(a-i)*k,f=j+(b-j)*k,h.push(e+(a+(c-a)*k-e)*k,f+(b+(d-b)*k-f)*k);return this.dirty=!0,this},PIXI.Graphics.prototype.bezierCurveTo=function(a,b,c,d,e,f){this.currentPath?0===this.currentPath.shape.points.length&&(this.currentPath.shape.points=[0,0]):this.moveTo(0,0);for(var g,h,i,j,k,l=20,m=this.currentPath.shape.points,n=m[m.length-2],o=m[m.length-1],p=0,q=1;l>=q;++q)p=q/l,g=1-p,h=g*g,i=h*g,j=p*p,k=j*p,m.push(i*n+3*h*p*a+3*g*j*c+k*e,i*o+3*h*p*b+3*g*j*d+k*f);return this.dirty=!0,this},PIXI.Graphics.prototype.arcTo=function(a,b,c,d,e){this.currentPath?0===this.currentPath.shape.points.length&&this.currentPath.shape.points.push(a,b):this.moveTo(a,b);var f=this.currentPath.shape.points,g=f[f.length-2],h=f[f.length-1],i=h-b,j=g-a,k=d-b,l=c-a,m=Math.abs(i*l-j*k);if(1e-8>m||0===e)(f[f.length-2]!==a||f[f.length-1]!==b)&&f.push(a,b);else{var n=i*i+j*j,o=k*k+l*l,p=i*k+j*l,q=e*Math.sqrt(n)/m,r=e*Math.sqrt(o)/m,s=q*p/n,t=r*p/o,u=q*l+r*j,v=q*k+r*i,w=j*(r+s),x=i*(r+s),y=l*(q+t),z=k*(q+t),A=Math.atan2(x-v,w-u),B=Math.atan2(z-v,y-u);this.arc(u+a,v+b,e,A,B,j*k>l*i)}return this.dirty=!0,this},PIXI.Graphics.prototype.arc=function(a,b,c,d,e,f,g){if(d===e)return this;void 0===f&&(f=!1),void 0===g&&(g=40),!f&&d>=e?e+=2*Math.PI:f&&e>=d&&(d+=2*Math.PI);var h=f?-1*(d-e):e-d,i=Math.ceil(Math.abs(h)/(2*Math.PI))*g;if(0===h)return this;var j=a+Math.cos(d)*c,k=b+Math.sin(d)*c;f&&this.filling?this.moveTo(a,b):this.moveTo(j,k);for(var l=this.currentPath.shape.points,m=h/(2*i),n=2*m,o=Math.cos(m),p=Math.sin(m),q=i-1,r=q%1/q,s=0;q>=s;s++){var t=s+r*s,u=m+d+n*t,v=Math.cos(u),w=-Math.sin(u);l.push((o*v+p*w)*c+a,(o*-w+p*v)*c+b)}return this.dirty=!0,this},PIXI.Graphics.prototype.beginFill=function(a,b){return this.filling=!0,this.fillColor=a||0,this.fillAlpha=void 0===b?1:b,this.currentPath&&this.currentPath.shape.points.length<=2&&(this.currentPath.fill=this.filling,this.currentPath.fillColor=this.fillColor,this.currentPath.fillAlpha=this.fillAlpha),this},PIXI.Graphics.prototype.endFill=function(){return this.filling=!1,this.fillColor=null,this.fillAlpha=1,this},PIXI.Graphics.prototype.drawRect=function(a,b,c,d){return this.drawShape(new PIXI.Rectangle(a,b,c,d)),this},PIXI.Graphics.prototype.drawRoundedRect=function(a,b,c,d,e){return this.drawShape(new PIXI.RoundedRectangle(a,b,c,d,e)),this},PIXI.Graphics.prototype.drawCircle=function(a,b,c){return this.drawShape(new PIXI.Circle(a,b,c)),this},PIXI.Graphics.prototype.drawEllipse=function(a,b,c,d){return this.drawShape(new PIXI.Ellipse(a,b,c,d)),this},PIXI.Graphics.prototype.drawPolygon=function(a){(a instanceof c.Polygon||a instanceof PIXI.Polygon)&&(a=a.points);var b=a;if(!Array.isArray(b)){b=new Array(arguments.length);for(var d=0;dp?p:x,x=x>r?r:x,x=x>t?t:x,y=y>q?q:y,y=y>s?s:y,y=y>u?u:y,v=p>v?p:v,v=r>v?r:v,v=t>v?t:v,w=q>w?q:w,w=s>w?s:w,w=u>w?u:w,this._bounds.x=x,this._bounds.width=v-x,this._bounds.y=y,this._bounds.height=w-y,this._currentBounds=this._bounds}return this._currentBounds},PIXI.Graphics.prototype.containsPoint=function(a){this.worldTransform.applyInverse(a,tempPoint);for(var b=this.graphicsData,c=0;ch?h:a,b=h+j>b?h+j:b,d=d>i?i:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.CIRC)h=f.x,i=f.y,j=f.radius+o/2,k=f.radius+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else if(n===PIXI.Graphics.ELIP)h=f.x,i=f.y,j=f.width+o/2,k=f.height+o/2,a=a>h-j?h-j:a,b=h+j>b?h+j:b,d=d>i-k?i-k:d,e=i+k>e?i+k:e;else{g=f.points;for(var p=0;ph-o?h-o:a,b=h+o>b?h+o:b,d=d>i-o?i-o:d,e=i+o>e?i+o:e}}else a=0,b=0,d=0,e=0;var q=this.boundsPadding;this._localBounds.x=a-q,this._localBounds.width=b-a+2*q,this._localBounds.y=d-q,this._localBounds.height=e-d+2*q},PIXI.Graphics.prototype._generateCachedSprite=function(){var a=this.getLocalBounds();if(this._cachedSprite)this._cachedSprite.buffer.resize(a.width,a.height);else{var b=new PIXI.CanvasBuffer(a.width,a.height),c=PIXI.Texture.fromCanvas(b.canvas);this._cachedSprite=new PIXI.Sprite(c),this._cachedSprite.buffer=b,this._cachedSprite.worldTransform=this.worldTransform}this._cachedSprite.anchor.x=-(a.x/a.width),this._cachedSprite.anchor.y=-(a.y/a.height),this._cachedSprite.buffer.context.translate(-a.x,-a.y),this.worldAlpha=1,PIXI.CanvasGraphics.renderGraphics(this,this._cachedSprite.buffer.context),this._cachedSprite.alpha=this.alpha},PIXI.Graphics.prototype.updateCachedSpriteTexture=function(){var a=this._cachedSprite,b=a.texture,c=a.buffer.canvas;b.baseTexture.width=c.width,b.baseTexture.height=c.height,b.crop.width=b.frame.width=c.width,b.crop.height=b.frame.height=c.height,a._width=c.width,a._height=c.height,b.baseTexture.dirty()},PIXI.Graphics.prototype.destroyCachedSprite=function(){this._cachedSprite.texture.destroy(!0),this._cachedSprite=null},PIXI.Graphics.prototype.drawShape=function(a){this.currentPath&&this.currentPath.shape.points.length<=2&&this.graphicsData.pop(),this.currentPath=null,a instanceof c.Polygon&&(a=a.clone(),a.flatten());var b=new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,a);return this.graphicsData.push(b),b.type===PIXI.Graphics.POLY&&(b.shape.closed=this.filling,this.currentPath=b),this.dirty=!0,b},Object.defineProperty(PIXI.Graphics.prototype,"cacheAsBitmap",{get:function(){return this._cacheAsBitmap},set:function(a){this._cacheAsBitmap=a,this._cacheAsBitmap?this._generateCachedSprite():this.destroyCachedSprite(),this.dirty=!0,this.webGLDirty=!0}}),PIXI.GraphicsData=function(a,b,c,d,e,f,g){this.lineWidth=a,this.lineColor=b,this.lineAlpha=c,this._lineTint=b,this.fillColor=d,this.fillAlpha=e,this._fillTint=d,this.fill=f,this.shape=g,this.type=g.type},PIXI.GraphicsData.prototype.constructor=PIXI.GraphicsData,PIXI.GraphicsData.prototype.clone=function(){return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape)},PIXI.PolyK={},PIXI.PolyK.Triangulate=function(a){var b=!0,c=a.length>>1;if(3>c)return[];for(var d=[],e=[],f=0;c>f;f++)e.push(f);f=0;for(var g=c;g>3;){var h=e[(f+0)%g],i=e[(f+1)%g],j=e[(f+2)%g],k=a[2*h],l=a[2*h+1],m=a[2*i],n=a[2*i+1],o=a[2*j],p=a[2*j+1],q=!1;if(PIXI.PolyK._convex(k,l,m,n,o,p,b)){q=!0;for(var r=0;g>r;r++){var s=e[r];if(s!==h&&s!==i&&s!==j&&PIXI.PolyK._PointInTriangle(a[2*s],a[2*s+1],k,l,m,n,o,p)){q=!1;break}}}if(q)d.push(h,i,j),e.splice((f+1)%g,1),g--,f=0;else if(f++>3*g){if(!b)return null;for(d=[],e=[],f=0;c>f;f++)e.push(f);f=0,g=c,b=!1}}return d.push(e[0],e[1],e[2]),d},PIXI.PolyK._PointInTriangle=function(a,b,c,d,e,f,g,h){var i=g-c,j=h-d,k=e-c,l=f-d,m=a-c,n=b-d,o=i*i+j*j,p=i*k+j*l,q=i*m+j*n,r=k*k+l*l,s=k*m+l*n,t=1/(o*r-p*p),u=(r*q-p*s)*t,v=(o*s-p*q)*t;return u>=0&&v>=0&&1>u+v},PIXI.PolyK._convex=function(a,b,c,d,e,f,g){return(b-d)*(e-c)+(c-a)*(f-d)>=0===g},PIXI.EarCut={},PIXI.EarCut.Triangulate=function(a,b,c){c=c||2;var d=b&&b.length,e=d?b[0]*c:a.length,f=PIXI.EarCut.linkedList(a,0,e,c,!0),g=[];if(!f)return g;var h,i,j,k,l,m,n;if(d&&(f=PIXI.EarCut.eliminateHoles(a,b,f,c)),a.length>80*c){h=j=a[0],i=k=a[1];for(var o=c;e>o;o+=c)l=a[o],m=a[o+1],h>l&&(h=l),i>m&&(i=m),l>j&&(j=l),m>k&&(k=m);n=Math.max(j-h,k-i)}return PIXI.EarCut.earcutLinked(f,g,c,h,i,n),g},PIXI.EarCut.linkedList=function(a,b,c,d,e){var f,g,h,i=0;for(f=b,g=c-d;c>f;f+=d)i+=(a[g]-a[f])*(a[f+1]+a[g+1]),g=f;if(e===i>0)for(f=b;c>f;f+=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);else for(f=c-d;f>=b;f-=d)h=PIXI.EarCut.insertNode(f,a[f],a[f+1],h);return h},PIXI.EarCut.filterPoints=function(a,b){if(!a)return a;b||(b=a);var c,d=a;do if(c=!1,d.steiner||!PIXI.EarCut.equals(d,d.next)&&0!==PIXI.EarCut.area(d.prev,d,d.next))d=d.next;else{if(PIXI.EarCut.removeNode(d),d=b=d.prev,d===d.next)return null;c=!0}while(c||d!==b);return b},PIXI.EarCut.earcutLinked=function(a,b,c,d,e,f,g){if(a){!g&&f&&PIXI.EarCut.indexCurve(a,d,e,f);for(var h,i,j=a;a.prev!==a.next;)if(h=a.prev,i=a.next,f?PIXI.EarCut.isEarHashed(a,d,e,f):PIXI.EarCut.isEar(a))b.push(h.i/c),b.push(a.i/c),b.push(i.i/c),PIXI.EarCut.removeNode(a),a=i.next,j=i.next;else if(a=i,a===j){g?1===g?(a=PIXI.EarCut.cureLocalIntersections(a,b,c),PIXI.EarCut.earcutLinked(a,b,c,d,e,f,2)):2===g&&PIXI.EarCut.splitEarcut(a,b,c,d,e,f):PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(a),b,c,d,e,f,1);break}}},PIXI.EarCut.isEar=function(a){var b=a.prev,c=a,d=a.next;if(PIXI.EarCut.area(b,c,d)>=0)return!1;for(var e=a.next.next;e!==a.prev;){if(PIXI.EarCut.pointInTriangle(b.x,b.y,c.x,c.y,d.x,d.y,e.x,e.y)&&PIXI.EarCut.area(e.prev,e,e.next)>=0)return!1;e=e.next}return!0},PIXI.EarCut.isEarHashed=function(a,b,c,d){var e=a.prev,f=a,g=a.next;if(PIXI.EarCut.area(e,f,g)>=0)return!1;for(var h=e.xf.x?e.x>g.x?e.x:g.x:f.x>g.x?f.x:g.x,k=e.y>f.y?e.y>g.y?e.y:g.y:f.y>g.y?f.y:g.y,l=PIXI.EarCut.zOrder(h,i,b,c,d),m=PIXI.EarCut.zOrder(j,k,b,c,d),n=a.nextZ;n&&n.z<=m;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.nextZ}for(n=a.prevZ;n&&n.z>=l;){if(n!==a.prev&&n!==a.next&&PIXI.EarCut.pointInTriangle(e.x,e.y,f.x,f.y,g.x,g.y,n.x,n.y)&&PIXI.EarCut.area(n.prev,n,n.next)>=0)return!1;n=n.prevZ}return!0},PIXI.EarCut.cureLocalIntersections=function(a,b,c){var d=a;do{var e=d.prev,f=d.next.next;PIXI.EarCut.intersects(e,d,d.next,f)&&PIXI.EarCut.locallyInside(e,f)&&PIXI.EarCut.locallyInside(f,e)&&(b.push(e.i/c),b.push(d.i/c),b.push(f.i/c),PIXI.EarCut.removeNode(d),PIXI.EarCut.removeNode(d.next),d=a=f),d=d.next}while(d!==a);return d},PIXI.EarCut.splitEarcut=function(a,b,c,d,e,f){var g=a;do{for(var h=g.next.next;h!==g.prev;){if(g.i!==h.i&&PIXI.EarCut.isValidDiagonal(g,h)){var i=PIXI.EarCut.splitPolygon(g,h);return g=PIXI.EarCut.filterPoints(g,g.next),i=PIXI.EarCut.filterPoints(i,i.next),PIXI.EarCut.earcutLinked(g,b,c,d,e,f),void PIXI.EarCut.earcutLinked(i,b,c,d,e,f)}h=h.next}g=g.next}while(g!==a)},PIXI.EarCut.eliminateHoles=function(a,b,c,d){var e,f,g,h,i,j=[];for(e=0,f=b.length;f>e;e++)g=b[e]*d,h=f-1>e?b[e+1]*d:a.length,i=PIXI.EarCut.linkedList(a,g,h,d,!1),i===i.next&&(i.steiner=!0),j.push(PIXI.EarCut.getLeftmost(i));for(j.sort(compareX),e=0;e=d.next.y){var h=d.x+(f-d.y)*(d.next.x-d.x)/(d.next.y-d.y);e>=h&&h>g&&(g=h,c=d.x=d.x&&d.x>=c.x&&PIXI.EarCut.pointInTriangle(fi||i===k&&d.x>c.x)&&PIXI.EarCut.locallyInside(d,a)&&(c=d,k=i)),d=d.next;return c},PIXI.EarCut.indexCurve=function(a,b,c,d){var e=a;do null===e.z&&(e.z=PIXI.EarCut.zOrder(e.x,e.y,b,c,d)),e.prevZ=e.prev,e.nextZ=e.next,e=e.next;while(e!==a);e.prevZ.nextZ=null,e.prevZ=null,PIXI.EarCut.sortLinked(e)},PIXI.EarCut.sortLinked=function(a){var b,c,d,e,f,g,h,i,j=1;do{for(c=a,a=null,f=null,g=0;c;){for(g++,d=c,h=0,b=0;j>b&&(h++,d=d.nextZ,d);b++);for(i=j;h>0||i>0&&d;)0===h?(e=d,d=d.nextZ,i--):0!==i&&d?c.z<=d.z?(e=c,c=c.nextZ,h--):(e=d,d=d.nextZ,i--):(e=c,c=c.nextZ,h--),f?f.nextZ=e:a=e,e.prevZ=f,f=e;c=d}f.nextZ=null,j*=2}while(g>1);return a},PIXI.EarCut.zOrder=function(a,b,c,d,e){return a=32767*(a-c)/e,b=32767*(b-d)/e,a=16711935&(a|a<<8),a=252645135&(a|a<<4),a=858993459&(a|a<<2),a=1431655765&(a|a<<1),b=16711935&(b|b<<8),b=252645135&(b|b<<4),b=858993459&(b|b<<2),b=1431655765&(b|b<<1),a|b<<1},PIXI.EarCut.getLeftmost=function(a){var b=a,c=a;do b.x=0&&(a-g)*(d-h)-(c-g)*(b-h)>=0&&(c-g)*(f-h)-(e-g)*(d-h)>=0},PIXI.EarCut.isValidDiagonal=function(a,b){return PIXI.EarCut.equals(a,b)||a.next.i!==b.i&&a.prev.i!==b.i&&!PIXI.EarCut.intersectsPolygon(a,b)&&PIXI.EarCut.locallyInside(a,b)&&PIXI.EarCut.locallyInside(b,a)&&PIXI.EarCut.middleInside(a,b)},PIXI.EarCut.area=function(a,b,c){return(b.y-a.y)*(c.x-b.x)-(b.x-a.x)*(c.y-b.y)},PIXI.EarCut.equals=function(a,b){return a.x===b.x&&a.y===b.y},PIXI.EarCut.intersects=function(a,b,c,d){return PIXI.EarCut.area(a,b,c)>0!=PIXI.EarCut.area(a,b,d)>0&&PIXI.EarCut.area(c,d,a)>0!=PIXI.EarCut.area(c,d,b)>0},PIXI.EarCut.intersectsPolygon=function(a,b){var c=a;do{if(c.i!==a.i&&c.next.i!==a.i&&c.i!==b.i&&c.next.i!==b.i&&PIXI.EarCut.intersects(c,c.next,a,b))return!0;c=c.next}while(c!==a);return!1},PIXI.EarCut.locallyInside=function(a,b){return PIXI.EarCut.area(a.prev,a,a.next)<0?PIXI.EarCut.area(a,b,a.next)>=0&&PIXI.EarCut.area(a,a.prev,b)>=0:PIXI.EarCut.area(a,b,a.prev)<0||PIXI.EarCut.area(a,a.next,b)<0},PIXI.EarCut.middleInside=function(a,b){var c=a,d=!1,e=(a.x+b.x)/2,f=(a.y+b.y)/2;do c.y>f!=c.next.y>f&&e<(c.next.x-c.x)*(f-c.y)/(c.next.y-c.y)+c.x&&(d=!d),c=c.next;while(c!==a);return d},PIXI.EarCut.splitPolygon=function(a,b){var c=new PIXI.EarCut.Node(a.i,a.x,a.y),d=new PIXI.EarCut.Node(b.i,b.x,b.y),e=a.next,f=b.prev;return a.next=b,b.prev=a,c.next=e,e.prev=c,d.next=c,c.prev=d,f.next=d,d.prev=f,d},PIXI.EarCut.insertNode=function(a,b,c,d){var e=new PIXI.EarCut.Node(a,b,c);return d?(e.next=d.next,e.prev=d,d.next.prev=e,d.next=e):(e.prev=e,e.next=e),e},PIXI.EarCut.removeNode=function(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)},PIXI.EarCut.Node=function(a,b,c){this.i=a,this.x=b,this.y=c,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1},PIXI.WebGLGraphics=function(){},PIXI.WebGLGraphics.stencilBufferLimit=6,PIXI.WebGLGraphics.renderGraphics=function(a,b){var c,d=b.gl,e=b.projection,f=b.offset,g=b.shaderManager.primitiveShader;a.dirty&&PIXI.WebGLGraphics.updateGraphics(a,d);for(var h=a._webGL[d.id],i=0;i=PIXI.WebGLGraphics.stencilBufferLimit)if(g.points.length<2*PIXI.WebGLGraphics.stencilBufferLimit){f=PIXI.WebGLGraphics.switchMode(c,0);var h=PIXI.WebGLGraphics.buildPoly(g,f);h||(f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,1),PIXI.WebGLGraphics.buildComplexPoly(g,f);g.lineWidth>0&&(f=PIXI.WebGLGraphics.switchMode(c,0),PIXI.WebGLGraphics.buildLine(g,f))}else f=PIXI.WebGLGraphics.switchMode(c,0),g.type===PIXI.Graphics.RECT?PIXI.WebGLGraphics.buildRectangle(g,f):g.type===PIXI.Graphics.CIRC||g.type===PIXI.Graphics.ELIP?PIXI.WebGLGraphics.buildCircle(g,f):g.type===PIXI.Graphics.RREC&&PIXI.WebGLGraphics.buildRoundedRectangle(g,f);c.lastIndex++}for(d=0;d=q;q++)p=q/n,h=g(a,c,p),i=g(b,d,p),j=g(c,e,p),k=g(d,f,p),l=g(h,j,p),m=g(i,k,p),o.push(l,m);return o},PIXI.WebGLGraphics.buildCircle=function(a,b){var c,d,e=a.shape,f=e.x,g=e.y;a.type===PIXI.Graphics.CIRC?(c=e.radius,d=e.radius):(c=e.width,d=e.height);var h=40,i=2*Math.PI/h,j=0;if(a.fill){var k=PIXI.hex2rgb(a.fillColor),l=a.fillAlpha,m=k[0]*l,n=k[1]*l,o=k[2]*l,p=b.points,q=b.indices,r=p.length/6;for(q.push(r),j=0;h+1>j;j++)p.push(f,g,m,n,o,l),p.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d,m,n,o,l),q.push(r++,r++);q.push(r-1)}if(a.lineWidth){var s=a.points;for(a.points=[],j=0;h+1>j;j++)a.points.push(f+Math.sin(i*j)*c,g+Math.cos(i*j)*d);PIXI.WebGLGraphics.buildLine(a,b),a.points=s}},PIXI.WebGLGraphics.buildLine=function(a,b){var c=0,d=a.points;if(0!==d.length){if(a.lineWidth%2)for(c=0;cc;c++)k=d[2*(c-1)],l=d[2*(c-1)+1],m=d[2*c],n=d[2*c+1],o=d[2*(c+1)],p=d[2*(c+1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,s=-(n-p),t=m-o,E=Math.sqrt(s*s+t*t),s/=E,t/=E,s*=K,t*=K,w=-r+l-(-r+n),x=-q+m-(-q+k),y=(-q+k)*(-r+n)-(-q+m)*(-r+l),z=-t+p-(-t+n),A=-s+m-(-s+o),B=(-s+o)*(-t+n)-(-s+m)*(-t+p),C=w*A-z*x,Math.abs(C)<.1?(C+=10.1,F.push(m-q,n-r,N,O,P,M),F.push(m+q,n+r,N,O,P,M)):(i=(x*B-A*y)/C,j=(z*y-w*B)/C,D=(i-m)*(i-m)+(j-n)+(j-n),D>19600?(u=q-s,v=r-t,E=Math.sqrt(u*u+v*v),u/=E,v/=E,u*=K,v*=K,F.push(m-u,n-v),F.push(N,O,P,M),F.push(m+u,n+v),F.push(N,O,P,M),F.push(m-u,n-v),F.push(N,O,P,M),I++):(F.push(i,j),F.push(N,O,P,M),F.push(m-(i-m),n-(j-n)),F.push(N,O,P,M)));for(k=d[2*(H-2)],l=d[2*(H-2)+1],m=d[2*(H-1)],n=d[2*(H-1)+1],q=-(l-n),r=k-m,E=Math.sqrt(q*q+r*r),q/=E,r/=E,q*=K,r*=K,F.push(m-q,n-r),F.push(N,O,P,M),F.push(m+q,n+r),F.push(N,O,P,M),G.push(J),c=0;I>c;c++)G.push(J++);G.push(J-1)}},PIXI.WebGLGraphics.buildComplexPoly=function(a,b){var c=a.points.slice();if(!(c.length<6)){var d=b.indices;b.points=c,b.alpha=a.fillAlpha,b.color=PIXI.hex2rgb(a.fillColor);for(var e,f,g=1/0,h=-(1/0),i=1/0,j=-(1/0),k=0;ke?e:g,h=e>h?e:h,i=i>f?f:i,j=f>j?f:j;c.push(g,i,h,i,h,j,g,j);var l=c.length/2;for(k=0;l>k;k++)d.push(k)}},PIXI.WebGLGraphics.buildPoly=function(a,b){var c=a.points;if(!(c.length<6)){var d=b.points,e=b.indices,f=c.length/2,g=PIXI.hex2rgb(a.fillColor),h=a.fillAlpha,i=g[0]*h,j=g[1]*h,k=g[2]*h,l=PIXI.EarCut.Triangulate(c,null,2);if(!l)return!1;var m=d.length/6,n=0;for(n=0;nn;n++)d.push(c[2*n],c[2*n+1],i,j,k,h);return!0}},PIXI.WebGLGraphics.graphicsDataPool=[],PIXI.WebGLGraphicsData=function(a){this.gl=a,this.color=[0,0,0],this.points=[],this.indices=[],this.buffer=a.createBuffer(),this.indexBuffer=a.createBuffer(),this.mode=1,this.alpha=1,this.dirty=!0},PIXI.WebGLGraphicsData.prototype.reset=function(){this.points=[],this.indices=[]},PIXI.WebGLGraphicsData.prototype.upload=function(){var a=this.gl;this.glPoints=new PIXI.Float32Array(this.points),a.bindBuffer(a.ARRAY_BUFFER,this.buffer),a.bufferData(a.ARRAY_BUFFER,this.glPoints,a.STATIC_DRAW),this.glIndicies=new PIXI.Uint16Array(this.indices),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.glIndicies,a.STATIC_DRAW),this.dirty=!1},PIXI.CanvasGraphics=function(){},PIXI.CanvasGraphics.renderGraphics=function(a,b){var c=a.worldAlpha;a.dirty&&(this.updateGraphicsTint(a),a.dirty=!1);for(var d=0;dA?A:z,b.beginPath(),b.moveTo(v,w+z),b.lineTo(v,w+y-z),b.quadraticCurveTo(v,w+y,v+z,w+y),b.lineTo(v+x-z,w+y),b.quadraticCurveTo(v+x,w+y,v+x,w+y-z),b.lineTo(v+x,w+z),b.quadraticCurveTo(v+x,w,v+x-z,w),b.lineTo(v+z,w),b.quadraticCurveTo(v,w,v,w+z),b.closePath(),(e.fillColor||0===e.fillColor)&&(b.globalAlpha=e.fillAlpha*c,b.fillStyle="#"+("00000"+(0|g).toString(16)).substr(-6),b.fill()),e.lineWidth&&(b.globalAlpha=e.lineAlpha*c,b.strokeStyle="#"+("00000"+(0|h).toString(16)).substr(-6),b.stroke())}}},PIXI.CanvasGraphics.renderGraphicsMask=function(a,b){var c=a.graphicsData.length;if(0!==c){b.beginPath();for(var d=0;c>d;d++){var e=a.graphicsData[d],f=e.shape;if(e.type===PIXI.Graphics.POLY){var g=f.points;b.moveTo(g[0],g[1]);for(var h=1;hy?y:x,b.moveTo(t,u+x),b.lineTo(t,u+w-x),b.quadraticCurveTo(t,u+w,t+x,u+w),b.lineTo(t+v-x,u+w),b.quadraticCurveTo(t+v,u+w,t+v,u+w-x),b.lineTo(t+v,u+x),b.quadraticCurveTo(t+v,u,t+v-x,u),b.lineTo(t+x,u),b.quadraticCurveTo(t,u,t,u+x),b.closePath()}}}},PIXI.CanvasGraphics.updateGraphicsTint=function(a){if(16777215!==a.tint)for(var b=(a.tint>>16&255)/255,c=(a.tint>>8&255)/255,d=(255&a.tint)/255,e=0;e>16&255)/255*b*255<<16)+((g>>8&255)/255*c*255<<8)+(255&g)/255*d*255,f._lineTint=((h>>16&255)/255*b*255<<16)+((h>>8&255)/255*c*255<<8)+(255&h)/255*d*255}},c.Graphics=function(a,b,d){void 0===b&&(b=0),void 0===d&&(d=0),this.type=c.GRAPHICS,this.physicsType=c.SPRITE,this.anchor=new c.Point,PIXI.Graphics.call(this),c.Component.Core.init.call(this,a,b,d,"",null)},c.Graphics.prototype=Object.create(PIXI.Graphics.prototype),c.Graphics.prototype.constructor=c.Graphics,c.Component.Core.install.call(c.Graphics.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.Graphics.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Graphics.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Graphics.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Graphics.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Graphics.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Graphics.prototype.destroy=function(a){this.clear(),c.Component.Destroy.prototype.destroy.call(this,a)},c.Graphics.prototype.drawTriangle=function(a,b){void 0===b&&(b=!1);var d=new c.Polygon(a);if(b){var e=new c.Point(this.game.camera.x-a[0].x,this.game.camera.y-a[0].y),f=new c.Point(a[1].x-a[0].x,a[1].y-a[0].y),g=new c.Point(a[1].x-a[2].x,a[1].y-a[2].y),h=g.cross(f);e.dot(h)>0&&this.drawPolygon(d)}else this.drawPolygon(d)},c.Graphics.prototype.drawTriangles=function(a,b,d){void 0===d&&(d=!1);var e,f=new c.Point,g=new c.Point,h=new c.Point,i=[];if(b)if(a[0]instanceof c.Point)for(e=0;e0&&this.style.maxLinesh;h++){if(0===c){var i=this.context.measureText(b[h]).width+this.style.strokeThickness+this.padding.x;this.style.wordWrap&&(i-=this.context.measureText(" ").width)}else{var j=b[h].split(/(?:\t)/),i=this.padding.x+this.style.strokeThickness;if(Array.isArray(c))for(var k=0,l=0;l0&&(k+=c[l-1]),i=k+m}else for(var l=0;lq&&Math.abs(q)>o&&(q=-o),0!==q&&(p+=q>0?q*b.length:q*(b.length-1)),this.canvas.height=p*this._res,this.context.scale(this._res,this._res),navigator.isCocoonJS&&this.context.clearRect(0,0,this.canvas.width,this.canvas.height),this.style.backgroundColor&&(this.context.fillStyle=this.style.backgroundColor,this.context.fillRect(0,0,this.canvas.width,this.canvas.height)),this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.textBaseline="alphabetic",this.context.lineWidth=this.style.strokeThickness,this.context.lineCap="round",this.context.lineJoin="round";var r,s;for(this._charCount=0,h=0;g>h;h++)r=this.style.strokeThickness/2,s=this.style.strokeThickness/2+h*o+f.ascent,h>0&&(s+=q*h),"right"===this.style.align?r+=e-d[h]:"center"===this.style.align&&(r+=(e-d[h])/2),this.autoRound&&(r=Math.round(r),s=Math.round(s)),this.colors.length>0||this.strokeColors.length>0||this.fontWeights.length>0||this.fontStyles.length>0?this.updateLine(b[h],r,s):(this.style.stroke&&this.style.strokeThickness&&(this.updateShadow(this.style.shadowStroke),0===c?this.context.strokeText(b[h],r,s):this.renderTabLine(b[h],r,s,!1)),this.style.fill&&(this.updateShadow(this.style.shadowFill),0===c?this.context.fillText(b[h],r,s):this.renderTabLine(b[h],r,s,!0)));this.updateTexture()},c.Text.prototype.renderTabLine=function(a,b,c,d){var e=a.split(/(?:\t)/),f=this.style.tabs,g=0;if(Array.isArray(f))for(var h=0,i=0;i0&&(h+=f[i-1]),g=b+h,d?this.context.fillText(e[i],g,c):this.context.strokeText(e[i],g,c);else for(var i=0;i0||this.fontStyles.length>0){var f=this.fontToComponents(this.context.font);this.fontStyles[this._charCount]&&(f.fontStyle=this.fontStyles[this._charCount]),this.fontWeights[this._charCount]&&(f.fontWeight=this.fontWeights[this._charCount]),this.context.font=this.componentsToFont(f)}this.style.stroke&&this.style.strokeThickness&&(this.strokeColors[this._charCount]&&(this.context.strokeStyle=this.strokeColors[this._charCount]),this.updateShadow(this.style.shadowStroke),this.context.strokeText(e,b,c)),this.style.fill&&(this.colors[this._charCount]&&(this.context.fillStyle=this.colors[this._charCount]),this.updateShadow(this.style.shadowFill),this.context.fillText(e,b,c)),b+=this.context.measureText(e).width,this._charCount++}},c.Text.prototype.clearColors=function(){return this.colors=[],this.strokeColors=[],this.dirty=!0,this},c.Text.prototype.clearFontValues=function(){return this.fontStyles=[],this.fontWeights=[],this.dirty=!0,this},c.Text.prototype.addColor=function(a,b){return this.colors[b]=a,this.dirty=!0,this},c.Text.prototype.addStrokeColor=function(a,b){return this.strokeColors[b]=a,this.dirty=!0,this},c.Text.prototype.addFontStyle=function(a,b){return this.fontStyles[b]=a,this.dirty=!0,this},c.Text.prototype.addFontWeight=function(a,b){return this.fontWeights[b]=a,this.dirty=!0,this},c.Text.prototype.precalculateWordWrap=function(a){this.texture.baseTexture.resolution=this._res,this.context.font=this.style.font;var b=this.runWordWrap(a);return b.split(/(?:\r\n|\r|\n)/)},c.Text.prototype.runWordWrap=function(a){return this.useAdvancedWrap?this.advancedWordWrap(a):this.basicWordWrap(a)},c.Text.prototype.advancedWordWrap=function(a){for(var b=this.context,c=this.style.wordWrapWidth,d="",e=a.replace(/ +/gi," ").split(/\r?\n/gi),f=e.length,g=0;f>g;g++){var h=e[g],i="";h=h.replace(/^ *|\s*$/gi,"");var j=b.measureText(h).width;if(c>j)d+=h+"\n";else{for(var k=c,l=h.split(" "),m=0;mk){if(0===m){for(var q=o;q.length&&(q=q.slice(0,-1),p=b.measureText(q).width,!(k>=p)););if(!q.length)throw new Error("This text's wordWrapWidth setting is less than a single character!");var r=n.substr(q.length);l[m]=r,i+=q}var s=l[m].length?m:m+1,t=l.slice(s).join(" ").replace(/[ \n]*$/gi,"");e[g+1]=t+" "+(e[g+1]||""),f=e.length;break}i+=o,k-=p}d+=i.replace(/[ \n]*$/gi,"")+"\n"}}return d=d.replace(/[\s|\n]*$/gi,"")},c.Text.prototype.basicWordWrap=function(a){for(var b="",c=a.split("\n"),d=0;de?(g>0&&(b+="\n"),b+=f[g]+" ",e=this.style.wordWrapWidth-h):(e-=i,b+=f[g]+" ")}dd&&(this.style.wordWrapWidth=d)),this.updateTexture(),this},c.Text.prototype.updateTexture=function(){var a=this.texture.baseTexture,b=this.texture.crop,c=this.texture.frame,d=this.canvas.width,e=this.canvas.height;if(a.width=d,a.height=e,b.width=d,b.height=e,c.width=d,c.height=e,this.texture.width=d,this.texture.height=e,this._width=d,this._height=e,this.textBounds){var f=this.textBounds.x,g=this.textBounds.y;"right"===this.style.boundsAlignH?f+=this.textBounds.width-this.canvas.width:"center"===this.style.boundsAlignH&&(f+=this.textBounds.halfWidth-this.canvas.width/2),"bottom"===this.style.boundsAlignV?g+=this.textBounds.height-this.canvas.height:"middle"===this.style.boundsAlignV&&(g+=this.textBounds.halfHeight-this.canvas.height/2),this.pivot.x=-f,this.pivot.y=-g}this.renderable=0!==d&&0!==e,this.texture.requiresReTint=!0,this.texture.baseTexture.dirty()},c.Text.prototype._renderWebGL=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderWebGL.call(this,a)},c.Text.prototype._renderCanvas=function(a){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype._renderCanvas.call(this,a)},c.Text.prototype.determineFontProperties=function(a){var b=c.Text.fontPropertiesCache[a];if(!b){b={};var d=c.Text.fontPropertiesCanvas,e=c.Text.fontPropertiesContext;e.font=a;var f=Math.ceil(e.measureText("|MÉq").width),g=Math.ceil(e.measureText("|MÉq").width),h=2*g;if(g=1.4*g|0,d.width=f,d.height=h,e.fillStyle="#f00",e.fillRect(0,0,f,h),e.font=a,e.textBaseline="alphabetic",e.fillStyle="#000",e.fillText("|MÉq",0,g),!e.getImageData(0,0,f,h))return b.ascent=g,b.descent=g+6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b,b;var i,j,k=e.getImageData(0,0,f,h).data,l=k.length,m=4*f,n=0,o=!1;for(i=0;g>i;i++){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n+=m}for(b.ascent=g-i,n=l-m,o=!1,i=h;i>g;i--){for(j=0;m>j;j+=4)if(255!==k[n+j]){o=!0;break}if(o)break;n-=m}b.descent=i-g,b.descent+=6,b.fontSize=b.ascent+b.descent,c.Text.fontPropertiesCache[a]=b}return b},c.Text.prototype.getBounds=function(a){return this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.getBounds.call(this,a)},Object.defineProperty(c.Text.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"cssFont",{get:function(){return this.componentsToFont(this._fontComponents)},set:function(a){a=a||"bold 20pt Arial",this._fontComponents=this.fontToComponents(a),this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"font",{get:function(){return this._fontComponents.fontFamily},set:function(a){a=a||"Arial",a=a.trim(),/^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(a)||/['",]/.exec(a)||(a="'"+a+"'"),this._fontComponents.fontFamily=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontSize",{get:function(){var a=this._fontComponents.fontSize;return a&&/(?:^0$|px$)/.exec(a)?parseInt(a,10):a},set:function(a){a=a||"0","number"==typeof a&&(a+="px"),this._fontComponents.fontSize=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontWeight",{get:function(){return this._fontComponents.fontWeight||"normal"},set:function(a){a=a||"normal", +this._fontComponents.fontWeight=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontStyle",{get:function(){return this._fontComponents.fontStyle||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontStyle=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fontVariant",{get:function(){return this._fontComponents.fontVariant||"normal"},set:function(a){a=a||"normal",this._fontComponents.fontVariant=a,this.updateFont(this._fontComponents)}}),Object.defineProperty(c.Text.prototype,"fill",{get:function(){return this.style.fill},set:function(a){a!==this.style.fill&&(this.style.fill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"align",{get:function(){return this.style.align},set:function(a){a!==this.style.align&&(this.style.align=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"resolution",{get:function(){return this._res},set:function(a){a!==this._res&&(this._res=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"tabs",{get:function(){return this.style.tabs},set:function(a){a!==this.style.tabs&&(this.style.tabs=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignH",{get:function(){return this.style.boundsAlignH},set:function(a){a!==this.style.boundsAlignH&&(this.style.boundsAlignH=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"boundsAlignV",{get:function(){return this.style.boundsAlignV},set:function(a){a!==this.style.boundsAlignV&&(this.style.boundsAlignV=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"stroke",{get:function(){return this.style.stroke},set:function(a){a!==this.style.stroke&&(this.style.stroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"strokeThickness",{get:function(){return this.style.strokeThickness},set:function(a){a!==this.style.strokeThickness&&(this.style.strokeThickness=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrap",{get:function(){return this.style.wordWrap},set:function(a){a!==this.style.wordWrap&&(this.style.wordWrap=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"wordWrapWidth",{get:function(){return this.style.wordWrapWidth},set:function(a){a!==this.style.wordWrapWidth&&(this.style.wordWrapWidth=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"lineSpacing",{get:function(){return this._lineSpacing},set:function(a){a!==this._lineSpacing&&(this._lineSpacing=parseFloat(a),this.dirty=!0,this.parent&&this.updateTransform())}}),Object.defineProperty(c.Text.prototype,"shadowOffsetX",{get:function(){return this.style.shadowOffsetX},set:function(a){a!==this.style.shadowOffsetX&&(this.style.shadowOffsetX=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowOffsetY",{get:function(){return this.style.shadowOffsetY},set:function(a){a!==this.style.shadowOffsetY&&(this.style.shadowOffsetY=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowColor",{get:function(){return this.style.shadowColor},set:function(a){a!==this.style.shadowColor&&(this.style.shadowColor=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowBlur",{get:function(){return this.style.shadowBlur},set:function(a){a!==this.style.shadowBlur&&(this.style.shadowBlur=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowStroke",{get:function(){return this.style.shadowStroke},set:function(a){a!==this.style.shadowStroke&&(this.style.shadowStroke=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"shadowFill",{get:function(){return this.style.shadowFill},set:function(a){a!==this.style.shadowFill&&(this.style.shadowFill=a,this.dirty=!0)}}),Object.defineProperty(c.Text.prototype,"width",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.x*this.texture.frame.width},set:function(a){this.scale.x=a/this.texture.frame.width,this._width=a}}),Object.defineProperty(c.Text.prototype,"height",{get:function(){return this.dirty&&(this.updateText(),this.dirty=!1),this.scale.y*this.texture.frame.height},set:function(a){this.scale.y=a/this.texture.frame.height,this._height=a}}),c.Text.fontPropertiesCache={},c.Text.fontPropertiesCanvas=PIXI.CanvasPool.create(c.Text.fontPropertiesCanvas),c.Text.fontPropertiesContext=c.Text.fontPropertiesCanvas.getContext("2d"),c.BitmapText=function(a,b,d,e,f,g,h){b=b||0,d=d||0,e=e||"",f=f||"",g=g||32,h=h||"left",PIXI.DisplayObjectContainer.call(this),this.type=c.BITMAPTEXT,this.physicsType=c.SPRITE,this.textWidth=0,this.textHeight=0,this.anchor=new c.Point,this._prevAnchor=new c.Point,this._glyphs=[],this._maxWidth=0,this._text=f.toString()||"",this._data=a.cache.getBitmapFont(e),this._font=e,this._fontSize=g,this._align=h,this._tint=16777215,this.updateText(),this.dirty=!1,c.Component.Core.init.call(this,a,b,d,"",null)},c.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),c.BitmapText.prototype.constructor=c.BitmapText,c.Component.Core.install.call(c.BitmapText.prototype,["Angle","AutoCull","Bounds","Destroy","FixedToCamera","InputEnabled","InWorld","LifeSpan","PhysicsBody","Reset"]),c.BitmapText.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.BitmapText.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.BitmapText.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.BitmapText.prototype.preUpdateCore=c.Component.Core.preUpdate,c.BitmapText.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.BitmapText.prototype.postUpdate=function(){c.Component.PhysicsBody.postUpdate.call(this),c.Component.FixedToCamera.postUpdate.call(this),this.body&&this.body.type===c.Physics.ARCADE&&(this.textWidth!==this.body.sourceWidth||this.textHeight!==this.body.sourceHeight)&&this.body.setSize(this.textWidth,this.textHeight)},c.BitmapText.prototype.setText=function(a){this.text=a},c.BitmapText.prototype.scanLine=function(a,b,c){for(var d=0,e=0,f=-1,g=null,h=this._maxWidth>0?this._maxWidth:null,i=[],j=0;j=h&&f>-1)return{width:e,text:c.substr(0,j-(j-f)),end:k,chars:i};e+=(m.xAdvance+o)*b,i.push(d+(m.xOffset+o)*b),d+=(m.xAdvance+o)*b,g=l}return{width:e,text:c,end:k,chars:i}},c.BitmapText.prototype.cleanText=function(a,b){void 0===b&&(b="");var c=this._data.font;if(!c)return"";for(var d=/\r\n|\n\r|\n|\r/g,e=a.replace(d,"\n").split("\n"),f=0;fthis.textWidth&&(this.textWidth=f.width),e+=a.lineHeight*c,b=b.substr(f.text.length+1)}while(f.end===!1);this.textHeight=e;for(var g=0,h=0,i=this.textWidth*this.anchor.x,j=this.textHeight*this.anchor.y,k=0;k0&&(this._fontSize=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"text",{get:function(){return this._text},set:function(a){a!==this._text&&(this._text=a.toString()||"",this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"maxWidth",{get:function(){return this._maxWidth},set:function(a){a!==this._maxWidth&&(this._maxWidth=a,this.updateText())}}),Object.defineProperty(c.BitmapText.prototype,"smoothed",{get:function(){return!this._data.base.scaleMode},set:function(a){a?this._data.base.scaleMode=0:this._data.base.scaleMode=1}}),c.RetroFont=function(a,b,d,e,f,g,h,i,j,k){if(!a.cache.checkImageKey(b))return!1;(void 0===g||null===g)&&(g=a.cache.getImage(b).width/d),this.characterWidth=d,this.characterHeight=e,this.characterSpacingX=h||0,this.characterSpacingY=i||0,this.characterPerRow=g,this.offsetX=j||0,this.offsetY=k||0,this.align="left",this.multiLine=!1,this.autoUpperCase=!0,this.customSpacingX=0,this.customSpacingY=0,this.fixedWidth=0,this.fontSet=a.cache.getImage(b),this._text="",this.grabData=[],this.frameData=new c.FrameData;for(var l=this.offsetX,m=this.offsetY,n=0,o=0;o?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",c.RetroFont.TEXT_SET2=" !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET3="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ",c.RetroFont.TEXT_SET4="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789",c.RetroFont.TEXT_SET5="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789",c.RetroFont.TEXT_SET6="ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ",c.RetroFont.TEXT_SET7="AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39",c.RetroFont.TEXT_SET8="0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET9="ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!",c.RetroFont.TEXT_SET10="ABCDEFGHIJKLMNOPQRSTUVWXYZ",c.RetroFont.TEXT_SET11="ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789",c.RetroFont.prototype.setFixedWidth=function(a,b){void 0===b&&(b="left"),this.fixedWidth=a,this.align=b},c.RetroFont.prototype.setText=function(a,b,c,d,e,f){this.multiLine=b||!1,this.customSpacingX=c||0,this.customSpacingY=d||0,this.align=e||"left",f?this.autoUpperCase=!1:this.autoUpperCase=!0,a.length>0&&(this.text=a)},c.RetroFont.prototype.buildRetroFontText=function(){var a=0,b=0;if(this.clear(),this.multiLine){var d=this._text.split("\n");this.fixedWidth>0?this.resize(this.fixedWidth,d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0):this.resize(this.getLongestLine()*(this.characterWidth+this.customSpacingX),d.length*(this.characterHeight+this.customSpacingY)-this.customSpacingY,!0);for(var e=0;ea&&(a=0),this.pasteLine(d[e],a,b,this.customSpacingX),b+=this.characterHeight+this.customSpacingY}else this.fixedWidth>0?this.resize(this.fixedWidth,this.characterHeight,!0):this.resize(this._text.length*(this.characterWidth+this.customSpacingX),this.characterHeight,!0),a=0,this.align===c.RetroFont.ALIGN_RIGHT?a=this.width-this._text.length*(this.characterWidth+this.customSpacingX):this.align===c.RetroFont.ALIGN_CENTER&&(a=this.width/2-this._text.length*(this.characterWidth+this.customSpacingX)/2,a+=this.customSpacingX/2),0>a&&(a=0),this.pasteLine(this._text,a,0,this.customSpacingX);this.requiresReTint=!0},c.RetroFont.prototype.pasteLine=function(a,b,c,d){for(var e=0;e=0&&(this.stamp.frame=this.grabData[a.charCodeAt(e)],this.renderXY(this.stamp,b,c,!1),b+=this.characterWidth+d,b>this.width))break},c.RetroFont.prototype.getLongestLine=function(){var a=0;if(this._text.length>0)for(var b=this._text.split("\n"),c=0;ca&&(a=b[c].length);return a},c.RetroFont.prototype.removeUnsupportedCharacters=function(a){for(var b="",c=0;c=0||!a&&"\n"===d)&&(b=b.concat(d))}return b},c.RetroFont.prototype.updateOffset=function(a,b){if(this.offsetX!==a||this.offsetY!==b){for(var c=a-this.offsetX,d=b-this.offsetY,e=this.game.cache.getFrameData(this.stamp.key).getFrames(),f=e.length;f--;)e[f].x+=c,e[f].y+=d;this.buildRetroFontText()}},Object.defineProperty(c.RetroFont.prototype,"text",{get:function(){return this._text},set:function(a){var b;b=this.autoUpperCase?a.toUpperCase():a,b!==this._text&&(this._text=b,this.removeUnsupportedCharacters(this.multiLine),this.buildRetroFontText())}}),Object.defineProperty(c.RetroFont.prototype,"smoothed",{get:function(){return this.stamp.smoothed},set:function(a){this.stamp.smoothed=a,this.buildRetroFontText()}}),c.Rope=function(a,b,d,e,f,g){this.points=[],this.points=g,this._hasUpdateAnimation=!1,this._updateAnimationCallback=null,b=b||0,d=d||0,e=e||null,f=f||null,this.type=c.ROPE,PIXI.Rope.call(this,PIXI.TextureCache.__default,this.points),c.Component.Core.init.call(this,a,b,d,e,f)},c.Rope.prototype=Object.create(PIXI.Rope.prototype),c.Rope.prototype.constructor=c.Rope,c.Component.Core.install.call(c.Rope.prototype,["Angle","Animation","AutoCull","Bounds","BringToTop","Crop","Delta","Destroy","FixedToCamera","InWorld","LifeSpan","LoadTexture","Overlap","PhysicsBody","Reset","ScaleMinMax","Smoothed"]),c.Rope.prototype.preUpdatePhysics=c.Component.PhysicsBody.preUpdate,c.Rope.prototype.preUpdateLifeSpan=c.Component.LifeSpan.preUpdate,c.Rope.prototype.preUpdateInWorld=c.Component.InWorld.preUpdate,c.Rope.prototype.preUpdateCore=c.Component.Core.preUpdate,c.Rope.prototype.preUpdate=function(){return this.preUpdatePhysics()&&this.preUpdateLifeSpan()&&this.preUpdateInWorld()?this.preUpdateCore():!1},c.Rope.prototype.update=function(){this._hasUpdateAnimation&&this.updateAnimation.call(this)},c.Rope.prototype.reset=function(a,b){return c.Component.Reset.prototype.reset.call(this,a,b),this},Object.defineProperty(c.Rope.prototype,"updateAnimation",{get:function(){return this._updateAnimation},set:function(a){a&&"function"==typeof a?(this._hasUpdateAnimation=!0,this._updateAnimation=a):(this._hasUpdateAnimation=!1,this._updateAnimation=null)}}),Object.defineProperty(c.Rope.prototype,"segments",{get:function(){for(var a,b,d,e,f,g,h,i,j=[],k=0;k=1)&&(l.touch=!0),(window.navigator.msPointerEnabled||window.navigator.pointerEnabled)&&(l.mspointer=!0),l.cocoonJS||("onwheel"in window||l.ie&&"WheelEvent"in window?l.wheelEvent="wheel":"onmousewheel"in window?l.wheelEvent="mousewheel":l.firefox&&"MouseScrollEvent"in window&&(l.wheelEvent="DOMMouseScroll"))}function d(){for(var a=["requestFullscreen","requestFullScreen","webkitRequestFullscreen","webkitRequestFullScreen","msRequestFullscreen","msRequestFullScreen","mozRequestFullScreen","mozRequestFullscreen"],b=document.createElement("div"),c=0;c=9&&/Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)){var c=parseInt(RegExp.$1,10),d=parseInt(RegExp.$2,10);(10===c&&d>=11||c>10)&&(l.dolby=!0)}}catch(e){}}function h(){l.pixelRatio=window.devicePixelRatio||1,l.iPhone=-1!=navigator.userAgent.toLowerCase().indexOf("iphone"),l.iPhone4=2==l.pixelRatio&&l.iPhone,l.iPad=-1!=navigator.userAgent.toLowerCase().indexOf("ipad"),"undefined"!=typeof Int8Array?l.typedArray=!0:l.typedArray=!1,"undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint32Array&&(l.littleEndian=i(),l.LITTLE_ENDIAN=l.littleEndian),l.support32bit="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8ClampedArray&&"undefined"!=typeof Int32Array&&null!==l.littleEndian&&j(),navigator.vibrate=navigator.vibrate||navigator.webkitVibrate||navigator.mozVibrate||navigator.msVibrate,navigator.vibrate&&(l.vibration=!0)}function i(){var a=new ArrayBuffer(4),b=new Uint8Array(a),c=new Uint32Array(a);return b[0]=161,b[1]=178,b[2]=195,b[3]=212,3569595041==c[0]?!0:2712847316==c[0]?!1:null}function j(){if(void 0===Uint8ClampedArray)return!1;var a=PIXI.CanvasPool.create(this,1,1),b=a.getContext("2d");if(!b)return!1;var c=b.createImageData(1,1);return PIXI.CanvasPool.remove(this),c.data instanceof Uint8ClampedArray}function k(){var a,b=document.createElement("p"),c={webkitTransform:"-webkit-transform",OTransform:"-o-transform",msTransform:"-ms-transform",MozTransform:"-moz-transform",transform:"transform"};document.body.insertBefore(b,null);for(var d in c)void 0!==b.style[d]&&(b.style[d]="translate3d(1px,1px,1px)",a=window.getComputedStyle(b).getPropertyValue(c[d]));document.body.removeChild(b),l.css3D=void 0!==a&&a.length>0&&"none"!==a}var l=this;a(),e(),g(),f(),k(),h(),b(),d(),c()},c.Device.canPlayAudio=function(a){return"mp3"===a&&this.mp3?!0:"ogg"===a&&(this.ogg||this.opus)?!0:"m4a"===a&&this.m4a?!0:"opus"===a&&this.opus?!0:"wav"===a&&this.wav?!0:"webm"===a&&this.webm?!0:"mp4"===a&&this.dolby?!0:!1},c.Device.canPlayVideo=function(a){return"webm"===a&&(this.webmVideo||this.vp9Video)?!0:"mp4"===a&&(this.mp4Video||this.h264Video)?!0:"ogg"!==a&&"ogv"!==a||!this.oggVideo?"mpeg"===a&&this.hlsVideo?!0:!1:!0},c.Device.isConsoleOpen=function(){return window.console&&window.console.firebug?!0:window.console&&(console.profile(),console.profileEnd(),console.clear&&console.clear(),console.profiles)?console.profiles.length>0:!1},c.Device.isAndroidStockBrowser=function(){var a=window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/);return a&&a[1]<537},c.Canvas={create:function(a,b,c,d,e){if(b=b||256,c=c||256,void 0===e)var f=PIXI.CanvasPool.create(a,b,c);else var f=document.createElement("canvas");return"string"==typeof d&&""!==d&&(f.id=d),f.width=b,f.height=c,f.style.display="block",f},setBackgroundColor:function(a,b){return b=b||"rgb(0,0,0)",a.style.backgroundColor=b,a},setTouchAction:function(a,b){return b=b||"none",a.style.msTouchAction=b,a.style["ms-touch-action"]=b,a.style["touch-action"]=b,a},setUserSelect:function(a,b){return b=b||"none",a.style["-webkit-touch-callout"]=b,a.style["-webkit-user-select"]=b,a.style["-khtml-user-select"]=b,a.style["-moz-user-select"]=b,a.style["-ms-user-select"]=b,a.style["user-select"]=b,a.style["-webkit-tap-highlight-color"]="rgba(0, 0, 0, 0)",a},addToDOM:function(a,b,c){var d;return void 0===c&&(c=!0),b&&("string"==typeof b?d=document.getElementById(b):"object"==typeof b&&1===b.nodeType&&(d=b)),d||(d=document.body),c&&d.style&&(d.style.overflow="hidden"),d.appendChild(a),a},removeFromDOM:function(a){a.parentNode&&a.parentNode.removeChild(a)},setTransform:function(a,b,c,d,e,f,g){return a.setTransform(d,f,g,e,b,c),a},setSmoothingEnabled:function(a,b){var d=c.Canvas.getSmoothingPrefix(a);return d&&(a[d]=b),a},getSmoothingPrefix:function(a){var b=["i","webkitI","msI","mozI","oI"];for(var c in b){var d=b[c]+"mageSmoothingEnabled";if(d in a)return d}return null},getSmoothingEnabled:function(a){var b=c.Canvas.getSmoothingPrefix(a);return b?a[b]:void 0},setImageRenderingCrisp:function(a){for(var b=["optimizeSpeed","crisp-edges","-moz-crisp-edges","-webkit-optimize-contrast","optimize-contrast","pixelated"],c=0;ca},fuzzyGreaterThan:function(a,b,c){return void 0===c&&(c=1e-4),a>b-c},fuzzyCeil:function(a,b){return void 0===b&&(b=1e-4),Math.ceil(a-b)},fuzzyFloor:function(a,b){return void 0===b&&(b=1e-4),Math.floor(a+b)},average:function(){for(var a=0,b=arguments.length,c=0;b>c;c++)a+=+arguments[c];return a/b},shear:function(a){return a%1},snapTo:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.round(a/b),c+a)},snapToFloor:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.floor(a/b),c+a)},snapToCeil:function(a,b,c){return void 0===c&&(c=0),0===b?a:(a-=c,a=b*Math.ceil(a/b),c+a)},roundTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.round(a*d)/d},floorTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.floor(a*d)/d},ceilTo:function(a,b,c){void 0===b&&(b=0),void 0===c&&(c=10);var d=Math.pow(c,-b);return Math.ceil(a*d)/d},angleBetween:function(a,b,c,d){return Math.atan2(d-b,c-a)},angleBetweenY:function(a,b,c,d){return Math.atan2(c-a,d-b)},angleBetweenPoints:function(a,b){return Math.atan2(b.y-a.y,b.x-a.x)},angleBetweenPointsY:function(a,b){return Math.atan2(b.x-a.x,b.y-a.y)},reverseAngle:function(a){return this.normalizeAngle(a+Math.PI,!0)},normalizeAngle:function(a){return a%=2*Math.PI,a>=0?a:a+2*Math.PI},maxAdd:function(a,b,c){return Math.min(a+b,c)},minSub:function(a,b,c){return Math.max(a-b,c)},wrap:function(a,b,c){var d=c-b;if(0>=d)return 0;var e=(a-b)%d;return 0>e&&(e+=d),e+b},wrapValue:function(a,b,c){var d;return a=Math.abs(a),b=Math.abs(b),c=Math.abs(c),d=(a+b)%c},isOdd:function(a){return!!(1&a)},isEven:function(a){return!(1&a)},min:function(){if(1===arguments.length&&"object"==typeof arguments[0])var a=arguments[0];else var a=arguments;for(var b=1,c=0,d=a.length;d>b;b++)a[b]b;b++)a[b]>a[c]&&(c=b);return a[c]},minProperty:function(a){if(2===arguments.length&&"object"==typeof arguments[1])var b=arguments[1];else var b=arguments.slice(1);for(var c=1,d=0,e=b.length;e>c;c++)b[c][a]c;c++)b[c][a]>b[d][a]&&(d=c);return b[d][a]},wrapAngle:function(a,b){return b?this.wrap(a,-Math.PI,Math.PI):this.wrap(a,-180,180)},linearInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return 0>b?this.linear(a[0],a[1],d):b>1?this.linear(a[c],a[c-1],c-d):this.linear(a[e],a[e+1>c?c:e+1],d-e)},bezierInterpolation:function(a,b){for(var c=0,d=a.length-1,e=0;d>=e;e++)c+=Math.pow(1-b,d-e)*Math.pow(b,e)*a[e]*this.bernstein(d,e);return c},catmullRomInterpolation:function(a,b){var c=a.length-1,d=c*b,e=Math.floor(d);return a[0]===a[c]?(0>b&&(e=Math.floor(d=c*(1+b))),this.catmullRom(a[(e-1+c)%c],a[e],a[(e+1)%c],a[(e+2)%c],d-e)):0>b?a[0]-(this.catmullRom(a[0],a[0],a[1],a[1],-d)-a[0]):b>1?a[c]-(this.catmullRom(a[c],a[c],a[c-1],a[c-1],d-c)-a[c]):this.catmullRom(a[e?e-1:0],a[e],a[e+1>c?c:e+1],a[e+2>c?c:e+2],d-e)},linear:function(a,b,c){return(b-a)*c+a},bernstein:function(a,b){return this.factorial(a)/this.factorial(b)/this.factorial(a-b)},factorial:function(a){if(0===a)return 1;for(var b=a;--a;)b*=a;return b},catmullRom:function(a,b,c,d,e){var f=.5*(c-a),g=.5*(d-b),h=e*e,i=e*h;return(2*b-2*c+f+g)*i+(-3*b+3*c-2*f-g)*h+f*e+b},difference:function(a,b){return Math.abs(a-b)},roundAwayFromZero:function(a){return a>0?Math.ceil(a):Math.floor(a)},sinCosGenerator:function(a,b,c,d){void 0===b&&(b=1),void 0===c&&(c=1),void 0===d&&(d=1);for(var e=b,f=c,g=d*Math.PI/a,h=[],i=[],j=0;a>j;j++)f-=e*g,e+=f*g,h[j]=f,i[j]=e;return{sin:i,cos:h,length:a}},distance:function(a,b,c,d){var e=a-c,f=b-d;return Math.sqrt(e*e+f*f)},distanceSq:function(a,b,c,d){var e=a-c,f=b-d;return e*e+f*f},distancePow:function(a,b,c,d,e){return void 0===e&&(e=2),Math.sqrt(Math.pow(c-a,e)+Math.pow(d-b,e))},clamp:function(a,b,c){return b>a?b:a>c?c:a},clampBottom:function(a,b){return b>a?b:a},within:function(a,b,c){return Math.abs(a-b)<=c},mapLinear:function(a,b,c,d,e){return d+(a-b)*(e-d)/(c-b)},smoothstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*(3-2*a)},smootherstep:function(a,b,c){return a=Math.max(0,Math.min(1,(a-b)/(c-b))),a*a*a*(a*(6*a-15)+10)},sign:function(a){return 0>a?-1:a>0?1:0},percent:function(a,b,c){return void 0===c&&(c=0),a>b||c>b?1:c>a||c>a?0:(a-c)/b}};var k=Math.PI/180,l=180/Math.PI;return c.Math.degToRad=function(a){return a*k},c.Math.radToDeg=function(a){return a*l},c.RandomDataGenerator=function(a){void 0===a&&(a=[]),this.c=1,this.s0=0,this.s1=0,this.s2=0,"string"==typeof a?this.state(a):this.sow(a)},c.RandomDataGenerator.prototype={rnd:function(){var a=2091639*this.s0+2.3283064365386963e-10*this.c;return this.c=0|a,this.s0=this.s1,this.s1=this.s2,this.s2=a-this.c,this.s2},sow:function(a){if(this.s0=this.hash(" "),this.s1=this.hash(this.s0),this.s2=this.hash(this.s1),this.c=1,a)for(var b=0;b>>0,b-=d,b*=d,d=b>>>0,b-=d,d+=4294967296*b;return 2.3283064365386963e-10*(d>>>0)},integer:function(){return 4294967296*this.rnd.apply(this)},frac:function(){return this.rnd.apply(this)+1.1102230246251565e-16*(2097152*this.rnd.apply(this)|0)},real:function(){return this.integer()+this.frac()},integerInRange:function(a,b){return Math.floor(this.realInRange(0,b-a+1)+a)},between:function(a,b){return this.integerInRange(a,b)},realInRange:function(a,b){return this.frac()*(b-a)+a},normal:function(){return 1-2*this.frac()},uuid:function(){var a="",b="";for(b=a="";a++<36;b+=~a%5|3*a&4?(15^a?8^this.frac()*(20^a?16:4):4).toString(16):"-");return b},pick:function(a){return a[this.integerInRange(0,a.length-1)]},sign:function(){return this.pick([-1,1])},weightedPick:function(a){return a[~~(Math.pow(this.frac(),2)*(a.length-1)+.5)]},timestamp:function(a,b){return this.realInRange(a||9466848e5,b||1577862e6)},angle:function(){return this.integerInRange(-180,180)},state:function(a){return"string"==typeof a&&a.match(/^!rnd/)&&(a=a.split(","),this.c=parseFloat(a[1]),this.s0=parseFloat(a[2]),this.s1=parseFloat(a[3]),this.s2=parseFloat(a[4])),["!rnd",this.c,this.s0,this.s1,this.s2].join(",")}},c.RandomDataGenerator.prototype.constructor=c.RandomDataGenerator,c.QuadTree=function(a,b,c,d,e,f,g){this.maxObjects=10,this.maxLevels=4,this.level=0,this.bounds={},this.objects=[],this.nodes=[],this._empty=[],this.reset(a,b,c,d,e,f,g)},c.QuadTree.prototype={reset:function(a,b,c,d,e,f,g){this.maxObjects=e||10,this.maxLevels=f||4,this.level=g||0,this.bounds={x:Math.round(a),y:Math.round(b),width:c,height:d,subWidth:Math.floor(c/2),subHeight:Math.floor(d/2),right:Math.round(a)+Math.floor(c/2),bottom:Math.round(b)+Math.floor(d/2)},this.objects.length=0,this.nodes.length=0},populate:function(a){a.forEach(this.populateHandler,this,!0)},populateHandler:function(a){a.body&&a.exists&&this.insert(a.body)},split:function(){this.nodes[0]=new c.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[1]=new c.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[2]=new c.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1),this.nodes[3]=new c.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level+1)},insert:function(a){var b,c=0;if(null!=this.nodes[0]&&(b=this.getIndex(a),-1!==b))return void this.nodes[b].insert(a);if(this.objects.push(a),this.objects.length>this.maxObjects&&this.levelthis.bounds.bottom&&(b=2):a.x>this.bounds.right&&(a.ythis.bounds.bottom&&(b=3)),b},retrieve:function(a){if(a instanceof c.Rectangle)var b=this.objects,d=this.getIndex(a);else{if(!a.body)return this._empty;var b=this.objects,d=this.getIndex(a.body)}return this.nodes[0]&&(-1!==d?b=b.concat(this.nodes[d].retrieve(a)):(b=b.concat(this.nodes[0].retrieve(a)),b=b.concat(this.nodes[1].retrieve(a)),b=b.concat(this.nodes[2].retrieve(a)),b=b.concat(this.nodes[3].retrieve(a)))),b},clear:function(){this.objects.length=0;for(var a=this.nodes.length;a--;)this.nodes[a].clear(),this.nodes.splice(a,1);this.nodes.length=0}},c.QuadTree.prototype.constructor=c.QuadTree,c.Net=function(a){this.game=a},c.Net.prototype={getHostName:function(){return window.location&&window.location.hostname?window.location.hostname:null},checkDomainName:function(a){return-1!==window.location.hostname.indexOf(a)},updateQueryString:function(a,b,c,d){void 0===c&&(c=!1),(void 0===d||""===d)&&(d=window.location.href);var e="",f=new RegExp("([?|&])"+a+"=.*?(&|#|$)(.*)","gi");if(f.test(d))e="undefined"!=typeof b&&null!==b?d.replace(f,"$1"+a+"="+b+"$2$3"):d.replace(f,"$1$3").replace(/(&|\?)$/,"");else if("undefined"!=typeof b&&null!==b){var g=-1!==d.indexOf("?")?"&":"?",h=d.split("#");d=h[0]+g+a+"="+b,h[1]&&(d+="#"+h[1]),e=d}else e=d;return c?void(window.location.href=e):e},getQueryString:function(a){void 0===a&&(a="");var b={},c=location.search.substring(1).split("&");for(var d in c){var e=c[d].split("=");if(e.length>1){if(a&&a==this.decodeURI(e[0]))return this.decodeURI(e[1]);b[this.decodeURI(e[0])]=this.decodeURI(e[1])}}return b},decodeURI:function(a){return decodeURIComponent(a.replace(/\+/g," "))}},c.Net.prototype.constructor=c.Net,c.TweenManager=function(a){this.game=a,this.frameBased=!1,this._tweens=[],this._add=[],this.easeMap={Power0:c.Easing.Power0,Power1:c.Easing.Power1,Power2:c.Easing.Power2,Power3:c.Easing.Power3,Power4:c.Easing.Power4,Linear:c.Easing.Linear.None,Quad:c.Easing.Quadratic.Out,Cubic:c.Easing.Cubic.Out,Quart:c.Easing.Quartic.Out,Quint:c.Easing.Quintic.Out,Sine:c.Easing.Sinusoidal.Out,Expo:c.Easing.Exponential.Out,Circ:c.Easing.Circular.Out,Elastic:c.Easing.Elastic.Out,Back:c.Easing.Back.Out,Bounce:c.Easing.Bounce.Out,"Quad.easeIn":c.Easing.Quadratic.In,"Cubic.easeIn":c.Easing.Cubic.In,"Quart.easeIn":c.Easing.Quartic.In,"Quint.easeIn":c.Easing.Quintic.In,"Sine.easeIn":c.Easing.Sinusoidal.In,"Expo.easeIn":c.Easing.Exponential.In,"Circ.easeIn":c.Easing.Circular.In,"Elastic.easeIn":c.Easing.Elastic.In,"Back.easeIn":c.Easing.Back.In,"Bounce.easeIn":c.Easing.Bounce.In,"Quad.easeOut":c.Easing.Quadratic.Out,"Cubic.easeOut":c.Easing.Cubic.Out,"Quart.easeOut":c.Easing.Quartic.Out,"Quint.easeOut":c.Easing.Quintic.Out,"Sine.easeOut":c.Easing.Sinusoidal.Out,"Expo.easeOut":c.Easing.Exponential.Out,"Circ.easeOut":c.Easing.Circular.Out,"Elastic.easeOut":c.Easing.Elastic.Out,"Back.easeOut":c.Easing.Back.Out,"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(){return this._tweens},removeAll:function(){for(var a=0;ad;d++)this.removeFrom(a[d]);else if(a.type===c.GROUP&&b)for(var d=0,e=a.children.length;e>d;d++)this.removeFrom(a.children[d]);else{for(d=0,e=this._tweens.length;e>d;d++)a===this._tweens[d].target&&this.remove(this._tweens[d]);for(d=0,e=this._add.length;e>d;d++)a===this._add[d].target&&this.remove(this._add[d])}},add:function(a){a._manager=this,this._add.push(a)},create:function(a){return new c.Tween(a,this.game,this)},remove:function(a){var b=this._tweens.indexOf(a);-1!==b?this._tweens[b].pendingDelete=!0:(b=this._add.indexOf(a),-1!==b&&(this._add[b].pendingDelete=!0))},update:function(){var a=this._add.length,b=this._tweens.length;if(0===b&&0===a)return!1;for(var c=0;b>c;)this._tweens[c].update(this.game.time.time)?c++:(this._tweens.splice(c,1),b--);return a>0&&(this._tweens=this._tweens.concat(this._add),this._add.length=0),!0},isTweening:function(a){return this._tweens.some(function(b){return b.target===a})},_pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._pause()},_resumeAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a]._resume()},pauseAll:function(){for(var a=this._tweens.length-1;a>=0;a--)this._tweens[a].pause()},resumeAll:function(){for(var a=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=new c.Signal,this.onLoop=new c.Signal,this.onRepeat=new c.Signal,this.onChildComplete=new c.Signal,this.onComplete=new c.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(void 0===b||0>=b)&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).to(a,b,d,f,g,h)),e&&this.start(),this)},from:function(a,b,d,e,f,g,h){return void 0===b&&(b=1e3),(void 0===d||null===d)&&(d=c.Easing.Default),void 0===e&&(e=!1),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=!1),"string"==typeof d&&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(new c.TweenData(this).from(a,b,d,f,g,h)),e&&this.start(),this)},start:function(a){if(void 0===a&&(a=0),null===this.game||null===this.target||0===this.timeline.length||this.isRunning)return this;for(var b=0;ba||a>this.timeline.length-1)&&(a=0),this.current=a,this.timeline[this.current].start(),this},stop:function(a){return void 0===a&&(a=!1),this.isRunning=!1,this._onUpdateCallback=null,this._onUpdateCallbackContext=null,a&&(this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start()),this.manager.remove(this),this},updateTweenData:function(a,b,c){if(0===this.timeline.length)return this;if(void 0===c&&(c=0),-1===c)for(var d=0;d0?arguments[a-1].chainedTween=arguments[a]:this.chainedTween=arguments[a];return this},loop:function(a){return void 0===a&&(a=!0),this.repeatCounter=a?-1:0,this},onUpdateCallback:function(a,b){return this._onUpdateCallback=a,this._onUpdateCallbackContext=b,this},pause:function(){this.isPaused=!0,this._codePaused=!0,this._pausedTime=this.game.time.time},_pause:function(){this._codePaused||(this.isPaused=!0,this._pausedTime=this.game.time.time)},resume:function(){if(this.isPaused){this.isPaused=!1,this._codePaused=!1;for(var a=0;a0?(this.repeatCounter--,this.timeline[this.current].start(),this.onRepeat.dispatch(this.target,this),!0):(this.isRunning=!1,this.onComplete.dispatch(this.target,this),this._hasStarted=!1,this.chainedTween&&this.chainedTween.start(),!1):(this.onChildComplete.dispatch(this.target,this),this.timeline[this.current].start(),!0)}},generateData:function(a,b){if(null===this.game||null===this.target)return null;void 0===a&&(a=60),void 0===b&&(b=[]);for(var c=0;c0?this.isRunning=!1:this.isRunning=!0,this.isFrom)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a],this.parent.target[a]=this.vStart[a];return this.value=0,this.yoyoCounter=0,this.repeatCounter=this.repeatTotal,this},loadValues:function(){for(var a in this.parent.properties){if(this.vStart[a]=this.parent.properties[a],Array.isArray(this.vEnd[a])){if(0===this.vEnd[a].length)continue;0===this.percent&&(this.vEnd[a]=[this.vStart[a]].concat(this.vEnd[a]))}"undefined"!=typeof this.vEnd[a]?("string"==typeof this.vEnd[a]&&(this.vEnd[a]=this.vStart[a]+parseFloat(this.vEnd[a],10)),this.parent.properties[a]=this.vEnd[a]):this.vEnd[a]=this.vStart[a],this.vStartCache[a]=this.vStart[a],this.vEndCache[a]=this.vEnd[a]}return this},update:function(a){if(this.isRunning){if(a=this.startTime))return c.TweenData.PENDING;this.isRunning=!0}var b=this.parent.frameBased?this.game.time.physicsElapsedMS:this.game.time.elapsedMS;this.parent.reverse?(this.dt-=b*this.parent.timeScale,this.dt=Math.max(this.dt,0)):(this.dt+=b*this.parent.timeScale,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);for(var d in this.vEnd){var e=this.vStart[d],f=this.vEnd[d];Array.isArray(f)?this.parent.target[d]=this.interpolationFunction.call(this.interpolationContext,f,this.value):this.parent.target[d]=e+(f-e)*this.value}return!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent?this.repeat():c.TweenData.RUNNING},generateData:function(a){this.parent.reverse?this.dt=this.duration:this.dt=0;var b=[],c=!1,d=1/a*1e3;do{this.parent.reverse?(this.dt-=d,this.dt=Math.max(this.dt,0)):(this.dt+=d,this.dt=Math.min(this.dt,this.duration)),this.percent=this.dt/this.duration,this.value=this.easingFunction(this.percent);var e={};for(var f in this.vEnd){var g=this.vStart[f],h=this.vEnd[f];Array.isArray(h)?e[f]=this.interpolationFunction(h,this.value):e[f]=g+(h-g)*this.value}b.push(e),(!this.parent.reverse&&1===this.percent||this.parent.reverse&&0===this.percent)&&(c=!0)}while(!c);if(this.yoyo){var i=b.slice();i.reverse(),b=b.concat(i)}return b},repeat:function(){if(this.yoyo){if(this.inReverse&&0===this.repeatCounter){for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];return this.inReverse=!1,c.TweenData.COMPLETE}this.inReverse=!this.inReverse}else if(0===this.repeatCounter)return c.TweenData.COMPLETE;if(this.inReverse)for(var a in this.vStartCache)this.vStart[a]=this.vEndCache[a],this.vEnd[a]=this.vStartCache[a];else{for(var a in this.vStartCache)this.vStart[a]=this.vStartCache[a],this.vEnd[a]=this.vEndCache[a];this.repeatCounter>0&&this.repeatCounter--}return this.startTime=this.game.time.time,this.yoyo&&this.inReverse?this.startTime+=this.yoyoDelay:this.inReverse||(this.startTime+=this.repeatDelay),this.parent.reverse?this.dt=this.duration:this.dt=0,c.TweenData.LOOPED}},c.TweenData.prototype.constructor=c.TweenData,c.Easing={Linear:{None:function(a){return a}},Quadratic:{In:function(a){return a*a},Out:function(a){return a*(2-a)},InOut:function(a){return(a*=2)<1?.5*a*a:-.5*(--a*(a-2)-1)}},Cubic:{In:function(a){return a*a*a},Out:function(a){return--a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a:.5*((a-=2)*a*a+2)}},Quartic:{In:function(a){return a*a*a*a},Out:function(a){return 1- --a*a*a*a},InOut:function(a){return(a*=2)<1?.5*a*a*a*a:-.5*((a-=2)*a*a*a-2)}},Quintic:{In:function(a){return a*a*a*a*a},Out:function(a){return--a*a*a*a*a+1},InOut:function(a){return(a*=2)<1?.5*a*a*a*a*a:.5*((a-=2)*a*a*a*a+2)}},Sinusoidal:{In:function(a){return 0===a?0:1===a?1:1-Math.cos(a*Math.PI/2)},Out:function(a){return 0===a?0:1===a?1:Math.sin(a*Math.PI/2)},InOut:function(a){return 0===a?0:1===a?1:.5*(1-Math.cos(Math.PI*a))}},Exponential:{In:function(a){return 0===a?0:Math.pow(1024,a-1)},Out:function(a){return 1===a?1:1-Math.pow(2,-10*a)},InOut:function(a){return 0===a?0:1===a?1:(a*=2)<1?.5*Math.pow(1024,a-1):.5*(-Math.pow(2,-10*(a-1))+2)}},Circular:{In:function(a){return 1-Math.sqrt(1-a*a)},Out:function(a){return Math.sqrt(1- --a*a)},InOut:function(a){return(a*=2)<1?-.5*(Math.sqrt(1-a*a)-1):.5*(Math.sqrt(1-(a-=2)*a)+1)}},Elastic:{In:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),-(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)))},Out:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),c*Math.pow(2,-10*a)*Math.sin((a-b)*(2*Math.PI)/d)+1)},InOut:function(a){var b,c=.1,d=.4;return 0===a?0:1===a?1:(!c||1>c?(c=1,b=d/4):b=d*Math.asin(1/c)/(2*Math.PI),(a*=2)<1?-.5*(c*Math.pow(2,10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)):c*Math.pow(2,-10*(a-=1))*Math.sin((a-b)*(2*Math.PI)/d)*.5+1)}},Back:{In:function(a){var b=1.70158;return a*a*((b+1)*a-b)},Out:function(a){var b=1.70158;return--a*a*((b+1)*a+b)+1},InOut:function(a){var b=2.5949095;return(a*=2)<1?.5*(a*a*((b+1)*a-b)):.5*((a-=2)*a*((b+1)*a+b)+2)}},Bounce:{In:function(a){return 1-c.Easing.Bounce.Out(1-a)},Out:function(a){return 1/2.75>a?7.5625*a*a:2/2.75>a?7.5625*(a-=1.5/2.75)*a+.75:2.5/2.75>a?7.5625*(a-=2.25/2.75)*a+.9375:7.5625*(a-=2.625/2.75)*a+.984375},InOut:function(a){return.5>a?.5*c.Easing.Bounce.In(2*a):.5*c.Easing.Bounce.Out(2*a-1)+.5}}},c.Easing.Default=c.Easing.Linear.None,c.Easing.Power0=c.Easing.Linear.None,c.Easing.Power1=c.Easing.Quadratic.Out,c.Easing.Power2=c.Easing.Cubic.Out,c.Easing.Power3=c.Easing.Quartic.Out,c.Easing.Power4=c.Easing.Quintic.Out,c.Time=function(a){this.game=a,this.time=0,this.prevTime=0,this.now=0,this.elapsed=0,this.elapsedMS=0,this.physicsElapsed=1/60,this.physicsElapsedMS=1/60*1e3,this.desiredFpsMult=1/60,this._desiredFps=60,this.suggestedFps=this.desiredFps,this.slowMotion=1,this.advancedTiming=!1,this.frames=0,this.fps=0,this.fpsMin=1e3,this.fpsMax=0,this.msMin=1e3,this.msMax=0,this.pauseDuration=0,this.timeToCall=0,this.timeExpected=0,this.events=new c.Timer(this.game,!1),this._frameCount=0,this._elapsedAccumulator=0,this._started=0,this._timeLastSecond=0,this._pauseStarted=0,this._justResumed=!1,this._timers=[]},c.Time.prototype={boot:function(){this._started=Date.now(),this.time=Date.now(),this.events.start(),this.timeExpected=this.time},add:function(a){return this._timers.push(a),a},create:function(a){void 0===a&&(a=!0);var b=new c.Timer(this.game,a);return this._timers.push(b),b},removeAll:function(){for(var a=0;aa;)this._timers[a].update(this.time)?a++:(this._timers.splice(a,1),b--)},updateAdvancedTiming:function(){this._frameCount++,this._elapsedAccumulator+=this.elapsed,this._frameCount>=2*this._desiredFps&&(this.suggestedFps=5*Math.floor(200/(this._elapsedAccumulator/this._frameCount)),this._frameCount=0,this._elapsedAccumulator=0),this.msMin=Math.min(this.msMin,this.elapsed),this.msMax=Math.max(this.msMax,this.elapsed),this.frames++,this.now>this._timeLastSecond+1e3&&(this.fps=Math.round(1e3*this.frames/(this.now-this._timeLastSecond)),this.fpsMin=Math.min(this.fpsMin,this.fps),this.fpsMax=Math.max(this.fpsMax,this.fps),this._timeLastSecond=this.now,this.frames=0)},gamePaused:function(){this._pauseStarted=Date.now(),this.events.pause();for(var a=this._timers.length;a--;)this._timers[a]._pause()},gameResumed:function(){this.time=Date.now(),this.pauseDuration=this.time-this._pauseStarted,this.events.resume();for(var a=this._timers.length;a--;)this._timers[a]._resume()},totalElapsedSeconds:function(){return.001*(this.time-this._started)},elapsedSince:function(a){return this.time-a},elapsedSecondsSince:function(a){return.001*(this.time-a)},reset:function(){this._started=this.time,this.removeAll()}},Object.defineProperty(c.Time.prototype,"desiredFps",{get:function(){return this._desiredFps},set:function(a){this._desiredFps=a,this.physicsElapsed=1/a,this.physicsElapsedMS=1e3*this.physicsElapsed,this.desiredFpsMult=1/a}}),c.Time.prototype.constructor=c.Time,c.Timer=function(a,b){void 0===b&&(b=!0),this.game=a,this.running=!1,this.autoDestroy=b,this.expired=!1,this.elapsed=0,this.events=[],this.onComplete=new c.Signal,this.nextTick=0,this.timeCap=1e3,this.paused=!1,this._codePaused=!1,this._started=0,this._pauseStarted=0,this._pauseTotal=0,this._now=Date.now(),this._len=0,this._marked=0,this._i=0,this._diff=0,this._newTick=0},c.Timer.MINUTE=6e4,c.Timer.SECOND=1e3,c.Timer.HALF=500,c.Timer.QUARTER=250,c.Timer.prototype={create:function(a,b,d,e,f,g){a=Math.round(a);var h=a;h+=0===this._now?this.game.time.time:this._now;var i=new c.TimerEvent(this,a,h,d,b,e,f,g);return this.events.push(i),this.order(),this.expired=!1,i},add:function(a,b,c){return this.create(a,!1,0,b,c,Array.prototype.slice.call(arguments,3))},repeat:function(a,b,c,d){return this.create(a,!1,b,c,d,Array.prototype.slice.call(arguments,4))},loop:function(a,b,c){return this.create(a,!0,0,b,c,Array.prototype.slice.call(arguments,3))},start:function(a){if(!this.running){this._started=this.game.time.time+(a||0),this.running=!0;for(var b=0;b0&&(this.events.sort(this.sortHandler),this.nextTick=this.events[0].tick)},sortHandler:function(a,b){return a.tickb.tick?1:0},clearPendingEvents:function(){for(this._i=this.events.length;this._i--;)this.events[this._i].pendingDelete&&this.events.splice(this._i,1);this._len=this.events.length,this._i=0},update:function(a){if(this.paused)return!0;if(this.elapsed=a-this._now,this._now=a,this.elapsed>this.timeCap&&this.adjustEvents(a-this.elapsed),this._marked=0,this.clearPendingEvents(),this.running&&this._now>=this.nextTick&&this._len>0){for(;this._i=this.events[this._i].tick&&!this.events[this._i].pendingDelete;)this._newTick=this._now+this.events[this._i].delay-(this._now-this.events[this._i].tick),this._newTick<0&&(this._newTick=this._now+this.events[this._i].delay),this.events[this._i].loop===!0?(this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):this.events[this._i].repeatCount>0?(this.events[this._i].repeatCount--,this.events[this._i].tick=this._newTick,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)):(this._marked++,this.events[this._i].pendingDelete=!0,this.events[this._i].callback.apply(this.events[this._i].callbackContext,this.events[this._i].args)),this._i++;this.events.length>this._marked?this.order():(this.expired=!0,this.onComplete.dispatch(this))}return this.expired&&this.autoDestroy?!1:!0; +},pause:function(){this.running&&(this._codePaused=!0,this.paused||(this._pauseStarted=this.game.time.time,this.paused=!0))},_pause:function(){!this.paused&&this.running&&(this._pauseStarted=this.game.time.time,this.paused=!0)},adjustEvents:function(a){for(var b=0;bc&&(c=0),this.events[b].tick=this._now+c}var d=this.nextTick-a;0>d?this.nextTick=this._now:this.nextTick=this._now+d},resume:function(){if(this.paused){var a=this.game.time.time;this._pauseTotal+=a-this._now,this._now=a,this.adjustEvents(this._pauseStarted),this.paused=!1,this._codePaused=!1}},_resume:function(){this._codePaused||this.resume()},removeAll:function(){this.onComplete.removeAll(),this.events.length=0,this._len=0,this._i=0},destroy:function(){this.onComplete.removeAll(),this.running=!1,this.events=[],this._len=0,this._i=0}},Object.defineProperty(c.Timer.prototype,"next",{get:function(){return this.nextTick}}),Object.defineProperty(c.Timer.prototype,"duration",{get:function(){return this.running&&this.nextTick>this._now?this.nextTick-this._now:0}}),Object.defineProperty(c.Timer.prototype,"length",{get:function(){return this.events.length}}),Object.defineProperty(c.Timer.prototype,"ms",{get:function(){return this.running?this._now-this._started-this._pauseTotal:0}}),Object.defineProperty(c.Timer.prototype,"seconds",{get:function(){return this.running?.001*this.ms:0}}),c.Timer.prototype.constructor=c.Timer,c.TimerEvent=function(a,b,c,d,e,f,g,h){this.timer=a,this.delay=b,this.tick=c,this.repeatCount=d-1,this.loop=e,this.callback=f,this.callbackContext=g,this.args=h,this.pendingDelete=!1},c.TimerEvent.prototype.constructor=c.TimerEvent,c.AnimationManager=function(a){this.sprite=a,this.game=a.game,this.currentFrame=null,this.currentAnim=null,this.updateIfVisible=!0,this.isLoaded=!1,this._frameData=null,this._anims={},this._outputFrames=[]},c.AnimationManager.prototype={loadFrameData:function(a,b){if(void 0===a)return!1;if(this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(a);return this._frameData=a,void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},copyFrameData:function(a,b){if(this._frameData=a.clone(),this.isLoaded)for(var c in this._anims)this._anims[c].updateFrameData(this._frameData);return void 0===b||null===b?this.frame=0:"string"==typeof b?this.frameName=b:this.frame=b,this.isLoaded=!0,!0},add:function(a,b,d,e,f){return b=b||[],d=d||60,void 0===e&&(e=!1),void 0===f&&(f=b&&"number"==typeof b[0]?!0:!1),this._outputFrames=[],this._frameData.getFrameIndexes(b,f,this._outputFrames),this._anims[a]=new c.Animation(this.game,this.sprite,a,this._frameData,this._outputFrames,d,e),this.currentAnim=this._anims[a],this.sprite.tilingTexture&&(this.sprite.refreshTexture=!0),this._anims[a]},validateFrames:function(a,b){void 0===b&&(b=!0);for(var c=0;cthis._frameData.total)return!1}else if(this._frameData.checkFrameName(a[c])===!1)return!1;return!0},play:function(a,b,c,d){return this._anims[a]?this.currentAnim===this._anims[a]?this.currentAnim.isPlaying===!1?(this.currentAnim.paused=!1,this.currentAnim.play(b,c,d)):this.currentAnim:(this.currentAnim&&this.currentAnim.isPlaying&&this.currentAnim.stop(),this.currentAnim=this._anims[a],this.currentAnim.paused=!1,this.currentFrame=this.currentAnim.currentFrame,this.currentAnim.play(b,c,d)):void 0},stop:function(a,b){void 0===b&&(b=!1),!this.currentAnim||"string"==typeof a&&a!==this.currentAnim.name||this.currentAnim.stop(b)},update:function(){return this.updateIfVisible&&!this.sprite.visible?!1:this.currentAnim&&this.currentAnim.update()?(this.currentFrame=this.currentAnim.currentFrame,!0):!1},next:function(a){this.currentAnim&&(this.currentAnim.next(a),this.currentFrame=this.currentAnim.currentFrame)},previous:function(a){this.currentAnim&&(this.currentAnim.previous(a),this.currentFrame=this.currentAnim.currentFrame)},getAnimation:function(a){return"string"==typeof a&&this._anims[a]?this._anims[a]:null},refreshFrame:function(){this.sprite.setTexture(PIXI.TextureCache[this.currentFrame.uuid])},destroy:function(){var a=null;for(var a in this._anims)this._anims.hasOwnProperty(a)&&this._anims[a].destroy();this._anims={},this._outputFrames=[],this._frameData=null,this.currentAnim=null,this.currentFrame=null,this.sprite=null,this.game=null}},c.AnimationManager.prototype.constructor=c.AnimationManager,Object.defineProperty(c.AnimationManager.prototype,"frameData",{get:function(){return this._frameData}}),Object.defineProperty(c.AnimationManager.prototype,"frameTotal",{get:function(){return this._frameData.total}}),Object.defineProperty(c.AnimationManager.prototype,"paused",{get:function(){return this.currentAnim.isPaused},set:function(a){this.currentAnim.paused=a}}),Object.defineProperty(c.AnimationManager.prototype,"name",{get:function(){return this.currentAnim?this.currentAnim.name:void 0}}),Object.defineProperty(c.AnimationManager.prototype,"frame",{get:function(){return this.currentFrame?this.currentFrame.index:void 0},set:function(a){"number"==typeof a&&this._frameData&&null!==this._frameData.getFrame(a)&&(this.currentFrame=this._frameData.getFrame(a),this.currentFrame&&this.sprite.setFrame(this.currentFrame))}}),Object.defineProperty(c.AnimationManager.prototype,"frameName",{get:function(){return this.currentFrame?this.currentFrame.name:void 0},set:function(a){"string"==typeof a&&this._frameData&&null!==this._frameData.getFrameByName(a)?(this.currentFrame=this._frameData.getFrameByName(a),this.currentFrame&&(this._frameIndex=this.currentFrame.index,this.sprite.setFrame(this.currentFrame))):console.warn("Cannot set frameName: "+a)}}),c.Animation=function(a,b,d,e,f,g,h){void 0===h&&(h=!1),this.game=a,this._parent=b,this._frameData=e,this.name=d,this._frames=[],this._frames=this._frames.concat(f),this.delay=1e3/g,this.loop=h,this.loopCount=0,this.killOnComplete=!1,this.isFinished=!1,this.isPlaying=!1,this.isPaused=!1,this._pauseStartTime=0,this._frameIndex=0,this._frameDiff=0,this._frameSkip=1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.onStart=new c.Signal,this.onUpdate=null,this.onComplete=new c.Signal,this.onLoop=new c.Signal,this.game.onPause.add(this.onPause,this),this.game.onResume.add(this.onResume,this)},c.Animation.prototype={play:function(a,b,c){return"number"==typeof a&&(this.delay=1e3/a),"boolean"==typeof b&&(this.loop=b),"undefined"!=typeof c&&(this.killOnComplete=c),this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.updateCurrentFrame(!1,!0),this._parent.events.onAnimationStart$dispatch(this._parent,this),this.onStart.dispatch(this._parent,this),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this},restart:function(){this.isPlaying=!0,this.isFinished=!1,this.paused=!1,this.loopCount=0,this._timeLastFrame=this.game.time.time,this._timeNextFrame=this.game.time.time+this.delay,this._frameIndex=0,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this._parent.setFrame(this.currentFrame),this._parent.animations.currentAnim=this,this._parent.animations.currentFrame=this.currentFrame,this.onStart.dispatch(this._parent,this)},setFrame:function(a,b){var c;if(void 0===b&&(b=!1),"string"==typeof a)for(var d=0;d=this._timeNextFrame?(this._frameSkip=1,this._frameDiff=this.game.time.time-this._timeNextFrame,this._timeLastFrame=this.game.time.time,this._frameDiff>this.delay&&(this._frameSkip=Math.floor(this._frameDiff/this.delay),this._frameDiff-=this._frameSkip*this.delay),this._timeNextFrame=this.game.time.time+(this.delay-this._frameDiff),this._frameIndex+=this._frameSkip,this._frameIndex>=this._frames.length?this.loop?(this._frameIndex%=this._frames.length,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&this._parent.setFrame(this.currentFrame),this.loopCount++,this._parent.events.onAnimationLoop$dispatch(this._parent,this),this.onLoop.dispatch(this._parent,this),this.onUpdate?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0):(this.complete(),!1):this.updateCurrentFrame(!0)):!1},updateCurrentFrame:function(a,b){if(void 0===b&&(b=!1),!this._frameData)return!1;var c=this.currentFrame.index;return this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.currentFrame&&(b||!b&&c!==this.currentFrame.index)&&this._parent.setFrame(this.currentFrame),this.onUpdate&&a?(this.onUpdate.dispatch(this,this.currentFrame),!!this._frameData):!0},next:function(a){void 0===a&&(a=1);var b=this._frameIndex+a;b>=this._frames.length&&(this.loop?b%=this._frames.length:b=this._frames.length-1),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},previous:function(a){void 0===a&&(a=1);var b=this._frameIndex-a;0>b&&(this.loop?b=this._frames.length+b:b++),b!==this._frameIndex&&(this._frameIndex=b,this.updateCurrentFrame(!0))},updateFrameData:function(a){this._frameData=a,this.currentFrame=this._frameData?this._frameData.getFrame(this._frames[this._frameIndex%this._frames.length]):null},destroy:function(){this._frameData&&(this.game.onPause.remove(this.onPause,this),this.game.onResume.remove(this.onResume,this),this.game=null,this._parent=null,this._frames=null,this._frameData=null,this.currentFrame=null,this.isPlaying=!1,this.onStart.dispose(),this.onLoop.dispose(),this.onComplete.dispose(),this.onUpdate&&this.onUpdate.dispose())},complete:function(){this._frameIndex=this._frames.length-1,this.currentFrame=this._frameData.getFrame(this._frames[this._frameIndex]),this.isPlaying=!1,this.isFinished=!0,this.paused=!1,this._parent.events.onAnimationComplete$dispatch(this._parent,this),this.onComplete.dispatch(this._parent,this),this.killOnComplete&&this._parent.kill()}},c.Animation.prototype.constructor=c.Animation,Object.defineProperty(c.Animation.prototype,"paused",{get:function(){return this.isPaused},set:function(a){this.isPaused=a,a?this._pauseStartTime=this.game.time.time:this.isPlaying&&(this._timeNextFrame=this.game.time.time+this.delay)}}),Object.defineProperty(c.Animation.prototype,"frameTotal",{get:function(){return this._frames.length}}),Object.defineProperty(c.Animation.prototype,"frame",{get:function(){return null!==this.currentFrame?this.currentFrame.index:this._frameIndex},set:function(a){this.currentFrame=this._frameData.getFrame(this._frames[a]),null!==this.currentFrame&&(this._frameIndex=a,this._parent.setFrame(this.currentFrame),this.onUpdate&&this.onUpdate.dispatch(this,this.currentFrame))}}),Object.defineProperty(c.Animation.prototype,"speed",{get:function(){return Math.round(1e3/this.delay)},set:function(a){a>=1&&(this.delay=1e3/a)}}),Object.defineProperty(c.Animation.prototype,"enableUpdate",{get:function(){return null!==this.onUpdate},set:function(a){a&&null===this.onUpdate?this.onUpdate=new c.Signal:a||null===this.onUpdate||(this.onUpdate.dispose(),this.onUpdate=null)}}),c.Animation.generateFrameNames=function(a,b,d,e,f){void 0===e&&(e="");var g=[],h="";if(d>b)for(var i=b;d>=i;i++)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);else for(var i=b;i>=d;i--)h="number"==typeof f?c.Utils.pad(i.toString(),f,"0",1):i.toString(),h=a+h+e,g.push(h);return g},c.Frame=function(a,b,d,e,f,g){this.index=a,this.x=b,this.y=d,this.width=e,this.height=f,this.name=g,this.centerX=Math.floor(e/2),this.centerY=Math.floor(f/2),this.distance=c.Math.distance(0,0,e,f),this.rotated=!1,this.rotationDirection="cw",this.trimmed=!1,this.sourceSizeW=e,this.sourceSizeH=f,this.spriteSourceSizeX=0,this.spriteSourceSizeY=0,this.spriteSourceSizeW=0,this.spriteSourceSizeH=0,this.right=this.x+this.width,this.bottom=this.y+this.height},c.Frame.prototype={resize:function(a,b){this.width=a,this.height=b,this.centerX=Math.floor(a/2),this.centerY=Math.floor(b/2),this.distance=c.Math.distance(0,0,a,b),this.sourceSizeW=a,this.sourceSizeH=b,this.right=this.x+a,this.bottom=this.y+b},setTrim:function(a,b,c,d,e,f,g){this.trimmed=a,a&&(this.sourceSizeW=b,this.sourceSizeH=c,this.centerX=Math.floor(b/2),this.centerY=Math.floor(c/2),this.spriteSourceSizeX=d,this.spriteSourceSizeY=e,this.spriteSourceSizeW=f,this.spriteSourceSizeH=g)},clone:function(){var a=new c.Frame(this.index,this.x,this.y,this.width,this.height,this.name);for(var b in this)this.hasOwnProperty(b)&&(a[b]=this[b]);return a},getRect:function(a){return void 0===a?a=new c.Rectangle(this.x,this.y,this.width,this.height):a.setTo(this.x,this.y,this.width,this.height),a}},c.Frame.prototype.constructor=c.Frame,c.FrameData=function(){this._frames=[],this._frameNames=[]},c.FrameData.prototype={addFrame:function(a){return a.index=this._frames.length,this._frames.push(a),""!==a.name&&(this._frameNames[a.name]=a.index),a},getFrame:function(a){return a>=this._frames.length&&(a=0),this._frames[a]},getFrameByName:function(a){return"number"==typeof this._frameNames[a]?this._frames[this._frameNames[a]]:null},checkFrameName:function(a){return null==this._frameNames[a]?!1:!0},clone:function(){for(var a=new c.FrameData,b=0;b=d;d++)c.push(this._frames[d]);return c},getFrames:function(a,b,c){if(void 0===b&&(b=!0),void 0===c&&(c=[]),void 0===a||0===a.length)for(var d=0;d=d&&(d=Math.floor(-j/Math.min(-1,d))),0>=e&&(e=Math.floor(-k/Math.min(-1,e)));var l=Math.floor((j-g)/(d+h)),m=Math.floor((k-g)/(e+h)),n=l*m;if(-1!==f&&(n=f),0===j||0===k||d>j||e>k||0===n)return console.warn("Phaser.AnimationParser.spriteSheet: '"+b+"'s width/height zero or width/height < given frameWidth/frameHeight"),null;for(var o=new c.FrameData,p=g,q=g,r=0;n>r;r++)o.addFrame(new c.Frame(r,p,q,d,e,"")),p+=d+h,p+d>j&&(p=g,q+=e+h);return o},JSONData:function(a,b){if(!b.frames)return console.warn("Phaser.AnimationParser.JSONData: Invalid Texture Atlas JSON given, missing 'frames' array"),void console.log(b);for(var d,e=new c.FrameData,f=b.frames,g=0;g tag");for(var d,e,f,g,h,i,j,k,l,m,n,o=new c.FrameData,p=b.getElementsByTagName("SubTexture"),q=0;q-1},getAssetIndex:function(a,b){for(var c=-1,d=0;d-1?{index:c,file:this._fileList[c]}:!1},reset:function(a,b){void 0===b&&(b=!1),this.resetLocked||(a&&(this.preloadSprite=null),this.isLoading=!1,this._processingHead=0,this._fileList.length=0,this._flightQueue.length=0,this._fileLoadStarted=!1,this._totalFileCount=0, +this._totalPackCount=0,this._loadedPackCount=0,this._loadedFileCount=0,b&&(this.onLoadStart.removeAll(),this.onLoadComplete.removeAll(),this.onPackComplete.removeAll(),this.onFileStart.removeAll(),this.onFileComplete.removeAll(),this.onFileError.removeAll()))},addToFileList:function(a,b,c,d,e,f){if(void 0===e&&(e=!1),void 0===b||""===b)return console.warn("Phaser.Loader: Invalid or no key given of type "+a),this;if(void 0===c||null===c){if(!f)return console.warn("Phaser.Loader: No URL given for file type: "+a+" key: "+b),this;c=b+f}var g={type:a,key:b,path:this.path,url:c,syncPoint:this._withSyncPointDepth>0,data:null,loading:!1,loaded:!1,error:!1};if(d)for(var h in d)g[h]=d[h];var i=this.getAssetIndex(a,b);if(e&&i>-1){var j=this._fileList[i];j.loading||j.loaded?(this._fileList.push(g),this._totalFileCount++):this._fileList[i]=g}else-1===i&&(this._fileList.push(g),this._totalFileCount++);return this},replaceInFileList:function(a,b,c,d){return this.addToFileList(a,b,c,d,!0)},pack:function(a,b,c,d){if(void 0===b&&(b=null),void 0===c&&(c=null),void 0===d&&(d=null),!b&&!c)return console.warn("Phaser.Loader.pack - Both url and data are null. One must be set."),this;var e={type:"packfile",key:a,url:b,path:this.path,syncPoint:!0,data:null,loading:!1,loaded:!1,error:!1,callbackContext:d};c&&("string"==typeof c&&(c=JSON.parse(c)),e.data=c||{},e.loaded=!0);for(var f=0;f=e||d&&this._loadedPackCount===this._totalPackCount)break}if(this.updateProgress(),this._processingHead>=this._fileList.length)this.finishedLoading();else if(!this._flightQueue.length){console.warn("Phaser.Loader - aborting: processing queue empty, loading may have stalled");var f=this;setTimeout(function(){f.finishedLoading(!0)},2e3)}},finishedLoading:function(a){this.hasLoaded||(this.hasLoaded=!0,this.isLoading=!1,a||this._fileLoadStarted||(this._fileLoadStarted=!0,this.onLoadStart.dispatch()),this.onLoadComplete.dispatch(),this.game.state.loadComplete(),this.reset())},asyncComplete:function(a,b){void 0===b&&(b=""),a.loaded=!0,a.error=!!b,b&&(a.errorMessage=b,console.warn("Phaser.Loader - "+a.type+"["+a.key+"]: "+b)),this.processLoadQueue()},processPack:function(a){var b=a.data[a.key];if(!b)return void console.warn("Phaser.Loader - "+a.key+": pack has data, but not for pack key");for(var d=0;d=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{return e.call(g,a,f)}catch(b){g.hasLoaded?window.console&&console.error(b):g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,f.send()},xhrLoadWithXDR:function(a,b,c,d,e){this._warnedAboutXDomainRequest||this.game.device.ie&&!(this.game.device.ieVersion>=10)||(this._warnedAboutXDomainRequest=!0,console.warn("Phaser.Loader - using XDomainRequest outside of IE 9"));var f=new window.XDomainRequest;f.open("GET",b,!0),f.responseType=c,f.timeout=3e3,e=e||this.fileError;var g=this;f.onerror=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.ontimeout=function(){try{return e.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},f.onprogress=function(){},f.onload=function(){try{return 4==f.readyState&&f.status>=400&&f.status<=599?e.call(g,a,f):d.call(g,a,f)}catch(b){g.asyncComplete(a,b.message||"Exception")}},a.requestObject=f,a.requestUrl=b,setTimeout(function(){f.send()},0)},getVideoURL:function(a){for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayVideo(c))return a[b]}}return null},getAudioURL:function(a){if(this.game.sound.noAudio)return null;for(var b=0;b=0&&(d=d.substr(0,d.indexOf("?")));var e=d.substr((Math.max(0,d.lastIndexOf("."))||1/0)+1);if(c=e.toLowerCase(),this.game.device.canPlayAudio(c))return a[b]}}return null},fileError:function(a,b,c){var d=a.requestUrl||this.transformUrl(a.url,a),e="error loading asset from URL "+d;!c&&b&&(c=b.status),c&&(e=e+" ("+c+")"),this.asyncComplete(a,e)},fileComplete:function(a,b){var d=!0;switch(a.type){case"packfile":var e=JSON.parse(b.responseText);a.data=e||{};break;case"image":this.cache.addImage(a.key,a.url,a.data);break;case"spritesheet":this.cache.addSpriteSheet(a.key,a.url,a.data,a.frameWidth,a.frameHeight,a.frameMax,a.margin,a.spacing);break;case"textureatlas":if(null==a.atlasURL)this.cache.addTextureAtlas(a.key,a.url,a.data,a.atlasData,a.format);else if(d=!1,a.format==c.Loader.TEXTURE_ATLAS_JSON_ARRAY||a.format==c.Loader.TEXTURE_ATLAS_JSON_HASH||a.format==c.Loader.TEXTURE_ATLAS_JSON_PYXEL)this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.jsonLoadComplete);else{if(a.format!=c.Loader.TEXTURE_ATLAS_XML_STARLING)throw new Error("Phaser.Loader. Invalid Texture Atlas format: "+a.format);this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",this.xmlLoadComplete)}break;case"bitmapfont":a.atlasURL?(d=!1,this.xhrLoad(a,this.transformUrl(a.atlasURL,a),"text",function(a,b){var c;try{c=JSON.parse(b.responseText)}catch(d){}c?(a.atlasType="json",this.jsonLoadComplete(a,b)):(a.atlasType="xml",this.xmlLoadComplete(a,b))})):this.cache.addBitmapFont(a.key,a.url,a.data,a.atlasData,a.atlasType,a.xSpacing,a.ySpacing);break;case"video":if(a.asBlob)try{a.data=new Blob([new Uint8Array(b.response)])}catch(f){throw new Error("Phaser.Loader. Unable to parse video file as Blob: "+a.key)}this.cache.addVideo(a.key,a.url,a.data,a.asBlob);break;case"audio":this.game.sound.usingWebAudio?(a.data=b.response,this.cache.addSound(a.key,a.url,a.data,!0,!1),a.autoDecode&&this.game.sound.decode(a.key)):this.cache.addSound(a.key,a.url,a.data,!1,!0);break;case"text":a.data=b.responseText,this.cache.addText(a.key,a.url,a.data);break;case"shader":a.data=b.responseText,this.cache.addShader(a.key,a.url,a.data);break;case"physics":var e=JSON.parse(b.responseText);this.cache.addPhysicsData(a.key,a.url,e,a.format);break;case"script":a.data=document.createElement("script"),a.data.language="javascript",a.data.type="text/javascript",a.data.defer=!1,a.data.text=b.responseText,document.head.appendChild(a.data),a.callback&&(a.data=a.callback.call(a.callbackContext,a.key,b.responseText));break;case"binary":a.callback?a.data=a.callback.call(a.callbackContext,a.key,b.response):a.data=b.response,this.cache.addBinary(a.key,a.data)}d&&this.asyncComplete(a)},jsonLoadComplete:function(a,b){var c=JSON.parse(b.responseText);"tilemap"===a.type?this.cache.addTilemap(a.key,a.url,c,a.format):"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,c,a.atlasType,a.xSpacing,a.ySpacing):"json"===a.type?this.cache.addJSON(a.key,a.url,c):this.cache.addTextureAtlas(a.key,a.url,a.data,c,a.format),this.asyncComplete(a)},csvLoadComplete:function(a,b){var c=b.responseText;this.cache.addTilemap(a.key,a.url,c,a.format),this.asyncComplete(a)},xmlLoadComplete:function(a,b){var c=b.responseText,d=this.parseXml(c);if(!d){var e=b.responseType||b.contentType;return console.warn("Phaser.Loader - "+a.key+": invalid XML ("+e+")"),void this.asyncComplete(a,"invalid XML")}"bitmapfont"===a.type?this.cache.addBitmapFont(a.key,a.url,a.data,d,a.atlasType,a.xSpacing,a.ySpacing):"textureatlas"===a.type?this.cache.addTextureAtlas(a.key,a.url,a.data,d,a.format):"xml"===a.type&&this.cache.addXML(a.key,a.url,d),this.asyncComplete(a)},parseXml:function(a){var b;try{if(window.DOMParser){var c=new DOMParser;b=c.parseFromString(a,"text/xml")}else b=new ActiveXObject("Microsoft.XMLDOM"),b.async="false",b.loadXML(a)}catch(d){b=null}return b&&b.documentElement&&!b.getElementsByTagName("parsererror").length?b:null},updateProgress:function(){this.preloadSprite&&(0===this.preloadSprite.direction?this.preloadSprite.rect.width=Math.floor(this.preloadSprite.width/100*this.progress):this.preloadSprite.rect.height=Math.floor(this.preloadSprite.height/100*this.progress),this.preloadSprite.sprite?this.preloadSprite.sprite.updateCrop():this.preloadSprite=null)},totalLoadedFiles:function(){return this._loadedFileCount},totalQueuedFiles:function(){return this._totalFileCount-this._loadedFileCount},totalLoadedPacks:function(){return this._totalPackCount},totalQueuedPacks:function(){return this._totalPackCount-this._loadedPackCount}},Object.defineProperty(c.Loader.prototype,"progressFloat",{get:function(){var a=this._loadedFileCount/this._totalFileCount*100;return c.Math.clamp(a||0,0,100)}}),Object.defineProperty(c.Loader.prototype,"progress",{get:function(){return Math.round(this.progressFloat)}}),c.Loader.prototype.constructor=c.Loader,c.LoaderParser={bitmapFont:function(a,b,c,d){return this.xmlBitmapFont(a,b,c,d)},xmlBitmapFont:function(a,b,c,d){var e={},f=a.getElementsByTagName("info")[0],g=a.getElementsByTagName("common")[0];e.font=f.getAttribute("face"),e.size=parseInt(f.getAttribute("size"),10),e.lineHeight=parseInt(g.getAttribute("lineHeight"),10)+d,e.chars={};for(var h=a.getElementsByTagName("char"),i=0;i=this.durationMS&&(this.usingWebAudio?this.loop?(this.onLoop.dispatch(this),""===this.currentMarker?(this.currentTime=0,this.startTime=this.game.time.time):(this.onMarkerComplete.dispatch(this.currentMarker,this),this.play(this.currentMarker,0,this.volume,!0,!0))):""!==this.currentMarker&&this.stop():this.loop?(this.onLoop.dispatch(this),this.play(this.currentMarker,0,this.volume,!0,!0)):this.stop())))):void this.destroy()},loopFull:function(a){this.play(null,0,a,!0)},play:function(a,b,c,d,e){if((void 0===a||a===!1||null===a)&&(a=""),void 0===e&&(e=!0),this.isPlaying&&!this.allowMultiple&&!e&&!this.override)return this;if(this._sound&&this.isPlaying&&!this.allowMultiple&&(this.override||e))if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(f){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(""===a&&Object.keys(this.markers).length>0)return this;if(""!==a){if(this.currentMarker=a,!this.markers[a])return this;this.position=this.markers[a].start,this.volume=this.markers[a].volume,this.loop=this.markers[a].loop,this.duration=this.markers[a].duration,this.durationMS=this.markers[a].durationMS,"undefined"!=typeof c&&(this.volume=c),"undefined"!=typeof d&&(this.loop=d),this._tempMarker=a,this._tempPosition=this.position,this._tempVolume=this.volume,this._tempLoop=this.loop}else b=b||0,void 0===c&&(c=this._volume),void 0===d&&(d=this.loop),this.position=Math.max(0,b),this.volume=c,this.loop=d,this.duration=0,this.durationMS=0,this._tempMarker=a,this._tempPosition=b,this._tempVolume=c,this._tempLoop=d;return this.usingWebAudio?this.game.cache.isSoundDecoded(this.key)?(this._sound=this.context.createBufferSource(),this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this._buffer=this.game.cache.getSoundData(this.key),this._sound.buffer=this._buffer,this.loop&&""===a&&(this._sound.loop=!0),this.loop||""!==a||(this._sound.onended=this.onEndedHandler.bind(this)),this.totalDuration=this._sound.buffer.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=Math.ceil(1e3*this.totalDuration)),void 0===this._sound.start?this._sound.noteGrainOn(0,this.position,this.duration):this.loop&&""===a?this._sound.start(0,0):this._sound.start(0,this.position,this.duration),this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):(this.pendingPlayback=!0,this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).isDecoding===!1&&this.game.sound.decode(this.key,this)):this.game.cache.getSound(this.key)&&this.game.cache.getSound(this.key).locked?(this.game.cache.reloadSound(this.key),this.pendingPlayback=!0):this._sound&&(this.game.device.cocoonJS||4===this._sound.readyState)?(this._sound.play(),this.totalDuration=this._sound.duration,0===this.duration&&(this.duration=this.totalDuration,this.durationMS=1e3*this.totalDuration),this._sound.currentTime=this.position,this._sound.muted=this._muted,this._muted||this.game.sound.mute?this._sound.volume=0:this._sound.volume=this._volume,this.isPlaying=!0,this.startTime=this.game.time.time,this.currentTime=0,this.stopTime=this.startTime+this.durationMS,this.onPlay.dispatch(this)):this.pendingPlayback=!0,this},restart:function(a,b,c,d){a=a||"",b=b||0,c=c||1,void 0===d&&(d=!1),this.play(a,b,c,d,!0)},pause:function(){this.isPlaying&&this._sound&&(this.paused=!0,this.pausedPosition=this.currentTime,this.pausedTime=this.game.time.time,this.onPause.dispatch(this),this.stop())},resume:function(){if(this.paused&&this._sound){if(this.usingWebAudio){var a=Math.max(0,this.position+this.pausedPosition/1e3);this._sound=this.context.createBufferSource(),this._sound.buffer=this._buffer,this.externalNode?this._sound.connect(this.externalNode):this._sound.connect(this.gainNode),this.loop&&(this._sound.loop=!0),this.loop||""!==this.currentMarker||(this._sound.onended=this.onEndedHandler.bind(this));var b=this.duration-this.pausedPosition/1e3;void 0===this._sound.start?this._sound.noteGrainOn(0,a,b):this.loop&&this.game.device.chrome?42===this.game.device.chromeVersion?this._sound.start(0):this._sound.start(0,a):this._sound.start(0,a,b)}else this._sound.play();this.isPlaying=!0,this.paused=!1,this.startTime+=this.game.time.time-this.pausedTime,this.onResume.dispatch(this)}},stop:function(){if(this.isPlaying&&this._sound)if(this.usingWebAudio){if(void 0===this._sound.stop)this._sound.noteOff(0);else try{this._sound.stop(0)}catch(a){}this.externalNode?this._sound.disconnect(this.externalNode):this._sound.disconnect(this.gainNode)}else this.usingAudioTag&&(this._sound.pause(),this._sound.currentTime=0);if(this.pendingPlayback=!1,this.isPlaying=!1,!this.paused){var b=this.currentMarker;""!==this.currentMarker&&this.onMarkerComplete.dispatch(this.currentMarker,this),this.currentMarker="",null!==this.fadeTween&&this.fadeTween.stop(),this.onStop.dispatch(this,b)}},fadeIn:function(a,b,c){void 0===b&&(b=!1),void 0===c&&(c=this.currentMarker),this.paused||(this.play(c,0,0,b),this.fadeTo(a,1))},fadeOut:function(a){this.fadeTo(a,0)},fadeTo:function(a,b){if(this.isPlaying&&!this.paused&&b!==this.volume){if(void 0===a&&(a=1e3),void 0===b)return void console.warn("Phaser.Sound.fadeTo: No Volume Specified.");this.fadeTween=this.game.add.tween(this).to({volume:b},a,c.Easing.Linear.None,!0),this.fadeTween.onComplete.add(this.fadeComplete,this)}},fadeComplete:function(){this.onFadeComplete.dispatch(this,this.volume),0===this.volume&&this.stop()},updateGlobalVolume:function(a){this.usingAudioTag&&this._sound&&(this._sound.volume=a*this._volume)},destroy:function(a){void 0===a&&(a=!0),this.stop(),a?this.game.sound.remove(this):(this.markers={},this.context=null,this._buffer=null,this.externalNode=null,this.onDecoded.dispose(),this.onPlay.dispose(),this.onPause.dispose(),this.onResume.dispose(),this.onLoop.dispose(),this.onStop.dispose(),this.onMute.dispose(),this.onMarkerComplete.dispose())}},c.Sound.prototype.constructor=c.Sound,Object.defineProperty(c.Sound.prototype,"isDecoding",{get:function(){return this.game.cache.getSound(this.key).isDecoding}}),Object.defineProperty(c.Sound.prototype,"isDecoded",{get:function(){return this.game.cache.isSoundDecoded(this.key)}}),Object.defineProperty(c.Sound.prototype,"mute",{get:function(){return this._muted||this.game.sound.mute},set:function(a){a=a||!1,a!==this._muted&&(a?(this._muted=!0,this._muteVolume=this._tempVolume,this.usingWebAudio?this.gainNode.gain.value=0:this.usingAudioTag&&this._sound&&(this._sound.volume=0)):(this._muted=!1,this.usingWebAudio?this.gainNode.gain.value=this._muteVolume:this.usingAudioTag&&this._sound&&(this._sound.volume=this._muteVolume)),this.onMute.dispatch(this))}}),Object.defineProperty(c.Sound.prototype,"volume",{ +get:function(){return this._volume},set:function(a){return this.game.device.firefox&&this.usingAudioTag&&(a=this.game.math.clamp(a,0,1)),this._muted?void(this._muteVolume=a):(this._tempVolume=a,this._volume=a,void(this.usingWebAudio?this.gainNode.gain.value=a:this.usingAudioTag&&this._sound&&(this._sound.volume=a)))}}),c.SoundManager=function(a){this.game=a,this.onSoundDecode=new c.Signal,this.onVolumeChange=new c.Signal,this.onMute=new c.Signal,this.onUnMute=new c.Signal,this.context=null,this.usingWebAudio=!1,this.usingAudioTag=!1,this.noAudio=!1,this.connectToMaster=!0,this.touchLocked=!1,this.channels=32,this.muteOnPause=!0,this._codeMuted=!1,this._muted=!1,this._unlockSource=null,this._volume=1,this._sounds=[],this._watchList=new c.ArraySet,this._watching=!1,this._watchCallback=null,this._watchContext=null},c.SoundManager.prototype={boot:function(){if(this.game.device.iOS&&this.game.device.webAudio===!1&&(this.channels=1),window.PhaserGlobal){if(window.PhaserGlobal.disableAudio===!0)return this.noAudio=!0,void(this.touchLocked=!1);if(window.PhaserGlobal.disableWebAudio===!0)return this.usingAudioTag=!0,void(this.touchLocked=!1)}if(window.PhaserGlobal&&window.PhaserGlobal.audioContext)this.context=window.PhaserGlobal.audioContext;else if(window.AudioContext)try{this.context=new window.AudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}else if(window.webkitAudioContext)try{this.context=new window.webkitAudioContext}catch(a){this.context=null,this.usingWebAudio=!1,this.touchLocked=!1}if(null===this.context){if(void 0===window.Audio)return void(this.noAudio=!0);this.usingAudioTag=!0}else this.usingWebAudio=!0,void 0===this.context.createGain?this.masterGain=this.context.createGainNode():this.masterGain=this.context.createGain(),this.masterGain.gain.value=1,this.masterGain.connect(this.context.destination);this.noAudio||(!this.game.device.cocoonJS&&this.game.device.iOS||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock)&&this.setTouchLock()},setTouchLock:function(){this.noAudio||window.PhaserGlobal&&window.PhaserGlobal.disableAudio===!0||(this.game.device.iOSVersion>8?this.game.input.touch.addTouchLockCallback(this.unlock,this,!0):this.game.input.touch.addTouchLockCallback(this.unlock,this),this.touchLocked=!0)},unlock:function(){if(this.noAudio||!this.touchLocked||null!==this._unlockSource)return!0;if(this.usingAudioTag)this.touchLocked=!1,this._unlockSource=null;else if(this.usingWebAudio){var a=this.context.createBuffer(1,1,22050);this._unlockSource=this.context.createBufferSource(),this._unlockSource.buffer=a,this._unlockSource.connect(this.context.destination),void 0===this._unlockSource.start?this._unlockSource.noteOn(0):this._unlockSource.start(0)}return!0},stopAll:function(){if(!this.noAudio)for(var a=0;aa?a=0:a>1&&(a=1),this._volume!==a){if(this._volume=a,this.usingWebAudio)this.masterGain.gain.value=a;else for(var b=0;b=400?0:100,this.dom.getOffset(this.game.canvas,this.offset);var b=this._parentBounds.width,d=this._parentBounds.height,e=this.getParentBounds(this._parentBounds),f=e.width!==b||e.height!==d,g=this.updateOrientationState();(f||g)&&(this.onResize&&this.onResize.call(this.onResizeContext,this,e),this.updateLayout(),this.signalSizeChange());var h=2*this._updateThrottle;this._updateThrottle=b||0>=c)return a;var e=b,f=a.height*b/a.width,g=a.width*c/a.height,h=c,i=g>b;return i=i?d:!d,i?(a.width=Math.floor(e),a.height=Math.floor(f)):(a.width=Math.floor(g),a.height=Math.floor(h)),a},destroy:function(){this.game.onResume.remove(this._gameResumed,this),window.removeEventListener("orientationchange",this._orientationChange,!1),window.removeEventListener("resize",this._windowResize,!1),this.compatibility.supportsFullScreen&&(document.removeEventListener("webkitfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("mozfullscreenchange",this._fullScreenChange,!1),document.removeEventListener("MSFullscreenChange",this._fullScreenChange,!1),document.removeEventListener("fullscreenchange",this._fullScreenChange,!1),document.removeEventListener("webkitfullscreenerror",this._fullScreenError,!1),document.removeEventListener("mozfullscreenerror",this._fullScreenError,!1),document.removeEventListener("MSFullscreenError",this._fullScreenError,!1),document.removeEventListener("fullscreenerror",this._fullScreenError,!1))}},c.ScaleManager.prototype.constructor=c.ScaleManager,Object.defineProperty(c.ScaleManager.prototype,"boundingParent",{get:function(){if(this.parentIsWindow||this.isFullScreen&&!this._createdFullScreenTarget)return null;var a=this.game.canvas&&this.game.canvas.parentNode;return a||null}}),Object.defineProperty(c.ScaleManager.prototype,"scaleMode",{get:function(){return this._scaleMode},set:function(a){return a!==this._scaleMode&&(this.isFullScreen||(this.updateDimensions(this._gameSize.width,this._gameSize.height,!0),this.queueUpdate(!0)),this._scaleMode=a),this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"fullScreenScaleMode",{get:function(){return this._fullScreenScaleMode},set:function(a){return a!==this._fullScreenScaleMode&&(this.isFullScreen?(this.prepScreenMode(!1),this._fullScreenScaleMode=a,this.prepScreenMode(!0),this.queueUpdate(!0)):this._fullScreenScaleMode=a),this._fullScreenScaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"currentScaleMode",{get:function(){return this.isFullScreen?this._fullScreenScaleMode:this._scaleMode}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignHorizontally",{get:function(){return this._pageAlignHorizontally},set:function(a){a!==this._pageAlignHorizontally&&(this._pageAlignHorizontally=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"pageAlignVertically",{get:function(){return this._pageAlignVertically},set:function(a){a!==this._pageAlignVertically&&(this._pageAlignVertically=a,this.queueUpdate(!0))}}),Object.defineProperty(c.ScaleManager.prototype,"isFullScreen",{get:function(){return!!(document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement)}}),Object.defineProperty(c.ScaleManager.prototype,"isPortrait",{get:function(){return"portrait"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isLandscape",{get:function(){return"landscape"===this.classifyOrientation(this.screenOrientation)}}),Object.defineProperty(c.ScaleManager.prototype,"isGamePortrait",{get:function(){return this.height>this.width}}),Object.defineProperty(c.ScaleManager.prototype,"isGameLandscape",{get:function(){return this.width>this.height}}),c.Utils.Debug=function(a){this.game=a,this.sprite=null,this.bmd=null,this.canvas=null,this.context=null,this.font="14px Courier",this.columnWidth=100,this.lineHeight=16,this.renderShadow=!0,this.currentX=0,this.currentY=0,this.currentAlpha=1,this.dirty=!1},c.Utils.Debug.prototype={boot:function(){this.game.renderType===c.CANVAS?this.context=this.game.context:(this.bmd=this.game.make.bitmapData(this.game.width,this.game.height),this.sprite=this.game.make.image(0,0,this.bmd),this.game.stage.addChild(this.sprite),this.game.scale.onSizeChange.add(this.resize,this),this.canvas=PIXI.CanvasPool.create(this,this.game.width,this.game.height),this.context=this.canvas.getContext("2d"))},resize:function(a,b,c){this.bmd.resize(b,c),this.canvas.width=b,this.canvas.height=c},preUpdate:function(){this.dirty&&this.sprite&&(this.bmd.clear(),this.bmd.draw(this.canvas,0,0),this.context.clearRect(0,0,this.game.width,this.game.height),this.dirty=!1)},reset:function(){this.context&&this.context.clearRect(0,0,this.game.width,this.game.height),this.sprite&&this.bmd.clear()},start:function(a,b,c,d){"number"!=typeof a&&(a=0),"number"!=typeof b&&(b=0),c=c||"rgb(255,255,255)",void 0===d&&(d=0),this.currentX=a,this.currentY=b,this.currentColor=c,this.columnWidth=d,this.dirty=!0,this.context.save(),this.context.setTransform(1,0,0,1,0,0),this.context.strokeStyle=c,this.context.fillStyle=c,this.context.font=this.font,this.context.globalAlpha=this.currentAlpha},stop:function(){this.context.restore()},line:function(){for(var a=this.currentX,b=0;b=0&&c.right>=0&&c.top<=this.layoutBounds.width&&c.left<=this.layoutBounds.height},getScreenOrientation:function(a){var b=window.screen,c=b.orientation||b.mozOrientation||b.msOrientation;if(c&&"string"==typeof c.type)return c.type;if("string"==typeof c)return c;var d="portrait-primary",e="landscape-primary";if("screen"===a)return b.height>b.width?d:e;if("viewport"===a)return this.visualBounds.height>this.visualBounds.width?d:e;if("window.orientation"===a&&"number"==typeof window.orientation)return 0===window.orientation||180===window.orientation?d:e;if(window.matchMedia){if(window.matchMedia("(orientation: portrait)").matches)return d;if(window.matchMedia("(orientation: landscape)").matches)return e}return this.visualBounds.height>this.visualBounds.width?d:e},visualBounds:new c.Rectangle,layoutBounds:new c.Rectangle,documentBounds:new c.Rectangle},c.Device.whenReady(function(a){var b=window&&"pageXOffset"in window?function(){return window.pageXOffset}:function(){return document.documentElement.scrollLeft},d=window&&"pageYOffset"in window?function(){return window.pageYOffset}:function(){return document.documentElement.scrollTop};Object.defineProperty(c.DOM,"scrollX",{get:b}),Object.defineProperty(c.DOM,"scrollY",{get:d}),Object.defineProperty(c.DOM.visualBounds,"x",{get:b}),Object.defineProperty(c.DOM.visualBounds,"y",{get:d}),Object.defineProperty(c.DOM.layoutBounds,"x",{value:0}),Object.defineProperty(c.DOM.layoutBounds,"y",{value:0});var e=a.desktop&&document.documentElement.clientWidth<=window.innerWidth&&document.documentElement.clientHeight<=window.innerHeight;if(e){var f=function(){return Math.max(window.innerWidth,document.documentElement.clientWidth)},g=function(){return Math.max(window.innerHeight,document.documentElement.clientHeight)};Object.defineProperty(c.DOM.visualBounds,"width",{get:f}),Object.defineProperty(c.DOM.visualBounds,"height",{get:g}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:f}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:g})}else Object.defineProperty(c.DOM.visualBounds,"width",{get:function(){return window.innerWidth}}),Object.defineProperty(c.DOM.visualBounds,"height",{get:function(){return window.innerHeight}}),Object.defineProperty(c.DOM.layoutBounds,"width",{get:function(){var a=document.documentElement.clientWidth,b=window.innerWidth;return b>a?b:a}}),Object.defineProperty(c.DOM.layoutBounds,"height",{get:function(){var a=document.documentElement.clientHeight,b=window.innerHeight;return b>a?b:a}});Object.defineProperty(c.DOM.documentBounds,"x",{value:0}),Object.defineProperty(c.DOM.documentBounds,"y",{value:0}),Object.defineProperty(c.DOM.documentBounds,"width",{get:function(){var a=document.documentElement;return Math.max(a.clientWidth,a.offsetWidth,a.scrollWidth)}}),Object.defineProperty(c.DOM.documentBounds,"height",{get:function(){var a=document.documentElement;return Math.max(a.clientHeight,a.offsetHeight,a.scrollHeight)}})},null,!0),c.ArraySet=function(a){this.position=0,this.list=a||[]},c.ArraySet.prototype={add:function(a){return this.exists(a)||this.list.push(a),a},getIndex:function(a){return this.list.indexOf(a)},getByKey:function(a,b){for(var c=this.list.length;c--;)if(this.list[c][a]===b)return this.list[c];return null},exists:function(a){return this.list.indexOf(a)>-1},reset:function(){this.list.length=0},remove:function(a){var b=this.list.indexOf(a);return b>-1?(this.list.splice(b,1),a):void 0},setAll:function(a,b){for(var c=this.list.length;c--;)this.list[c]&&(this.list[c][a]=b)},callAll:function(a){for(var b=Array.prototype.slice.call(arguments,1),c=this.list.length;c--;)this.list[c]&&this.list[c][a]&&this.list[c][a].apply(this.list[c],b)},removeAll:function(a){void 0===a&&(a=!1);for(var b=this.list.length;b--;)if(this.list[b]){var c=this.remove(this.list[b]);a&&c.destroy()}this.position=0,this.list=[]}},Object.defineProperty(c.ArraySet.prototype,"total",{get:function(){return this.list.length}}),Object.defineProperty(c.ArraySet.prototype,"first",{get:function(){return this.position=0,this.list.length>0?this.list[0]:null}}),Object.defineProperty(c.ArraySet.prototype,"next",{get:function(){return this.position0;b--){var c=Math.floor(Math.random()*(b+1)),d=a[b];a[b]=a[c],a[c]=d}return a},transposeMatrix:function(a){for(var b=a.length,c=a[0].length,d=new Array(c),e=0;c>e;e++){d[e]=new Array(b);for(var f=b-1;f>-1;f--)d[e][f]=a[f][e]}return d},rotateMatrix:function(a,b){if("string"!=typeof b&&(b=(b%360+360)%360),90===b||-270===b||"rotateLeft"===b)a=c.ArrayUtils.transposeMatrix(a),a=a.reverse();else if(-90===b||270===b||"rotateRight"===b)a=a.reverse(),a=c.ArrayUtils.transposeMatrix(a);else if(180===Math.abs(b)||"rotate180"===b){for(var d=0;d=e-a?e:d},rotate:function(a){var b=a.shift();return a.push(b),b},numberArray:function(a,b){for(var c=[],d=a;b>=d;d++)c.push(d);return c},numberArrayStep:function(a,b,d){(void 0===a||null===a)&&(a=0),(void 0===b||null===b)&&(b=a,a=0),void 0===d&&(d=1);for(var e=[],f=Math.max(c.Math.roundAwayFromZero((b-a)/(d||1)),0),g=0;f>g;g++)e.push(a),a+=d;return e}},c.LinkedList=function(){this.next=null,this.prev=null,this.first=null,this.last=null,this.total=0},c.LinkedList.prototype={add:function(a){return 0===this.total&&null===this.first&&null===this.last?(this.first=a,this.last=a,this.next=a,a.prev=this,this.total++,a):(this.last.next=a,a.prev=this.last,this.last=a,this.total++,a)},reset:function(){this.first=null,this.last=null,this.next=null,this.prev=null,this.total=0},remove:function(a){return 1===this.total?(this.reset(),void(a.next=a.prev=null)):(a===this.first?this.first=this.first.next:a===this.last&&(this.last=this.last.prev),a.prev&&(a.prev.next=a.next),a.next&&(a.next.prev=a.prev),a.next=a.prev=null,null===this.first&&(this.last=null),void this.total--)},callAll:function(a){if(this.first&&this.last){var b=this.first;do b&&b[a]&&b[a].call(b),b=b.next;while(b!=this.last.next)}}},c.LinkedList.prototype.constructor=c.LinkedList,c.Create=function(a){this.game=a,this.bmd=null,this.canvas=null,this.ctx=null,this.palettes=[{0:"#000",1:"#9D9D9D",2:"#FFF",3:"#BE2633",4:"#E06F8B",5:"#493C2B",6:"#A46422",7:"#EB8931",8:"#F7E26B",9:"#2F484E",A:"#44891A",B:"#A3CE27",C:"#1B2632",D:"#005784",E:"#31A2F2",F:"#B2DCEF"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#f5f4eb"},{0:"#000",1:"#2234d1",2:"#0c7e45",3:"#44aacc",4:"#8a3622",5:"#5c2e78",6:"#aa5c3d",7:"#b5b5b5",8:"#5e606e",9:"#4c81fb",A:"#6cd947",B:"#7be2f9",C:"#eb8a60",D:"#e23d69",E:"#ffd93f",F:"#fff"},{0:"#000",1:"#fff",2:"#8b4131",3:"#7bbdc5",4:"#8b41ac",5:"#6aac41",6:"#3931a4",7:"#d5de73",8:"#945a20",9:"#5a4100",A:"#bd736a",B:"#525252",C:"#838383",D:"#acee8b",E:"#7b73de",F:"#acacac"},{0:"#000",1:"#191028",2:"#46af45",3:"#a1d685",4:"#453e78",5:"#7664fe",6:"#833129",7:"#9ec2e8",8:"#dc534b",9:"#e18d79",A:"#d6b97b",B:"#e9d8a1",C:"#216c4b",D:"#d365c8",E:"#afaab9",F:"#fff"}]},c.Create.PALETTE_ARNE=0,c.Create.PALETTE_JMP=1,c.Create.PALETTE_CGA=2,c.Create.PALETTE_C64=3,c.Create.PALETTE_JAPANESE_MACHINE=4,c.Create.prototype={texture:function(a,b,c,d,e){void 0===c&&(c=8),void 0===d&&(d=c),void 0===e&&(e=0);var f=b[0].length*c,g=b.length*d;null===this.bmd&&(this.bmd=this.game.make.bitmapData(),this.canvas=this.bmd.canvas,this.ctx=this.bmd.context),this.bmd.resize(f,g),this.bmd.clear();for(var h=0;hg;g+=e)this.ctx.fillRect(0,g,b,1);for(var h=0;b>h;h+=d)this.ctx.fillRect(h,0,1,c);return this.bmd.generateTexture(a)}},c.Create.prototype.constructor=c.Create,c.FlexGrid=function(a,b,d){this.game=a.game,this.manager=a,this.width=b,this.height=d,this.boundsCustom=new c.Rectangle(0,0,b,d),this.boundsFluid=new c.Rectangle(0,0,b,d),this.boundsFull=new c.Rectangle(0,0,b,d),this.boundsNone=new c.Rectangle(0,0,b,d),this.positionCustom=new c.Point(0,0),this.positionFluid=new c.Point(0,0),this.positionFull=new c.Point(0,0),this.positionNone=new c.Point(0,0),this.scaleCustom=new c.Point(1,1),this.scaleFluid=new c.Point(1,1),this.scaleFluidInversed=new c.Point(1,1),this.scaleFull=new c.Point(1,1),this.scaleNone=new c.Point(1,1),this.customWidth=0,this.customHeight=0,this.customOffsetX=0,this.customOffsetY=0,this.ratioH=b/d,this.ratioV=d/b,this.multiplier=0,this.layers=[]},c.FlexGrid.prototype={setSize:function(a,b){this.width=a,this.height=b,this.ratioH=a/b,this.ratioV=b/a,this.scaleNone=new c.Point(1,1),this.boundsNone.width=this.width,this.boundsNone.height=this.height,this.refresh()},createCustomLayer:function(a,b,d,e){void 0===e&&(e=!0),this.customWidth=a,this.customHeight=b,this.boundsCustom.width=a,this.boundsCustom.height=b;var f=new c.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom);return e&&this.game.world.add(f),this.layers.push(f),"undefined"!=typeof d&&null!==typeof d&&f.addMultiple(d),f},createFluidLayer:function(a,b){void 0===b&&(b=!0);var d=new c.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid);return b&&this.game.world.add(d),this.layers.push(d),"undefined"!=typeof a&&null!==typeof a&&d.addMultiple(a),d},createFullLayer:function(a){var b=new c.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},createFixedLayer:function(a){var b=new c.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone);return this.game.world.add(b),this.layers.push(b),"undefined"!=typeof a&&b.addMultiple(a),b},reset:function(){for(var a=this.layers.length;a--;)this.layers[a].persist||(this.layers[a].position=null,this.layers[a].scale=null,this.layers.slice(a,1))},onResize:function(a,b){this.ratioH=a/b,this.ratioV=b/a,this.refresh(a,b)},refresh:function(){this.multiplier=Math.min(this.manager.height/this.height,this.manager.width/this.width),this.boundsFluid.width=Math.round(this.width*this.multiplier),this.boundsFluid.height=Math.round(this.height*this.multiplier),this.scaleFluid.set(this.boundsFluid.width/this.width,this.boundsFluid.height/this.height),this.scaleFluidInversed.set(this.width/this.boundsFluid.width,this.height/this.boundsFluid.height),this.scaleFull.set(this.boundsFull.width/this.width,this.boundsFull.height/this.height),this.boundsFull.width=Math.round(this.manager.width*this.scaleFluidInversed.x),this.boundsFull.height=Math.round(this.manager.height*this.scaleFluidInversed.y),this.boundsFluid.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.boundsNone.centerOn(this.manager.bounds.centerX,this.manager.bounds.centerY),this.positionFluid.set(this.boundsFluid.x,this.boundsFluid.y),this.positionNone.set(this.boundsNone.x,this.boundsNone.y)},fitSprite:function(a){this.manager.scaleSprite(a),a.x=this.manager.bounds.centerX,a.y=this.manager.bounds.centerY},debug:function(){this.game.debug.text(this.boundsFluid.width+" x "+this.boundsFluid.height,this.boundsFluid.x+4,this.boundsFluid.y+16),this.game.debug.geom(this.boundsFluid,"rgba(255,0,0,0.9",!1)}},c.FlexGrid.prototype.constructor=c.FlexGrid,c.FlexLayer=function(a,b,d,e){c.Group.call(this,a.game,null,"__flexLayer"+a.game.rnd.uuid(),!1),this.manager=a.manager,this.grid=a,this.persist=!1,this.position=b,this.bounds=d,this.scale=e,this.topLeft=d.topLeft,this.topMiddle=new c.Point(d.halfWidth,0),this.topRight=d.topRight,this.bottomLeft=d.bottomLeft,this.bottomMiddle=new c.Point(d.halfWidth,d.bottom),this.bottomRight=d.bottomRight},c.FlexLayer.prototype=Object.create(c.Group.prototype),c.FlexLayer.prototype.constructor=c.FlexLayer,c.FlexLayer.prototype.resize=function(){},c.FlexLayer.prototype.debug=function(){this.game.debug.text(this.bounds.width+" x "+this.bounds.height,this.bounds.x+4,this.bounds.y+16),this.game.debug.geom(this.bounds,"rgba(0,0,255,0.9",!1),this.game.debug.geom(this.topLeft,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topMiddle,"rgba(255,255,255,0.9"),this.game.debug.geom(this.topRight,"rgba(255,255,255,0.9")},c.Color={packPixel:function(a,b,d,e){return c.Device.LITTLE_ENDIAN?(e<<24|d<<16|b<<8|a)>>>0:(a<<24|b<<16|d<<8|e)>>>0},unpackPixel:function(a,b,d,e){return(void 0===b||null===b)&&(b=c.Color.createColor()),(void 0===d||null===d)&&(d=!1),(void 0===e||null===e)&&(e=!1),c.Device.LITTLE_ENDIAN?(b.a=(4278190080&a)>>>24,b.b=(16711680&a)>>>16,b.g=(65280&a)>>>8,b.r=255&a):(b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a),b.color=a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a/255+")",d&&c.Color.RGBtoHSL(b.r,b.g,b.b,b),e&&c.Color.RGBtoHSV(b.r,b.g,b.b,b),b},fromRGBA:function(a,b){return b||(b=c.Color.createColor()),b.r=(4278190080&a)>>>24,b.g=(16711680&a)>>>16,b.b=(65280&a)>>>8,b.a=255&a,b.rgba="rgba("+b.r+","+b.g+","+b.b+","+b.a+")",b},toRGBA:function(a,b,c,d){return a<<24|b<<16|c<<8|d},RGBtoHSL:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,1)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d);if(e.h=0,e.s=0,e.l=(g+f)/2,g!==f){var h=g-f;e.s=e.l>.5?h/(2-g-f):h/(g+f),g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6}return e},HSLtoRGB:function(a,b,d,e){if(e?(e.r=d,e.g=d,e.b=d):e=c.Color.createColor(d,d,d),0!==b){var f=.5>d?d*(1+b):d+b-d*b,g=2*d-f;e.r=c.Color.hueToColor(g,f,a+1/3),e.g=c.Color.hueToColor(g,f,a),e.b=c.Color.hueToColor(g,f,a-1/3)}return e.r=Math.floor(255*e.r|0),e.g=Math.floor(255*e.g|0),e.b=Math.floor(255*e.b|0),c.Color.updateColor(e),e},RGBtoHSV:function(a,b,d,e){e||(e=c.Color.createColor(a,b,d,255)),a/=255,b/=255,d/=255;var f=Math.min(a,b,d),g=Math.max(a,b,d),h=g-f;return e.h=0,e.s=0===g?0:h/g,e.v=g,g!==f&&(g===a?e.h=(b-d)/h+(d>b?6:0):g===b?e.h=(d-a)/h+2:g===d&&(e.h=(a-b)/h+4),e.h/=6),e},HSVtoRGB:function(a,b,d,e){void 0===e&&(e=c.Color.createColor(0,0,0,1,a,b,0,d));var f,g,h,i=Math.floor(6*a),j=6*a-i,k=d*(1-b),l=d*(1-j*b),m=d*(1-(1-j)*b);switch(i%6){case 0:f=d,g=m,h=k;break;case 1:f=l,g=d,h=k;break;case 2:f=k,g=d,h=m;break;case 3:f=k,g=l,h=d;break;case 4:f=m,g=k,h=d;break;case 5:f=d,g=k,h=l}return e.r=Math.floor(255*f),e.g=Math.floor(255*g),e.b=Math.floor(255*h),c.Color.updateColor(e),e},hueToColor:function(a,b,c){return 0>c&&(c+=1),c>1&&(c-=1),1/6>c?a+6*(b-a)*c:.5>c?b:2/3>c?a+(b-a)*(2/3-c)*6:a},createColor:function(a,b,d,e,f,g,h,i){var j={r:a||0,g:b||0,b:d||0,a:e||1,h:f||0,s:g||0,l:h||0,v:i||0,color:0,color32:0,rgba:""};return c.Color.updateColor(j)},updateColor:function(a){return a.rgba="rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+a.a.toString()+")",a.color=c.Color.getColor(a.r,a.g,a.b),a.color32=c.Color.getColor32(255*a.a,a.r,a.g,a.b),a},getColor32:function(a,b,c,d){return a<<24|b<<16|c<<8|d},getColor:function(a,b,c){return a<<16|b<<8|c},RGBtoString:function(a,b,d,e,f){return void 0===e&&(e=255),void 0===f&&(f="#"),"#"===f?"#"+((1<<24)+(a<<16)+(b<<8)+d).toString(16).slice(1):"0x"+c.Color.componentToHex(e)+c.Color.componentToHex(a)+c.Color.componentToHex(b)+c.Color.componentToHex(d)},hexToRGB:function(a){var b=c.Color.hexToColor(a);return b?c.Color.getColor32(b.a,b.r,b.g,b.b):void 0},hexToColor:function(a,b){a=a.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i,function(a,b,c,d){return b+b+c+c+d+d});var d=/^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(a);if(d){var e=parseInt(d[1],16),f=parseInt(d[2],16),g=parseInt(d[3],16);b?(b.r=e,b.g=f,b.b=g):b=c.Color.createColor(e,f,g)}return b},webToColor:function(a,b){b||(b=c.Color.createColor());var d=/^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(a);return d&&(b.r=parseInt(d[1],10),b.g=parseInt(d[2],10),b.b=parseInt(d[3],10),b.a=void 0!==d[4]?parseFloat(d[4]):1,c.Color.updateColor(b)),b},valueToColor:function(a,b){if(b||(b=c.Color.createColor()),"string"==typeof a)return 0===a.indexOf("rgb")?c.Color.webToColor(a,b):(b.a=1,c.Color.hexToColor(a,b));if("number"==typeof a){var d=c.Color.getRGB(a);return b.r=d.r,b.g=d.g,b.b=d.b,b.a=d.a/255,b}return b},componentToHex:function(a){var b=a.toString(16);return 1==b.length?"0"+b:b},HSVColorWheel:function(a,b){void 0===a&&(a=1),void 0===b&&(b=1);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSVtoRGB(e/359,a,b));return d},HSLColorWheel:function(a,b){void 0===a&&(a=.5),void 0===b&&(b=.5);for(var d=[],e=0;359>=e;e++)d.push(c.Color.HSLtoRGB(e/359,a,b));return d},interpolateColor:function(a,b,d,e,f){void 0===f&&(f=255);var g=c.Color.getRGB(a),h=c.Color.getRGB(b),i=(h.red-g.red)*e/d+g.red,j=(h.green-g.green)*e/d+g.green,k=(h.blue-g.blue)*e/d+g.blue;return c.Color.getColor32(f,i,j,k)},interpolateColorWithRGB:function(a,b,d,e,f,g){var h=c.Color.getRGB(a),i=(b-h.red)*g/f+h.red,j=(d-h.green)*g/f+h.green,k=(e-h.blue)*g/f+h.blue;return c.Color.getColor(i,j,k)},interpolateRGB:function(a,b,d,e,f,g,h,i){var j=(e-a)*i/h+a,k=(f-b)*i/h+b,l=(g-d)*i/h+d;return c.Color.getColor(j,k,l)},getRandomColor:function(a,b,d){if(void 0===a&&(a=0),void 0===b&&(b=255),void 0===d&&(d=255),b>255||a>b)return c.Color.getColor(255,255,255);var e=a+Math.round(Math.random()*(b-a)),f=a+Math.round(Math.random()*(b-a)),g=a+Math.round(Math.random()*(b-a));return c.Color.getColor32(d,e,f,g)},getRGB:function(a){return a>16777215?{alpha:a>>>24,red:a>>16&255,green:a>>8&255,blue:255&a,a:a>>>24,r:a>>16&255,g:a>>8&255,b:255&a}:{alpha:255,red:a>>16&255,green:a>>8&255,blue:255&a,a:255,r:a>>16&255,g:a>>8&255,b:255&a}},getWebRGB:function(a){if("object"==typeof a)return"rgba("+a.r.toString()+","+a.g.toString()+","+a.b.toString()+","+(a.a/255).toString()+")";var b=c.Color.getRGB(a);return"rgba("+b.r.toString()+","+b.g.toString()+","+b.b.toString()+","+(b.a/255).toString()+")"},getAlpha:function(a){return a>>>24},getAlphaFloat:function(a){return(a>>>24)/255},getRed:function(a){return a>>16&255},getGreen:function(a){return a>>8&255},getBlue:function(a){return 255&a},blendNormal:function(a){return a},blendLighten:function(a,b){return b>a?b:a},blendDarken:function(a,b){return b>a?a:b},blendMultiply:function(a,b){return a*b/255},blendAverage:function(a,b){return(a+b)/2},blendAdd:function(a,b){return Math.min(255,a+b)},blendSubtract:function(a,b){return Math.max(0,a+b-255)},blendDifference:function(a,b){return Math.abs(a-b)},blendNegation:function(a,b){return 255-Math.abs(255-a-b)},blendScreen:function(a,b){return 255-((255-a)*(255-b)>>8)},blendExclusion:function(a,b){return a+b-2*a*b/255},blendOverlay:function(a,b){return 128>b?2*a*b/255:255-2*(255-a)*(255-b)/255},blendSoftLight:function(a,b){return 128>b?2*((a>>1)+64)*(b/255):255-2*(255-((a>>1)+64))*(255-b)/255},blendHardLight:function(a,b){return c.Color.blendOverlay(b,a)},blendColorDodge:function(a,b){return 255===b?b:Math.min(255,(a<<8)/(255-b))},blendColorBurn:function(a,b){return 0===b?b:Math.max(0,255-(255-a<<8)/b)},blendLinearDodge:function(a,b){return c.Color.blendAdd(a,b)},blendLinearBurn:function(a,b){return c.Color.blendSubtract(a,b)},blendLinearLight:function(a,b){return 128>b?c.Color.blendLinearBurn(a,2*b):c.Color.blendLinearDodge(a,2*(b-128))},blendVividLight:function(a,b){return 128>b?c.Color.blendColorBurn(a,2*b):c.Color.blendColorDodge(a,2*(b-128))},blendPinLight:function(a,b){return 128>b?c.Color.blendDarken(a,2*b):c.Color.blendLighten(a,2*(b-128))},blendHardMix:function(a,b){return c.Color.blendVividLight(a,b)<128?0:255},blendReflect:function(a,b){return 255===b?b:Math.min(255,a*a/(255-b))},blendGlow:function(a,b){return c.Color.blendReflect(b,a)},blendPhoenix:function(a,b){return Math.min(a,b)-Math.max(a,b)+255}},c.Physics=function(a,b){b=b||{},this.game=a,this.config=b,this.arcade=null,this.p2=null,this.ninja=null,this.box2d=null,this.chipmunk=null,this.matter=null,this.parseConfig()},c.Physics.ARCADE=0,c.Physics.P2JS=1,c.Physics.NINJA=2,c.Physics.BOX2D=3,c.Physics.CHIPMUNK=4,c.Physics.MATTERJS=5,c.Physics.prototype={parseConfig:function(){this.config.hasOwnProperty("arcade")&&this.config.arcade!==!0||!c.Physics.hasOwnProperty("Arcade")||(this.arcade=new c.Physics.Arcade(this.game)),this.config.hasOwnProperty("ninja")&&this.config.ninja===!0&&c.Physics.hasOwnProperty("Ninja")&&(this.ninja=new c.Physics.Ninja(this.game)),this.config.hasOwnProperty("p2")&&this.config.p2===!0&&c.Physics.hasOwnProperty("P2")&&(this.p2=new c.Physics.P2(this.game,this.config)),this.config.hasOwnProperty("box2d")&&this.config.box2d===!0&&c.Physics.hasOwnProperty("BOX2D")&&(this.box2d=new c.Physics.BOX2D(this.game,this.config)),this.config.hasOwnProperty("matter")&&this.config.matter===!0&&c.Physics.hasOwnProperty("Matter")&&(this.matter=new c.Physics.Matter(this.game,this.config))},startSystem:function(a){a===c.Physics.ARCADE?this.arcade=new c.Physics.Arcade(this.game):a===c.Physics.P2JS?null===this.p2?this.p2=new c.Physics.P2(this.game,this.config):this.p2.reset():a===c.Physics.NINJA?this.ninja=new c.Physics.Ninja(this.game):a===c.Physics.BOX2D?null===this.box2d?this.box2d=new c.Physics.Box2D(this.game,this.config):this.box2d.reset():a===c.Physics.MATTERJS&&(null===this.matter?this.matter=new c.Physics.Matter(this.game,this.config):this.matter.reset())},enable:function(a,b,d){void 0===b&&(b=c.Physics.ARCADE),void 0===d&&(d=!1),b===c.Physics.ARCADE?this.arcade.enable(a):b===c.Physics.P2JS&&this.p2?this.p2.enable(a,d):b===c.Physics.NINJA&&this.ninja?this.ninja.enableAABB(a):b===c.Physics.BOX2D&&this.box2d?this.box2d.enable(a):b===c.Physics.MATTERJS&&this.matter?this.matter.enable(a):console.warn(a.key+" is attempting to enable a physics body using an unknown physics system.")},preUpdate:function(){this.p2&&this.p2.preUpdate(),this.box2d&&this.box2d.preUpdate(),this.matter&&this.matter.preUpdate()},update:function(){this.p2&&this.p2.update(),this.box2d&&this.box2d.update(),this.matter&&this.matter.update()},setBoundsToWorld:function(){this.arcade&&this.arcade.setBoundsToWorld(),this.ninja&&this.ninja.setBoundsToWorld(),this.p2&&this.p2.setBoundsToWorld(),this.box2d&&this.box2d.setBoundsToWorld(),this.matter&&this.matter.setBoundsToWorld()},clear:function(){this.p2&&this.p2.clear(),this.box2d&&this.box2d.clear(),this.matter&&this.matter.clear()},reset:function(){this.p2&&this.p2.reset(),this.box2d&&this.box2d.reset(),this.matter&&this.matter.reset()},destroy:function(){this.p2&&this.p2.destroy(),this.box2d&&this.box2d.destroy(),this.matter&&this.matter.destroy(),this.arcade=null,this.ninja=null,this.p2=null,this.box2d=null,this.matter=null}},c.Physics.prototype.constructor=c.Physics,c.Physics.Arcade=function(a){this.game=a,this.gravity=new c.Point,this.bounds=new c.Rectangle(0,0,a.world.width,a.world.height),this.checkCollision={up:!0,down:!0,left:!0,right:!0},this.maxObjects=10,this.maxLevels=4,this.OVERLAP_BIAS=4,this.forceX=!1,this.sortDirection=c.Physics.Arcade.LEFT_RIGHT,this.skipQuadTree=!0,this.isPaused=!1,this.quadTree=new c.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this._total=0,this.setBoundsToWorld()},c.Physics.Arcade.prototype.constructor=c.Physics.Arcade,c.Physics.Arcade.SORT_NONE=0,c.Physics.Arcade.LEFT_RIGHT=1,c.Physics.Arcade.RIGHT_LEFT=2,c.Physics.Arcade.TOP_BOTTOM=3,c.Physics.Arcade.BOTTOM_TOP=4,c.Physics.Arcade.prototype={setBounds:function(a,b,c,d){this.bounds.setTo(a,b,c,d)},setBoundsToWorld:function(){this.bounds.copyFrom(this.game.world.bounds)},enable:function(a,b){void 0===b&&(b=!0);var d=1;if(Array.isArray(a))for(d=a.length;d--;)a[d]instanceof c.Group?this.enable(a[d].children,b):(this.enableBody(a[d]),b&&a[d].hasOwnProperty("children")&&a[d].children.length>0&&this.enable(a[d],!0));else a instanceof c.Group?this.enable(a.children,b):(this.enableBody(a),b&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,!0))},enableBody:function(a){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.Arcade.Body(a),a.parent&&a.parent instanceof c.Group&&a.parent.addToHash(a))},updateMotion:function(a){var b=this.computeVelocity(0,a,a.angularVelocity,a.angularAcceleration,a.angularDrag,a.maxAngular)-a.angularVelocity;a.angularVelocity+=b,a.rotation+=a.angularVelocity*this.game.time.physicsElapsed,a.velocity.x=this.computeVelocity(1,a,a.velocity.x,a.acceleration.x,a.drag.x,a.maxVelocity.x),a.velocity.y=this.computeVelocity(2,a,a.velocity.y,a.acceleration.y,a.drag.y,a.maxVelocity.y)},computeVelocity:function(a,b,c,d,e,f){return void 0===f&&(f=1e4),1===a&&b.allowGravity?c+=(this.gravity.x+b.gravity.x)*this.game.time.physicsElapsed:2===a&&b.allowGravity&&(c+=(this.gravity.y+b.gravity.y)*this.game.time.physicsElapsed),d?c+=d*this.game.time.physicsElapsed:e&&(e*=this.game.time.physicsElapsed,c-e>0?c-=e:0>c+e?c+=e:c=0),c>f?c=f:-f>c&&(c=-f),c},overlap:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},collide:function(a,b,c,d,e){if(c=c||null,d=d||null,e=e||c,this._total=0,!Array.isArray(a)&&Array.isArray(b))for(var f=0;f0},sortLeftRight:function(a,b){return a.body&&b.body?a.body.x-b.body.x:0},sortRightLeft:function(a,b){return a.body&&b.body?b.body.x-a.body.x:0},sortTopBottom:function(a,b){return a.body&&b.body?a.body.y-b.body.y:0},sortBottomTop:function(a,b){return a.body&&b.body?b.body.y-a.body.y:0},sort:function(a,b){null!==a.physicsSortDirection?b=a.physicsSortDirection:void 0===b&&(b=this.sortDirection),b===c.Physics.Arcade.LEFT_RIGHT?a.hash.sort(this.sortLeftRight):b===c.Physics.Arcade.RIGHT_LEFT?a.hash.sort(this.sortRightLeft):b===c.Physics.Arcade.TOP_BOTTOM?a.hash.sort(this.sortTopBottom):b===c.Physics.Arcade.BOTTOM_TOP&&a.hash.sort(this.sortBottomTop)},collideHandler:function(a,b,d,e,f,g){return void 0===b&&a.physicsType===c.GROUP?(this.sort(a),void this.collideGroupVsSelf(a,d,e,f,g)):void(a&&b&&a.exists&&b.exists&&(this.sortDirection!==c.Physics.Arcade.SORT_NONE&&(a.physicsType===c.GROUP&&this.sort(a),b.physicsType===c.GROUP&&this.sort(b)),a.physicsType===c.SPRITE?b.physicsType===c.SPRITE?this.collideSpriteVsSprite(a,b,d,e,f,g):b.physicsType===c.GROUP?this.collideSpriteVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideSpriteVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.GROUP?b.physicsType===c.SPRITE?this.collideSpriteVsGroup(b,a,d,e,f,g):b.physicsType===c.GROUP?this.collideGroupVsGroup(a,b,d,e,f,g):b.physicsType===c.TILEMAPLAYER&&this.collideGroupVsTilemapLayer(a,b,d,e,f,g):a.physicsType===c.TILEMAPLAYER&&(b.physicsType===c.SPRITE?this.collideSpriteVsTilemapLayer(b,a,d,e,f,g):b.physicsType===c.GROUP&&this.collideGroupVsTilemapLayer(b,a,d,e,f,g))))},collideSpriteVsSprite:function(a,b,c,d,e,f){ +return a.body&&b.body?(this.separate(a.body,b.body,d,e,f)&&(c&&c.call(e,a,b),this._total++),!0):!1},collideSpriteVsGroup:function(a,b,d,e,f,g){if(0!==b.length&&a.body){var h;if(this.skipQuadTree||a.body.skipQuadTree){for(var i=0;ih.right)break;if(h.x>a.body.right)continue}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(a.body.bottomh.bottom)break;if(h.y>a.body.bottom)continue}this.collideSpriteVsSprite(a,b.hash[i],d,e,f,g)}}else{this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(b);for(var j=this.quadTree.retrieve(a),i=0;ij.body.right)continue;if(j.body.x>h.body.right)break}else if(this.sortDirection===c.Physics.Arcade.TOP_BOTTOM){if(h.body.bottomj.body.bottom)continue;if(j.body.y>h.body.bottom)break}this.collideSpriteVsSprite(h,j,b,d,e,f)}},collideGroupVsGroup:function(a,b,d,e,f,g){if(0!==a.length&&0!==b.length)for(var h=0;h=b.right?!1:a.position.y>=b.bottom?!1:!0},getOverlapX:function(a,b){var c=0,d=a.deltaAbsX()+b.deltaAbsX()+this.OVERLAP_BIAS;return 0===a.deltaX()&&0===b.deltaX()?(a.embedded=!0,b.embedded=!0):a.deltaX()>b.deltaX()?(c=a.right-b.x,c>d||a.checkCollision.right===!1||b.checkCollision.left===!1?c=0:(a.touching.none=!1,a.touching.right=!0,b.touching.none=!1,b.touching.left=!0)):a.deltaX()d||a.checkCollision.left===!1||b.checkCollision.right===!1?c=0:(a.touching.none=!1,a.touching.left=!0,b.touching.none=!1,b.touching.right=!0)),a.overlapX=c,b.overlapX=c,c},getOverlapY:function(a,b){var c=0,d=a.deltaAbsY()+b.deltaAbsY()+this.OVERLAP_BIAS;return 0===a.deltaY()&&0===b.deltaY()?(a.embedded=!0,b.embedded=!0):a.deltaY()>b.deltaY()?(c=a.bottom-b.y,c>d||a.checkCollision.down===!1||b.checkCollision.up===!1?c=0:(a.touching.none=!1,a.touching.down=!0,b.touching.none=!1,b.touching.up=!0)):a.deltaY()d||a.checkCollision.up===!1||b.checkCollision.down===!1?c=0:(a.touching.none=!1,a.touching.up=!0,b.touching.none=!1,b.touching.down=!0)),a.overlapY=c,b.overlapY=c,c},separateX:function(a,b,c){var d=this.getOverlapX(a,b);if(c||0===d||a.immovable&&b.immovable||a.customSeparateX||b.customSeparateX)return 0!==d;var e=a.velocity.x,f=b.velocity.x;if(a.immovable||b.immovable)a.immovable?(b.x+=d,b.velocity.x=e-f*b.bounce.x,a.moves&&(b.y+=(a.y-a.prev.y)*a.friction.y)):(a.x-=d,a.velocity.x=f-e*a.bounce.x,b.moves&&(a.y+=(b.y-b.prev.y)*b.friction.y));else{d*=.5,a.x-=d,b.x+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.x=i+g*a.bounce.x,b.velocity.x=i+h*b.bounce.x}return!0},separateY:function(a,b,c){var d=this.getOverlapY(a,b);if(c||0===d||a.immovable&&b.immovable||a.customSeparateY||b.customSeparateY)return 0!==d;var e=a.velocity.y,f=b.velocity.y;if(a.immovable||b.immovable)a.immovable?(b.y+=d,b.velocity.y=e-f*b.bounce.y,a.moves&&(b.x+=(a.x-a.prev.x)*a.friction.x)):(a.y-=d,a.velocity.y=f-e*a.bounce.y,b.moves&&(a.x+=(b.x-b.prev.x)*b.friction.x));else{d*=.5,a.y-=d,b.y+=d;var g=Math.sqrt(f*f*b.mass/a.mass)*(f>0?1:-1),h=Math.sqrt(e*e*a.mass/b.mass)*(e>0?1:-1),i=.5*(g+h);g-=i,h-=i,a.velocity.y=i+g*a.bounce.y,b.velocity.y=i+h*b.bounce.y}return!0},getObjectsUnderPointer:function(a,b,c,d){return 0!==b.length&&a.exists?this.getObjectsAtLocation(a.x,a.y,b,c,d,a):void 0},getObjectsAtLocation:function(a,b,d,e,f,g){this.quadTree.clear(),this.quadTree.reset(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels),this.quadTree.populate(d);for(var h=new c.Rectangle(a,b,1,1),i=[],j=this.quadTree.retrieve(h),k=0;k0&&(c=this.distanceBetween(a,b)/(d/1e3)),a.body.velocity.x=Math.cos(e)*c,a.body.velocity.y=Math.sin(e)*c,e},moveToPointer:function(a,b,c,d){void 0===b&&(b=60),c=c||this.game.input.activePointer,void 0===d&&(d=0);var e=this.angleToPointer(a,c);return d>0&&(b=this.distanceToPointer(a,c)/(d/1e3)),a.body.velocity.x=Math.cos(e)*b,a.body.velocity.y=Math.sin(e)*b,e},moveToXY:function(a,b,c,d,e){void 0===d&&(d=60),void 0===e&&(e=0);var f=Math.atan2(c-a.y,b-a.x);return e>0&&(d=this.distanceToXY(a,b,c)/(e/1e3)),a.body.velocity.x=Math.cos(f)*d,a.body.velocity.y=Math.sin(f)*d,f},velocityFromAngle:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(this.game.math.degToRad(a))*b,Math.sin(this.game.math.degToRad(a))*b)},velocityFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerationFromRotation:function(a,b,d){return void 0===b&&(b=60),d=d||new c.Point,d.setTo(Math.cos(a)*b,Math.sin(a)*b)},accelerateToObject:function(a,b,c,d,e){void 0===c&&(c=60),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleBetween(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToPointer:function(a,b,c,d,e){void 0===c&&(c=60),void 0===b&&(b=this.game.input.activePointer),void 0===d&&(d=1e3),void 0===e&&(e=1e3);var f=this.angleToPointer(a,b);return a.body.acceleration.setTo(Math.cos(f)*c,Math.sin(f)*c),a.body.maxVelocity.setTo(d,e),f},accelerateToXY:function(a,b,c,d,e,f){void 0===d&&(d=60),void 0===e&&(e=1e3),void 0===f&&(f=1e3);var g=this.angleToXY(a,b,c);return a.body.acceleration.setTo(Math.cos(g)*d,Math.sin(g)*d),a.body.maxVelocity.setTo(e,f),g},distanceBetween:function(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)},distanceToXY:function(a,b,c){var d=a.x-b,e=a.y-c;return Math.sqrt(d*d+e*e)},distanceToPointer:function(a,b){b=b||this.game.input.activePointer;var c=a.x-b.worldX,d=a.y-b.worldY;return Math.sqrt(c*c+d*d)},angleBetween:function(a,b){var c=b.x-a.x,d=b.y-a.y;return Math.atan2(d,c)},angleToXY:function(a,b,c){var d=b-a.x,e=c-a.y;return Math.atan2(e,d)},angleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.x,d=b.worldY-a.y;return Math.atan2(d,c)},worldAngleToPointer:function(a,b){b=b||this.game.input.activePointer;var c=b.worldX-a.world.x,d=b.worldY-a.world.y;return Math.atan2(d,c)}},c.Physics.Arcade.Body=function(a){this.sprite=a,this.game=a.game,this.type=c.Physics.ARCADE,this.enable=!0,this.offset=new c.Point,this.position=new c.Point(a.x,a.y),this.prev=new c.Point(this.position.x,this.position.y),this.allowRotation=!0,this.rotation=a.rotation,this.preRotation=a.rotation,this.width=a.width,this.height=a.height,this.sourceWidth=a.width,this.sourceHeight=a.height,a.texture&&(this.sourceWidth=a.texture.frame.width,this.sourceHeight=a.texture.frame.height),this.halfWidth=Math.abs(a.width/2),this.halfHeight=Math.abs(a.height/2),this.center=new c.Point(a.x+this.halfWidth,a.y+this.halfHeight),this.velocity=new c.Point,this.newVelocity=new c.Point(0,0),this.deltaMax=new c.Point(0,0),this.acceleration=new c.Point,this.drag=new c.Point,this.allowGravity=!0,this.gravity=new c.Point(0,0),this.bounce=new c.Point,this.maxVelocity=new c.Point(1e4,1e4),this.friction=new c.Point(1,0),this.angularVelocity=0,this.angularAcceleration=0,this.angularDrag=0,this.maxAngular=1e3,this.mass=1,this.angle=0,this.speed=0,this.facing=c.NONE,this.immovable=!1,this.moves=!0,this.customSeparateX=!1,this.customSeparateY=!1,this.overlapX=0,this.overlapY=0,this.embedded=!1,this.collideWorldBounds=!1,this.checkCollision={none:!1,any:!0,up:!0,down:!0,left:!0,right:!0},this.touching={none:!0,up:!1,down:!1,left:!1,right:!1},this.wasTouching={none:!0,up:!1,down:!1,left:!1,right:!1},this.blocked={up:!1,down:!1,left:!1,right:!1},this.tilePadding=new c.Point,this.dirty=!1,this.skipQuadTree=!1,this.syncBounds=!1,this._reset=!0,this._sx=a.scale.x,this._sy=a.scale.y,this._dx=0,this._dy=0},c.Physics.Arcade.Body.prototype={updateBounds:function(){if(this.syncBounds){var a=this.sprite.getBounds();a.ceilAll(),(a.width!==this.width||a.height!==this.height)&&(this.width=a.width,this.height=a.height,this._reset=!0)}else{var b=Math.abs(this.sprite.scale.x),c=Math.abs(this.sprite.scale.y);(b!==this._sx||c!==this._sy)&&(this.width=this.sourceWidth*b,this.height=this.sourceHeight*c,this._sx=b,this._sy=c,this._reset=!0)}this._reset&&(this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},preUpdate:function(){this.enable&&!this.game.physics.arcade.isPaused&&(this.dirty=!0,this.wasTouching.none=this.touching.none,this.wasTouching.up=this.touching.up,this.wasTouching.down=this.touching.down,this.wasTouching.left=this.touching.left,this.wasTouching.right=this.touching.right,this.touching.none=!0,this.touching.up=!1,this.touching.down=!1,this.touching.left=!1,this.touching.right=!1,this.blocked.up=!1,this.blocked.down=!1,this.blocked.left=!1,this.blocked.right=!1,this.embedded=!1,this.updateBounds(),this.position.x=this.sprite.world.x-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=this.sprite.world.y-this.sprite.anchor.y*this.height+this.offset.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,(this._reset||this.sprite.fresh)&&(this.prev.x=this.position.x,this.prev.y=this.position.y),this.moves&&(this.game.physics.arcade.updateMotion(this),this.newVelocity.set(this.velocity.x*this.game.time.physicsElapsed,this.velocity.y*this.game.time.physicsElapsed),this.position.x+=this.newVelocity.x,this.position.y+=this.newVelocity.y,(this.position.x!==this.prev.x||this.position.y!==this.prev.y)&&(this.angle=Math.atan2(this.velocity.y,this.velocity.x)),this.speed=Math.sqrt(this.velocity.x*this.velocity.x+this.velocity.y*this.velocity.y),this.collideWorldBounds&&this.checkWorldBounds()),this._dx=this.deltaX(),this._dy=this.deltaY(),this._reset=!1)},postUpdate:function(){this.enable&&this.dirty&&(this.dirty=!1,this.deltaX()<0?this.facing=c.LEFT:this.deltaX()>0&&(this.facing=c.RIGHT),this.deltaY()<0?this.facing=c.UP:this.deltaY()>0&&(this.facing=c.DOWN),this.moves&&(this._dx=this.deltaX(),this._dy=this.deltaY(),0!==this.deltaMax.x&&0!==this._dx&&(this._dx<0&&this._dx<-this.deltaMax.x?this._dx=-this.deltaMax.x:this._dx>0&&this._dx>this.deltaMax.x&&(this._dx=this.deltaMax.x)),0!==this.deltaMax.y&&0!==this._dy&&(this._dy<0&&this._dy<-this.deltaMax.y?this._dy=-this.deltaMax.y:this._dy>0&&this._dy>this.deltaMax.y&&(this._dy=this.deltaMax.y)),this.sprite.position.x+=this._dx,this.sprite.position.y+=this._dy,this._reset=!0),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight),this.allowRotation&&(this.sprite.angle+=this.deltaZ()),this.prev.x=this.position.x,this.prev.y=this.position.y)},checkWorldBounds:function(){var a=this.position,b=this.game.physics.arcade.bounds,c=this.game.physics.arcade.checkCollision;a.xb.right&&c.right&&(a.x=b.right-this.width,this.velocity.x*=-this.bounce.x,this.blocked.right=!0),a.yb.bottom&&c.down&&(a.y=b.bottom-this.height,this.velocity.y*=-this.bounce.y,this.blocked.down=!0)},setSize:function(a,b,c,d){this.isCircle||(void 0===c&&(c=this.offset.x),void 0===d&&(d=this.offset.y),this.sourceWidth=a,this.sourceHeight=b,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(c,d),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight))},setCircle:function(a,b,c){void 0===b&&(b=this.offset.x),void 0===c&&(c=this.offset.y),a>0?(this.isCircle=!0,this.radius=a,this.sourceWidth=2*a,this.sourceHeight=2*a,this.width=this.sourceWidth*this._sx,this.height=this.sourceHeight*this._sy,this.halfWidth=Math.floor(this.width/2),this.halfHeight=Math.floor(this.height/2),this.offset.setTo(b,c),this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)):this.isCircle=!1},reset:function(a,b){this.velocity.set(0),this.acceleration.set(0),this.speed=0,this.angularVelocity=0,this.angularAcceleration=0,this.position.x=a-this.sprite.anchor.x*this.width+this.offset.x,this.position.y=b-this.sprite.anchor.y*this.height+this.offset.y,this.prev.x=this.position.x,this.prev.y=this.position.y,this.rotation=this.sprite.angle,this.preRotation=this.rotation,this._sx=this.sprite.scale.x,this._sy=this.sprite.scale.y,this.center.setTo(this.position.x+this.halfWidth,this.position.y+this.halfHeight)},hitTest:function(a,b){return this.isCircle?c.Circle.contains(this,a,b):c.Rectangle.contains(this,a,b)},onFloor:function(){return this.blocked.down},onCeiling:function(){return this.blocked.up},onWall:function(){return this.blocked.left||this.blocked.right},deltaAbsX:function(){return this.deltaX()>0?this.deltaX():-this.deltaX()},deltaAbsY:function(){return this.deltaY()>0?this.deltaY():-this.deltaY()},deltaX:function(){return this.position.x-this.prev.x},deltaY:function(){return this.position.y-this.prev.y},deltaZ:function(){return this.rotation-this.preRotation},destroy:function(){this.sprite.parent&&this.sprite.parent instanceof c.Group&&this.sprite.parent.removeFromHash(this.sprite),this.sprite.body=null,this.sprite=null}},Object.defineProperty(c.Physics.Arcade.Body.prototype,"left",{get:function(){return this.position.x}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"right",{get:function(){return this.position.x+this.width}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"top",{get:function(){return this.position.y}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"bottom",{get:function(){return this.position.y+this.height}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"x",{get:function(){return this.position.x},set:function(a){this.position.x=a}}),Object.defineProperty(c.Physics.Arcade.Body.prototype,"y",{get:function(){return this.position.y},set:function(a){this.position.y=a}}),c.Physics.Arcade.Body.render=function(a,b,c,d){void 0===d&&(d=!0),c=c||"rgba(0,255,0,0.4)",d?(a.fillStyle=c,a.fillRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height)):(a.strokeStyle=c,a.strokeRect(b.position.x-b.game.camera.x,b.position.y-b.game.camera.y,b.width,b.height))},c.Physics.Arcade.Body.renderBodyInfo=function(a,b){a.line("x: "+b.x.toFixed(2),"y: "+b.y.toFixed(2),"width: "+b.width,"height: "+b.height),a.line("velocity x: "+b.velocity.x.toFixed(2),"y: "+b.velocity.y.toFixed(2),"deltaX: "+b._dx.toFixed(2),"deltaY: "+b._dy.toFixed(2)),a.line("acceleration x: "+b.acceleration.x.toFixed(2),"y: "+b.acceleration.y.toFixed(2),"speed: "+b.speed.toFixed(2),"angle: "+b.angle.toFixed(2)),a.line("gravity x: "+b.gravity.x,"y: "+b.gravity.y,"bounce x: "+b.bounce.x.toFixed(2),"y: "+b.bounce.y.toFixed(2)),a.line("touching left: "+b.touching.left,"right: "+b.touching.right,"up: "+b.touching.up,"down: "+b.touching.down),a.line("blocked left: "+b.blocked.left,"right: "+b.blocked.right,"up: "+b.blocked.up,"down: "+b.blocked.down)},c.Physics.Arcade.Body.prototype.constructor=c.Physics.Arcade.Body,c.Physics.Arcade.TilemapCollision=function(){},c.Physics.Arcade.TilemapCollision.prototype={TILE_BIAS:16,collideSpriteVsTilemapLayer:function(a,b,c,d,e,f){if(a.body){var g=b.getTiles(a.body.position.x-a.body.tilePadding.x,a.body.position.y-a.body.tilePadding.y,a.body.width+a.body.tilePadding.x,a.body.height+a.body.tilePadding.y,!1,!1);if(0!==g.length)for(var h=0;hb.deltaAbsY()?g=-1:b.deltaAbsX()g){if((c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c),0!==e&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c))}else{if((c.faceTop||c.faceBottom)&&(f=this.tileCheckY(b,c),0!==f&&!c.intersects(b.position.x,b.position.y,b.right,b.bottom)))return!0;(c.faceLeft||c.faceRight)&&(e=this.tileCheckX(b,c))}return 0!==e||0!==f},tileCheckX:function(a,b){var c=0;return a.deltaX()<0&&!a.blocked.left&&b.collideRight&&a.checkCollision.left?b.faceRight&&a.x0&&!a.blocked.right&&b.collideLeft&&a.checkCollision.right&&b.faceLeft&&a.right>b.left&&(c=a.right-b.left,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateX?a.overlapX=c:this.processTileSeparationX(a,c)),c},tileCheckY:function(a,b){var c=0;return a.deltaY()<0&&!a.blocked.up&&b.collideDown&&a.checkCollision.up?b.faceBottom&&a.y0&&!a.blocked.down&&b.collideUp&&a.checkCollision.down&&b.faceTop&&a.bottom>b.top&&(c=a.bottom-b.top,c>this.TILE_BIAS&&(c=0)),0!==c&&(a.customSeparateY?a.overlapY=c:this.processTileSeparationY(a,c)),c},processTileSeparationX:function(a,b){0>b?a.blocked.left=!0:b>0&&(a.blocked.right=!0),a.position.x-=b,0===a.bounce.x?a.velocity.x=0:a.velocity.x=-a.velocity.x*a.bounce.x},processTileSeparationY:function(a,b){0>b?a.blocked.up=!0:b>0&&(a.blocked.down=!0),a.position.y-=b,0===a.bounce.y?a.velocity.y=0:a.velocity.y=-a.velocity.y*a.bounce.y}},c.Utils.mixinPrototype(c.Physics.Arcade.prototype,c.Physics.Arcade.TilemapCollision.prototype),p2.Body.prototype.parent=null,p2.Spring.prototype.parent=null,c.Physics.P2=function(a,b){this.game=a,void 0===b?b={gravity:[0,0],broadphase:new p2.SAPBroadphase}:(b.hasOwnProperty("gravity")||(b.gravity=[0,0]),b.hasOwnProperty("broadphase")||(b.broadphase=new p2.SAPBroadphase)),this.config=b,this.world=new p2.World(this.config),this.frameRate=1/60,this.useElapsedTime=!1,this.paused=!1,this.materials=[],this.gravity=new c.Physics.P2.InversePointProxy(this,this.world.gravity),this.walls={left:null,right:null,top:null,bottom:null},this.onBodyAdded=new c.Signal,this.onBodyRemoved=new c.Signal,this.onSpringAdded=new c.Signal,this.onSpringRemoved=new c.Signal,this.onConstraintAdded=new c.Signal,this.onConstraintRemoved=new c.Signal,this.onContactMaterialAdded=new c.Signal,this.onContactMaterialRemoved=new c.Signal,this.postBroadphaseCallback=null,this.callbackContext=null,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,b.hasOwnProperty("mpx")&&b.hasOwnProperty("pxm")&&b.hasOwnProperty("mpxi")&&b.hasOwnProperty("pxmi")&&(this.mpx=b.mpx,this.mpxi=b.mpxi,this.pxm=b.pxm,this.pxmi=b.pxmi),this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.collisionGroups=[],this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this.boundsCollidesWith=[],this._toRemove=[],this._collisionGroupID=2,this._boundsLeft=!0,this._boundsRight=!0,this._boundsTop=!0,this._boundsBottom=!0,this._boundsOwnGroup=!1,this.setBoundsToWorld(!0,!0,!0,!0,!1)},c.Physics.P2.prototype={removeBodyNextStep:function(a){this._toRemove.push(a)},preUpdate:function(){for(var a=this._toRemove.length;a--;)this.removeBody(this._toRemove[a]);this._toRemove.length=0},enable:function(a,b,d){void 0===b&&(b=!1),void 0===d&&(d=!0);var e=1;if(Array.isArray(a))for(e=a.length;e--;)a[e]instanceof c.Group?this.enable(a[e].children,b,d):(this.enableBody(a[e],b),d&&a[e].hasOwnProperty("children")&&a[e].children.length>0&&this.enable(a[e],b,!0));else a instanceof c.Group?this.enable(a.children,b,d):(this.enableBody(a,b),d&&a.hasOwnProperty("children")&&a.children.length>0&&this.enable(a.children,b,!0))},enableBody:function(a,b){a.hasOwnProperty("body")&&null===a.body&&(a.body=new c.Physics.P2.Body(this.game,a,a.x,a.y,1),a.body.debug=b,"undefined"!=typeof a.anchor&&a.anchor.set(.5))},setImpactEvents:function(a){a?this.world.on("impact",this.impactHandler,this):this.world.off("impact",this.impactHandler,this)},setPostBroadphaseCallback:function(a,b){this.postBroadphaseCallback=a,this.callbackContext=b,null!==a?this.world.on("postBroadphase",this.postBroadphaseHandler,this):this.world.off("postBroadphase",this.postBroadphaseHandler,this)},postBroadphaseHandler:function(a){if(this.postBroadphaseCallback&&0!==a.pairs.length)for(var b=a.pairs.length-2;b>=0;b-=2)a.pairs[b].parent&&a.pairs[b+1].parent&&!this.postBroadphaseCallback.call(this.callbackContext,a.pairs[b].parent,a.pairs[b+1].parent)&&a.pairs.splice(b,2)},impactHandler:function(a){if(a.bodyA.parent&&a.bodyB.parent){var b=a.bodyA.parent,c=a.bodyB.parent;b._bodyCallbacks[a.bodyB.id]&&b._bodyCallbacks[a.bodyB.id].call(b._bodyCallbackContext[a.bodyB.id],b,c,a.shapeA,a.shapeB),c._bodyCallbacks[a.bodyA.id]&&c._bodyCallbacks[a.bodyA.id].call(c._bodyCallbackContext[a.bodyA.id],c,b,a.shapeB,a.shapeA),b._groupCallbacks[a.shapeB.collisionGroup]&&b._groupCallbacks[a.shapeB.collisionGroup].call(b._groupCallbackContext[a.shapeB.collisionGroup],b,c,a.shapeA,a.shapeB),c._groupCallbacks[a.shapeA.collisionGroup]&&c._groupCallbacks[a.shapeA.collisionGroup].call(c._groupCallbackContext[a.shapeA.collisionGroup],c,b,a.shapeB,a.shapeA)}},beginContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onBeginContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyA.parent&&a.bodyA.parent.onBeginContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB,a.contactEquations),a.bodyB.parent&&a.bodyB.parent.onBeginContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA,a.contactEquations))},endContactHandler:function(a){a.bodyA&&a.bodyB&&(this.onEndContact.dispatch(a.bodyA,a.bodyB,a.shapeA,a.shapeB),a.bodyA.parent&&a.bodyA.parent.onEndContact.dispatch(a.bodyB.parent,a.bodyB,a.shapeA,a.shapeB),a.bodyB.parent&&a.bodyB.parent.onEndContact.dispatch(a.bodyA.parent,a.bodyA,a.shapeB,a.shapeA))},setBoundsToWorld:function(a,b,c,d,e){this.setBounds(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,a,b,c,d,e)},setWorldMaterial:function(a,b,c,d,e){void 0===b&&(b=!0),void 0===c&&(c=!0),void 0===d&&(d=!0),void 0===e&&(e=!0),b&&this.walls.left&&(this.walls.left.shapes[0].material=a),c&&this.walls.right&&(this.walls.right.shapes[0].material=a),d&&this.walls.top&&(this.walls.top.shapes[0].material=a),e&&this.walls.bottom&&(this.walls.bottom.shapes[0].material=a)},updateBoundsCollisionGroup:function(a){void 0===a&&(a=!0);var b=a?this.boundsCollisionGroup.mask:this.everythingCollisionGroup.mask;this.walls.left&&(this.walls.left.shapes[0].collisionGroup=b),this.walls.right&&(this.walls.right.shapes[0].collisionGroup=b),this.walls.top&&(this.walls.top.shapes[0].collisionGroup=b),this.walls.bottom&&(this.walls.bottom.shapes[0].collisionGroup=b),this._boundsOwnGroup=a},setBounds:function(a,b,c,d,e,f,g,h,i){void 0===e&&(e=this._boundsLeft),void 0===f&&(f=this._boundsRight),void 0===g&&(g=this._boundsTop),void 0===h&&(h=this._boundsBottom),void 0===i&&(i=this._boundsOwnGroup),this.setupWall(e,"left",a,b,1.5707963267948966,i),this.setupWall(f,"right",a+c,b,-1.5707963267948966,i),this.setupWall(g,"top",a,b,-3.141592653589793,i),this.setupWall(h,"bottom",a,b+d,0,i),this._boundsLeft=e,this._boundsRight=f,this._boundsTop=g,this._boundsBottom=h,this._boundsOwnGroup=i},setupWall:function(a,b,c,d,e,f){a?this.walls[b]?this.walls[b].position=[this.pxmi(c),this.pxmi(d)]:(this.walls[b]=new p2.Body({mass:0,position:[this.pxmi(c),this.pxmi(d)],angle:e}),this.walls[b].addShape(new p2.Plane),f&&(this.walls[b].shapes[0].collisionGroup=this.boundsCollisionGroup.mask),this.world.addBody(this.walls[b])):this.walls[b]&&(this.world.removeBody(this.walls[b]),this.walls[b]=null)},pause:function(){this.paused=!0},resume:function(){this.paused=!1},update:function(){this.paused||(this.useElapsedTime?this.world.step(this.game.time.physicsElapsed):this.world.step(this.frameRate))},reset:function(){this.world.on("beginContact",this.beginContactHandler,this),this.world.on("endContact",this.endContactHandler,this),this.nothingCollisionGroup=new c.Physics.P2.CollisionGroup(1),this.boundsCollisionGroup=new c.Physics.P2.CollisionGroup(2),this.everythingCollisionGroup=new c.Physics.P2.CollisionGroup(2147483648),this._collisionGroupID=2,this.setBoundsToWorld(!0,!0,!0,!0,!1)},clear:function(){this.world.time=0,this.world.fixedStepTime=0,this.world.solver&&this.world.solver.equations.length&&this.world.solver.removeAllEquations();for(var a=this.world.constraints,b=a.length-1;b>=0;b--)this.world.removeConstraint(a[b]);for(var c=this.world.bodies,b=c.length-1;b>=0;b--)this.world.removeBody(c[b]);for(var d=this.world.springs,b=d.length-1;b>=0;b--)this.world.removeSpring(d[b]);for(var e=this.world.contactMaterials,b=e.length-1;b>=0;b--)this.world.removeContactMaterial(e[b]);this.world.off("beginContact",this.beginContactHandler,this),this.world.off("endContact",this.endContactHandler,this),this.postBroadphaseCallback=null,this.callbackContext=null,this.impactCallback=null,this.collisionGroups=[],this._toRemove=[],this.boundsCollidesWith=[]},destroy:function(){this.clear(),this.game=null},addBody:function(a){return a.data.world?!1:(this.world.addBody(a.data),this.onBodyAdded.dispatch(a),!0)},removeBody:function(a){return a.data.world==this.world&&(this.world.removeBody(a.data),this.onBodyRemoved.dispatch(a)),a},addSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.addSpring(a.data):this.world.addSpring(a),this.onSpringAdded.dispatch(a),a},removeSpring:function(a){return a instanceof c.Physics.P2.Spring||a instanceof c.Physics.P2.RotationalSpring?this.world.removeSpring(a.data):this.world.removeSpring(a),this.onSpringRemoved.dispatch(a),a},createDistanceConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.DistanceConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createGearConstraint:function(a,b,d,e){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.GearConstraint(this,a,b,d,e)):void console.warn("Cannot create Constraint, invalid body objects given")},createRevoluteConstraint:function(a,b,d,e,f,g){return a=this.getBody(a),d=this.getBody(d),a&&d?this.addConstraint(new c.Physics.P2.RevoluteConstraint(this,a,b,d,e,f,g)):void console.warn("Cannot create Constraint, invalid body objects given")},createLockConstraint:function(a,b,d,e,f){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.LockConstraint(this,a,b,d,e,f)):void console.warn("Cannot create Constraint, invalid body objects given")},createPrismaticConstraint:function(a,b,d,e,f,g,h){return a=this.getBody(a),b=this.getBody(b),a&&b?this.addConstraint(new c.Physics.P2.PrismaticConstraint(this,a,b,d,e,f,g,h)):void console.warn("Cannot create Constraint, invalid body objects given")},addConstraint:function(a){return this.world.addConstraint(a),this.onConstraintAdded.dispatch(a),a},removeConstraint:function(a){return this.world.removeConstraint(a),this.onConstraintRemoved.dispatch(a),a},addContactMaterial:function(a){return this.world.addContactMaterial(a),this.onContactMaterialAdded.dispatch(a),a},removeContactMaterial:function(a){return this.world.removeContactMaterial(a),this.onContactMaterialRemoved.dispatch(a),a},getContactMaterial:function(a,b){return this.world.getContactMaterial(a,b)},setMaterial:function(a,b){for(var c=b.length;c--;)b[c].setMaterial(a)},createMaterial:function(a,b){a=a||"";var d=new c.Physics.P2.Material(a);return this.materials.push(d),"undefined"!=typeof b&&b.setMaterial(d),d},createContactMaterial:function(a,b,d){void 0===a&&(a=this.createMaterial()),void 0===b&&(b=this.createMaterial());var e=new c.Physics.P2.ContactMaterial(a,b,d);return this.addContactMaterial(e)},getBodies:function(){for(var a=[],b=this.world.bodies.length;b--;)a.push(this.world.bodies[b].parent);return a},getBody:function(a){return a instanceof p2.Body?a:a instanceof c.Physics.P2.Body?a.data:a.body&&a.body.type===c.Physics.P2JS?a.body.data:null},getSprings:function(){for(var a=[],b=this.world.springs.length;b--;)a.push(this.world.springs[b].parent);return a},getConstraints:function(){for(var a=[],b=this.world.constraints.length;b--;)a.push(this.world.constraints[b]);return a},hitTest:function(a,b,d,e){void 0===b&&(b=this.world.bodies),void 0===d&&(d=5),void 0===e&&(e=!1);for(var f=[this.pxmi(a.x),this.pxmi(a.y)],g=[],h=b.length;h--;)b[h]instanceof c.Physics.P2.Body&&(!e||b[h].data.type!==p2.Body.STATIC)?g.push(b[h].data):b[h]instanceof p2.Body&&b[h].parent&&(!e||b[h].type!==p2.Body.STATIC)?g.push(b[h]):b[h]instanceof c.Sprite&&b[h].hasOwnProperty("body")&&(!e||b[h].body.data.type!==p2.Body.STATIC)&&g.push(b[h].body.data);return this.world.hitTest(f,g,d)},toJSON:function(){return this.world.toJSON()},createCollisionGroup:function(a){var b=Math.pow(2,this._collisionGroupID);this.walls.left&&(this.walls.left.shapes[0].collisionMask=this.walls.left.shapes[0].collisionMask|b),this.walls.right&&(this.walls.right.shapes[0].collisionMask=this.walls.right.shapes[0].collisionMask|b),this.walls.top&&(this.walls.top.shapes[0].collisionMask=this.walls.top.shapes[0].collisionMask|b), +this.walls.bottom&&(this.walls.bottom.shapes[0].collisionMask=this.walls.bottom.shapes[0].collisionMask|b),this._collisionGroupID++;var d=new c.Physics.P2.CollisionGroup(b);return this.collisionGroups.push(d),a&&this.setCollisionGroup(a,d),d},setCollisionGroup:function(a,b){if(a instanceof c.Group)for(var d=0;de;e++){var g=a.collision[b][e],h=this.createBody(g.x,g.y,0,c,{},g.polyline);h&&d.push(h)}return d},clearTilemapLayerBodies:function(a,b){b=a.getLayer(b);for(var c=a.layers[b].bodies.length;c--;)a.layers[b].bodies[c].destroy();a.layers[b].bodies.length=0},convertTilemap:function(a,b,c,d){b=a.getLayer(b),void 0===c&&(c=!0),void 0===d&&(d=!0),this.clearTilemapLayerBodies(a,b);for(var e=0,f=0,g=0,h=0,i=a.layers[b].height;i>h;h++){e=0;for(var j=0,k=a.layers[b].width;k>j;j++){var l=a.layers[b].data[h][j];if(l&&l.index>-1&&l.collides)if(d){var m=a.getTileRight(b,j,h);if(0===e&&(f=l.x*l.width,g=l.y*l.height,e=l.width),m&&m.collides)e+=l.width;else{var n=this.createBody(f,g,0,!1);n.addRectangle(e,l.height,e/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n),e=0}}else{var n=this.createBody(l.x*l.width,l.y*l.height,0,!1);n.addRectangle(l.width,l.height,l.width/2,l.height/2,0),c&&this.addBody(n),a.layers[b].bodies.push(n)}}}return a.layers[b].bodies},mpx:function(a){return a*=20},pxm:function(a){return.05*a},mpxi:function(a){return a*=-20},pxmi:function(a){return a*-.05}},Object.defineProperty(c.Physics.P2.prototype,"friction",{get:function(){return this.world.defaultContactMaterial.friction},set:function(a){this.world.defaultContactMaterial.friction=a}}),Object.defineProperty(c.Physics.P2.prototype,"restitution",{get:function(){return this.world.defaultContactMaterial.restitution},set:function(a){this.world.defaultContactMaterial.restitution=a}}),Object.defineProperty(c.Physics.P2.prototype,"contactMaterial",{get:function(){return this.world.defaultContactMaterial},set:function(a){this.world.defaultContactMaterial=a}}),Object.defineProperty(c.Physics.P2.prototype,"applySpringForces",{get:function(){return this.world.applySpringForces},set:function(a){this.world.applySpringForces=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyDamping",{get:function(){return this.world.applyDamping},set:function(a){this.world.applyDamping=a}}),Object.defineProperty(c.Physics.P2.prototype,"applyGravity",{get:function(){return this.world.applyGravity},set:function(a){this.world.applyGravity=a}}),Object.defineProperty(c.Physics.P2.prototype,"solveConstraints",{get:function(){return this.world.solveConstraints},set:function(a){this.world.solveConstraints=a}}),Object.defineProperty(c.Physics.P2.prototype,"time",{get:function(){return this.world.time}}),Object.defineProperty(c.Physics.P2.prototype,"emitImpactEvent",{get:function(){return this.world.emitImpactEvent},set:function(a){this.world.emitImpactEvent=a}}),Object.defineProperty(c.Physics.P2.prototype,"sleepMode",{get:function(){return this.world.sleepMode},set:function(a){this.world.sleepMode=a}}),Object.defineProperty(c.Physics.P2.prototype,"total",{get:function(){return this.world.bodies.length}}),c.Physics.P2.FixtureList=function(a){Array.isArray(a)||(a=[a]),this.rawList=a,this.init(),this.parse(this.rawList)},c.Physics.P2.FixtureList.prototype={init:function(){this.namedFixtures={},this.groupedFixtures=[],this.allFixtures=[]},setCategory:function(a,b){var c=function(b){b.collisionGroup=a};this.getFixtures(b).forEach(c)},setMask:function(a,b){var c=function(b){b.collisionMask=a};this.getFixtures(b).forEach(c)},setSensor:function(a,b){var c=function(b){b.sensor=a};this.getFixtures(b).forEach(c)},setMaterial:function(a,b){var c=function(b){b.material=a};this.getFixtures(b).forEach(c)},getFixtures:function(a){var b=[];if(a){a instanceof Array||(a=[a]);var c=this;return a.forEach(function(a){c.namedFixtures[a]&&b.push(c.namedFixtures[a])}),this.flatten(b)}return this.allFixtures},getFixtureByKey:function(a){return this.namedFixtures[a]},getGroup:function(a){return this.groupedFixtures[a]},parse:function(){var a,b,c,d;c=this.rawList,d=[];for(a in c)b=c[a],isNaN(a-0)?this.namedFixtures[a]=this.flatten(b):(this.groupedFixtures[a]=this.groupedFixtures[a]||[],this.groupedFixtures[a]=this.groupedFixtures[a].concat(b)),d.push(this.allFixtures=this.flatten(this.groupedFixtures))},flatten:function(a){var b,c;return b=[],c=arguments.callee,a.forEach(function(a){return Array.prototype.push.apply(b,Array.isArray(a)?c(a):[a])}),b}},c.Physics.P2.PointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.PointProxy.prototype.constructor=c.Physics.P2.PointProxy,Object.defineProperty(c.Physics.P2.PointProxy.prototype,"x",{get:function(){return this.world.mpx(this.destination[0])},set:function(a){this.destination[0]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"y",{get:function(){return this.world.mpx(this.destination[1])},set:function(a){this.destination[1]=this.world.pxm(a)}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=a}}),Object.defineProperty(c.Physics.P2.PointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=a}}),c.Physics.P2.InversePointProxy=function(a,b){this.world=a,this.destination=b},c.Physics.P2.InversePointProxy.prototype.constructor=c.Physics.P2.InversePointProxy,Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"x",{get:function(){return this.world.mpxi(this.destination[0])},set:function(a){this.destination[0]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"y",{get:function(){return this.world.mpxi(this.destination[1])},set:function(a){this.destination[1]=this.world.pxmi(a)}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"mx",{get:function(){return this.destination[0]},set:function(a){this.destination[0]=-a}}),Object.defineProperty(c.Physics.P2.InversePointProxy.prototype,"my",{get:function(){return this.destination[1]},set:function(a){this.destination[1]=-a}}),c.Physics.P2.Body=function(a,b,d,e,f){b=b||null,d=d||0,e=e||0,void 0===f&&(f=1),this.game=a,this.world=a.physics.p2,this.sprite=b,this.type=c.Physics.P2JS,this.offset=new c.Point,this.data=new p2.Body({position:[this.world.pxmi(d),this.world.pxmi(e)],mass:f}),this.data.parent=this,this.velocity=new c.Physics.P2.InversePointProxy(this.world,this.data.velocity),this.force=new c.Physics.P2.InversePointProxy(this.world,this.data.force),this.gravity=new c.Point,this.onBeginContact=new c.Signal,this.onEndContact=new c.Signal,this.collidesWith=[],this.removeNextStep=!1,this.debugBody=null,this.dirty=!1,this._collideWorldBounds=!0,this._bodyCallbacks={},this._bodyCallbackContext={},this._groupCallbacks={},this._groupCallbackContext={},this._reset=!1,b&&(this.setRectangleFromSprite(b),b.exists&&this.game.physics.p2.addBody(this))},c.Physics.P2.Body.prototype={createBodyCallback:function(a,b,c){var d=-1;a.id?d=a.id:a.body&&(d=a.body.id),d>-1&&(null===b?(delete this._bodyCallbacks[d],delete this._bodyCallbackContext[d]):(this._bodyCallbacks[d]=b,this._bodyCallbackContext[d]=c))},createGroupCallback:function(a,b,c){null===b?(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]):(this._groupCallbacks[a.mask]=b,this._groupCallbackContext[a.mask]=c)},getCollisionMask:function(){var a=0;this._collideWorldBounds&&(a=this.game.physics.p2.boundsCollisionGroup.mask);for(var b=0;b=0;c--)this.data.shapes[c].collisionMask=b;else a.collisionMask=b},setCollisionGroup:function(a,b){var c=this.getCollisionMask();if(void 0===b)for(var d=this.data.shapes.length-1;d>=0;d--)this.data.shapes[d].collisionGroup=a.mask,this.data.shapes[d].collisionMask=c;else b.collisionGroup=a.mask,b.collisionMask=c},clearCollision:function(a,b,c){if(void 0===a&&(a=!0),void 0===b&&(b=!0),void 0===c)for(var d=this.data.shapes.length-1;d>=0;d--)a&&(this.data.shapes[d].collisionGroup=null),b&&(this.data.shapes[d].collisionMask=null);else a&&(c.collisionGroup=null),b&&(c.collisionMask=null);a&&(this.collidesWith.length=0)},removeCollisionGroup:function(a,b,c){void 0===b&&(b=!0);var d;if(Array.isArray(a))for(var e=0;e-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));else d=this.collidesWith.indexOf(a),d>-1&&(this.collidesWith.splice(d,1),b&&(delete this._groupCallbacks[a.mask],delete this._groupCallbackContext[a.mask]));var f=this.getCollisionMask();if(void 0===c)for(var e=this.data.shapes.length-1;e>=0;e--)this.data.shapes[e].collisionMask=f;else c.collisionMask=f},collides:function(a,b,c,d){if(Array.isArray(a))for(var e=0;e=0;e--)this.data.shapes[e].collisionMask=f;else d.collisionMask=f},adjustCenterOfMass:function(){this.data.adjustCenterOfMass(),this.shapeChanged()},getVelocityAtPoint:function(a,b){return this.data.getVelocityAtPoint(a,b)},applyDamping:function(a){this.data.applyDamping(a)},applyImpulse:function(a,b,c){this.data.applyImpulse(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyImpulseLocal:function(a,b,c){this.data.applyImpulseLocal(a,[this.world.pxmi(b),this.world.pxmi(c)])},applyForce:function(a,b,c){this.data.applyForce(a,[this.world.pxmi(b),this.world.pxmi(c)])},setZeroForce:function(){this.data.setZeroForce()},setZeroRotation:function(){this.data.angularVelocity=0},setZeroVelocity:function(){this.data.velocity[0]=0,this.data.velocity[1]=0},setZeroDamping:function(){this.data.damping=0,this.data.angularDamping=0},toLocalFrame:function(a,b){return this.data.toLocalFrame(a,b)},toWorldFrame:function(a,b){return this.data.toWorldFrame(a,b)},rotateLeft:function(a){this.data.angularVelocity=this.world.pxm(-a)},rotateRight:function(a){this.data.angularVelocity=this.world.pxm(a)},moveForward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=b*Math.cos(c),this.data.velocity[1]=b*Math.sin(c)},moveBackward:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.velocity[0]=-(b*Math.cos(c)),this.data.velocity[1]=-(b*Math.sin(c))},thrust:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},thrustLeft:function(a){var b=this.world.pxmi(-a),c=this.data.angle;this.data.force[0]+=b*Math.cos(c),this.data.force[1]+=b*Math.sin(c)},thrustRight:function(a){var b=this.world.pxmi(-a),c=this.data.angle;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},reverse:function(a){var b=this.world.pxmi(-a),c=this.data.angle+Math.PI/2;this.data.force[0]-=b*Math.cos(c),this.data.force[1]-=b*Math.sin(c)},moveLeft:function(a){this.data.velocity[0]=this.world.pxmi(-a)},moveRight:function(a){this.data.velocity[0]=this.world.pxmi(a)},moveUp:function(a){this.data.velocity[1]=this.world.pxmi(-a)},moveDown:function(a){this.data.velocity[1]=this.world.pxmi(a)},preUpdate:function(){this.dirty=!0,this.removeNextStep&&(this.removeFromWorld(),this.removeNextStep=!1)},postUpdate:function(){this.sprite.x=this.world.mpxi(this.data.position[0]),this.sprite.y=this.world.mpxi(this.data.position[1]),this.fixedRotation||(this.sprite.rotation=this.data.angle),this.debugBody&&this.debugBody.updateSpriteTransform(),this.dirty=!1},reset:function(a,b,c,d){void 0===c&&(c=!1),void 0===d&&(d=!1),this.setZeroForce(),this.setZeroVelocity(),this.setZeroRotation(),c&&this.setZeroDamping(),d&&(this.mass=1),this.x=a,this.y=b},addToWorld:function(){if(this.game.physics.p2._toRemove)for(var a=0;ad;d+=2)c.push([b[d],b[d+1]]);var f=c.length-1;c[f][0]===c[0][0]&&c[f][1]===c[0][1]&&c.pop();for(var g=0;g=0;c--)this.data.shapes[c].material=a;else b.material=a},shapeChanged:function(){this.debugBody&&this.debugBody.draw()},addPhaserPolygon:function(a,b){for(var c=this.game.cache.getPhysicsData(a,b),d=[],e=0;e=0?o>n:n>o;e=o>=0?++n:--n)k=b.vertices[e],p2.vec2.rotate(m,k,a),l.push([(m[0]+i[0])*this.ppu,-(m[1]+i[1])*this.ppu]);this.drawConvex(j,l,b.triangles,f,c,g,this.settings.debugPolygons,[i[0]*this.ppu,-i[1]*this.ppu])}d++}}},drawRectangle:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1),a.beginFill(h),a.drawRect(b-e/2,c-f/2,e,f)},drawCircle:function(a,b,c,d,e,f,g){void 0===g&&(g=1),void 0===f&&(f=16777215),a.lineStyle(g,0,1),a.beginFill(f,1),a.drawCircle(b,c,2*-e),a.endFill(),a.moveTo(b,c),a.lineTo(b+e*Math.cos(-d),c+e*Math.sin(-d))},drawLine:function(a,b,c,d){void 0===d&&(d=1),void 0===c&&(c=0),a.lineStyle(5*d,c,1),a.moveTo(-b/2,0),a.lineTo(b/2,0)},drawConvex:function(a,b,c,d,e,f,g,h){var i,j,k,l,m,n,o,p,q,r,s;if(void 0===f&&(f=1),void 0===d&&(d=0),g){for(i=[16711680,65280,255],j=0;j!==b.length+1;)l=b[j%b.length],m=b[(j+1)%b.length],o=l[0],r=l[1],p=m[0],s=m[1],a.lineStyle(f,i[j%i.length],1),a.moveTo(o,-r),a.lineTo(p,-s),a.drawCircle(o,-r,2*f),j++;return a.lineStyle(f,0,1),a.drawCircle(h[0],h[1],2*f)}for(a.lineStyle(f,d,1),a.beginFill(e),j=0;j!==b.length;)k=b[j],n=k[0],q=k[1],0===j?a.moveTo(n,-q):a.lineTo(n,-q),j++;return a.endFill(),b.length>2?(a.moveTo(b[b.length-1][0],-b[b.length-1][1]),a.lineTo(b[0][0],-b[0][1])):void 0},drawPath:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;for(void 0===e&&(e=1),void 0===c&&(c=0),a.lineStyle(e,c,1),"number"==typeof d&&a.beginFill(d),h=null,i=null,g=0;g2&&"number"==typeof d&&(a.moveTo(b[b.length-1][0],b[b.length-1][1]),a.lineTo(b[0][0],b[0][1]))},drawPlane:function(a,b,c,d,e,f,g,h,i,j){var k,l,m;void 0===f&&(f=1),void 0===d&&(d=16777215),a.lineStyle(f,e,11),a.beginFill(d),k=i,a.moveTo(b,-c),l=b+Math.cos(j)*this.game.width,m=c+Math.sin(j)*this.game.height,a.lineTo(l,-m),a.moveTo(b,-c),l=b+Math.cos(j)*-this.game.width,m=c+Math.sin(j)*-this.game.height,a.lineTo(l,-m)},drawCapsule:function(a,b,c,d,e,f,g,h,i){void 0===i&&(i=1),void 0===g&&(g=0),a.lineStyle(i,g,1);var j=Math.cos(d),k=Math.sin(d);a.beginFill(h,1),a.drawCircle(-e/2*j+b,-e/2*k+c,2*-f),a.drawCircle(e/2*j+b,e/2*k+c,2*-f),a.endFill(),a.lineStyle(i,g,0),a.beginFill(h,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c),a.lineTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.endFill(),a.lineStyle(i,g,1),a.moveTo(-e/2*j+f*k+b,-e/2*k+f*j+c),a.lineTo(e/2*j+f*k+b,e/2*k+f*j+c),a.moveTo(-e/2*j-f*k+b,-e/2*k-f*j+c),a.lineTo(e/2*j-f*k+b,e/2*k-f*j+c)},randomPastelHex:function(){var a,b,c,d;return c=[255,255,255],d=Math.floor(256*Math.random()),b=Math.floor(256*Math.random()),a=Math.floor(256*Math.random()),d=Math.floor((d+3*c[0])/4),b=Math.floor((b+3*c[1])/4),a=Math.floor((a+3*c[2])/4),this.rgbToHex(d,b,a)},rgbToHex:function(a,b,c){return this.componentToHex(a)+this.componentToHex(b)+this.componentToHex(c)},componentToHex:function(a){var b;return b=a.toString(16),2===b.length?b:b+"0"}}),c.Physics.P2.Spring=function(a,b,c,d,e,f,g,h,i,j){this.game=a.game,this.world=a,void 0===d&&(d=1),void 0===e&&(e=100),void 0===f&&(f=1),d=a.pxm(d);var k={restLength:d,stiffness:e,damping:f};"undefined"!=typeof g&&null!==g&&(k.worldAnchorA=[a.pxm(g[0]),a.pxm(g[1])]),"undefined"!=typeof h&&null!==h&&(k.worldAnchorB=[a.pxm(h[0]),a.pxm(h[1])]),"undefined"!=typeof i&&null!==i&&(k.localAnchorA=[a.pxm(i[0]),a.pxm(i[1])]),"undefined"!=typeof j&&null!==j&&(k.localAnchorB=[a.pxm(j[0]),a.pxm(j[1])]),this.data=new p2.LinearSpring(b,c,k),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.RotationalSpring=function(a,b,c,d,e,f){this.game=a.game,this.world=a,void 0===d&&(d=null),void 0===e&&(e=100),void 0===f&&(f=1),d&&(d=a.pxm(d));var g={restAngle:d,stiffness:e,damping:f};this.data=new p2.RotationalSpring(b,c,g),this.data.parent=this},c.Physics.P2.Spring.prototype.constructor=c.Physics.P2.Spring,c.Physics.P2.Material=function(a){this.name=a,p2.Material.call(this)},c.Physics.P2.Material.prototype=Object.create(p2.Material.prototype),c.Physics.P2.Material.prototype.constructor=c.Physics.P2.Material,c.Physics.P2.ContactMaterial=function(a,b,c){p2.ContactMaterial.call(this,a,b,c)},c.Physics.P2.ContactMaterial.prototype=Object.create(p2.ContactMaterial.prototype),c.Physics.P2.ContactMaterial.prototype.constructor=c.Physics.P2.ContactMaterial,c.Physics.P2.CollisionGroup=function(a){this.mask=a},c.Physics.P2.DistanceConstraint=function(a,b,c,d,e,f,g){void 0===d&&(d=100),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=Number.MAX_VALUE),this.game=a.game,this.world=a,d=a.pxm(d),e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var h={distance:d,localAnchorA:e,localAnchorB:f,maxForce:g};p2.DistanceConstraint.call(this,b,c,h)},c.Physics.P2.DistanceConstraint.prototype=Object.create(p2.DistanceConstraint.prototype),c.Physics.P2.DistanceConstraint.prototype.constructor=c.Physics.P2.DistanceConstraint,c.Physics.P2.GearConstraint=function(a,b,c,d,e){void 0===d&&(d=0),void 0===e&&(e=1),this.game=a.game,this.world=a;var f={angle:d,ratio:e};p2.GearConstraint.call(this,b,c,f)},c.Physics.P2.GearConstraint.prototype=Object.create(p2.GearConstraint.prototype),c.Physics.P2.GearConstraint.prototype.constructor=c.Physics.P2.GearConstraint,c.Physics.P2.LockConstraint=function(a,b,c,d,e,f){void 0===d&&(d=[0,0]),void 0===e&&(e=0),void 0===f&&(f=Number.MAX_VALUE),this.game=a.game,this.world=a,d=[a.pxm(d[0]),a.pxm(d[1])];var g={localOffsetB:d,localAngleB:e,maxForce:f};p2.LockConstraint.call(this,b,c,g)},c.Physics.P2.LockConstraint.prototype=Object.create(p2.LockConstraint.prototype),c.Physics.P2.LockConstraint.prototype.constructor=c.Physics.P2.LockConstraint,c.Physics.P2.PrismaticConstraint=function(a,b,c,d,e,f,g,h){void 0===d&&(d=!0),void 0===e&&(e=[0,0]),void 0===f&&(f=[0,0]),void 0===g&&(g=[0,0]),void 0===h&&(h=Number.MAX_VALUE),this.game=a.game,this.world=a,e=[a.pxmi(e[0]),a.pxmi(e[1])],f=[a.pxmi(f[0]),a.pxmi(f[1])];var i={localAnchorA:e,localAnchorB:f,localAxisA:g,maxForce:h,disableRotationalLock:!d};p2.PrismaticConstraint.call(this,b,c,i)},c.Physics.P2.PrismaticConstraint.prototype=Object.create(p2.PrismaticConstraint.prototype),c.Physics.P2.PrismaticConstraint.prototype.constructor=c.Physics.P2.PrismaticConstraint,c.Physics.P2.RevoluteConstraint=function(a,b,c,d,e,f,g){void 0===f&&(f=Number.MAX_VALUE),void 0===g&&(g=null),this.game=a.game,this.world=a,c=[a.pxmi(c[0]),a.pxmi(c[1])],e=[a.pxmi(e[0]),a.pxmi(e[1])],g&&(g=[a.pxmi(g[0]),a.pxmi(g[1])]);var h={worldPivot:g,localPivotA:c,localPivotB:e,maxForce:f};p2.RevoluteConstraint.call(this,b,d,h)},c.Physics.P2.RevoluteConstraint.prototype=Object.create(p2.RevoluteConstraint.prototype),c.Physics.P2.RevoluteConstraint.prototype.constructor=c.Physics.P2.RevoluteConstraint,c.ImageCollection=function(a,b,c,d,e,f,g){(void 0===c||0>=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.imageWidth=0|c,this.imageHeight=0|d,this.imageMargin=0|e,this.imageSpacing=0|f,this.properties=g||{},this.images=[],this.total=0},c.ImageCollection.prototype={containsImageIndex:function(a){return a>=this.firstgid&&athis.right||b>this.bottom)},intersects:function(a,b,c,d){return c<=this.worldX?!1:d<=this.worldY?!1:a>=this.worldX+this.width?!1:b>=this.worldY+this.height?!1:!0},setCollisionCallback:function(a,b){this.collisionCallback=a,this.collisionCallbackContext=b},destroy:function(){this.collisionCallback=null,this.collisionCallbackContext=null,this.properties=null; +},setCollision:function(a,b,c,d){this.collideLeft=a,this.collideRight=b,this.collideUp=c,this.collideDown=d,this.faceLeft=a,this.faceRight=b,this.faceTop=c,this.faceBottom=d},resetCollision:function(){this.collideLeft=!1,this.collideRight=!1,this.collideUp=!1,this.collideDown=!1,this.faceTop=!1,this.faceBottom=!1,this.faceLeft=!1,this.faceRight=!1},isInteresting:function(a,b){return a&&b?this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.faceTop||this.faceBottom||this.faceLeft||this.faceRight||this.collisionCallback:a?this.collideLeft||this.collideRight||this.collideUp||this.collideDown:b?this.faceTop||this.faceBottom||this.faceLeft||this.faceRight:!1},copy:function(a){this.index=a.index,this.alpha=a.alpha,this.properties=a.properties,this.collideUp=a.collideUp,this.collideDown=a.collideDown,this.collideLeft=a.collideLeft,this.collideRight=a.collideRight,this.collisionCallback=a.collisionCallback,this.collisionCallbackContext=a.collisionCallbackContext}},c.Tile.prototype.constructor=c.Tile,Object.defineProperty(c.Tile.prototype,"collides",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown}}),Object.defineProperty(c.Tile.prototype,"canCollide",{get:function(){return this.collideLeft||this.collideRight||this.collideUp||this.collideDown||this.collisionCallback}}),Object.defineProperty(c.Tile.prototype,"left",{get:function(){return this.worldX}}),Object.defineProperty(c.Tile.prototype,"right",{get:function(){return this.worldX+this.width}}),Object.defineProperty(c.Tile.prototype,"top",{get:function(){return this.worldY}}),Object.defineProperty(c.Tile.prototype,"bottom",{get:function(){return this.worldY+this.height}}),c.Tilemap=function(a,b,d,e,f,g){this.game=a,this.key=b;var h=c.TilemapParser.parse(this.game,b,d,e,f,g);null!==h&&(this.width=h.width,this.height=h.height,this.tileWidth=h.tileWidth,this.tileHeight=h.tileHeight,this.orientation=h.orientation,this.format=h.format,this.version=h.version,this.properties=h.properties,this.widthInPixels=h.widthInPixels,this.heightInPixels=h.heightInPixels,this.layers=h.layers,this.tilesets=h.tilesets,this.imagecollections=h.imagecollections,this.tiles=h.tiles,this.objects=h.objects,this.collideIndexes=[],this.collision=h.collision,this.images=h.images,this.currentLayer=0,this.debugMap=[],this._results=[],this._tempA=0,this._tempB=0)},c.Tilemap.CSV=0,c.Tilemap.TILED_JSON=1,c.Tilemap.NORTH=0,c.Tilemap.EAST=1,c.Tilemap.SOUTH=2,c.Tilemap.WEST=3,c.Tilemap.prototype={create:function(a,b,c,d,e,f){return void 0===f&&(f=this.game.world),this.width=b,this.height=c,this.setTileSize(d,e),this.layers.length=0,this.createBlankLayer(a,b,c,d,e,f)},setTileSize:function(a,b){this.tileWidth=a,this.tileHeight=b,this.widthInPixels=this.width*a,this.heightInPixels=this.height*b},addTilesetImage:function(a,b,d,e,f,g,h){if(void 0===a)return null;void 0===d&&(d=this.tileWidth),void 0===e&&(e=this.tileHeight),void 0===f&&(f=0),void 0===g&&(g=0),void 0===h&&(h=0),0===d&&(d=32),0===e&&(e=32);var i=null;if((void 0===b||null===b)&&(b=a),b instanceof c.BitmapData)i=b.canvas;else{if(!this.game.cache.checkImageKey(b))return console.warn('Phaser.Tilemap.addTilesetImage: Invalid image key given: "'+b+'"'),null;i=this.game.cache.getImage(b)}var j=this.getTilesetIndex(a);if(null===j&&this.format===c.Tilemap.TILED_JSON)return console.warn('Phaser.Tilemap.addTilesetImage: No data found in the JSON matching the tileset name: "'+a+'"'),null;if(this.tilesets[j])return this.tilesets[j].setImage(i),this.tilesets[j];var k=new c.Tileset(a,h,d,e,f,g,{});k.setImage(i),this.tilesets.push(k);for(var l=this.tilesets.length-1,m=f,n=f,o=0,p=0,q=0,r=h;rl;l++)if(-1!==a.indexOf(this._results[l].index)){j=new g.customClass(this.game,this._results[l].worldX,this._results[l].worldY,d);for(var n in g)j[n]=g[n];f.add(j),k++}if(1===b.length)for(l=0;l1)for(l=0;lthis.layers.length?void console.warn("Tilemap.createLayer: Invalid layer ID given: "+f):e.add(new c.TilemapLayer(this.game,this,f,b,d))},createBlankLayer:function(a,b,d,e,f,g){if(void 0===g&&(g=this.game.world),null!==this.getLayerIndex(a))return void console.warn("Tilemap.createBlankLayer: Layer with matching name already exists");for(var h,i={name:a,x:0,y:0,width:b,height:d,widthInPixels:b*e,heightInPixels:d*f,alpha:1,visible:!0,properties:{},indexes:[],callbacks:[],bodies:[],data:null},j=[],k=0;d>k;k++){h=[];for(var l=0;b>l;l++)h.push(new c.Tile(i,-1,l,k,e,f));j.push(h)}i.data=j,this.layers.push(i),this.currentLayer=this.layers.length-1;var m=i.widthInPixels,n=i.heightInPixels;m>this.game.width&&(m=this.game.width),n>this.game.height&&(n=this.game.height);var j=new c.TilemapLayer(this.game,this,this.layers.length-1,m,n);return j.name=a,g.add(j)},getIndex:function(a,b){for(var c=0;ce;e++)this.layers[d].callbacks[a[e]]={callback:b,callbackContext:c}},setTileLocationCallback:function(a,b,c,d,e,f,g){if(g=this.getLayer(g),this.copy(a,b,c,d,g),!(this._results.length<2))for(var h=1;hb)){for(var f=a;b>=f;f++)this.setCollisionByIndex(f,c,d,!1);e&&this.calculateFaces(d)}},setCollisionByExclusion:function(a,b,c,d){void 0===b&&(b=!0),void 0===d&&(d=!0),c=this.getLayer(c);for(var e=0,f=this.tiles.length;f>e;e++)-1===a.indexOf(e)&&this.setCollisionByIndex(e,b,c,!1);d&&this.calculateFaces(c)},setCollisionByIndex:function(a,b,c,d){if(void 0===b&&(b=!0),void 0===c&&(c=this.currentLayer),void 0===d&&(d=!0),b)this.collideIndexes.push(a);else{var e=this.collideIndexes.indexOf(a);e>-1&&this.collideIndexes.splice(e,1)}for(var f=0;ff;f++)for(var h=0,i=this.layers[a].width;i>h;h++){var j=this.layers[a].data[f][h];j&&(b=this.getTileAbove(a,h,f),c=this.getTileBelow(a,h,f),d=this.getTileLeft(a,h,f),e=this.getTileRight(a,h,f),j.collides&&(j.faceTop=!0,j.faceBottom=!0,j.faceLeft=!0,j.faceRight=!0),b&&b.collides&&(j.faceTop=!1),c&&c.collides&&(j.faceBottom=!1),d&&d.collides&&(j.faceLeft=!1),e&&e.collides&&(j.faceRight=!1))}},getTileAbove:function(a,b,c){return c>0?this.layers[a].data[c-1][b]:null},getTileBelow:function(a,b,c){return c0?this.layers[a].data[c][b-1]:null},getTileRight:function(a,b,c){return b-1},removeTile:function(a,b,d){if(d=this.getLayer(d),a>=0&&a=0&&b=0&&b=0&&d-1?this.layers[e].data[d][b].setCollision(!0,!0,!0,!0):this.layers[e].data[d][b].resetCollision(),this.layers[e].dirty=!0,this.calculateFaces(e),this.layers[e].data[d][b]}return null},putTileWorldXY:function(a,b,c,d,e,f){return f=this.getLayer(f),b=this.game.math.snapToFloor(b,d)/d,c=this.game.math.snapToFloor(c,e)/e,this.putTile(a,b,c,f)},searchTileIndex:function(a,b,c,d){void 0===b&&(b=0),void 0===c&&(c=!1),d=this.getLayer(d);var e=0;if(c){for(var f=this.layers[d].height-1;f>=0;f--)for(var g=this.layers[d].width-1;g>=0;g--)if(this.layers[d].data[f][g].index===a){if(e===b)return this.layers[d].data[f][g];e++}}else for(var f=0;f=0&&a=0&&ba&&(a=0),0>b&&(b=0),c>this.layers[e].width&&(c=this.layers[e].width),d>this.layers[e].height&&(d=this.layers[e].height),this._results.length=0,this._results.push({x:a,y:b,width:c,height:d,layer:e});for(var f=b;b+d>f;f++)for(var g=a;a+c>g;g++)this._results.push(this.layers[e].data[f][g]);return this._results},paste:function(a,b,c,d){if(void 0===a&&(a=0),void 0===b&&(b=0),d=this.getLayer(d),c&&!(c.length<2)){for(var e=a-c[1].x,f=b-c[1].y,g=1;g1?this.debugMap[this.layers[this.currentLayer].data[c][d]]?b.push("background: "+this.debugMap[this.layers[this.currentLayer].data[c][d]]):b.push("background: #ffffff"):b.push("background: rgb(0, 0, 0)");a+="\n"}b[0]=a,console.log.apply(console,b)},destroy:function(){this.removeAllLayers(),this.data=[],this.game=null}},c.Tilemap.prototype.constructor=c.Tilemap,Object.defineProperty(c.Tilemap.prototype,"layer",{get:function(){return this.layers[this.currentLayer]},set:function(a){a!==this.currentLayer&&this.setLayer(a)}}),c.TilemapLayer=function(a,b,d,e,f){e|=0,f|=0,c.Sprite.call(this,a,0,0),this.map=b,this.index=d,this.layer=b.layers[d],this.canvas=PIXI.CanvasPool.create(this,e,f),this.context=this.canvas.getContext("2d"),this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))),this.type=c.TILEMAPLAYER,this.physicsType=c.TILEMAPLAYER,this.renderSettings={enableScrollDelta:!1,overdrawRatio:.2,copyCanvas:null},this.debug=!1,this.exists=!0,this.debugSettings={missingImageFill:"rgb(255,255,255)",debuggedTileOverfill:"rgba(0,255,0,0.4)",forceFullRedraw:!0,debugAlpha:.5,facingEdgeStroke:"rgba(0,255,0,1)",collidingTileOverfill:"rgba(0,255,0,0.2)"},this.scrollFactorX=1,this.scrollFactorY=1,this.dirty=!0,this.rayStepRate=4,this._wrap=!1,this._mc={scrollX:0,scrollY:0,renderWidth:0,renderHeight:0,tileWidth:b.tileWidth,tileHeight:b.tileHeight,cw:b.tileWidth,ch:b.tileHeight,tilesets:[]},this._scrollX=0,this._scrollY=0,this._results=[],a.device.canvasBitBltShift||(this.renderSettings.copyCanvas=c.TilemapLayer.ensureSharedCopyCanvas()),this.fixedToCamera=!0},c.TilemapLayer.prototype=Object.create(c.Sprite.prototype),c.TilemapLayer.prototype.constructor=c.TilemapLayer,c.TilemapLayer.prototype.preUpdateCore=c.Component.Core.preUpdate,c.TilemapLayer.sharedCopyCanvas=null,c.TilemapLayer.ensureSharedCopyCanvas=function(){return this.sharedCopyCanvas||(this.sharedCopyCanvas=c.Canvas.create(2,2)),this.sharedCopyCanvas},c.TilemapLayer.prototype.preUpdate=function(){return this.preUpdateCore()},c.TilemapLayer.prototype.postUpdate=function(){c.Component.FixedToCamera.postUpdate.call(this);var a=this.game.camera;this.scrollX=a.x*this.scrollFactorX/this.scale.x,this.scrollY=a.y*this.scrollFactorY/this.scale.y,this.render()},c.TilemapLayer.prototype.destroy=function(){PIXI.CanvasPool.remove(this),c.Component.Destroy.prototype.destroy.call(this)},c.TilemapLayer.prototype.resize=function(a,b){this.canvas.width=a,this.canvas.height=b,this.texture.frame.resize(a,b),this.texture.width=a,this.texture.height=b,this.texture.crop.width=a,this.texture.crop.height=b,this.texture.baseTexture.width=a,this.texture.baseTexture.height=b,this.texture.baseTexture.dirty(),this.texture.requiresUpdate=!0,this.texture._updateUvs(),this.dirty=!0},c.TilemapLayer.prototype.resizeWorld=function(){this.game.world.setBounds(0,0,this.layer.widthInPixels*this.scale.x,this.layer.heightInPixels*this.scale.y)},c.TilemapLayer.prototype._fixX=function(a){return 0>a&&(a=0),1===this.scrollFactorX?a:this._scrollX+(a-this._scrollX/this.scrollFactorX)},c.TilemapLayer.prototype._unfixX=function(a){return 1===this.scrollFactorX?a:this._scrollX/this.scrollFactorX+(a-this._scrollX)},c.TilemapLayer.prototype._fixY=function(a){return 0>a&&(a=0),1===this.scrollFactorY?a:this._scrollY+(a-this._scrollY/this.scrollFactorY)},c.TilemapLayer.prototype._unfixY=function(a){return 1===this.scrollFactorY?a:this._scrollY/this.scrollFactorY+(a-this._scrollY)},c.TilemapLayer.prototype.getTileX=function(a){return Math.floor(this._fixX(a)/this._mc.tileWidth)},c.TilemapLayer.prototype.getTileY=function(a){return Math.floor(this._fixY(a)/this._mc.tileHeight)},c.TilemapLayer.prototype.getTileXY=function(a,b,c){return c.x=this.getTileX(a),c.y=this.getTileY(b),c},c.TilemapLayer.prototype.getRayCastTiles=function(a,b,c,d){b||(b=this.rayStepRate),void 0===c&&(c=!1),void 0===d&&(d=!1);var e=this.getTiles(a.x,a.y,a.width,a.height,c,d);if(0===e.length)return[];for(var f=a.coordinatesOnLine(b),g=[],h=0;hl;l++)for(var m=h;h+j>m;m++){var n=this.layer.data[l];n&&n[m]&&(g||n[m].isInteresting(e,f))&&this._results.push(n[m])}return this._results.slice()},c.TilemapLayer.prototype.resolveTileset=function(a){var b=this._mc.tilesets;if(2e3>a)for(;b.lengthb&&(g=-b,i=0),0>c&&(h=-c,j=0);var k=this.renderSettings.copyCanvas;if(k){(k.width=c&&(c=Math.max(0,c),e=Math.min(h-1,e)),f>=d&&(d=Math.max(0,d),f=Math.min(i-1,f)));var n,o,p,q,r,s,t=c*j-a,u=d*k-b,v=(c+(1<<20)*h)%h,w=(d+(1<<20)*i)%i;for(g.fillStyle=this.tileColor,q=w,s=f-d,o=u;s>=0;q++,s--,o+=k){q>=i&&(q-=i);var x=this.layer.data[q];for(p=v,r=e-c,n=t;r>=0;p++,r--,n+=j){p>=h&&(p-=h);var y=x[p];if(y&&!(y.index<0)){var z=y.index,A=l[z];void 0===A&&(A=this.resolveTileset(z)),y.alpha===m||this.debug||(g.globalAlpha=y.alpha,m=y.alpha),A?y.rotation||y.flipped?(g.save(),g.translate(n+y.centerX,o+y.centerY),g.rotate(y.rotation),y.flipped&&g.scale(-1,1),A.draw(g,-y.centerX,-y.centerY,z),g.restore()):A.draw(g,n,o,z):this.debugSettings.missingImageFill&&(g.fillStyle=this.debugSettings.missingImageFill,g.fillRect(n,o,j,k)),y.debug&&this.debugSettings.debuggedTileOverfill&&(g.fillStyle=this.debugSettings.debuggedTileOverfill,g.fillRect(n,o,j,k))}}}},c.TilemapLayer.prototype.renderDeltaScroll=function(a,b){var c=this._mc.scrollX,d=this._mc.scrollY,e=this.canvas.width,f=this.canvas.height,g=this._mc.tileWidth,h=this._mc.tileHeight,i=0,j=-g,k=0,l=-h;if(0>a?(i=e+a,j=e-1):a>0&&(j=a),0>b?(k=f+b,l=f-1):b>0&&(l=b),this.shiftCanvas(this.context,a,b),i=Math.floor((i+c)/g),j=Math.floor((j+c)/g),k=Math.floor((k+d)/h),l=Math.floor((l+d)/h),j>=i){this.context.clearRect(i*g-c,0,(j-i+1)*g,f);var m=Math.floor((0+d)/h),n=Math.floor((f-1+d)/h);this.renderRegion(c,d,i,m,j,n)}if(l>=k){this.context.clearRect(0,k*h-d,e,(l-k+1)*h);var o=Math.floor((0+c)/g),p=Math.floor((e-1+c)/g);this.renderRegion(c,d,o,k,p,l)}},c.TilemapLayer.prototype.renderFull=function(){var a=this._mc.scrollX,b=this._mc.scrollY,c=this.canvas.width,d=this.canvas.height,e=this._mc.tileWidth,f=this._mc.tileHeight,g=Math.floor(a/e),h=Math.floor((c-1+a)/e),i=Math.floor(b/f),j=Math.floor((d-1+b)/f);this.context.clearRect(0,0,c,d),this.renderRegion(a,b,g,i,h,j)},c.TilemapLayer.prototype.render=function(){var a=!1;if(this.visible){(this.dirty||this.layer.dirty)&&(this.layer.dirty=!1,a=!0);var b=this.canvas.width,c=this.canvas.height,d=0|this._scrollX,e=0|this._scrollY,f=this._mc,g=f.scrollX-d,h=f.scrollY-e;if(a||0!==g||0!==h||f.renderWidth!==b||f.renderHeight!==c)return this.context.save(),f.scrollX=d,f.scrollY=e,(f.renderWidth!==b||f.renderHeight!==c)&&(f.renderWidth=b,f.renderHeight=c),this.debug&&(this.context.globalAlpha=this.debugSettings.debugAlpha,this.debugSettings.forceFullRedraw&&(a=!0)),!a&&this.renderSettings.enableScrollDelta&&Math.abs(g)+Math.abs(h)=0;d++,f--,b+=o){d>=m&&(d-=m);var x=this.layer.data[d];for(c=v,e=q-p,a=t;e>=0;c++,e--,a+=n){c>=l&&(c-=l);var y=x[c];!y||y.index<0||!y.collides||(this.debugSettings.collidingTileOverfill&&(i.fillStyle=this.debugSettings.collidingTileOverfill,i.fillRect(a,b,this._mc.cw,this._mc.ch)),this.debugSettings.facingEdgeStroke&&(i.beginPath(),y.faceTop&&(i.moveTo(a,b),i.lineTo(a+this._mc.cw,b)),y.faceBottom&&(i.moveTo(a,b+this._mc.ch),i.lineTo(a+this._mc.cw,b+this._mc.ch)),y.faceLeft&&(i.moveTo(a,b),i.lineTo(a,b+this._mc.ch)),y.faceRight&&(i.moveTo(a+this._mc.cw,b),i.lineTo(a+this._mc.cw,b+this._mc.ch)),i.stroke()))}}},Object.defineProperty(c.TilemapLayer.prototype,"wrap",{get:function(){return this._wrap},set:function(a){this._wrap=a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollX",{get:function(){return this._scrollX},set:function(a){this._scrollX=a}}),Object.defineProperty(c.TilemapLayer.prototype,"scrollY",{get:function(){return this._scrollY},set:function(a){this._scrollY=a}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionWidth",{get:function(){return this._mc.cw},set:function(a){this._mc.cw=0|a,this.dirty=!0}}),Object.defineProperty(c.TilemapLayer.prototype,"collisionHeight",{get:function(){return this._mc.ch},set:function(a){this._mc.ch=0|a,this.dirty=!0}}),c.TilemapParser={INSERT_NULL:!1,parse:function(a,b,d,e,f,g){if(void 0===d&&(d=32),void 0===e&&(e=32),void 0===f&&(f=10),void 0===g&&(g=10),void 0===b)return this.getEmptyData();if(null===b)return this.getEmptyData(d,e,f,g);var h=a.cache.getTilemapData(b);if(h){if(h.format===c.Tilemap.CSV)return this.parseCSV(b,h.data,d,e);if(!h.format||h.format===c.Tilemap.TILED_JSON)return this.parseTiledJSON(h.data)}else console.warn("Phaser.TilemapParser.parse - No map data found for key "+b)},parseCSV:function(a,b,d,e){var f=this.getEmptyData();b=b.trim();for(var g=[],h=b.split("\n"),i=h.length,j=0,k=0;kk;k+=4)j[k/4]=(h.charCodeAt(k)|h.charCodeAt(k+1)<<8|h.charCodeAt(k+2)<<16|h.charCodeAt(k+3)<<24)>>>0;g.data=j,delete g.encoding}else if(g.compression){console.warn("TilemapParser.parseTiledJSON - Layer compression is unsupported, skipping layer '"+g.name+"'");continue}var l={name:g.name,x:g.x,y:g.y,width:g.width,height:g.height,widthInPixels:g.width*a.tilewidth,heightInPixels:g.height*a.tileheight,alpha:g.opacity,visible:g.visible,properties:{},indexes:[],callbacks:[],bodies:[]};g.properties&&(l.properties=g.properties);for(var m,n,o,p,q=0,r=[],s=[],t=0,i=g.data.length;i>t;t++){if(m=0,n=!1,p=g.data[t],p>536870912)switch(o=0,p>2147483648&&(p-=2147483648,o+=4),p>1073741824&&(p-=1073741824,o+=2),p>536870912&&(p-=536870912,o+=1),o){case 5:m=Math.PI/2;break;case 6:m=Math.PI;break;case 3:m=3*Math.PI/2;break;case 4:m=0,n=!0;break;case 7:m=Math.PI/2,n=!0;break;case 2:m=Math.PI,n=!0;break;case 1:m=3*Math.PI/2,n=!0}p>0?(r.push(new c.Tile(l,p,q,s.length,a.tilewidth,a.tileheight)),r[r.length-1].rotation=m,r[r.length-1].flipped=n):c.TilemapParser.INSERT_NULL?r.push(null):r.push(new c.Tile(l,-1,q,s.length,a.tilewidth,a.tileheight)),q++,q===g.width&&(s.push(r),q=0,r=[])}l.data=s,e.push(l)}d.layers=e;for(var u=[],f=0;fG;G++)if(F.objects[G].gid){var H={gid:F.objects[G].gid,name:F.objects[G].name,type:F.objects[G].hasOwnProperty("type")?F.objects[G].type:"",x:F.objects[G].x,y:F.objects[G].y,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),D[F.name].push(H)}else if(F.objects[G].polyline){var H={name:F.objects[G].name,type:F.objects[G].type,x:F.objects[G].x,y:F.objects[G].y,width:F.objects[G].width,height:F.objects[G].height,visible:F.objects[G].visible,properties:F.objects[G].properties};F.objects[G].rotation&&(H.rotation=F.objects[G].rotation),H.polyline=[];for(var I=0;I=c)&&(c=32),(void 0===d||0>=d)&&(d=32),void 0===e&&(e=0),void 0===f&&(f=0),this.name=a,this.firstgid=0|b,this.tileWidth=0|c,this.tileHeight=0|d,this.tileMargin=0|e,this.tileSpacing=0|f,this.properties=g||{},this.image=null,this.rows=0,this.columns=0,this.total=0,this.drawCoords=[]},c.Tileset.prototype={draw:function(a,b,c,d){ +var e=d-this.firstgid<<1;e>=0&&e+1=this.firstgid&&a=this._timer)if(this._timer=this.game.time.time+this.frequency*this.game.time.slowMotion,0!==this._flowTotal)if(this._flowQuantity>0){for(var a=0;a=this._flowTotal)){this.on=!1;break}}else this.emitParticle()&&(this._counter++,-1!==this._flowTotal&&this._counter>=this._flowTotal&&(this.on=!1));else this.emitParticle()&&(this._counter++,this._quantity>0&&this._counter>=this._quantity&&(this.on=!1));for(var a=this.children.length;a--;)this.children[a].exists&&this.children[a].update()},c.Particles.Arcade.Emitter.prototype.makeParticles=function(a,b,c,d,e){void 0===b&&(b=0),void 0===c&&(c=this.maxParticles),void 0===d&&(d=!1),void 0===e&&(e=!1);var f,g=0,h=a,i=b;for(this._frames=b,c>this.maxParticles&&(this.maxParticles=c);c>g;)Array.isArray(a)&&(h=this.game.rnd.pick(a)),Array.isArray(b)&&(i=this.game.rnd.pick(b)),f=new this.particleClass(this.game,0,0,h,i),this.game.physics.arcade.enable(f,!1),d?(f.body.checkCollision.any=!0,f.body.checkCollision.none=!1):f.body.checkCollision.none=!0,f.body.collideWorldBounds=e,f.body.skipQuadTree=!0,f.exists=!1,f.visible=!1,f.anchor.copyFrom(this.particleAnchor),this.add(f),g++;return this},c.Particles.Arcade.Emitter.prototype.kill=function(){return this.on=!1,this.alive=!1,this.exists=!1,this},c.Particles.Arcade.Emitter.prototype.revive=function(){return this.alive=!0,this.exists=!0,this},c.Particles.Arcade.Emitter.prototype.explode=function(a,b){return this._flowTotal=0,this.start(!0,a,0,b,!1),this},c.Particles.Arcade.Emitter.prototype.flow=function(a,b,c,d,e){return(void 0===c||0===c)&&(c=1),void 0===d&&(d=-1),void 0===e&&(e=!0),c>this.maxParticles&&(c=this.maxParticles),this._counter=0,this._flowQuantity=c,this._flowTotal=d,e?(this.start(!0,a,b,c),this._counter+=c,this.on=!0,this._timer=this.game.time.time+b*this.game.time.slowMotion):this.start(!1,a,b,c),this},c.Particles.Arcade.Emitter.prototype.start=function(a,b,c,d,e){if(void 0===a&&(a=!0),void 0===b&&(b=0),(void 0===c||null===c)&&(c=250),void 0===d&&(d=0),void 0===e&&(e=!1),d>this.maxParticles&&(d=this.maxParticles),this.revive(),this.visible=!0,this.lifespan=b,this.frequency=c,a||e)for(var f=0;d>f;f++)this.emitParticle();else this.on=!0,this._quantity=d,this._counter=0,this._timer=this.game.time.time+c*this.game.time.slowMotion;return this},c.Particles.Arcade.Emitter.prototype.emitParticle=function(a,b,c,d){void 0===a&&(a=null),void 0===b&&(b=null);var e=this.getFirstExists(!1);if(null===e)return!1;var f=this.game.rnd;void 0!==c&&void 0!==d?e.loadTexture(c,d):void 0!==c&&e.loadTexture(c);var g=this.emitX,h=this.emitY;null!==a?g=a:this.width>1&&(g=f.between(this.left,this.right)),null!==b?h=b:this.height>1&&(h=f.between(this.top,this.bottom)),e.reset(g,h),e.angle=0,e.lifespan=this.lifespan,this.particleBringToTop?this.bringToTop(e):this.particleSendToBack&&this.sendToBack(e),this.autoScale?e.setScaleData(this.scaleData):1!==this.minParticleScale||1!==this.maxParticleScale?e.scale.set(f.realInRange(this.minParticleScale,this.maxParticleScale)):(this._minParticleScale.x!==this._maxParticleScale.x||this._minParticleScale.y!==this._maxParticleScale.y)&&e.scale.set(f.realInRange(this._minParticleScale.x,this._maxParticleScale.x),f.realInRange(this._minParticleScale.y,this._maxParticleScale.y)),void 0===d&&(Array.isArray(this._frames)?e.frame=this.game.rnd.pick(this._frames):e.frame=this._frames),this.autoAlpha?e.setAlphaData(this.alphaData):e.alpha=f.realInRange(this.minParticleAlpha,this.maxParticleAlpha),e.blendMode=this.blendMode;var i=e.body;return i.updateBounds(),i.bounce.copyFrom(this.bounce),i.drag.copyFrom(this.particleDrag),i.velocity.x=f.between(this.minParticleSpeed.x,this.maxParticleSpeed.x),i.velocity.y=f.between(this.minParticleSpeed.y,this.maxParticleSpeed.y),i.angularVelocity=f.between(this.minRotation,this.maxRotation),i.gravity.y=this.gravity,i.angularDrag=this.angularDrag,e.onEmit(),!0},c.Particles.Arcade.Emitter.prototype.destroy=function(){this.game.particles.remove(this),c.Group.prototype.destroy.call(this,!0,!1)},c.Particles.Arcade.Emitter.prototype.setSize=function(a,b){return this.area.width=a,this.area.height=b,this},c.Particles.Arcade.Emitter.prototype.setXSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.x=a,this.maxParticleSpeed.x=b,this},c.Particles.Arcade.Emitter.prototype.setYSpeed=function(a,b){return a=a||0,b=b||0,this.minParticleSpeed.y=a,this.maxParticleSpeed.y=b,this},c.Particles.Arcade.Emitter.prototype.setRotation=function(a,b){return a=a||0,b=b||0,this.minRotation=a,this.maxRotation=b,this},c.Particles.Arcade.Emitter.prototype.setAlpha=function(a,b,d,e,f){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=0),void 0===e&&(e=c.Easing.Linear.None),void 0===f&&(f=!1),this.minParticleAlpha=a,this.maxParticleAlpha=b,this.autoAlpha=!1,d>0&&a!==b){var g={v:a},h=this.game.make.tween(g).to({v:b},d,e);h.yoyo(f),this.alphaData=h.generateData(60),this.alphaData.reverse(),this.autoAlpha=!0}return this},c.Particles.Arcade.Emitter.prototype.setScale=function(a,b,d,e,f,g,h){if(void 0===a&&(a=1),void 0===b&&(b=1),void 0===d&&(d=1),void 0===e&&(e=1),void 0===f&&(f=0),void 0===g&&(g=c.Easing.Linear.None),void 0===h&&(h=!1),this.minParticleScale=1,this.maxParticleScale=1,this._minParticleScale.set(a,d),this._maxParticleScale.set(b,e),this.autoScale=!1,f>0&&(a!==b||d!==e)){var i={x:a,y:d},j=this.game.make.tween(i).to({x:b,y:e},f,g);j.yoyo(h),this.scaleData=j.generateData(60),this.scaleData.reverse(),this.autoScale=!0}return this},c.Particles.Arcade.Emitter.prototype.at=function(a){return a.center?(this.emitX=a.center.x,this.emitY=a.center.y):(this.emitX=a.world.x+a.anchor.x*a.width,this.emitY=a.world.y+a.anchor.y*a.height),this},Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"width",{get:function(){return this.area.width},set:function(a){this.area.width=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"height",{get:function(){return this.area.height},set:function(a){this.area.height=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"x",{get:function(){return this.emitX},set:function(a){this.emitX=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"y",{get:function(){return this.emitY},set:function(a){this.emitY=a}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"left",{get:function(){return Math.floor(this.x-this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"right",{get:function(){return Math.floor(this.x+this.area.width/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"top",{get:function(){return Math.floor(this.y-this.area.height/2)}}),Object.defineProperty(c.Particles.Arcade.Emitter.prototype,"bottom",{get:function(){return Math.floor(this.y+this.area.height/2)}}),c.Video=function(a,b,d){if(void 0===b&&(b=null),void 0===d&&(d=null),this.game=a,this.key=b,this.width=0,this.height=0,this.type=c.VIDEO,this.disableTextureUpload=!1,this.touchLocked=!1,this.onPlay=new c.Signal,this.onChangeSource=new c.Signal,this.onComplete=new c.Signal,this.onAccess=new c.Signal,this.onError=new c.Signal,this.onTimeout=new c.Signal,this.timeout=15e3,this._timeOutID=null,this.video=null,this.videoStream=null,this.isStreaming=!1,this.retryLimit=20,this.retry=0,this.retryInterval=500,this._retryID=null,this._codeMuted=!1,this._muted=!1,this._codePaused=!1,this._paused=!1,this._pending=!1,this._autoplay=!1,this._endCallback=null,this._playCallback=null,b&&this.game.cache.checkVideoKey(b)){var e=this.game.cache.getVideo(b);e.isBlob?this.createVideoFromBlob(e.data):this.video=e.data,this.width=this.video.videoWidth,this.height=this.video.videoHeight}else d&&this.createVideoFromURL(d,!1);this.video&&!d?(this.baseTexture=new PIXI.BaseTexture(this.video),this.baseTexture.forceLoaded(this.width,this.height)):(this.baseTexture=new PIXI.BaseTexture(PIXI.TextureCache.__default.baseTexture.source),this.baseTexture.forceLoaded(this.width,this.height)),this.texture=new PIXI.Texture(this.baseTexture),this.textureFrame=new c.Frame(0,0,0,this.width,this.height,"video"),this.texture.setFrame(this.textureFrame),this.texture.valid=!1,null!==b&&this.video&&(this.texture.valid=this.video.canplay),this.snapshot=null,c.BitmapData&&(this.snapshot=new c.BitmapData(this.game,"",this.width,this.height)),!this.game.device.cocoonJS&&(this.game.device.iOS||this.game.device.android)||window.PhaserGlobal&&window.PhaserGlobal.fakeiOSTouchLock?this.setTouchLock():e&&(e.locked=!1)},c.Video.prototype={connectToMediaStream:function(a,b){return a&&b&&(this.video=a,this.videoStream=b,this.isStreaming=!0,this.baseTexture.source=this.video,this.updateTexture(null,this.video.videoWidth,this.video.videoHeight),this.onAccess.dispatch(this)),this},startMediaStream:function(a,b,c){if(void 0===a&&(a=!1),void 0===b&&(b=null),void 0===c&&(c=null),!this.game.device.getUserMedia)return this.onError.dispatch(this,"No getUserMedia"),!1;null!==this.videoStream&&(this.videoStream.active?this.videoStream.active=!1:this.videoStream.stop()),this.removeVideoElement(),this.video=document.createElement("video"),this.video.setAttribute("autoplay","autoplay"),null!==b&&(this.video.width=b),null!==c&&(this.video.height=c),this._timeOutID=window.setTimeout(this.getUserMediaTimeout.bind(this),this.timeout);try{navigator.getUserMedia({audio:a,video:!0},this.getUserMediaSuccess.bind(this),this.getUserMediaError.bind(this))}catch(d){this.getUserMediaError(d)}return this},getUserMediaTimeout:function(){clearTimeout(this._timeOutID),this.onTimeout.dispatch(this)},getUserMediaError:function(a){clearTimeout(this._timeOutID),this.onError.dispatch(this,a)},getUserMediaSuccess:function(a){clearTimeout(this._timeOutID),this.videoStream=a,void 0!==this.video.mozSrcObject?this.video.mozSrcObject=a:this.video.src=window.URL&&window.URL.createObjectURL(a)||a;var b=this;this.video.onloadeddata=function(){function a(){if(c>0)if(b.video.videoWidth>0){var d=b.video.videoWidth,e=b.video.videoHeight;isNaN(b.video.videoHeight)&&(e=d/(4/3)),b.video.play(),b.isStreaming=!0,b.baseTexture.source=b.video,b.updateTexture(null,d,e),b.onAccess.dispatch(b)}else window.setTimeout(a,500);else console.warn("Unable to connect to video stream. Webcam error?");c--}var c=10;a()}},createVideoFromBlob:function(a){var b=this;return this.video=document.createElement("video"),this.video.controls=!1,this.video.setAttribute("autoplay","autoplay"),this.video.addEventListener("loadeddata",function(a){b.updateTexture(a)},!0),this.video.src=window.URL.createObjectURL(a),this.video.canplay=!0,this},createVideoFromURL:function(a,b){return void 0===b&&(b=!1),this.texture&&(this.texture.valid=!1),this.video=document.createElement("video"),this.video.controls=!1,b&&this.video.setAttribute("autoplay","autoplay"),this.video.src=a,this.video.canplay=!0,this.video.load(),this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval),this.key=a,this},updateTexture:function(a,b,c){var d=!1;(void 0===b||null===b)&&(b=this.video.videoWidth,d=!0),(void 0===c||null===c)&&(c=this.video.videoHeight),this.width=b,this.height=c,this.baseTexture.source!==this.video&&(this.baseTexture.source=this.video),this.baseTexture.forceLoaded(b,c),this.texture.frame.resize(b,c),this.texture.width=b,this.texture.height=c,this.texture.valid=!0,this.snapshot&&this.snapshot.resize(b,c),d&&null!==this.key&&(this.onChangeSource.dispatch(this,b,c),this._autoplay&&(this.video.play(),this.onPlay.dispatch(this,this.loop,this.playbackRate)))},complete:function(){this.onComplete.dispatch(this)},play:function(a,b){return void 0===a&&(a=!1),void 0===b&&(b=1),this.game.sound.onMute&&(this.game.sound.onMute.add(this.setMute,this),this.game.sound.onUnMute.add(this.unsetMute,this),this.game.sound.mute&&this.setMute()),this.game.onPause.add(this.setPause,this),this.game.onResume.add(this.setResume,this),this._endCallback=this.complete.bind(this),this.video.addEventListener("ended",this._endCallback,!0),a?this.video.loop="loop":this.video.loop="",this.video.playbackRate=b,this.touchLocked?this._pending=!0:(this._pending=!1,null!==this.key&&(4!==this.video.readyState?(this.retry=this.retryLimit,this._retryID=window.setTimeout(this.checkVideoProgress.bind(this),this.retryInterval)):(this._playCallback=this.playHandler.bind(this),this.video.addEventListener("playing",this._playCallback,!0))),this.video.play(),this.onPlay.dispatch(this,a,b)),this},playHandler:function(){this.video.removeEventListener("playing",this._playCallback,!0),this.updateTexture()},stop:function(){return this.game.sound.onMute&&(this.game.sound.onMute.remove(this.setMute,this),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("playing",this._playCallback,!0),this.touchLocked?this._pending=!1:this.video.pause()),this},add:function(a){if(Array.isArray(a))for(var b=0;b0?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){var a=this.game.cache.getVideo(this.key);a&&!a.isBlob&&(a.locked=!1)}return!0},grab:function(a,b,c){return void 0===a&&(a=!1),void 0===b&&(b=1),void 0===c&&(c=null),null===this.snapshot?void console.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(){return this.video?this.video.currentTime:0},set:function(a){this.video.currentTime=a}}),Object.defineProperty(c.Video.prototype,"duration",{get:function(){return this.video?this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"progress",{get:function(){return this.video?this.video.currentTime/this.video.duration:0}}),Object.defineProperty(c.Video.prototype,"mute",{get:function(){return this._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(){return this._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.setResume()}}}),Object.defineProperty(c.Video.prototype,"volume",{get:function(){return this.video?this.video.volume:1},set:function(a){0>a?a=0:a>1&&(a=1),this.video&&(this.video.volume=a)}}),Object.defineProperty(c.Video.prototype,"playbackRate",{get:function(){return this.video?this.video.playbackRate:1},set:function(a){this.video&&(this.video.playbackRate=a)}}),Object.defineProperty(c.Video.prototype,"loop",{get:function(){return this.video?this.video.loop:!1},set:function(a){a&&this.video?this.video.loop="loop":this.video&&(this.video.loop="")}}),Object.defineProperty(c.Video.prototype,"playing",{get:function(){return!(this.video.paused&&this.video.ended)}}),c.Video.prototype.constructor=c.Video,void 0===PIXI.blendModes&&(PIXI.blendModes=c.blendModes),void 0===PIXI.scaleModes&&(PIXI.scaleModes=c.scaleModes),void 0===PIXI.Texture.emptyTexture&&(PIXI.Texture.emptyTexture=new PIXI.Texture(new PIXI.BaseTexture)),void 0===PIXI.DisplayObject._tempMatrix&&(PIXI.DisplayObject._tempMatrix=new PIXI.Matrix),void 0===PIXI.RenderTexture.tempMatrix&&(PIXI.RenderTexture.tempMatrix=new PIXI.Matrix),PIXI.Graphics&&void 0===PIXI.Graphics.POLY&&(PIXI.Graphics.POLY=c.POLYGON,PIXI.Graphics.RECT=c.RECTANGLE,PIXI.Graphics.CIRC=c.CIRCLE,PIXI.Graphics.ELIP=c.ELLIPSE,PIXI.Graphics.RREC=c.ROUNDEDRECTANGLE),PIXI.TextureSilentFail=!0,"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=c),exports.Phaser=c):"undefined"!=typeof define&&define.amd?define("Phaser",function(){return b.Phaser=c}()):b.Phaser=c,c}.call(this); //# sourceMappingURL=phaser.map \ No newline at end of file diff --git a/src/Phaser.js b/src/Phaser.js index 707ba65fe..d3b588c72 100644 --- a/src/Phaser.js +++ b/src/Phaser.js @@ -15,7 +15,7 @@ var Phaser = Phaser || { * @constant * @type {string} */ - VERSION: '2.4.7-dev', + VERSION: '2.4.7 RC1', /** * An array of Phaser game instances.