From 972297154d389fa2978fda970d872aa32f31cb6f Mon Sep 17 00:00:00 2001 From: da-in Date: Sat, 6 Apr 2024 07:05:46 +0000 Subject: [PATCH] deploy: 81048e413d4610255149717d40493435e529fee1 --- 404.html | 2 +- assets/{index-D3-QFJZT.js => index-C1n6Kl5t.js} | 4 ++-- assets/{index-D3-QFJZT.js.map => index-C1n6Kl5t.js.map} | 2 +- index.html | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) rename assets/{index-D3-QFJZT.js => index-C1n6Kl5t.js} (93%) rename assets/{index-D3-QFJZT.js.map => index-C1n6Kl5t.js.map} (99%) diff --git a/404.html b/404.html index 130e081..8137245 100644 --- a/404.html +++ b/404.html @@ -26,7 +26,7 @@ - + diff --git a/assets/index-D3-QFJZT.js b/assets/index-C1n6Kl5t.js similarity index 93% rename from assets/index-D3-QFJZT.js rename to assets/index-C1n6Kl5t.js index c3c0db8..5aa9dd7 100644 --- a/assets/index-D3-QFJZT.js +++ b/assets/index-C1n6Kl5t.js @@ -66,5 +66,5 @@ var os=(e,t,n)=>{if(!t.has(e))throw TypeError("Cannot "+n)};var O=(e,t,n)=>(os(e * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. - */(function(e,t){(function(s,i){e.exports=i()})(me,function(){return function(n){var s={};function i(r){if(s[r])return s[r].exports;var a=s[r]={i:r,l:!1,exports:{}};return n[r].call(a.exports,a,a.exports,i),a.l=!0,a.exports}return i.m=n,i.c=s,i.d=function(r,a,l){i.o(r,a)||Object.defineProperty(r,a,{enumerable:!0,get:l})},i.r=function(r){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},i.t=function(r,a){if(a&1&&(r=i(r)),a&8||a&4&&typeof r=="object"&&r&&r.__esModule)return r;var l=Object.create(null);if(i.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:r}),a&2&&typeof r!="string")for(var f in r)i.d(l,f,(function(d){return r[d]}).bind(null,f));return l},i.n=function(r){var a=r&&r.__esModule?function(){return r.default}:function(){return r};return i.d(a,"a",a),a},i.o=function(r,a){return Object.prototype.hasOwnProperty.call(r,a)},i.p="",i(i.s=20)}([function(n,s){var i={};n.exports=i,function(){i._baseDelta=1e3/60,i._nextId=0,i._seed=0,i._nowStartTime=+new Date,i._warnedOnce={},i._decomp=null,i.extend=function(a,l){var f,d;typeof l=="boolean"?(f=2,d=l):(f=1,d=!0);for(var c=f;c0;l--){var f=Math.floor(i.random()*(l+1)),d=a[l];a[l]=a[f],a[f]=d}return a},i.choose=function(a){return a[Math.floor(i.random()*a.length)]},i.isElement=function(a){return typeof HTMLElement<"u"?a instanceof HTMLElement:!!(a&&a.nodeType&&a.nodeName)},i.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"},i.isFunction=function(a){return typeof a=="function"},i.isPlainObject=function(a){return typeof a=="object"&&a.constructor===Object},i.isString=function(a){return toString.call(a)==="[object String]"},i.clamp=function(a,l,f){return af?f:a},i.sign=function(a){return a<0?-1:1},i.now=function(){if(typeof window<"u"&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-i._nowStartTime},i.random=function(a,l){return a=typeof a<"u"?a:0,l=typeof l<"u"?l:1,a+r()*(l-a)};var r=function(){return i._seed=(i._seed*9301+49297)%233280,i._seed/233280};i.colorToNumber=function(a){return a=a.replace("#",""),a.length==3&&(a=a.charAt(0)+a.charAt(0)+a.charAt(1)+a.charAt(1)+a.charAt(2)+a.charAt(2)),parseInt(a,16)},i.logLevel=1,i.log=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.info=function(){console&&i.logLevel>0&&i.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.warn=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.warnOnce=function(){var a=Array.prototype.slice.call(arguments).join(" ");i._warnedOnce[a]||(i.warn(a),i._warnedOnce[a]=!0)},i.deprecated=function(a,l,f){a[l]=i.chain(function(){i.warnOnce("🔅 deprecated 🔅",f)},a[l])},i.nextId=function(){return i._nextId++},i.indexOf=function(a,l){if(a.indexOf)return a.indexOf(l);for(var f=0;fr.max.x&&(r.max.x=d.x),d.xr.max.y&&(r.max.y=d.y),d.y0?r.max.x+=l.x:r.min.x+=l.x,l.y>0?r.max.y+=l.y:r.min.y+=l.y)},i.contains=function(r,a){return a.x>=r.min.x&&a.x<=r.max.x&&a.y>=r.min.y&&a.y<=r.max.y},i.overlaps=function(r,a){return r.min.x<=a.max.x&&r.max.x>=a.min.x&&r.max.y>=a.min.y&&r.min.y<=a.max.y},i.translate=function(r,a){r.min.x+=a.x,r.max.x+=a.x,r.min.y+=a.y,r.max.y+=a.y},i.shift=function(r,a){var l=r.max.x-r.min.x,f=r.max.y-r.min.y;r.min.x=a.x,r.max.x=a.x+l,r.min.y=a.y,r.max.y=a.y+f}}()},function(n,s){var i={};n.exports=i,function(){i.create=function(r,a){return{x:r||0,y:a||0}},i.clone=function(r){return{x:r.x,y:r.y}},i.magnitude=function(r){return Math.sqrt(r.x*r.x+r.y*r.y)},i.magnitudeSquared=function(r){return r.x*r.x+r.y*r.y},i.rotate=function(r,a,l){var f=Math.cos(a),d=Math.sin(a);l||(l={});var c=r.x*f-r.y*d;return l.y=r.x*d+r.y*f,l.x=c,l},i.rotateAbout=function(r,a,l,f){var d=Math.cos(a),c=Math.sin(a);f||(f={});var x=l.x+((r.x-l.x)*d-(r.y-l.y)*c);return f.y=l.y+((r.x-l.x)*c+(r.y-l.y)*d),f.x=x,f},i.normalise=function(r){var a=i.magnitude(r);return a===0?{x:0,y:0}:{x:r.x/a,y:r.y/a}},i.dot=function(r,a){return r.x*a.x+r.y*a.y},i.cross=function(r,a){return r.x*a.y-r.y*a.x},i.cross3=function(r,a,l){return(a.x-r.x)*(l.y-r.y)-(a.y-r.y)*(l.x-r.x)},i.add=function(r,a,l){return l||(l={}),l.x=r.x+a.x,l.y=r.y+a.y,l},i.sub=function(r,a,l){return l||(l={}),l.x=r.x-a.x,l.y=r.y-a.y,l},i.mult=function(r,a){return{x:r.x*a,y:r.y*a}},i.div=function(r,a){return{x:r.x/a,y:r.y/a}},i.perp=function(r,a){return a=a===!0?-1:1,{x:a*-r.y,y:a*r.x}},i.neg=function(r){return{x:-r.x,y:-r.y}},i.angle=function(r,a){return Math.atan2(a.y-r.y,a.x-r.x)},i._temp=[i.create(),i.create(),i.create(),i.create(),i.create(),i.create()]}()},function(n,s,i){var r={};n.exports=r;var a=i(2),l=i(0);(function(){r.create=function(f,d){for(var c=[],x=0;x0)return!1;o=h}return!0},r.scale=function(f,d,c,x){if(d===1&&c===1)return f;x=x||r.centre(f);for(var u,o,h=0;h=0?h-1:f.length-1],v=f[h],m=f[(h+1)%f.length],C=d[h0&&(d|=2),d===3)return!1;return d!==0?!0:null},r.hull=function(f){var d=[],c=[],x,u;for(f=f.slice(0),f.sort(function(o,h){var p=o.x-h.x;return p!==0?p:o.y-h.y}),u=0;u=2&&a.cross3(c[c.length-2],c[c.length-1],x)<=0;)c.pop();c.push(x)}for(u=f.length-1;u>=0;u-=1){for(x=f[u];d.length>=2&&a.cross3(d[d.length-2],d[d.length-1],x)<=0;)d.pop();d.push(x)}return d.pop(),c.pop(),d.concat(c)}})()},function(n,s,i){var r={};n.exports=r;var a=i(3),l=i(2),f=i(7),d=i(0),c=i(1),x=i(11);(function(){r._timeCorrection=!0,r._inertiaScale=4,r._nextCollidingGroupId=1,r._nextNonCollidingGroupId=-1,r._nextCategory=1,r._baseDelta=1e3/60,r.create=function(o){var h={id:d.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:a.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:16.666666666666668,_original:null},p=d.extend(h,o);return u(p,o),p},r.nextGroup=function(o){return o?r._nextNonCollidingGroupId--:r._nextCollidingGroupId++},r.nextCategory=function(){return r._nextCategory=r._nextCategory<<1,r._nextCategory};var u=function(o,h){h=h||{},r.set(o,{bounds:o.bounds||c.create(o.vertices),positionPrev:o.positionPrev||l.clone(o.position),anglePrev:o.anglePrev||o.angle,vertices:o.vertices,parts:o.parts||[o],isStatic:o.isStatic,isSleeping:o.isSleeping,parent:o.parent||o}),a.rotate(o.vertices,o.angle,o.position),x.rotate(o.axes,o.angle),c.update(o.bounds,o.vertices,o.velocity),r.set(o,{axes:h.axes||o.axes,area:h.area||o.area,mass:h.mass||o.mass,inertia:h.inertia||o.inertia});var p=o.isStatic?"#14151f":d.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),v=o.isStatic?"#555":"#ccc",m=o.isStatic&&o.render.fillStyle===null?1:0;o.render.fillStyle=o.render.fillStyle||p,o.render.strokeStyle=o.render.strokeStyle||v,o.render.lineWidth=o.render.lineWidth||m,o.render.sprite.xOffset+=-(o.bounds.min.x-o.position.x)/(o.bounds.max.x-o.bounds.min.x),o.render.sprite.yOffset+=-(o.bounds.min.y-o.position.y)/(o.bounds.max.y-o.bounds.min.y)};r.set=function(o,h,p){var v;typeof h=="string"&&(v=h,h={},h[v]=p);for(v in h)if(Object.prototype.hasOwnProperty.call(h,v))switch(p=h[v],v){case"isStatic":r.setStatic(o,p);break;case"isSleeping":f.set(o,p);break;case"mass":r.setMass(o,p);break;case"density":r.setDensity(o,p);break;case"inertia":r.setInertia(o,p);break;case"vertices":r.setVertices(o,p);break;case"position":r.setPosition(o,p);break;case"angle":r.setAngle(o,p);break;case"velocity":r.setVelocity(o,p);break;case"angularVelocity":r.setAngularVelocity(o,p);break;case"speed":r.setSpeed(o,p);break;case"angularSpeed":r.setAngularSpeed(o,p);break;case"parts":r.setParts(o,p);break;case"centre":r.setCentre(o,p);break;default:o[v]=p}},r.setStatic=function(o,h){for(var p=0;p0&&l.rotateAbout(C.position,v,o.position,C.position)}},r.setVelocity=function(o,h){var p=o.deltaTime/r._baseDelta;o.positionPrev.x=o.position.x-h.x*p,o.positionPrev.y=o.position.y-h.y*p,o.velocity.x=(o.position.x-o.positionPrev.x)/p,o.velocity.y=(o.position.y-o.positionPrev.y)/p,o.speed=l.magnitude(o.velocity)},r.getVelocity=function(o){var h=r._baseDelta/o.deltaTime;return{x:(o.position.x-o.positionPrev.x)*h,y:(o.position.y-o.positionPrev.y)*h}},r.getSpeed=function(o){return l.magnitude(r.getVelocity(o))},r.setSpeed=function(o,h){r.setVelocity(o,l.mult(l.normalise(r.getVelocity(o)),h))},r.setAngularVelocity=function(o,h){var p=o.deltaTime/r._baseDelta;o.anglePrev=o.angle-h*p,o.angularVelocity=(o.angle-o.anglePrev)/p,o.angularSpeed=Math.abs(o.angularVelocity)},r.getAngularVelocity=function(o){return(o.angle-o.anglePrev)*r._baseDelta/o.deltaTime},r.getAngularSpeed=function(o){return Math.abs(r.getAngularVelocity(o))},r.setAngularSpeed=function(o,h){r.setAngularVelocity(o,d.sign(r.getAngularVelocity(o))*h)},r.translate=function(o,h,p){r.setPosition(o,l.add(o.position,h),p)},r.rotate=function(o,h,p,v){if(!p)r.setAngle(o,o.angle+h,v);else{var m=Math.cos(h),C=Math.sin(h),y=o.position.x-p.x,A=o.position.y-p.y;r.setPosition(o,{x:p.x+(y*m-A*C),y:p.y+(y*C+A*m)},v),r.setAngle(o,o.angle+h,v)}},r.scale=function(o,h,p,v){var m=0,C=0;v=v||o.position;for(var y=0;y0&&(m+=A.area,C+=A.inertia),A.position.x=v.x+(A.position.x-v.x)*h,A.position.y=v.y+(A.position.y-v.y)*p,c.update(A.bounds,A.vertices,o.velocity)}o.parts.length>1&&(o.area=m,o.isStatic||(r.setMass(o,o.density*m),r.setInertia(o,C))),o.circleRadius&&(h===p?o.circleRadius*=h:o.circleRadius=null)},r.update=function(o,h){h=(typeof h<"u"?h:1e3/60)*o.timeScale;var p=h*h,v=r._timeCorrection?h/(o.deltaTime||h):1,m=1-o.frictionAir*(h/d._baseDelta),C=(o.position.x-o.positionPrev.x)*v,y=(o.position.y-o.positionPrev.y)*v;o.velocity.x=C*m+o.force.x/o.mass*p,o.velocity.y=y*m+o.force.y/o.mass*p,o.positionPrev.x=o.position.x,o.positionPrev.y=o.position.y,o.position.x+=o.velocity.x,o.position.y+=o.velocity.y,o.deltaTime=h,o.angularVelocity=(o.angle-o.anglePrev)*m*v+o.torque/o.inertia*p,o.anglePrev=o.angle,o.angle+=o.angularVelocity;for(var A=0;A0&&(g.position.x+=o.velocity.x,g.position.y+=o.velocity.y),o.angularVelocity!==0&&(a.rotate(g.vertices,o.angularVelocity,o.position),x.rotate(g.axes,o.angularVelocity),A>0&&l.rotateAbout(g.position,o.angularVelocity,o.position,g.position)),c.update(g.bounds,g.vertices,o.velocity)}},r.updateVelocities=function(o){var h=r._baseDelta/o.deltaTime,p=o.velocity;p.x=(o.position.x-o.positionPrev.x)*h,p.y=(o.position.y-o.positionPrev.y)*h,o.speed=Math.sqrt(p.x*p.x+p.y*p.y),o.angularVelocity=(o.angle-o.anglePrev)*h,o.angularSpeed=Math.abs(o.angularVelocity)},r.applyForce=function(o,h,p){var v={x:h.x-o.position.x,y:h.y-o.position.y};o.force.x+=p.x,o.force.y+=p.y,o.torque+=v.x*p.y-v.y*p.x},r._totalProperties=function(o){for(var h={mass:0,area:0,inertia:0,centre:{x:0,y:0}},p=o.parts.length===1?0:1;p0){d||(d={}),c=f.split(" ");for(var p=0;p0&&h.motion=h.sleepThreshold/x&&r.set(h,!0)):h.sleepCounter>0&&(h.sleepCounter-=1)}},r.afterCollisions=function(d){for(var c=r._motionSleepThreshold,x=0;xc&&r.set(v,!1)}}}},r.set=function(d,c){var x=d.isSleeping;c?(d.isSleeping=!0,d.sleepCounter=d.sleepThreshold,d.positionImpulse.x=0,d.positionImpulse.y=0,d.positionPrev.x=d.position.x,d.positionPrev.y=d.position.y,d.anglePrev=d.angle,d.speed=0,d.angularSpeed=0,d.motion=0,x||l.trigger(d,"sleepStart")):(d.isSleeping=!1,d.sleepCounter=0,x&&l.trigger(d,"sleepEnd"))}})()},function(n,s,i){var r={};n.exports=r;var a=i(3),l=i(9);(function(){var f=[],d={overlap:0,axis:null},c={overlap:0,axis:null};r.create=function(x,u){return{pair:null,collided:!1,bodyA:x,bodyB:u,parentA:x.parent,parentB:u.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}},r.collides=function(x,u,o){if(r._overlapAxes(d,x.vertices,u.vertices,x.axes),d.overlap<=0||(r._overlapAxes(c,u.vertices,x.vertices,u.axes),c.overlap<=0))return null;var h=o&&o.table[l.id(x,u)],p;h?p=h.collision:(p=r.create(x,u),p.collided=!0,p.bodyA=x.idie?ie=w:wue?ue=w:wp?p=m:mh.frictionStatic?o.frictionStatic:h.frictionStatic,l.restitution=o.restitution>h.restitution?o.restitution:h.restitution,l.slop=o.slop>h.slop?o.slop:h.slop,f.pair=l,u.length=0;for(var v=0;v0?1:.7),o.damping=o.damping||0,o.angularStiffness=o.angularStiffness||0,o.angleA=o.bodyA?o.bodyA.angle:o.angleA,o.angleB=o.bodyB?o.bodyB.angle:o.angleB,o.plugin={};var m={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return o.length===0&&o.stiffness>.1?(m.type="pin",m.anchors=!1):o.stiffness<.9&&(m.type="spring"),o.render=x.extend(m,o.render),o},r.preSolveAll=function(u){for(var o=0;o=1||u.length===0,b=F?u.stiffness*o:u.stiffness*o*o,S=u.damping*o,B=l.mult(A,E*b),w=(h?h.inverseMass:0)+(p?p.inverseMass:0),D=(h?h.inverseInertia:0)+(p?p.inverseInertia:0),P=w+D,M,I,N,Q,G;if(S>0){var ie=l.create();N=l.div(A,g),G=l.sub(p&&l.sub(p.position,p.positionPrev)||ie,h&&l.sub(h.position,h.positionPrev)||ie),Q=l.dot(N,G)}h&&!h.isStatic&&(I=h.inverseMass/w,h.constraintImpulse.x-=B.x*I,h.constraintImpulse.y-=B.y*I,h.position.x-=B.x*I,h.position.y-=B.y*I,S>0&&(h.positionPrev.x-=S*N.x*Q*I,h.positionPrev.y-=S*N.y*Q*I),M=l.cross(v,B)/P*r._torqueDampen*h.inverseInertia*(1-u.angularStiffness),h.constraintImpulse.angle-=M,h.angle-=M),p&&!p.isStatic&&(I=p.inverseMass/w,p.constraintImpulse.x+=B.x*I,p.constraintImpulse.y+=B.y*I,p.position.x+=B.x*I,p.position.y+=B.y*I,S>0&&(p.positionPrev.x+=S*N.x*Q*I,p.positionPrev.y+=S*N.y*Q*I),M=l.cross(m,B)/P*r._torqueDampen*p.inverseInertia*(1-u.angularStiffness),p.constraintImpulse.angle+=M,p.angle+=M)}}},r.postSolveAll=function(u){for(var o=0;o0&&(m.position.x+=p.x,m.position.y+=p.y),p.angle!==0&&(a.rotate(m.vertices,p.angle,h.position),c.rotate(m.axes,p.angle),v>0&&l.rotateAbout(m.position,p.angle,h.position,m.position)),d.update(m.bounds,m.vertices,h.velocity)}p.angle*=r._warming,p.x*=r._warming,p.y*=r._warming}}},r.pointAWorld=function(u){return{x:(u.bodyA?u.bodyA.position.x:0)+(u.pointA?u.pointA.x:0),y:(u.bodyA?u.bodyA.position.y:0)+(u.pointA?u.pointA.y:0)}},r.pointBWorld=function(u){return{x:(u.bodyB?u.bodyB.position.x:0)+(u.pointB?u.pointB.x:0),y:(u.bodyB?u.bodyB.position.y:0)+(u.pointB?u.pointB.y:0)}}})()},function(n,s,i){var r={};n.exports=r;var a=i(2),l=i(0);(function(){r.fromVertices=function(f){for(var d={},c=0;c0&&a.area(G)1?(g=f.create(l.extend({parts:E.slice(0)},h)),f.setPosition(g,{x,y:u}),g):E[0]}})()},function(n,s,i){var r={};n.exports=r;var a=i(0),l=i(8);(function(){r.create=function(f){var d={bodies:[],pairs:null};return a.extend(d,f)},r.setBodies=function(f,d){f.bodies=d.slice(0)},r.clear=function(f){f.bodies=[]},r.collisions=function(f){var d=[],c=f.pairs,x=f.bodies,u=x.length,o=r.canCollide,h=l.collides,p,v;for(x.sort(r._compareBoundsX),p=0;py)break;if(!(AB.max.y)&&!(E&&(S.isStatic||S.isSleeping))&&o(m.collisionFilter,S.collisionFilter)){var w=S.parts.length;if(b&&w===1){var D=h(m,S,c);D&&d.push(D)}else for(var P=F>1?1:0,M=w>1?1:0,I=P;IB.max.x||C.max.xB.max.y)){var D=h(N,G,c);D&&d.push(D)}}}}}return d},r.canCollide=function(f,d){return f.group===d.group&&f.group!==0?f.group>0:(f.mask&d.category)!==0&&(d.mask&f.category)!==0},r._compareBoundsX=function(f,d){return f.bounds.min.x-d.bounds.min.x}})()},function(n,s,i){var r={};n.exports=r;var a=i(0);(function(){r.create=function(l){var f={};return l||a.log("Mouse.create: element was undefined, defaulting to document.body","warn"),f.element=l||document.body,f.absolute={x:0,y:0},f.position={x:0,y:0},f.mousedownPosition={x:0,y:0},f.mouseupPosition={x:0,y:0},f.offset={x:0,y:0},f.scale={x:1,y:1},f.wheelDelta=0,f.button=-1,f.pixelRatio=parseInt(f.element.getAttribute("data-pixel-ratio"),10)||1,f.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},f.mousemove=function(d){var c=r._getRelativeMousePosition(d,f.element,f.pixelRatio),x=d.changedTouches;x&&(f.button=0,d.preventDefault()),f.absolute.x=c.x,f.absolute.y=c.y,f.position.x=f.absolute.x*f.scale.x+f.offset.x,f.position.y=f.absolute.y*f.scale.y+f.offset.y,f.sourceEvents.mousemove=d},f.mousedown=function(d){var c=r._getRelativeMousePosition(d,f.element,f.pixelRatio),x=d.changedTouches;x?(f.button=0,d.preventDefault()):f.button=d.button,f.absolute.x=c.x,f.absolute.y=c.y,f.position.x=f.absolute.x*f.scale.x+f.offset.x,f.position.y=f.absolute.y*f.scale.y+f.offset.y,f.mousedownPosition.x=f.position.x,f.mousedownPosition.y=f.position.y,f.sourceEvents.mousedown=d},f.mouseup=function(d){var c=r._getRelativeMousePosition(d,f.element,f.pixelRatio),x=d.changedTouches;x&&d.preventDefault(),f.button=-1,f.absolute.x=c.x,f.absolute.y=c.y,f.position.x=f.absolute.x*f.scale.x+f.offset.x,f.position.y=f.absolute.y*f.scale.y+f.offset.y,f.mouseupPosition.x=f.position.x,f.mouseupPosition.y=f.position.y,f.sourceEvents.mouseup=d},f.mousewheel=function(d){f.wheelDelta=Math.max(-1,Math.min(1,d.wheelDelta||-d.detail)),d.preventDefault()},r.setElement(f,f.element),f},r.setElement=function(l,f){l.element=f,f.addEventListener("mousemove",l.mousemove),f.addEventListener("mousedown",l.mousedown),f.addEventListener("mouseup",l.mouseup),f.addEventListener("mousewheel",l.mousewheel),f.addEventListener("DOMMouseScroll",l.mousewheel),f.addEventListener("touchmove",l.mousemove),f.addEventListener("touchstart",l.mousedown),f.addEventListener("touchend",l.mouseup)},r.clearSourceEvents=function(l){l.sourceEvents.mousemove=null,l.sourceEvents.mousedown=null,l.sourceEvents.mouseup=null,l.sourceEvents.mousewheel=null,l.wheelDelta=0},r.setOffset=function(l,f){l.offset.x=f.x,l.offset.y=f.y,l.position.x=l.absolute.x*l.scale.x+l.offset.x,l.position.y=l.absolute.y*l.scale.y+l.offset.y},r.setScale=function(l,f){l.scale.x=f.x,l.scale.y=f.y,l.position.x=l.absolute.x*l.scale.x+l.offset.x,l.position.y=l.absolute.y*l.scale.y+l.offset.y},r._getRelativeMousePosition=function(l,f,d){var c=f.getBoundingClientRect(),x=document.documentElement||document.body.parentNode||document.body,u=window.pageXOffset!==void 0?window.pageXOffset:x.scrollLeft,o=window.pageYOffset!==void 0?window.pageYOffset:x.scrollTop,h=l.changedTouches,p,v;return h?(p=h[0].pageX-c.left-u,v=h[0].pageY-c.top-o):(p=l.pageX-c.left-u,v=l.pageY-c.top-o),{x:p/(f.clientWidth/(f.width||f.clientWidth)*d),y:v/(f.clientHeight/(f.height||f.clientHeight)*d)}}})()},function(n,s,i){var r={};n.exports=r;var a=i(0);(function(){r._registry={},r.register=function(l){if(r.isPlugin(l)||a.warn("Plugin.register:",r.toString(l),"does not implement all required fields."),l.name in r._registry){var f=r._registry[l.name],d=r.versionParse(l.version).number,c=r.versionParse(f.version).number;d>c?(a.warn("Plugin.register:",r.toString(f),"was upgraded to",r.toString(l)),r._registry[l.name]=l):d-1},r.isFor=function(l,f){var d=l.for&&r.dependencyParse(l.for);return!l.for||f.name===d.name&&r.versionSatisfies(f.version,d.range)},r.use=function(l,f){if(l.uses=(l.uses||[]).concat(f||[]),l.uses.length===0){a.warn("Plugin.use:",r.toString(l),"does not specify any dependencies to install.");return}for(var d=r.dependencies(l),c=a.topologicalSort(d),x=[],u=0;u0&&a.info(x.join(" "))},r.dependencies=function(l,f){var d=r.dependencyParse(l),c=d.name;if(f=f||{},!(c in f)){l=r.resolve(l)||l,f[c]=a.map(l.uses||[],function(u){r.isPlugin(u)&&r.register(u);var o=r.dependencyParse(u),h=r.resolve(u);return h&&!r.versionSatisfies(h.version,o.range)?(a.warn("Plugin.dependencies:",r.toString(h),"does not satisfy",r.toString(o),"used by",r.toString(d)+"."),h._warned=!0,l._warned=!0):h||(a.warn("Plugin.dependencies:",r.toString(u),"used by",r.toString(d),"could not be resolved."),l._warned=!0),o.name});for(var x=0;x=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;f.test(l)||a.warn("Plugin.versionParse:",l,"is not a valid version or range.");var d=f.exec(l),c=Number(d[4]),x=Number(d[5]),u=Number(d[6]);return{isRange:!!(d[1]||d[2]),version:d[3],range:l,operator:d[1]||d[2]||"",major:c,minor:x,patch:u,parts:[c,x,u],prerelease:d[7],number:c*1e8+x*1e4+u}},r.versionSatisfies=function(l,f){f=f||"*";var d=r.versionParse(f),c=r.versionParse(l);if(d.isRange){if(d.operator==="*"||l==="*")return!0;if(d.operator===">")return c.number>d.number;if(d.operator===">=")return c.number>=d.number;if(d.operator==="~")return c.major===d.major&&c.minor===d.minor&&c.patch>=d.patch;if(d.operator==="^")return d.major>0?c.major===d.major&&c.number>=d.number:d.minor>0?c.minor===d.minor&&c.patch>=d.patch:c.patch===d.patch}return l===f||l==="*"}})()},function(n,s){var i={};n.exports=i,function(){i.create=function(r){return{vertex:r,normalImpulse:0,tangentImpulse:0}}}()},function(n,s,i){var r={};n.exports=r;var a=i(7),l=i(18),f=i(13),d=i(19),c=i(5),x=i(6),u=i(10),o=i(0),h=i(4);(function(){r.create=function(p){p=p||{};var v={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}},m=o.extend(v,p);return m.world=p.world||x.create({label:"World"}),m.pairs=p.pairs||d.create(),m.detector=p.detector||f.create(),m.grid={buckets:[]},m.world.gravity=m.gravity,m.broadphase=m.grid,m.metrics={},m},r.update=function(p,v){var m=o.now(),C=p.world,y=p.detector,A=p.pairs,g=p.timing,E=g.timestamp,F;v=typeof v<"u"?v:o._baseDelta,v*=g.timeScale,g.timestamp+=v,g.lastDelta=v;var b={timestamp:g.timestamp,delta:v};c.trigger(p,"beforeUpdate",b);var S=x.allBodies(C),B=x.allConstraints(C);for(C.isModified&&(f.setBodies(y,S),x.setModified(C,!1,!1,!0)),p.enableSleeping&&a.update(S,v),r._bodiesApplyGravity(S,p.gravity),v>0&&r._bodiesUpdate(S,v),u.preSolveAll(S),F=0;F0&&c.trigger(p,"collisionStart",{pairs:A.collisionStart});var D=o.clamp(20/p.positionIterations,0,1);for(l.preSolvePosition(A.list),F=0;F0&&c.trigger(p,"collisionActive",{pairs:A.collisionActive}),A.collisionEnd.length>0&&c.trigger(p,"collisionEnd",{pairs:A.collisionEnd}),r._bodiesClearForces(S),c.trigger(p,"afterUpdate",b),p.timing.lastElapsed=o.now()-m,p},r.merge=function(p,v){if(o.extend(p,v),v.world){p.world=v.world,r.clear(p);for(var m=x.allBodies(p.world),C=0;CX?(A=T>0?T:-T,y=F.friction*(T>0?1:-1)*o,y<-A?y=-A:y>A&&(y=A)):(y=T,A=m);var ee=U*M-Ce*P,J=ae*M-L*P,Y=ie/(ue+S.inverseInertia*ee*ee+B.inverseInertia*J*J),K=(1+F.restitution)*R*Y;if(y*=Y,R0&&(_.normalImpulse=0),K=_.normalImpulse-te}if(T<-p||T>p)_.tangentImpulse=0;else{var fe=_.tangentImpulse;_.tangentImpulse+=y,_.tangentImpulse<-A&&(_.tangentImpulse=-A),_.tangentImpulse>A&&(_.tangentImpulse=A),y=_.tangentImpulse-fe}var le=P*K+I*y,de=M*K+N*y;S.isStatic||S.isSleeping||(S.positionPrev.x+=le*S.inverseMass,S.positionPrev.y+=de*S.inverseMass,S.anglePrev+=(U*de-Ce*le)*S.inverseInertia),B.isStatic||B.isSleeping||(B.positionPrev.x-=le*B.inverseMass,B.positionPrev.y-=de*B.inverseMass,B.anglePrev-=(ae*de-L*le)*B.inverseInertia)}}}}})()},function(n,s,i){var r={};n.exports=r;var a=i(9),l=i(0);(function(){r.create=function(f){return l.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},f)},r.update=function(f,d,c){var x=f.list,u=x.length,o=f.table,h=d.length,p=f.collisionStart,v=f.collisionEnd,m=f.collisionActive,C,y,A,g;for(p.length=0,v.length=0,m.length=0,g=0;gS&&(S=D),d.translate(w,{x:P*.5,y:D*.5}),A=w.bounds.max.x+v,a.addBody(y,w),E=w,F+=1}else A+=v}g+=S+m,A=u}return y},r.chain=function(u,o,h,p,v,m){for(var C=u.bodies,y=1;y0)for(y=0;y0&&(E=m[y-1+(C-1)*o],a.addConstraint(u,l.create(f.extend({bodyA:E,bodyB:g},v)))),p&&yS)){E=S-E;var w=E,D=h-1-E;if(!(gD)){b===1&&d.translate(F,{x:(g+(h%2===1?1:-1))*B,y:0});var P=F?g*B:0;return C(u+P+g*v,A,g,E,F,b)}}})},r.newtonsCradle=function(u,o,h,p,v){for(var m=a.create({label:"Newtons Cradle"}),C=0;Cv.bounds.max.x||g.bounds.max.yv.bounds.max.y))){var E=r._getRegion(d,g);if(!g.region||E.id!==g.region.id||u){(!g.region||u)&&(g.region=E);var F=r._regionUnion(E,g.region);for(h=F.startCol;h<=F.endCol;h++)for(p=F.startRow;p<=F.endRow;p++){y=r._getBucketId(h,p),C=m[y];var b=h>=E.startCol&&h<=E.endCol&&p>=E.startRow&&p<=E.endRow,S=h>=g.region.startCol&&h<=g.region.endCol&&p>=g.region.startRow&&p<=g.region.endRow;!b&&S&&S&&C&&r._bucketRemoveBody(d,C,g),(g.region===E||b&&!S||u)&&(C||(C=r._createBucket(m,y)),r._bucketAddBody(d,C,g))}g.region=E,A=!0}}}A&&(d.pairsList=r._createActivePairsList(d))},f(r,"update","Grid.update ➤ replaced by Matter.Detector"),r.clear=function(d){d.buckets={},d.pairs={},d.pairsList=[]},f(r,"clear","Grid.clear ➤ replaced by Matter.Detector"),r._regionUnion=function(d,c){var x=Math.min(d.startCol,c.startCol),u=Math.max(d.endCol,c.endCol),o=Math.min(d.startRow,c.startRow),h=Math.max(d.endRow,c.endRow);return r._createRegion(x,u,o,h)},r._getRegion=function(d,c){var x=c.bounds,u=Math.floor(x.min.x/d.bucketWidth),o=Math.floor(x.max.x/d.bucketWidth),h=Math.floor(x.min.y/d.bucketHeight),p=Math.floor(x.max.y/d.bucketHeight);return r._createRegion(u,o,h,p)},r._createRegion=function(d,c,x,u){return{id:d+","+c+","+x+","+u,startCol:d,endCol:c,startRow:x,endRow:u}},r._getBucketId=function(d,c){return"C"+d+"R"+c},r._createBucket=function(d,c){var x=d[c]=[];return x},r._bucketAddBody=function(d,c,x){var u=d.pairs,o=a.id,h=c.length,p;for(p=0;p0?h.push(c):delete x[u[p]];return h}})()},function(n,s,i){var r={};n.exports=r;var a=i(3),l=i(7),f=i(14),d=i(5),c=i(13),x=i(10),u=i(6),o=i(0),h=i(1);(function(){r.create=function(p,v){var m=(p?p.mouse:null)||(v?v.mouse:null);m||(p&&p.render&&p.render.canvas?m=f.create(p.render.canvas):v&&v.element?m=f.create(v.element):(m=f.create(),o.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var C=x.create({label:"Mouse Constraint",pointA:m.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),y={type:"mouseConstraint",mouse:m,element:null,body:null,constraint:C,collisionFilter:{category:1,mask:4294967295,group:0}},A=o.extend(y,v);return d.on(p,"beforeUpdate",function(){var g=u.allBodies(p.world);r.update(A,g),r._triggerEvents(A)}),A},r.update=function(p,v){var m=p.mouse,C=p.constraint,y=p.body;if(m.button===0){if(C.bodyB)l.set(C.bodyB,!1),C.pointA=m.position;else for(var A=0;A1?1:0;gS.max.x&&(S.max.x=P.x),D.yS.max.y&&(S.max.y=P.y))}var M=S.max.x-S.min.x+2*F.x,I=S.max.y-S.min.y+2*F.y,N=g.canvas.height,Q=g.canvas.width,G=Q/N,ie=M/I,ue=1,H=1;ie>G?H=ie/G:ue=G/ie,g.options.hasBounds=!0,g.bounds.min.x=S.min.x,g.bounds.max.x=S.min.x+M*ue,g.bounds.min.y=S.min.y,g.bounds.max.y=S.min.y+I*H,b&&(g.bounds.min.x+=M*.5-M*ue*.5,g.bounds.max.x+=M*.5-M*ue*.5,g.bounds.min.y+=I*.5-I*H*.5,g.bounds.max.y+=I*.5-I*H*.5),g.bounds.min.x-=F.x,g.bounds.max.x-=F.x,g.bounds.min.y-=F.y,g.bounds.max.y-=F.y,g.mouse&&(u.setScale(g.mouse,{x:(g.bounds.max.x-g.bounds.min.x)/g.canvas.width,y:(g.bounds.max.y-g.bounds.min.y)/g.canvas.height}),u.setOffset(g.mouse,g.bounds.min))},r.startViewTransform=function(g){var E=g.bounds.max.x-g.bounds.min.x,F=g.bounds.max.y-g.bounds.min.y,b=E/g.options.width,S=F/g.options.height;g.context.setTransform(g.options.pixelRatio/b,0,0,g.options.pixelRatio/S,0,0),g.context.translate(-g.bounds.min.x,-g.bounds.min.y)},r.endViewTransform=function(g){g.context.setTransform(g.options.pixelRatio,0,0,g.options.pixelRatio,0,0)},r.world=function(g,E){var F=l.now(),b=g.engine,S=b.world,B=g.canvas,w=g.context,D=g.options,P=g.timing,M=f.allBodies(S),I=f.allConstraints(S),N=D.wireframes?D.wireframeBackground:D.background,Q=[],G=[],ie,ue={timestamp:b.timing.timestamp};if(c.trigger(g,"beforeRender",ue),g.currentBackground!==N&&A(g,N),w.globalCompositeOperation="source-in",w.fillStyle="transparent",w.fillRect(0,0,B.width,B.height),w.globalCompositeOperation="source-over",D.hasBounds){for(ie=0;ie1?1:0;M1?1:0;M1?1:0;w1?1:0;P1?1:0;D1?1:0;D1?1:0;B0)){var N=B.activeContacts[0].vertex.x,Q=B.activeContacts[0].vertex.y;B.activeContacts.length===2&&(N=(B.activeContacts[0].vertex.x+B.activeContacts[1].vertex.x)/2,Q=(B.activeContacts[0].vertex.y+B.activeContacts[1].vertex.y)/2),w.bodyB===w.supports[0].body||w.bodyA.isStatic===!0?b.moveTo(N-w.normal.x*8,Q-w.normal.y*8):b.moveTo(N+w.normal.x*8,Q+w.normal.y*8),b.lineTo(N,Q)}S.wireframes?b.strokeStyle="rgba(255,165,0,0.7)":b.strokeStyle="orange",b.lineWidth=1,b.stroke()},r.separations=function(g,E,F){var b=F,S=g.options,B,w,D,P,M;for(b.beginPath(),M=0;Mu.deltaMax?u.deltaMax:v,u.delta=v);var m={timestamp:p.timestamp};a.trigger(u,"beforeTick",m),u.frameCounter+=1,h-u.counterTimestamp>=1e3&&(u.fps=u.frameCounter*((h-u.counterTimestamp)/1e3),u.counterTimestamp=h,u.frameCounter=0),a.trigger(u,"tick",m),a.trigger(u,"beforeUpdate",m),l.update(o,v),a.trigger(u,"afterUpdate",m),a.trigger(u,"afterTick",m)},r.stop=function(u){c(u.frameRequestId)},r.start=function(u,o){r.run(u,o)}})()},function(n,s,i){var r={};n.exports=r;var a=i(8),l=i(0),f=l.deprecated;(function(){r.collides=function(d,c){return a.collides(d,c)},f(r,"collides","SAT.collides ➤ replaced by Collision.collides")})()},function(n,s,i){var r={};n.exports=r,i(1);var a=i(0);(function(){r.pathToVertices=function(l,f){typeof window<"u"&&!("SVGPathSeg"in window)&&a.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var d,c,x,u,o,h,p,v,m,C,y=[],A,g,E=0,F=0,b=0;f=f||15;var S=function(w,D,P){var M=P%2===1&&P>1;if(!m||w!=m.x||D!=m.y){m&&M?(A=m.x,g=m.y):(A=0,g=0);var I={x:A+w,y:g+D};(M||!m)&&(m=I),y.push(I),F=A+w,b=g+D}},B=function(w){var D=w.pathSegTypeAsLetter.toUpperCase();if(D!=="Z"){switch(D){case"M":case"L":case"T":case"C":case"S":case"Q":F=w.x,b=w.y;break;case"H":F=w.x;break;case"V":b=w.y;break}S(F,b,w.pathSegType)}};for(r._svgPathToAbsolute(l),x=l.getTotalLength(),h=[],d=0;d{const r=$2[e],a=T8[e];return We.Bodies.circle(t,n,r.size*s/2,{isStatic:i,label:String(e),render:{fillStyle:r.color,lineWidth:8,strokeStyle:O8,sprite:{texture:a,xScale:1/3*s,yScale:1/3*s}}})},M8=e=>(console.log(e),9),I8=560/360,_8=e=>e*I8,Hl=(e,t,n)=>{const s=We.Bodies.rectangle(t/2,n,t,30,{isStatic:!0,restitution:1,render:{fillStyle:"#81685A"}}),i=We.Bodies.rectangle(0,n/2,1,n,{isStatic:!0,render:{fillStyle:"#FFFFFF"}}),r=We.Bodies.rectangle(t,n/2,1,n,{isStatic:!0,render:{fillStyle:"#FFFFFF"}}),a=We.Bodies.rectangle(t/2,120,t,2,{isStatic:!0,isSensor:!0,label:"line",render:{fillStyle:"#FF6C6C"}});We.Composite.add(e,[a,s,i,r])},H8=(e,t)=>{const n=Ue(void 0);let s;const i=()=>{s&&(clearInterval(s),s=void 0)};return{count:n,reset:()=>{n.value=void 0,i()},start:()=>{n.value=e,!s&&(s=setInterval(()=>{n.value&&(n.value=n.value-1),n.value===0&&(i(),t())},1e3))}}},L8=e=>{const t=We.Engine.create({gravity:{x:0,y:.4},timing:{timeScale:1.5}}),n=We.Runner.create(),s=new Set;let i=0,r=0,a=1;const l=Ue(0);let f=!1,d,c=0,x=0;const u=Ue(!1),o=Ue(0),h=Ue(0);M0(()=>{var w,D;if(!e.value)return;i=e.value.clientWidth,r=_8(i),a=i/380,x=(w=e.value)==null?void 0:w.getBoundingClientRect().x,l.value=((D=e.value)==null?void 0:D.clientHeight)-r,g(),A();const B=We.Render.create({canvas:e.value,engine:t,options:{wireframes:!1,background:"transparent",width:i,height:r,pixelRatio:window.devicePixelRatio}});Hl(t.world,i,r),We.Render.run(B),We.Runner.run(n,t),e.value.addEventListener("mousemove",P=>{F(P.offsetX)}),e.value.addEventListener("mouseup",()=>{E()}),e.value.addEventListener("touchmove",P=>{var I;const M=P.touches[0].clientX-x;(I=e==null?void 0:e.value)!=null&&I.clientWidth&&M>0&&M{E()})}),We.Events.on(t,"collisionStart",B=>{B.pairs.forEach(w=>{if(w.bodyA.label==="line"||w.bodyB.label==="line"){const M=w.bodyA.label==="line"?w.bodyB.id:w.bodyA.id;C(M)}if(w.bodyA.label!==w.bodyB.label||w.bodyA.label==="removed"||w.bodyB.label==="removed")return;const D=Number(w.bodyA.label);if(D===10)return;w.bodyA.label="removed",w.bodyB.label="removed",h.value=h.value+$2[D].score;const P=_l(D+1,w.collision.supports[0].x,w.collision.supports[0].y,a);We.World.remove(t.world,[w.bodyA,w.bodyB]),We.World.add(t.world,P)})}),We.Events.on(t,"collisionEnd",B=>{B.pairs.forEach(w=>{if(w.bodyA.label==="line"||w.bodyB.label==="line"){const D=w.bodyA.label==="line"?w.bodyB.id:w.bodyA.id;y(D)}})});const{start:p,reset:v}=H8(3,()=>{b()}),m=()=>{if(s.size>0){p();return}v()},C=B=>{s.add(B),m()},y=B=>{s.delete(B),m()},A=()=>{d=_l(o.value,i/2,60,a,!0),f=!1,We.World.add(t.world,d),g()},g=()=>{c+=1,o.value=M8(c)},E=()=>{u.value||!d||f||(f=!0,We.Body.setStatic(d,!1),setTimeout(()=>{A()},1e3))},F=B=>{u.value||!d||f||We.Body.setPosition(d,{x:B,y:60})},b=()=>{u.value=!0};return{replay:()=>{h.value=0,s.clear(),v(),u.value=!1,c=0,We.World.clear(t.world,!1),Hl(t.world,i,r),g(),A()},nextBlockRef:o,groundHeightRef:l,gameOverRef:u,scoreRef:h}},eu="data:image/svg+xml,%3csvg%20width='38'%20height='32'%20viewBox='0%200%2038%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e",N8={class:"flex items-center"},U8=["src"],tu=Ie({__name:"BackButton",setup(e){return(t,n)=>(oe(),he("div",N8,[Z("img",{src:re(eu),alt:"뒤로가기"},null,8,U8)]))}}),V8={class:"flex flex-col items-end w-[90px]"},W8=Z("span",{class:"text-caption-b text-dark-green"}," Player ",-1),j8={class:"text-caption-b"},Q8=Ie({__name:"Player",props:{name:{type:String,default:""}},setup(e){return(t,n)=>(oe(),he("div",V8,[W8,Z("span",j8,Ke(e.name),1)]))}}),Po=q1("user",()=>({nickName:Ue("")})),q8="/assets/play-background-BoRY1Pxb.svg",z8={class:"relative flex-1"},K8={class:"absolute -z-10 top-1/2 -translate-y-1/2 w-full"},Z8=["src"],G8=Ie({__name:"PlayPage",setup(e){const t=Po(),n=Yr(),s=Ue(),{replay:i,nextBlockRef:r,groundHeightRef:a,gameOverRef:l,scoreRef:f}=L8(s);M0(()=>{t.nickName||n.replace("/"),document.body.style.cssText="overflow: hidden; overscroll-behavior: none;"}),jr(()=>{document.body.style.cssText=""});const d=()=>{n.back()},c=()=>{n.push("/rank")};return(x,u)=>(oe(),he(_e,null,[pe(Do,{class:"mt-3"},{left:Ze(()=>[pe(tu,{onClick:d})]),right:Ze(()=>[pe(Q8,{name:re(t).nickName},null,8,["name"])]),default:Ze(()=>[pe(A8,{score:re(f)},null,8,["score"])]),_:1}),Z("div",z8,[Z("div",K8,[Z("img",{class:"m-auto",alt:"background",src:re(q8)},null,8,Z8)]),pe(Nh,{"next-index":re(r),class:"pointer-events-none absolute top-6"},null,8,["next-index"]),Z("canvas",{ref_key:"canvas",ref:s,class:"w-full h-full"},null,512),pe(v8,{height:re(a)},null,8,["height"])]),re(l)?(oe(),Mt(h8,{key:0,score:re(f),nickname:re(t).nickName,onReplay:re(i),onBack:d,onRank:c},null,8,["score","nickname","onReplay"])):at("",!0)],64))}}),nu="/assets/zzio-game-CCL09Za-.svg",J8="/assets/title-beta-Dezxm_b7.svg",ru="/assets/illustration-t2TZ0xN0.svg",Y8="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20style='fill:%20%23489B6D'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='inherit'%20d='M12%202C10.6868%202%209.38642%202.25866%208.17317%202.7612C6.95991%203.26375%205.85752%204.00035%204.92893%204.92893C3.05357%206.8043%202%209.34784%202%2012C2%2016.42%204.87%2020.17%208.84%2021.5C9.34%2021.58%209.5%2021.27%209.5%2021V19.31C6.73%2019.91%206.14%2017.97%206.14%2017.97C5.68%2016.81%205.03%2016.5%205.03%2016.5C4.12%2015.88%205.1%2015.9%205.1%2015.9C6.1%2015.97%206.63%2016.93%206.63%2016.93C7.5%2018.45%208.97%2018%209.54%2017.76C9.63%2017.11%209.89%2016.67%2010.17%2016.42C7.95%2016.17%205.62%2015.31%205.62%2011.5C5.62%2010.39%206%209.5%206.65%208.79C6.55%208.54%206.2%207.5%206.75%206.15C6.75%206.15%207.59%205.88%209.5%207.17C10.29%206.95%2011.15%206.84%2012%206.84C12.85%206.84%2013.71%206.95%2014.5%207.17C16.41%205.88%2017.25%206.15%2017.25%206.15C17.8%207.5%2017.45%208.54%2017.35%208.79C18%209.5%2018.38%2010.39%2018.38%2011.5C18.38%2015.32%2016.04%2016.16%2013.81%2016.41C14.17%2016.72%2014.5%2017.33%2014.5%2018.26V21C14.5%2021.27%2014.66%2021.59%2015.17%2021.5C19.14%2020.16%2022%2016.42%2022%2012C22%2010.6868%2021.7413%209.38642%2021.2388%208.17317C20.7362%206.95991%2019.9997%205.85752%2019.0711%204.92893C18.1425%204.00035%2017.0401%203.26375%2015.8268%202.7612C14.6136%202.25866%2013.3132%202%2012%202Z'/%3e%3c/svg%3e",X8={class:"text-dark-green flex flex-col items-center pb-12 pt-4"},$8={class:"flex items-center gap-1 text-caption-b",href:"https://github.com/zzzi-ori",target:"_blank"},ep=["src"],tp=Z("h3",null,"zzio-game",-1),np=Z("span",{class:"text-caption-r"},"© developers are maybe ok",-1),Oo=Ie({__name:"Footer",setup(e){return(t,n)=>(oe(),he("div",X8,[Z("a",$8,[Z("img",{class:"text-dark-green",src:re(Y8),alt:"github"},null,8,ep),tp]),np]))}}),rp="data:image/svg+xml,%3csvg%20width='55'%20height='22'%20viewBox='0%200%2055%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.95809%201.72925C11.5932%201.69208%2014.0155%201.65407%2015.6513%201.65407C16.7795%201.65407%2017.9096%201.58814%2019.034%201.5156C20.3055%201.43357%2021.6106%201.51164%2022.8836%201.51164C24.1659%201.51164%2025.4435%201.44043%2026.7292%201.44043C29.9809%201.44043%2033.2319%201.48987%2036.4816%201.5789C39.2326%201.65427%2042.0226%201.66875%2044.6357%202.63526C46.4858%203.31952%2048.3613%203.90303%2050.0085%205.00117C50.9551%205.63226%2051.9846%206.40982%2052.6118%207.36708C53.3073%208.42859%2053.3821%209.8471%2053.1815%2011.0505C53.0459%2011.864%2052.6656%2012.6858%2052.3902%2013.4599C52.2596%2013.8272%2052.1021%2014.1492%2051.9155%2014.4886C51.6444%2014.9815%2051.3987%2015.481%2051.1203%2015.9683C50.7634%2016.5928%2050.2688%2017.343%2049.6603%2017.7486C49.2024%2018.0539%2048.6696%2018.2164%2048.1965%2018.4924C47.6444%2018.8145%2046.9121%2019.0579%2046.2974%2019.2283C44.8748%2019.6227%2043.4239%2019.8606%2041.9612%2020.0631C40.1719%2020.3109%2038.3583%2020.2411%2036.5568%2020.2411C34.9588%2020.2411%2033.3596%2020.2221%2031.7617%2020.2411C30.0172%2020.2619%2028.2692%2020.3716%2026.5234%2020.3836C25.5083%2020.3905%2024.5065%2020.6117%2023.4968%2020.7001C22.6192%2020.7769%2021.7303%2020.7396%2020.85%2020.7396C17.4521%2020.7396%2014.1614%2020.3402%2010.8404%2019.616C8.30368%2019.0629%205.74602%2018.2158%203.5448%2016.807C2.48459%2016.1285%201.81672%2015.0333%201.76838%2013.7764C1.65416%2010.8066%201.66275%207.85901%202.83265%205.08821C3.50052%203.50642%205.47022%202.78585%206.9275%202.19214C7.24625%202.06228%207.60611%202.04422%207.94429%201.99432C8.62044%201.89456%209.26937%201.7449%209.95809%201.72925Z'%20fill='%2366BE8B'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.909%2013.1409C23.2956%2013.1409%2024.6932%2013.1463%2025.7989%2012.1634C26.0518%2011.9385%2026.7028%2010.8607%2026.4884%2010.4971C26.202%2010.0113%2024.9009%2010.0517%2024.4714%2010.0416C23.9373%2010.0291%2023.2157%2010.1122%2022.7374%2010.4026C22.1385%2010.7663%2021.8001%2011.168%2021.7289%2011.9356C21.6569%2012.7131%2022.1321%2013.6008%2022.6294%2014.1185C23.2268%2014.7403%2024.2371%2015.4404%2025.1043%2015.4404C26.0964%2015.4404%2027.0415%2015.0405%2028.0217%2015.0405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M29.8217%2010.9404H34.3217'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M32.5217%208.24048C32.5029%208.57958%2032.4041%208.93656%2032.3417%209.27048C32.1679%2010.2009%2032.1066%2011.1439%2031.9817%2012.0805C31.8364%2013.1701%2031.6217%2014.3426%2031.6217%2015.4405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M38.4458%2010.9404C37.8164%2011.0019%2037.2365%2012.1706%2037.133%2012.6759C37.003%2013.3111%2036.8827%2014.3195%2037.4143%2014.8389C37.877%2015.2909%2038.6357%2015.5034%2039.2845%2015.4242C39.7187%2015.3711%2040.5741%2014.6222%2040.7483%2014.2332C41.0389%2013.5843%2041.4228%2012.7137%2040.9567%2012.0397C40.797%2011.8088%2040.5748%2011.5565%2040.3212%2011.4188C40.1812%2011.3429%2039.9542%2011.2938%2039.8523%2011.1695C39.6835%2010.9633%2039.8716%2011.2288%2040.0451%2011.3527C40.5276%2011.6971%2040.9926%2012.051%2041.4672%2012.4062C41.9513%2012.7684%2042.4245%2013.1383%2042.9362%2013.4597C43.0899%2013.5561%2043.2193%2013.6302%2043.3217%2013.7803'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M12.9738%206.44043C12.9354%207.12336%2012.7347%207.78117%2012.7275%208.48097C12.7144%209.74646%2012.7275%2011.0127%2012.7275%2012.2783C12.7275%2013.1657%2013.0217%2015.8278%2013.0217%2014.9404C13.0217%2013.8437%2012.8802%2012.655%2013.5281%2011.731C14.1557%2010.8358%2015.5416%2010.9404%2016.5184%2010.9404C17.5439%2010.9404%2018.9647%2011.3184%2019.0092%2012.5485C19.0297%2013.115%2019.0692%2013.5833%2018.7081%2014.0418C18.1068%2014.8051%2016.9377%2014.8162%2016.0531%2015.0148C15.258%2015.1932%2014.4057%2015.4404%2013.5897%2015.4404'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",sp={class:"text-dark-green mt-6 mb-2"},ip=["src"],op={class:"text-caption-b inline"},ap={class:"text-caption-r text-dark-green list-disc ml-4"},lp=Ie({__name:"Notice",props:{closed:{type:Boolean,default:!1}},setup(e){const t=Se(()=>closed?"운영 종료 안내":"운영 안내"),n=Se(()=>closed?["현재 찌오 게임 베타 버전은 종료 되었으며, 정식 버전은 24.03.24(일) 이후 오픈 예정입니다."]:["베타 버전은 24.03.18 (월) 19시 까지만 시범 운영 예정이며, 정식 버전은 24.03.24 (일) 이후 오픈 예정입니다.","베타 버전이 종료된 이후에는 모든 랭킹이 초기화 됩니다."]);return(s,i)=>(oe(),he(_e,null,[Z("div",sp,[Z("img",{src:re(rp),class:"inline mr-1",alt:"beta"},null,8,ip),Z("h3",op,Ke(t.value),1)]),Z("ul",ap,[(oe(!0),he(_e,null,uo(n.value,r=>(oe(),he("li",{key:r},Ke(r),1))),128))])],64))}}),cp=()=>new Date{s.value=!cp()},1e3);jr(()=>clearInterval(i));const r=()=>{t.push("/play")},a=()=>{t.push("/rank")};return(l,f)=>(oe(),he(_e,null,[Z("div",up,[Z("img",{src:re(nu),alt:"zzio game"},null,8,fp),Z("img",{src:re(J8),alt:"황금 찌오를 찾아라 beta",class:"my-8"},null,8,dp),Z("img",{src:re(ru),alt:"찌오 이미지",class:"mb-6"},null,8,hp),s.value?(oe(),he("div",xp,[pe(q0,{color:"secondary",disabled:!0},{default:Ze(()=>[dt("4월 초 오픈 예정")]),_:1})])):(oe(),he("div",pp,[pe(Rr,{modelValue:re(n).nickName,"onUpdate:modelValue":f[0]||(f[0]=d=>re(n).nickName=d)},null,8,["modelValue"]),pe(q0,{onClick:r,color:"primary",disabled:!re(n).nickName,class:"mt-2"},{default:Ze(()=>[dt("게임 시작")]),_:1},8,["disabled"]),pe(q0,{onClick:a,color:"secondary",disabled:!1,class:"mt-6"},{default:Ze(()=>[dt(" 실시간 랭킹 ")]),_:1})])),pe(lp,{closed:s.value},null,8,["closed"])]),pe(Oo)],64))}}),gp="/assets/rank-DURnOjWp.svg",mp="data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.27295%201.38288C2.72656%201.38288%204.55953%201.24929%205.94683%201.67319C6.16152%201.73879%206.20919%202.32808%206.30971%202.48604C6.64759%203.01699%206.99995%203.63674%207.22417%204.22786C7.6944%205.46757%207.94133%206.84558%208.16765%208.14695C8.25945%208.67479%208.45796%209.35081%208.45796%209.87426'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M8.26127%2013.6484C8.16865%2013.66%208.08112%2013.7385%208%2013.7791'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",Cp={class:"relative border-solid border-2 border-black rounded-lg bg-primary px-4 py-1"},yp={class:"text-body-b"},Ap=["src"],Ep=Ie({__name:"ZLabel",props:{text:{type:String,default:""}},setup(e){return(t,n)=>(oe(),he("div",Cp,[Z("span",yp,Ke(e.text),1),Z("img",{src:re(mp),class:"absolute right-[2px] top-[2px]"},null,8,Ap)]))}}),bp="/assets/medal-zzio-C0E2RPes.svg",Bp="/assets/medal1-BCZWchkN.svg",Fp="data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2252%2020.4625%2012.6416%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1535%2023.3097%2014.4184C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8567%2024.1704%2016.3618%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3163C24.847%2018.8784%2025%2019.4522%2025%2020.0444C25%2020.2445%2024.913%2020.1797%2024.811%2020.0909C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.69%2021.5281%2018.6961C21.1936%2018.7005%2021.1426%2019.2521%2021.0588%2019.5717C20.8524%2020.359%2020.7209%2021.1802%2020.5749%2021.9869C20.5277%2022.248%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6895C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8942%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.174%2019.77%2021.087%2019.7298%2021.0105C19.3458%2020.2799%2018.8508%2019.5357%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9285C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1548C9.88096%2022.2865%209.45315%2023.1384%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1806%207.75245%2020.1839C7.41864%2020.1896%207.06751%2020.2314%206.73911%2020.3027C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5791C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6721C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9953%205.5771%2019.7562%205.70916%2019.5097C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1055C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5371%2014.688%2012.2615C15.7635%2011.9854%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M11%207.4445C11.0533%206.00462%2013.0492%205.82818%2014.0803%206.11689C14.5781%206.25627%2014.9933%206.72901%2015.3491%207.0848C15.9737%207.70949%2016.1343%208.38864%2016.1208%209.25606C16.1081%2010.0653%2015.7485%2010.8814%2015.2183%2011.4796C14.8644%2011.8789%2014.4805%2012.2684%2014.0313%2012.5587C13.545%2012.8729%2012.8888%2013.2083%2012.3243%2013.3337C12.1671%2013.3686%2011.5016%2013.6629%2011.6409%2013.713C12.6555%2014.0783%2013.7368%2014.2927%2014.7735%2014.5861C15.3355%2014.7451%2015.8982%2014.8825%2016.4739%2014.9785'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",wp="/assets/medal3-CLOTJF2t.svg",Sp="data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2253%2020.4625%2012.6417%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1536%2023.3097%2014.4185C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8568%2024.1704%2016.3619%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3164C24.847%2018.8784%2025%2019.4522%2025%2020.0445C25%2020.2446%2024.913%2020.1797%2024.811%2020.091C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.6901%2021.5281%2018.6961C21.1936%2018.7006%2021.1426%2019.2521%2021.0588%2019.5718C20.8524%2020.3591%2020.7209%2021.1802%2020.5749%2021.987C20.5277%2022.2481%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6896C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8943%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.1741%2019.77%2021.087%2019.7298%2021.0106C19.3458%2020.2799%2018.8508%2019.5358%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9286C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1549C9.88096%2022.2865%209.45315%2023.1385%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1807%207.75245%2020.184C7.41864%2020.1896%207.06751%2020.2315%206.73911%2020.3028C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5792C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6722C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9954%205.5771%2019.7562%205.70916%2019.5098C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1056C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5372%2014.688%2012.2616C15.7635%2011.9855%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23D88F4B'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M19.668%2012.6527C18.6089%2012.6066%2017.5663%2012.389%2016.5097%2012.3135C14.7245%2012.186%2012.9339%2011.9495%2011.1389%2012.0646C11.1233%2012.0656%2010.5327%2012.1373%2010.5476%2012.0552C10.5843%2011.8534%2010.7626%2011.5724%2010.8495%2011.3862C11.4861%2010.0219%2012.3305%208.72783%2013.3264%207.59615C13.6097%207.27421%2013.8747%206.9252%2014.2039%206.64708C14.3214%206.54779%2014.6786%206.18033%2014.8387%206.18033C14.8687%206.18033%2014.8413%206.30049%2014.8387%206.31102C14.8005%206.46356%2014.793%206.61388%2014.8076%206.77155C14.8898%207.66205%2015.2584%208.51072%2015.3677%209.40405C15.4721%2010.2575%2015.5897%2011.1052%2015.6664%2011.9619C15.714%2012.4938%2015.8375%2013.0301%2015.8593%2013.5613C15.8791%2014.0425%2015.9713%2014.5257%2015.9713%2015.0051'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",Dp={class:"min-w-14"},kp={key:0},Rp=["src"],Pp=["src"],Op=["src"],Tp=["src"],Mp={class:"flex-1 text-caption-b"},Ip={class:"flex text-body-b"},_p={class:"pr-1"},Hp=["src"],Lp=Ie({__name:"Rank",props:{item:{type:Object}},setup(e){const t=e,n=Se(()=>{var i;return t!=null&&t.item&&((i=t.item)==null?void 0:i.rank)<=4?"highlight":"normal"}),s=Xr(["flex w-full text-body-b py-2"],{variants:{type:{highlight:"rounded-lg bg-white mt-1 border-2 pl-2 pr-4",normal:"border-b-solid border-b-2 last:border-b-0 border-b-dark-green px-4"}}});return(i,r)=>{var a,l,f,d,c,x,u,o,h;return oe(),he("div",{class:h0(re(s)({type:n.value}))},[Z("div",Dp,[(a=e.item)!=null&&a.rank&&((l=e.item)==null?void 0:l.rank)>4?(oe(),he("span",kp,Ke((f=e.item)==null?void 0:f.rank),1)):((d=e.item)==null?void 0:d.rank)===1?(oe(),he("img",{key:1,src:re(Bp),alt:"1st"},null,8,Rp)):((c=e.item)==null?void 0:c.rank)===2?(oe(),he("img",{key:2,src:re(Fp),alt:"1st"},null,8,Pp)):((x=e.item)==null?void 0:x.rank)===3?(oe(),he("img",{key:3,src:re(wp),alt:"1st"},null,8,Op)):((u=e.item)==null?void 0:u.rank)===4?(oe(),he("img",{key:4,src:re(Sp),alt:"1st"},null,8,Tp)):at("",!0)]),Z("span",Mp,Ke((o=e.item)==null?void 0:o.nickName),1),Z("div",Ip,[Z("span",_p,Ke((h=e.item)==null?void 0:h.score),1),Z("img",{src:re(S2),alt:"코인"},null,8,Hp)])],2)}}}),Np=Ie({__name:"RankList",props:{list:{type:Object}},setup(e){return(t,n)=>(oe(),he("div",null,[(oe(!0),he(_e,null,uo(e.list,s=>(oe(),Mt(Lp,{item:s,key:s==null?void 0:s.rank},null,8,["item"]))),128))]))}}),Up=async e=>(await So.get("/rank",{params:e})).data,Vp=()=>{const e=Date.now();return md({queryKey:["rank"],queryFn:({pageParam:t})=>Up({pageNumber:t,dateTime:e}),initialPageParam:0,getNextPageParam:t=>t.nextPageNumber})},Wp="data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_694_3918)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.5%2044C29.6717%2044%2034.6316%2041.9455%2038.2886%2038.2886C41.9455%2034.6316%2044%2029.6717%2044%2024.5C44%2019.3283%2041.9455%2014.3684%2038.2886%2010.7114C34.6316%207.05446%2029.6717%205%2024.5%205C19.3283%205%2014.3684%207.05446%2010.7114%2010.7114C7.05446%2014.3684%205%2019.3283%205%2024.5C5%2029.6717%207.05446%2034.6316%2010.7114%2038.2886C14.3684%2041.9455%2019.3283%2044%2024.5%2044ZM24.5%2048.5C30.8652%2048.5%2036.9697%2045.9714%2041.4706%2041.4706C45.9714%2036.9697%2048.5%2030.8652%2048.5%2024.5C48.5%2018.1348%2045.9714%2012.0303%2041.4706%207.52944C36.9697%203.02856%2030.8652%200.5%2024.5%200.5C18.1348%200.5%2012.0303%203.02856%207.52944%207.52944C3.02856%2012.0303%200.5%2018.1348%200.5%2024.5C0.5%2030.8652%203.02856%2036.9697%207.52944%2041.4706C12.0303%2045.9714%2018.1348%2048.5%2024.5%2048.5ZM27.5%2033.5C27.5%2034.2957%2027.1839%2035.0587%2026.6213%2035.6213C26.0587%2036.1839%2025.2956%2036.5%2024.5%2036.5C23.7044%2036.5%2022.9413%2036.1839%2022.3787%2035.6213C21.8161%2035.0587%2021.5%2034.2957%2021.5%2033.5C21.5%2032.7043%2021.8161%2031.9413%2022.3787%2031.3787C22.9413%2030.8161%2023.7044%2030.5%2024.5%2030.5C25.2956%2030.5%2026.0587%2030.8161%2026.6213%2031.3787C27.1839%2031.9413%2027.5%2032.7043%2027.5%2033.5ZM26.75%2014.75C26.75%2014.1533%2026.5129%2013.581%2026.091%2013.159C25.669%2012.7371%2025.0967%2012.5%2024.5%2012.5C23.9033%2012.5%2023.331%2012.7371%2022.909%2013.159C22.4871%2013.581%2022.25%2014.1533%2022.25%2014.75V25.25C22.25%2025.8467%2022.4871%2026.419%2022.909%2026.841C23.331%2027.2629%2023.9033%2027.5%2024.5%2027.5C25.0967%2027.5%2025.669%2027.2629%2026.091%2026.841C26.5129%2026.419%2026.75%2025.8467%2026.75%2025.25V14.75Z'%20fill='%23489B6D'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_694_3918'%3e%3crect%20width='48'%20height='48'%20fill='white'%20transform='translate(0.5%200.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",jp={},Qp={class:"loader"};function qp(e,t){return oe(),he("span",Qp)}const zp=I0(jp,[["render",qp],["__scopeId","data-v-f80639eb"]]),Kp={class:"fixed w-full flex flex-col items-center bg-light-green z-10"},Zp=["src"],Gp={key:0,class:"text-body-b mt-6 mb-4 text-dark-green"},Jp={key:0,class:"w-full h-full flex flex-col items-center justify-center text-dark-green"},Yp=["src"],Xp=Z("span",{class:"text-body-b mb-1 mt-4"},"앗! 아직 참여한 사람이 없찌오",-1),$p=Z("span",{class:"text-caption-r"},"지금 플레이해서 1등을 차지하세요!",-1),e6={key:1,class:"w-full pt-2 px-6"},t6={class:"flex flex-col items-center mb-6"},n6=["src"],r6={class:"flex items-center justify-center h-8"},s6=["src"],i6=300,o6=Ie({__name:"RankPage",setup(e){const t=Yr(),{data:n,fetchNextPage:s,isFetching:i}=Vp(),r=Ue(null);M0(()=>{document.body.style.cssText="overflow: hidden; overscroll-behavior: none;"}),jr(()=>{document.body.style.cssText=""});const a=Se(()=>{var h;return n?(h=n.value)==null?void 0:h.pages.map(p=>p.rankList??[]).flat():[]}),l=Se(()=>{var h;return(h=n.value)==null?void 0:h.pages[0].totalCount}),f=Se(()=>{var h,p;return(p=(h=n.value)==null?void 0:h.pages[0].rankList[0])==null?void 0:p.nickName}),d=Ue(!1),c=()=>{t.back()};let x=!1;const u=()=>{if(!r.value)return;const{offsetHeight:h,scrollTop:p,scrollHeight:v}=r.value;d.value=p!==0;const m=h+p>v-i6;m&&!x&&(s(),x=!0),m||(x=!1)},o=()=>{r.value&&r.value.scrollTo({top:0,behavior:"smooth"})};return(h,p)=>{var v;return oe(),he(_e,null,[Z("div",Kp,[pe(Do,{class:"w-full"},{left:Ze(()=>[pe(tu,{onClick:c})]),default:Ze(()=>[Z("img",{src:re(gp),alt:"명예의 찌오당"},null,8,Zp)]),_:1}),l.value?(oe(),he("span",Gp,Ke(l.value)+"명의 찌오가 함께했찌오 ",1)):at("",!0)]),Z("div",{ref_key:"container",ref:r,onScroll:u,class:"h-full pt-32 overflow-y-scroll hide-scroll"},[((v=a.value)==null?void 0:v.length)===0?(oe(),he("div",Jp,[Z("img",{src:re(Wp),alt:"error"},null,8,Yp),Xp,$p])):(oe(),he("div",e6,[Z("div",t6,[f.value?(oe(),Mt(Ep,{key:0,text:f.value},null,8,["text"])):at("",!0),Z("img",{src:re(bp),class:"mt-2",alt:"찌오"},null,8,n6)]),pe(Np,{list:a.value},null,8,["list"]),Z("div",r6,[re(i)?(oe(),Mt(zp,{key:0})):at("",!0)]),pe(Oo)])),d.value?(oe(),Mt(Ni,{key:2,class:"absolute right-6 bottom-6",onClick:o},{default:Ze(()=>[Z("img",{src:re(eu),alt:"위로가기",class:"rotate-90"},null,8,s6)]),_:1})):at("",!0)],544)],64)}}}),a6="/assets/title-DWHbXsBD.svg",l6="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2011.3335C8.18889%2011.3335%208.34733%2011.2695%208.47533%2011.1415C8.60333%2011.0135%208.66711%2010.8553%208.66667%2010.6668V8.00016C8.66667%207.81127%208.60267%207.65305%208.47467%207.5255C8.34667%207.39794%208.18844%207.33394%208%207.3335C7.81111%207.3335%207.65289%207.3975%207.52533%207.5255C7.39778%207.6535%207.33378%207.81172%207.33333%208.00016V10.6668C7.33333%2010.8557%207.39733%2011.0142%207.52533%2011.1422C7.65333%2011.2702%207.81155%2011.3339%208%2011.3335ZM8%206.00016C8.18889%206.00016%208.34733%205.93616%208.47533%205.80816C8.60333%205.68016%208.66711%205.52194%208.66667%205.3335C8.66667%205.14461%208.60267%204.98639%208.47467%204.85883C8.34667%204.73127%208.18844%204.66727%208%204.66683C7.81111%204.66683%207.65289%204.73083%207.52533%204.85883C7.39778%204.98683%207.33378%205.14505%207.33333%205.3335C7.33333%205.52239%207.39733%205.68083%207.52533%205.80883C7.65333%205.93683%207.81155%206.00061%208%206.00016ZM8%2014.6668C7.07778%2014.6668%206.21111%2014.4917%205.4%2014.1415C4.58889%2013.7913%203.88333%2013.3164%203.28333%2012.7168C2.68333%2012.1168%202.20844%2011.4113%201.85867%2010.6002C1.50889%209.78905%201.33378%208.92239%201.33333%208.00016C1.33333%207.07794%201.50844%206.21127%201.85867%205.40016C2.20889%204.58905%202.68378%203.8835%203.28333%203.2835C3.88333%202.6835%204.58889%202.20861%205.4%201.85883C6.21111%201.50905%207.07778%201.33394%208%201.3335C8.92222%201.3335%209.78889%201.50861%2010.6%201.85883C11.4111%202.20905%2012.1167%202.68394%2012.7167%203.2835C13.3167%203.8835%2013.7918%204.58905%2014.142%205.40016C14.4922%206.21127%2014.6671%207.07794%2014.6667%208.00016C14.6667%208.92239%2014.4916%209.78905%2014.1413%2010.6002C13.7911%2011.4113%2013.3162%2012.1168%2012.7167%2012.7168C12.1167%2013.3168%2011.4111%2013.7919%2010.6%2014.1422C9.78889%2014.4924%208.92222%2014.6673%208%2014.6668Z'%20fill='%23489B6D'/%3e%3c/svg%3e",c6="/assets/event-Duj73pHB.svg",u6={class:"text-dark-green mt-6 mb-2"},f6=["src"],d6=Z("h3",{class:"text-caption-b inline"},"운영 안내",-1),h6={class:"text-caption-r text-dark-green list-disc ml-4"},x6=Ie({__name:"Notice",props:{closed:{type:Boolean,default:!1}},setup(e){const t=e,n=Se(()=>t.closed?["현재 찌오 게임 이벤트는 종료 되었으며, 당첨자는 4월 26일 (금) 이후 찌오 인스타그램 (@zzzi_ori)에서 확인하실 수 있습니다.","찌오 게임은 언제든 자유롭게 플레이 가능하나, 실시간 랭킹은 확인하실 수 없습니다."]:["이벤트는 4월 19일 (금) 23시 59분까지 참여 가능하며, 종료 이후에도 찌오 게임을 언제든 플레이할 수 있습니다.","실시간 랭킹은 이벤트 종료와 동시에 확인이 불가합니다.","자세한 내용은 이벤트 페이지 또는 찌오 인스타그램 (@zzzi_ori)에서 확인하세요."]);return(s,i)=>(oe(),he(_e,null,[Z("div",u6,[Z("img",{src:re(c6),class:"inline mr-1",alt:"beta"},null,8,f6),d6]),Z("ul",h6,[(oe(!0),he(_e,null,uo(n.value,r=>(oe(),he("li",{key:r},Ke(r),1))),128))])],64))}}),p6="/assets/event-white-BVCXPOMU.svg",v6={key:0,class:"w-full bg-green border-y-2 border-white text-white text-body-b flex justify-center items-center gap-2 py-1.5"},g6=["src"],m6=Z("span",null,"이벤트 종료까지",-1),C6={key:0},y6={key:1},A6=Ie({__name:"Counter",props:{target:{type:Date,default:new Date},current:{type:Date,default:new Date}},setup(e){const t=e,n=Se(()=>t.target.getTime()-t.current.getTime()),s=Se(()=>Math.ceil(n.value/(1e3*60*60*24))),i=Se(()=>{const r=String(Math.floor(n.value/36e5)%24).padStart(2,"0"),a=String(Math.floor(n.value/(1e3*60))%60).padStart(2,"0"),l=String(Math.floor(n.value/1e3)%60).padStart(2,"0");return`${r}:${a}:${l}`});return(r,a)=>n.value>0?(oe(),he("div",v6,[Z("img",{src:re(p6),alt:"event"},null,8,g6),m6,s.value>1?(oe(),he("span",C6,"D-"+Ke(s.value),1)):(oe(),he("span",y6,Ke(i.value),1))])):at("",!0)}}),E6={href:"https://www.instagram.com/zzzi_ori",target:"_blank"},b6={class:"flex flex-col flex-1 items-center px-6"},B6=["src"],F6=["src"],w6=["src"],S6={class:"w-full flex text-caption-r text-dark-green mb-2"},D6=["src"],k6=Ie({__name:"DevHomePage",setup(e){const t=Yr(),n=Po(),s=Ue(new Date),i=Se(()=>a(s.value)),r=new Date("2024-04-05T23:59:59+09:00"),a=d=>d{const d=setInterval(()=>{s.value=new Date},1e3);return()=>clearInterval(d)});const l=()=>{t.push("/play")},f=()=>{t.push("/rank")};return(d,c)=>(oe(),he(_e,null,[Z("a",E6,[pe(A6,{target:re(r),current:s.value,class:"mt-3"},null,8,["target","current"])]),Z("div",b6,[Z("img",{src:re(nu),alt:"zzio game",class:"mt-6"},null,8,B6),Z("img",{src:re(a6),alt:"황금 찌오를 찾아라 beta",class:"my-3"},null,8,F6),Z("img",{src:re(ru),alt:"찌오 이미지",class:"mb-6"},null,8,w6),Z("div",S6,[Z("img",{src:re(l6),alt:"info",class:"mr-[2px]"},null,8,D6),Z("span",null,Ke(i.value?"랭킹에 올라갈 ":"")+"닉네임을 8자 이내로 적으찌오",1)]),pe(Rr,{modelValue:re(n).nickName,"onUpdate:modelValue":c[0]||(c[0]=x=>re(n).nickName=x)},null,8,["modelValue"]),pe(q0,{onClick:l,color:"primary",disabled:!re(n).nickName,class:"mt-2"},{default:Ze(()=>[dt("게임 시작")]),_:1},8,["disabled"]),i.value?(oe(),Mt(q0,{key:0,onClick:f,color:"secondary",disabled:!1,class:"mt-6"},{default:Ze(()=>[dt(" 실시간 랭킹 ")]),_:1})):at("",!0),pe(x6,{closed:!i.value},null,8,["closed"])]),pe(Oo)],64))}}),R6=[{path:"/",component:vp},{path:"/play",component:G8},{path:"/rank",component:o6},{path:"/dev",component:k6}],P6=Ch({history:Gd("/"),routes:R6}),O6=N1(),is=I1(Fh);is.use(O6);is.use(P6);is.use(vd);is.mount("#app"); -//# sourceMappingURL=index-D3-QFJZT.js.map + */(function(e,t){(function(s,i){e.exports=i()})(me,function(){return function(n){var s={};function i(r){if(s[r])return s[r].exports;var a=s[r]={i:r,l:!1,exports:{}};return n[r].call(a.exports,a,a.exports,i),a.l=!0,a.exports}return i.m=n,i.c=s,i.d=function(r,a,l){i.o(r,a)||Object.defineProperty(r,a,{enumerable:!0,get:l})},i.r=function(r){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},i.t=function(r,a){if(a&1&&(r=i(r)),a&8||a&4&&typeof r=="object"&&r&&r.__esModule)return r;var l=Object.create(null);if(i.r(l),Object.defineProperty(l,"default",{enumerable:!0,value:r}),a&2&&typeof r!="string")for(var f in r)i.d(l,f,(function(d){return r[d]}).bind(null,f));return l},i.n=function(r){var a=r&&r.__esModule?function(){return r.default}:function(){return r};return i.d(a,"a",a),a},i.o=function(r,a){return Object.prototype.hasOwnProperty.call(r,a)},i.p="",i(i.s=20)}([function(n,s){var i={};n.exports=i,function(){i._baseDelta=1e3/60,i._nextId=0,i._seed=0,i._nowStartTime=+new Date,i._warnedOnce={},i._decomp=null,i.extend=function(a,l){var f,d;typeof l=="boolean"?(f=2,d=l):(f=1,d=!0);for(var c=f;c0;l--){var f=Math.floor(i.random()*(l+1)),d=a[l];a[l]=a[f],a[f]=d}return a},i.choose=function(a){return a[Math.floor(i.random()*a.length)]},i.isElement=function(a){return typeof HTMLElement<"u"?a instanceof HTMLElement:!!(a&&a.nodeType&&a.nodeName)},i.isArray=function(a){return Object.prototype.toString.call(a)==="[object Array]"},i.isFunction=function(a){return typeof a=="function"},i.isPlainObject=function(a){return typeof a=="object"&&a.constructor===Object},i.isString=function(a){return toString.call(a)==="[object String]"},i.clamp=function(a,l,f){return af?f:a},i.sign=function(a){return a<0?-1:1},i.now=function(){if(typeof window<"u"&&window.performance){if(window.performance.now)return window.performance.now();if(window.performance.webkitNow)return window.performance.webkitNow()}return Date.now?Date.now():new Date-i._nowStartTime},i.random=function(a,l){return a=typeof a<"u"?a:0,l=typeof l<"u"?l:1,a+r()*(l-a)};var r=function(){return i._seed=(i._seed*9301+49297)%233280,i._seed/233280};i.colorToNumber=function(a){return a=a.replace("#",""),a.length==3&&(a=a.charAt(0)+a.charAt(0)+a.charAt(1)+a.charAt(1)+a.charAt(2)+a.charAt(2)),parseInt(a,16)},i.logLevel=1,i.log=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.log.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.info=function(){console&&i.logLevel>0&&i.logLevel<=2&&console.info.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.warn=function(){console&&i.logLevel>0&&i.logLevel<=3&&console.warn.apply(console,["matter-js:"].concat(Array.prototype.slice.call(arguments)))},i.warnOnce=function(){var a=Array.prototype.slice.call(arguments).join(" ");i._warnedOnce[a]||(i.warn(a),i._warnedOnce[a]=!0)},i.deprecated=function(a,l,f){a[l]=i.chain(function(){i.warnOnce("🔅 deprecated 🔅",f)},a[l])},i.nextId=function(){return i._nextId++},i.indexOf=function(a,l){if(a.indexOf)return a.indexOf(l);for(var f=0;fr.max.x&&(r.max.x=d.x),d.xr.max.y&&(r.max.y=d.y),d.y0?r.max.x+=l.x:r.min.x+=l.x,l.y>0?r.max.y+=l.y:r.min.y+=l.y)},i.contains=function(r,a){return a.x>=r.min.x&&a.x<=r.max.x&&a.y>=r.min.y&&a.y<=r.max.y},i.overlaps=function(r,a){return r.min.x<=a.max.x&&r.max.x>=a.min.x&&r.max.y>=a.min.y&&r.min.y<=a.max.y},i.translate=function(r,a){r.min.x+=a.x,r.max.x+=a.x,r.min.y+=a.y,r.max.y+=a.y},i.shift=function(r,a){var l=r.max.x-r.min.x,f=r.max.y-r.min.y;r.min.x=a.x,r.max.x=a.x+l,r.min.y=a.y,r.max.y=a.y+f}}()},function(n,s){var i={};n.exports=i,function(){i.create=function(r,a){return{x:r||0,y:a||0}},i.clone=function(r){return{x:r.x,y:r.y}},i.magnitude=function(r){return Math.sqrt(r.x*r.x+r.y*r.y)},i.magnitudeSquared=function(r){return r.x*r.x+r.y*r.y},i.rotate=function(r,a,l){var f=Math.cos(a),d=Math.sin(a);l||(l={});var c=r.x*f-r.y*d;return l.y=r.x*d+r.y*f,l.x=c,l},i.rotateAbout=function(r,a,l,f){var d=Math.cos(a),c=Math.sin(a);f||(f={});var x=l.x+((r.x-l.x)*d-(r.y-l.y)*c);return f.y=l.y+((r.x-l.x)*c+(r.y-l.y)*d),f.x=x,f},i.normalise=function(r){var a=i.magnitude(r);return a===0?{x:0,y:0}:{x:r.x/a,y:r.y/a}},i.dot=function(r,a){return r.x*a.x+r.y*a.y},i.cross=function(r,a){return r.x*a.y-r.y*a.x},i.cross3=function(r,a,l){return(a.x-r.x)*(l.y-r.y)-(a.y-r.y)*(l.x-r.x)},i.add=function(r,a,l){return l||(l={}),l.x=r.x+a.x,l.y=r.y+a.y,l},i.sub=function(r,a,l){return l||(l={}),l.x=r.x-a.x,l.y=r.y-a.y,l},i.mult=function(r,a){return{x:r.x*a,y:r.y*a}},i.div=function(r,a){return{x:r.x/a,y:r.y/a}},i.perp=function(r,a){return a=a===!0?-1:1,{x:a*-r.y,y:a*r.x}},i.neg=function(r){return{x:-r.x,y:-r.y}},i.angle=function(r,a){return Math.atan2(a.y-r.y,a.x-r.x)},i._temp=[i.create(),i.create(),i.create(),i.create(),i.create(),i.create()]}()},function(n,s,i){var r={};n.exports=r;var a=i(2),l=i(0);(function(){r.create=function(f,d){for(var c=[],x=0;x0)return!1;o=h}return!0},r.scale=function(f,d,c,x){if(d===1&&c===1)return f;x=x||r.centre(f);for(var u,o,h=0;h=0?h-1:f.length-1],v=f[h],m=f[(h+1)%f.length],C=d[h0&&(d|=2),d===3)return!1;return d!==0?!0:null},r.hull=function(f){var d=[],c=[],x,u;for(f=f.slice(0),f.sort(function(o,h){var p=o.x-h.x;return p!==0?p:o.y-h.y}),u=0;u=2&&a.cross3(c[c.length-2],c[c.length-1],x)<=0;)c.pop();c.push(x)}for(u=f.length-1;u>=0;u-=1){for(x=f[u];d.length>=2&&a.cross3(d[d.length-2],d[d.length-1],x)<=0;)d.pop();d.push(x)}return d.pop(),c.pop(),d.concat(c)}})()},function(n,s,i){var r={};n.exports=r;var a=i(3),l=i(2),f=i(7),d=i(0),c=i(1),x=i(11);(function(){r._timeCorrection=!0,r._inertiaScale=4,r._nextCollidingGroupId=1,r._nextNonCollidingGroupId=-1,r._nextCategory=1,r._baseDelta=1e3/60,r.create=function(o){var h={id:d.nextId(),type:"body",label:"Body",parts:[],plugin:{},angle:0,vertices:a.fromPath("L 0 0 L 40 0 L 40 40 L 0 40"),position:{x:0,y:0},force:{x:0,y:0},torque:0,positionImpulse:{x:0,y:0},constraintImpulse:{x:0,y:0,angle:0},totalContacts:0,speed:0,angularSpeed:0,velocity:{x:0,y:0},angularVelocity:0,isSensor:!1,isStatic:!1,isSleeping:!1,motion:0,sleepThreshold:60,density:.001,restitution:0,friction:.1,frictionStatic:.5,frictionAir:.01,collisionFilter:{category:1,mask:4294967295,group:0},slop:.05,timeScale:1,render:{visible:!0,opacity:1,strokeStyle:null,fillStyle:null,lineWidth:null,sprite:{xScale:1,yScale:1,xOffset:0,yOffset:0}},events:null,bounds:null,chamfer:null,circleRadius:0,positionPrev:null,anglePrev:0,parent:null,axes:null,area:0,mass:0,inertia:0,deltaTime:16.666666666666668,_original:null},p=d.extend(h,o);return u(p,o),p},r.nextGroup=function(o){return o?r._nextNonCollidingGroupId--:r._nextCollidingGroupId++},r.nextCategory=function(){return r._nextCategory=r._nextCategory<<1,r._nextCategory};var u=function(o,h){h=h||{},r.set(o,{bounds:o.bounds||c.create(o.vertices),positionPrev:o.positionPrev||l.clone(o.position),anglePrev:o.anglePrev||o.angle,vertices:o.vertices,parts:o.parts||[o],isStatic:o.isStatic,isSleeping:o.isSleeping,parent:o.parent||o}),a.rotate(o.vertices,o.angle,o.position),x.rotate(o.axes,o.angle),c.update(o.bounds,o.vertices,o.velocity),r.set(o,{axes:h.axes||o.axes,area:h.area||o.area,mass:h.mass||o.mass,inertia:h.inertia||o.inertia});var p=o.isStatic?"#14151f":d.choose(["#f19648","#f5d259","#f55a3c","#063e7b","#ececd1"]),v=o.isStatic?"#555":"#ccc",m=o.isStatic&&o.render.fillStyle===null?1:0;o.render.fillStyle=o.render.fillStyle||p,o.render.strokeStyle=o.render.strokeStyle||v,o.render.lineWidth=o.render.lineWidth||m,o.render.sprite.xOffset+=-(o.bounds.min.x-o.position.x)/(o.bounds.max.x-o.bounds.min.x),o.render.sprite.yOffset+=-(o.bounds.min.y-o.position.y)/(o.bounds.max.y-o.bounds.min.y)};r.set=function(o,h,p){var v;typeof h=="string"&&(v=h,h={},h[v]=p);for(v in h)if(Object.prototype.hasOwnProperty.call(h,v))switch(p=h[v],v){case"isStatic":r.setStatic(o,p);break;case"isSleeping":f.set(o,p);break;case"mass":r.setMass(o,p);break;case"density":r.setDensity(o,p);break;case"inertia":r.setInertia(o,p);break;case"vertices":r.setVertices(o,p);break;case"position":r.setPosition(o,p);break;case"angle":r.setAngle(o,p);break;case"velocity":r.setVelocity(o,p);break;case"angularVelocity":r.setAngularVelocity(o,p);break;case"speed":r.setSpeed(o,p);break;case"angularSpeed":r.setAngularSpeed(o,p);break;case"parts":r.setParts(o,p);break;case"centre":r.setCentre(o,p);break;default:o[v]=p}},r.setStatic=function(o,h){for(var p=0;p0&&l.rotateAbout(C.position,v,o.position,C.position)}},r.setVelocity=function(o,h){var p=o.deltaTime/r._baseDelta;o.positionPrev.x=o.position.x-h.x*p,o.positionPrev.y=o.position.y-h.y*p,o.velocity.x=(o.position.x-o.positionPrev.x)/p,o.velocity.y=(o.position.y-o.positionPrev.y)/p,o.speed=l.magnitude(o.velocity)},r.getVelocity=function(o){var h=r._baseDelta/o.deltaTime;return{x:(o.position.x-o.positionPrev.x)*h,y:(o.position.y-o.positionPrev.y)*h}},r.getSpeed=function(o){return l.magnitude(r.getVelocity(o))},r.setSpeed=function(o,h){r.setVelocity(o,l.mult(l.normalise(r.getVelocity(o)),h))},r.setAngularVelocity=function(o,h){var p=o.deltaTime/r._baseDelta;o.anglePrev=o.angle-h*p,o.angularVelocity=(o.angle-o.anglePrev)/p,o.angularSpeed=Math.abs(o.angularVelocity)},r.getAngularVelocity=function(o){return(o.angle-o.anglePrev)*r._baseDelta/o.deltaTime},r.getAngularSpeed=function(o){return Math.abs(r.getAngularVelocity(o))},r.setAngularSpeed=function(o,h){r.setAngularVelocity(o,d.sign(r.getAngularVelocity(o))*h)},r.translate=function(o,h,p){r.setPosition(o,l.add(o.position,h),p)},r.rotate=function(o,h,p,v){if(!p)r.setAngle(o,o.angle+h,v);else{var m=Math.cos(h),C=Math.sin(h),y=o.position.x-p.x,A=o.position.y-p.y;r.setPosition(o,{x:p.x+(y*m-A*C),y:p.y+(y*C+A*m)},v),r.setAngle(o,o.angle+h,v)}},r.scale=function(o,h,p,v){var m=0,C=0;v=v||o.position;for(var y=0;y0&&(m+=A.area,C+=A.inertia),A.position.x=v.x+(A.position.x-v.x)*h,A.position.y=v.y+(A.position.y-v.y)*p,c.update(A.bounds,A.vertices,o.velocity)}o.parts.length>1&&(o.area=m,o.isStatic||(r.setMass(o,o.density*m),r.setInertia(o,C))),o.circleRadius&&(h===p?o.circleRadius*=h:o.circleRadius=null)},r.update=function(o,h){h=(typeof h<"u"?h:1e3/60)*o.timeScale;var p=h*h,v=r._timeCorrection?h/(o.deltaTime||h):1,m=1-o.frictionAir*(h/d._baseDelta),C=(o.position.x-o.positionPrev.x)*v,y=(o.position.y-o.positionPrev.y)*v;o.velocity.x=C*m+o.force.x/o.mass*p,o.velocity.y=y*m+o.force.y/o.mass*p,o.positionPrev.x=o.position.x,o.positionPrev.y=o.position.y,o.position.x+=o.velocity.x,o.position.y+=o.velocity.y,o.deltaTime=h,o.angularVelocity=(o.angle-o.anglePrev)*m*v+o.torque/o.inertia*p,o.anglePrev=o.angle,o.angle+=o.angularVelocity;for(var A=0;A0&&(g.position.x+=o.velocity.x,g.position.y+=o.velocity.y),o.angularVelocity!==0&&(a.rotate(g.vertices,o.angularVelocity,o.position),x.rotate(g.axes,o.angularVelocity),A>0&&l.rotateAbout(g.position,o.angularVelocity,o.position,g.position)),c.update(g.bounds,g.vertices,o.velocity)}},r.updateVelocities=function(o){var h=r._baseDelta/o.deltaTime,p=o.velocity;p.x=(o.position.x-o.positionPrev.x)*h,p.y=(o.position.y-o.positionPrev.y)*h,o.speed=Math.sqrt(p.x*p.x+p.y*p.y),o.angularVelocity=(o.angle-o.anglePrev)*h,o.angularSpeed=Math.abs(o.angularVelocity)},r.applyForce=function(o,h,p){var v={x:h.x-o.position.x,y:h.y-o.position.y};o.force.x+=p.x,o.force.y+=p.y,o.torque+=v.x*p.y-v.y*p.x},r._totalProperties=function(o){for(var h={mass:0,area:0,inertia:0,centre:{x:0,y:0}},p=o.parts.length===1?0:1;p0){d||(d={}),c=f.split(" ");for(var p=0;p0&&h.motion=h.sleepThreshold/x&&r.set(h,!0)):h.sleepCounter>0&&(h.sleepCounter-=1)}},r.afterCollisions=function(d){for(var c=r._motionSleepThreshold,x=0;xc&&r.set(v,!1)}}}},r.set=function(d,c){var x=d.isSleeping;c?(d.isSleeping=!0,d.sleepCounter=d.sleepThreshold,d.positionImpulse.x=0,d.positionImpulse.y=0,d.positionPrev.x=d.position.x,d.positionPrev.y=d.position.y,d.anglePrev=d.angle,d.speed=0,d.angularSpeed=0,d.motion=0,x||l.trigger(d,"sleepStart")):(d.isSleeping=!1,d.sleepCounter=0,x&&l.trigger(d,"sleepEnd"))}})()},function(n,s,i){var r={};n.exports=r;var a=i(3),l=i(9);(function(){var f=[],d={overlap:0,axis:null},c={overlap:0,axis:null};r.create=function(x,u){return{pair:null,collided:!1,bodyA:x,bodyB:u,parentA:x.parent,parentB:u.parent,depth:0,normal:{x:0,y:0},tangent:{x:0,y:0},penetration:{x:0,y:0},supports:[]}},r.collides=function(x,u,o){if(r._overlapAxes(d,x.vertices,u.vertices,x.axes),d.overlap<=0||(r._overlapAxes(c,u.vertices,x.vertices,u.axes),c.overlap<=0))return null;var h=o&&o.table[l.id(x,u)],p;h?p=h.collision:(p=r.create(x,u),p.collided=!0,p.bodyA=x.idie?ie=w:wue?ue=w:wp?p=m:mh.frictionStatic?o.frictionStatic:h.frictionStatic,l.restitution=o.restitution>h.restitution?o.restitution:h.restitution,l.slop=o.slop>h.slop?o.slop:h.slop,f.pair=l,u.length=0;for(var v=0;v0?1:.7),o.damping=o.damping||0,o.angularStiffness=o.angularStiffness||0,o.angleA=o.bodyA?o.bodyA.angle:o.angleA,o.angleB=o.bodyB?o.bodyB.angle:o.angleB,o.plugin={};var m={visible:!0,lineWidth:2,strokeStyle:"#ffffff",type:"line",anchors:!0};return o.length===0&&o.stiffness>.1?(m.type="pin",m.anchors=!1):o.stiffness<.9&&(m.type="spring"),o.render=x.extend(m,o.render),o},r.preSolveAll=function(u){for(var o=0;o=1||u.length===0,b=F?u.stiffness*o:u.stiffness*o*o,S=u.damping*o,B=l.mult(A,E*b),w=(h?h.inverseMass:0)+(p?p.inverseMass:0),D=(h?h.inverseInertia:0)+(p?p.inverseInertia:0),P=w+D,M,I,N,Q,G;if(S>0){var ie=l.create();N=l.div(A,g),G=l.sub(p&&l.sub(p.position,p.positionPrev)||ie,h&&l.sub(h.position,h.positionPrev)||ie),Q=l.dot(N,G)}h&&!h.isStatic&&(I=h.inverseMass/w,h.constraintImpulse.x-=B.x*I,h.constraintImpulse.y-=B.y*I,h.position.x-=B.x*I,h.position.y-=B.y*I,S>0&&(h.positionPrev.x-=S*N.x*Q*I,h.positionPrev.y-=S*N.y*Q*I),M=l.cross(v,B)/P*r._torqueDampen*h.inverseInertia*(1-u.angularStiffness),h.constraintImpulse.angle-=M,h.angle-=M),p&&!p.isStatic&&(I=p.inverseMass/w,p.constraintImpulse.x+=B.x*I,p.constraintImpulse.y+=B.y*I,p.position.x+=B.x*I,p.position.y+=B.y*I,S>0&&(p.positionPrev.x+=S*N.x*Q*I,p.positionPrev.y+=S*N.y*Q*I),M=l.cross(m,B)/P*r._torqueDampen*p.inverseInertia*(1-u.angularStiffness),p.constraintImpulse.angle+=M,p.angle+=M)}}},r.postSolveAll=function(u){for(var o=0;o0&&(m.position.x+=p.x,m.position.y+=p.y),p.angle!==0&&(a.rotate(m.vertices,p.angle,h.position),c.rotate(m.axes,p.angle),v>0&&l.rotateAbout(m.position,p.angle,h.position,m.position)),d.update(m.bounds,m.vertices,h.velocity)}p.angle*=r._warming,p.x*=r._warming,p.y*=r._warming}}},r.pointAWorld=function(u){return{x:(u.bodyA?u.bodyA.position.x:0)+(u.pointA?u.pointA.x:0),y:(u.bodyA?u.bodyA.position.y:0)+(u.pointA?u.pointA.y:0)}},r.pointBWorld=function(u){return{x:(u.bodyB?u.bodyB.position.x:0)+(u.pointB?u.pointB.x:0),y:(u.bodyB?u.bodyB.position.y:0)+(u.pointB?u.pointB.y:0)}}})()},function(n,s,i){var r={};n.exports=r;var a=i(2),l=i(0);(function(){r.fromVertices=function(f){for(var d={},c=0;c0&&a.area(G)1?(g=f.create(l.extend({parts:E.slice(0)},h)),f.setPosition(g,{x,y:u}),g):E[0]}})()},function(n,s,i){var r={};n.exports=r;var a=i(0),l=i(8);(function(){r.create=function(f){var d={bodies:[],pairs:null};return a.extend(d,f)},r.setBodies=function(f,d){f.bodies=d.slice(0)},r.clear=function(f){f.bodies=[]},r.collisions=function(f){var d=[],c=f.pairs,x=f.bodies,u=x.length,o=r.canCollide,h=l.collides,p,v;for(x.sort(r._compareBoundsX),p=0;py)break;if(!(AB.max.y)&&!(E&&(S.isStatic||S.isSleeping))&&o(m.collisionFilter,S.collisionFilter)){var w=S.parts.length;if(b&&w===1){var D=h(m,S,c);D&&d.push(D)}else for(var P=F>1?1:0,M=w>1?1:0,I=P;IB.max.x||C.max.xB.max.y)){var D=h(N,G,c);D&&d.push(D)}}}}}return d},r.canCollide=function(f,d){return f.group===d.group&&f.group!==0?f.group>0:(f.mask&d.category)!==0&&(d.mask&f.category)!==0},r._compareBoundsX=function(f,d){return f.bounds.min.x-d.bounds.min.x}})()},function(n,s,i){var r={};n.exports=r;var a=i(0);(function(){r.create=function(l){var f={};return l||a.log("Mouse.create: element was undefined, defaulting to document.body","warn"),f.element=l||document.body,f.absolute={x:0,y:0},f.position={x:0,y:0},f.mousedownPosition={x:0,y:0},f.mouseupPosition={x:0,y:0},f.offset={x:0,y:0},f.scale={x:1,y:1},f.wheelDelta=0,f.button=-1,f.pixelRatio=parseInt(f.element.getAttribute("data-pixel-ratio"),10)||1,f.sourceEvents={mousemove:null,mousedown:null,mouseup:null,mousewheel:null},f.mousemove=function(d){var c=r._getRelativeMousePosition(d,f.element,f.pixelRatio),x=d.changedTouches;x&&(f.button=0,d.preventDefault()),f.absolute.x=c.x,f.absolute.y=c.y,f.position.x=f.absolute.x*f.scale.x+f.offset.x,f.position.y=f.absolute.y*f.scale.y+f.offset.y,f.sourceEvents.mousemove=d},f.mousedown=function(d){var c=r._getRelativeMousePosition(d,f.element,f.pixelRatio),x=d.changedTouches;x?(f.button=0,d.preventDefault()):f.button=d.button,f.absolute.x=c.x,f.absolute.y=c.y,f.position.x=f.absolute.x*f.scale.x+f.offset.x,f.position.y=f.absolute.y*f.scale.y+f.offset.y,f.mousedownPosition.x=f.position.x,f.mousedownPosition.y=f.position.y,f.sourceEvents.mousedown=d},f.mouseup=function(d){var c=r._getRelativeMousePosition(d,f.element,f.pixelRatio),x=d.changedTouches;x&&d.preventDefault(),f.button=-1,f.absolute.x=c.x,f.absolute.y=c.y,f.position.x=f.absolute.x*f.scale.x+f.offset.x,f.position.y=f.absolute.y*f.scale.y+f.offset.y,f.mouseupPosition.x=f.position.x,f.mouseupPosition.y=f.position.y,f.sourceEvents.mouseup=d},f.mousewheel=function(d){f.wheelDelta=Math.max(-1,Math.min(1,d.wheelDelta||-d.detail)),d.preventDefault()},r.setElement(f,f.element),f},r.setElement=function(l,f){l.element=f,f.addEventListener("mousemove",l.mousemove),f.addEventListener("mousedown",l.mousedown),f.addEventListener("mouseup",l.mouseup),f.addEventListener("mousewheel",l.mousewheel),f.addEventListener("DOMMouseScroll",l.mousewheel),f.addEventListener("touchmove",l.mousemove),f.addEventListener("touchstart",l.mousedown),f.addEventListener("touchend",l.mouseup)},r.clearSourceEvents=function(l){l.sourceEvents.mousemove=null,l.sourceEvents.mousedown=null,l.sourceEvents.mouseup=null,l.sourceEvents.mousewheel=null,l.wheelDelta=0},r.setOffset=function(l,f){l.offset.x=f.x,l.offset.y=f.y,l.position.x=l.absolute.x*l.scale.x+l.offset.x,l.position.y=l.absolute.y*l.scale.y+l.offset.y},r.setScale=function(l,f){l.scale.x=f.x,l.scale.y=f.y,l.position.x=l.absolute.x*l.scale.x+l.offset.x,l.position.y=l.absolute.y*l.scale.y+l.offset.y},r._getRelativeMousePosition=function(l,f,d){var c=f.getBoundingClientRect(),x=document.documentElement||document.body.parentNode||document.body,u=window.pageXOffset!==void 0?window.pageXOffset:x.scrollLeft,o=window.pageYOffset!==void 0?window.pageYOffset:x.scrollTop,h=l.changedTouches,p,v;return h?(p=h[0].pageX-c.left-u,v=h[0].pageY-c.top-o):(p=l.pageX-c.left-u,v=l.pageY-c.top-o),{x:p/(f.clientWidth/(f.width||f.clientWidth)*d),y:v/(f.clientHeight/(f.height||f.clientHeight)*d)}}})()},function(n,s,i){var r={};n.exports=r;var a=i(0);(function(){r._registry={},r.register=function(l){if(r.isPlugin(l)||a.warn("Plugin.register:",r.toString(l),"does not implement all required fields."),l.name in r._registry){var f=r._registry[l.name],d=r.versionParse(l.version).number,c=r.versionParse(f.version).number;d>c?(a.warn("Plugin.register:",r.toString(f),"was upgraded to",r.toString(l)),r._registry[l.name]=l):d-1},r.isFor=function(l,f){var d=l.for&&r.dependencyParse(l.for);return!l.for||f.name===d.name&&r.versionSatisfies(f.version,d.range)},r.use=function(l,f){if(l.uses=(l.uses||[]).concat(f||[]),l.uses.length===0){a.warn("Plugin.use:",r.toString(l),"does not specify any dependencies to install.");return}for(var d=r.dependencies(l),c=a.topologicalSort(d),x=[],u=0;u0&&a.info(x.join(" "))},r.dependencies=function(l,f){var d=r.dependencyParse(l),c=d.name;if(f=f||{},!(c in f)){l=r.resolve(l)||l,f[c]=a.map(l.uses||[],function(u){r.isPlugin(u)&&r.register(u);var o=r.dependencyParse(u),h=r.resolve(u);return h&&!r.versionSatisfies(h.version,o.range)?(a.warn("Plugin.dependencies:",r.toString(h),"does not satisfy",r.toString(o),"used by",r.toString(d)+"."),h._warned=!0,l._warned=!0):h||(a.warn("Plugin.dependencies:",r.toString(u),"used by",r.toString(d),"could not be resolved."),l._warned=!0),o.name});for(var x=0;x=|>)?\s*((\d+)\.(\d+)\.(\d+))(-[0-9A-Za-z-+]+)?$/;f.test(l)||a.warn("Plugin.versionParse:",l,"is not a valid version or range.");var d=f.exec(l),c=Number(d[4]),x=Number(d[5]),u=Number(d[6]);return{isRange:!!(d[1]||d[2]),version:d[3],range:l,operator:d[1]||d[2]||"",major:c,minor:x,patch:u,parts:[c,x,u],prerelease:d[7],number:c*1e8+x*1e4+u}},r.versionSatisfies=function(l,f){f=f||"*";var d=r.versionParse(f),c=r.versionParse(l);if(d.isRange){if(d.operator==="*"||l==="*")return!0;if(d.operator===">")return c.number>d.number;if(d.operator===">=")return c.number>=d.number;if(d.operator==="~")return c.major===d.major&&c.minor===d.minor&&c.patch>=d.patch;if(d.operator==="^")return d.major>0?c.major===d.major&&c.number>=d.number:d.minor>0?c.minor===d.minor&&c.patch>=d.patch:c.patch===d.patch}return l===f||l==="*"}})()},function(n,s){var i={};n.exports=i,function(){i.create=function(r){return{vertex:r,normalImpulse:0,tangentImpulse:0}}}()},function(n,s,i){var r={};n.exports=r;var a=i(7),l=i(18),f=i(13),d=i(19),c=i(5),x=i(6),u=i(10),o=i(0),h=i(4);(function(){r.create=function(p){p=p||{};var v={positionIterations:6,velocityIterations:4,constraintIterations:2,enableSleeping:!1,events:[],plugin:{},gravity:{x:0,y:1,scale:.001},timing:{timestamp:0,timeScale:1,lastDelta:0,lastElapsed:0}},m=o.extend(v,p);return m.world=p.world||x.create({label:"World"}),m.pairs=p.pairs||d.create(),m.detector=p.detector||f.create(),m.grid={buckets:[]},m.world.gravity=m.gravity,m.broadphase=m.grid,m.metrics={},m},r.update=function(p,v){var m=o.now(),C=p.world,y=p.detector,A=p.pairs,g=p.timing,E=g.timestamp,F;v=typeof v<"u"?v:o._baseDelta,v*=g.timeScale,g.timestamp+=v,g.lastDelta=v;var b={timestamp:g.timestamp,delta:v};c.trigger(p,"beforeUpdate",b);var S=x.allBodies(C),B=x.allConstraints(C);for(C.isModified&&(f.setBodies(y,S),x.setModified(C,!1,!1,!0)),p.enableSleeping&&a.update(S,v),r._bodiesApplyGravity(S,p.gravity),v>0&&r._bodiesUpdate(S,v),u.preSolveAll(S),F=0;F0&&c.trigger(p,"collisionStart",{pairs:A.collisionStart});var D=o.clamp(20/p.positionIterations,0,1);for(l.preSolvePosition(A.list),F=0;F0&&c.trigger(p,"collisionActive",{pairs:A.collisionActive}),A.collisionEnd.length>0&&c.trigger(p,"collisionEnd",{pairs:A.collisionEnd}),r._bodiesClearForces(S),c.trigger(p,"afterUpdate",b),p.timing.lastElapsed=o.now()-m,p},r.merge=function(p,v){if(o.extend(p,v),v.world){p.world=v.world,r.clear(p);for(var m=x.allBodies(p.world),C=0;CX?(A=T>0?T:-T,y=F.friction*(T>0?1:-1)*o,y<-A?y=-A:y>A&&(y=A)):(y=T,A=m);var ee=U*M-Ce*P,J=ae*M-L*P,Y=ie/(ue+S.inverseInertia*ee*ee+B.inverseInertia*J*J),K=(1+F.restitution)*R*Y;if(y*=Y,R0&&(_.normalImpulse=0),K=_.normalImpulse-te}if(T<-p||T>p)_.tangentImpulse=0;else{var fe=_.tangentImpulse;_.tangentImpulse+=y,_.tangentImpulse<-A&&(_.tangentImpulse=-A),_.tangentImpulse>A&&(_.tangentImpulse=A),y=_.tangentImpulse-fe}var le=P*K+I*y,de=M*K+N*y;S.isStatic||S.isSleeping||(S.positionPrev.x+=le*S.inverseMass,S.positionPrev.y+=de*S.inverseMass,S.anglePrev+=(U*de-Ce*le)*S.inverseInertia),B.isStatic||B.isSleeping||(B.positionPrev.x-=le*B.inverseMass,B.positionPrev.y-=de*B.inverseMass,B.anglePrev-=(ae*de-L*le)*B.inverseInertia)}}}}})()},function(n,s,i){var r={};n.exports=r;var a=i(9),l=i(0);(function(){r.create=function(f){return l.extend({table:{},list:[],collisionStart:[],collisionActive:[],collisionEnd:[]},f)},r.update=function(f,d,c){var x=f.list,u=x.length,o=f.table,h=d.length,p=f.collisionStart,v=f.collisionEnd,m=f.collisionActive,C,y,A,g;for(p.length=0,v.length=0,m.length=0,g=0;gS&&(S=D),d.translate(w,{x:P*.5,y:D*.5}),A=w.bounds.max.x+v,a.addBody(y,w),E=w,F+=1}else A+=v}g+=S+m,A=u}return y},r.chain=function(u,o,h,p,v,m){for(var C=u.bodies,y=1;y0)for(y=0;y0&&(E=m[y-1+(C-1)*o],a.addConstraint(u,l.create(f.extend({bodyA:E,bodyB:g},v)))),p&&yS)){E=S-E;var w=E,D=h-1-E;if(!(gD)){b===1&&d.translate(F,{x:(g+(h%2===1?1:-1))*B,y:0});var P=F?g*B:0;return C(u+P+g*v,A,g,E,F,b)}}})},r.newtonsCradle=function(u,o,h,p,v){for(var m=a.create({label:"Newtons Cradle"}),C=0;Cv.bounds.max.x||g.bounds.max.yv.bounds.max.y))){var E=r._getRegion(d,g);if(!g.region||E.id!==g.region.id||u){(!g.region||u)&&(g.region=E);var F=r._regionUnion(E,g.region);for(h=F.startCol;h<=F.endCol;h++)for(p=F.startRow;p<=F.endRow;p++){y=r._getBucketId(h,p),C=m[y];var b=h>=E.startCol&&h<=E.endCol&&p>=E.startRow&&p<=E.endRow,S=h>=g.region.startCol&&h<=g.region.endCol&&p>=g.region.startRow&&p<=g.region.endRow;!b&&S&&S&&C&&r._bucketRemoveBody(d,C,g),(g.region===E||b&&!S||u)&&(C||(C=r._createBucket(m,y)),r._bucketAddBody(d,C,g))}g.region=E,A=!0}}}A&&(d.pairsList=r._createActivePairsList(d))},f(r,"update","Grid.update ➤ replaced by Matter.Detector"),r.clear=function(d){d.buckets={},d.pairs={},d.pairsList=[]},f(r,"clear","Grid.clear ➤ replaced by Matter.Detector"),r._regionUnion=function(d,c){var x=Math.min(d.startCol,c.startCol),u=Math.max(d.endCol,c.endCol),o=Math.min(d.startRow,c.startRow),h=Math.max(d.endRow,c.endRow);return r._createRegion(x,u,o,h)},r._getRegion=function(d,c){var x=c.bounds,u=Math.floor(x.min.x/d.bucketWidth),o=Math.floor(x.max.x/d.bucketWidth),h=Math.floor(x.min.y/d.bucketHeight),p=Math.floor(x.max.y/d.bucketHeight);return r._createRegion(u,o,h,p)},r._createRegion=function(d,c,x,u){return{id:d+","+c+","+x+","+u,startCol:d,endCol:c,startRow:x,endRow:u}},r._getBucketId=function(d,c){return"C"+d+"R"+c},r._createBucket=function(d,c){var x=d[c]=[];return x},r._bucketAddBody=function(d,c,x){var u=d.pairs,o=a.id,h=c.length,p;for(p=0;p0?h.push(c):delete x[u[p]];return h}})()},function(n,s,i){var r={};n.exports=r;var a=i(3),l=i(7),f=i(14),d=i(5),c=i(13),x=i(10),u=i(6),o=i(0),h=i(1);(function(){r.create=function(p,v){var m=(p?p.mouse:null)||(v?v.mouse:null);m||(p&&p.render&&p.render.canvas?m=f.create(p.render.canvas):v&&v.element?m=f.create(v.element):(m=f.create(),o.warn("MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected")));var C=x.create({label:"Mouse Constraint",pointA:m.position,pointB:{x:0,y:0},length:.01,stiffness:.1,angularStiffness:1,render:{strokeStyle:"#90EE90",lineWidth:3}}),y={type:"mouseConstraint",mouse:m,element:null,body:null,constraint:C,collisionFilter:{category:1,mask:4294967295,group:0}},A=o.extend(y,v);return d.on(p,"beforeUpdate",function(){var g=u.allBodies(p.world);r.update(A,g),r._triggerEvents(A)}),A},r.update=function(p,v){var m=p.mouse,C=p.constraint,y=p.body;if(m.button===0){if(C.bodyB)l.set(C.bodyB,!1),C.pointA=m.position;else for(var A=0;A1?1:0;gS.max.x&&(S.max.x=P.x),D.yS.max.y&&(S.max.y=P.y))}var M=S.max.x-S.min.x+2*F.x,I=S.max.y-S.min.y+2*F.y,N=g.canvas.height,Q=g.canvas.width,G=Q/N,ie=M/I,ue=1,H=1;ie>G?H=ie/G:ue=G/ie,g.options.hasBounds=!0,g.bounds.min.x=S.min.x,g.bounds.max.x=S.min.x+M*ue,g.bounds.min.y=S.min.y,g.bounds.max.y=S.min.y+I*H,b&&(g.bounds.min.x+=M*.5-M*ue*.5,g.bounds.max.x+=M*.5-M*ue*.5,g.bounds.min.y+=I*.5-I*H*.5,g.bounds.max.y+=I*.5-I*H*.5),g.bounds.min.x-=F.x,g.bounds.max.x-=F.x,g.bounds.min.y-=F.y,g.bounds.max.y-=F.y,g.mouse&&(u.setScale(g.mouse,{x:(g.bounds.max.x-g.bounds.min.x)/g.canvas.width,y:(g.bounds.max.y-g.bounds.min.y)/g.canvas.height}),u.setOffset(g.mouse,g.bounds.min))},r.startViewTransform=function(g){var E=g.bounds.max.x-g.bounds.min.x,F=g.bounds.max.y-g.bounds.min.y,b=E/g.options.width,S=F/g.options.height;g.context.setTransform(g.options.pixelRatio/b,0,0,g.options.pixelRatio/S,0,0),g.context.translate(-g.bounds.min.x,-g.bounds.min.y)},r.endViewTransform=function(g){g.context.setTransform(g.options.pixelRatio,0,0,g.options.pixelRatio,0,0)},r.world=function(g,E){var F=l.now(),b=g.engine,S=b.world,B=g.canvas,w=g.context,D=g.options,P=g.timing,M=f.allBodies(S),I=f.allConstraints(S),N=D.wireframes?D.wireframeBackground:D.background,Q=[],G=[],ie,ue={timestamp:b.timing.timestamp};if(c.trigger(g,"beforeRender",ue),g.currentBackground!==N&&A(g,N),w.globalCompositeOperation="source-in",w.fillStyle="transparent",w.fillRect(0,0,B.width,B.height),w.globalCompositeOperation="source-over",D.hasBounds){for(ie=0;ie1?1:0;M1?1:0;M1?1:0;w1?1:0;P1?1:0;D1?1:0;D1?1:0;B0)){var N=B.activeContacts[0].vertex.x,Q=B.activeContacts[0].vertex.y;B.activeContacts.length===2&&(N=(B.activeContacts[0].vertex.x+B.activeContacts[1].vertex.x)/2,Q=(B.activeContacts[0].vertex.y+B.activeContacts[1].vertex.y)/2),w.bodyB===w.supports[0].body||w.bodyA.isStatic===!0?b.moveTo(N-w.normal.x*8,Q-w.normal.y*8):b.moveTo(N+w.normal.x*8,Q+w.normal.y*8),b.lineTo(N,Q)}S.wireframes?b.strokeStyle="rgba(255,165,0,0.7)":b.strokeStyle="orange",b.lineWidth=1,b.stroke()},r.separations=function(g,E,F){var b=F,S=g.options,B,w,D,P,M;for(b.beginPath(),M=0;Mu.deltaMax?u.deltaMax:v,u.delta=v);var m={timestamp:p.timestamp};a.trigger(u,"beforeTick",m),u.frameCounter+=1,h-u.counterTimestamp>=1e3&&(u.fps=u.frameCounter*((h-u.counterTimestamp)/1e3),u.counterTimestamp=h,u.frameCounter=0),a.trigger(u,"tick",m),a.trigger(u,"beforeUpdate",m),l.update(o,v),a.trigger(u,"afterUpdate",m),a.trigger(u,"afterTick",m)},r.stop=function(u){c(u.frameRequestId)},r.start=function(u,o){r.run(u,o)}})()},function(n,s,i){var r={};n.exports=r;var a=i(8),l=i(0),f=l.deprecated;(function(){r.collides=function(d,c){return a.collides(d,c)},f(r,"collides","SAT.collides ➤ replaced by Collision.collides")})()},function(n,s,i){var r={};n.exports=r,i(1);var a=i(0);(function(){r.pathToVertices=function(l,f){typeof window<"u"&&!("SVGPathSeg"in window)&&a.warn("Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.");var d,c,x,u,o,h,p,v,m,C,y=[],A,g,E=0,F=0,b=0;f=f||15;var S=function(w,D,P){var M=P%2===1&&P>1;if(!m||w!=m.x||D!=m.y){m&&M?(A=m.x,g=m.y):(A=0,g=0);var I={x:A+w,y:g+D};(M||!m)&&(m=I),y.push(I),F=A+w,b=g+D}},B=function(w){var D=w.pathSegTypeAsLetter.toUpperCase();if(D!=="Z"){switch(D){case"M":case"L":case"T":case"C":case"S":case"Q":F=w.x,b=w.y;break;case"H":F=w.x;break;case"V":b=w.y;break}S(F,b,w.pathSegType)}};for(r._svgPathToAbsolute(l),x=l.getTotalLength(),h=[],d=0;d{const r=$2[e],a=T8[e];return We.Bodies.circle(t,n,r.size*s/2,{isStatic:i,label:String(e),render:{fillStyle:r.color,lineWidth:8,strokeStyle:O8,sprite:{texture:a,xScale:1/3*s,yScale:1/3*s}}})},M8=e=>(console.log(e),9),I8=560/360,_8=e=>e*I8,Hl=(e,t,n)=>{const s=We.Bodies.rectangle(t/2,n,t,30,{isStatic:!0,restitution:1,render:{fillStyle:"#81685A"}}),i=We.Bodies.rectangle(0,n/2,1,n,{isStatic:!0,render:{fillStyle:"#FFFFFF"}}),r=We.Bodies.rectangle(t,n/2,1,n,{isStatic:!0,render:{fillStyle:"#FFFFFF"}}),a=We.Bodies.rectangle(t/2,120,t,2,{isStatic:!0,isSensor:!0,label:"line",render:{fillStyle:"#FF6C6C"}});We.Composite.add(e,[a,s,i,r])},H8=(e,t)=>{const n=Ue(void 0);let s;const i=()=>{s&&(clearInterval(s),s=void 0)};return{count:n,reset:()=>{n.value=void 0,i()},start:()=>{n.value=e,!s&&(s=setInterval(()=>{n.value&&(n.value=n.value-1),n.value===0&&(i(),t())},1e3))}}},L8=e=>{const t=We.Engine.create({gravity:{x:0,y:.4},timing:{timeScale:1.5}}),n=We.Runner.create(),s=new Set;let i=0,r=0,a=1;const l=Ue(0);let f=!1,d,c=0,x=0;const u=Ue(!1),o=Ue(0),h=Ue(0);M0(()=>{var w,D;if(!e.value)return;i=e.value.clientWidth,r=_8(i),a=i/380,x=(w=e.value)==null?void 0:w.getBoundingClientRect().x,l.value=((D=e.value)==null?void 0:D.clientHeight)-r,g(),A();const B=We.Render.create({canvas:e.value,engine:t,options:{wireframes:!1,background:"transparent",width:i,height:r,pixelRatio:window.devicePixelRatio}});Hl(t.world,i,r),We.Render.run(B),We.Runner.run(n,t),e.value.addEventListener("mousemove",P=>{F(P.offsetX)}),e.value.addEventListener("mouseup",()=>{E()}),e.value.addEventListener("touchmove",P=>{var I;const M=P.touches[0].clientX-x;(I=e==null?void 0:e.value)!=null&&I.clientWidth&&M>0&&M{E()})}),We.Events.on(t,"collisionStart",B=>{B.pairs.forEach(w=>{if(w.bodyA.label==="line"||w.bodyB.label==="line"){const M=w.bodyA.label==="line"?w.bodyB.id:w.bodyA.id;C(M)}if(w.bodyA.label!==w.bodyB.label||w.bodyA.label==="removed"||w.bodyB.label==="removed")return;const D=Number(w.bodyA.label);if(D===10)return;w.bodyA.label="removed",w.bodyB.label="removed",h.value=h.value+$2[D].score;const P=_l(D+1,w.collision.supports[0].x,w.collision.supports[0].y,a);We.World.remove(t.world,[w.bodyA,w.bodyB]),We.World.add(t.world,P)})}),We.Events.on(t,"collisionEnd",B=>{B.pairs.forEach(w=>{if(w.bodyA.label==="line"||w.bodyB.label==="line"){const D=w.bodyA.label==="line"?w.bodyB.id:w.bodyA.id;y(D)}})});const{start:p,reset:v}=H8(3,()=>{b()}),m=()=>{if(s.size>0){p();return}v()},C=B=>{s.add(B),m()},y=B=>{s.delete(B),m()},A=()=>{d=_l(o.value,i/2,60,a,!0),f=!1,We.World.add(t.world,d),g()},g=()=>{c+=1,o.value=M8(c)},E=()=>{u.value||!d||f||(f=!0,We.Body.setStatic(d,!1),setTimeout(()=>{A()},1e3))},F=B=>{u.value||!d||f||We.Body.setPosition(d,{x:B,y:60})},b=()=>{u.value=!0};return{replay:()=>{h.value=0,s.clear(),v(),u.value=!1,c=0,We.World.clear(t.world,!1),Hl(t.world,i,r),g(),A()},nextBlockRef:o,groundHeightRef:l,gameOverRef:u,scoreRef:h}},eu="data:image/svg+xml,%3csvg%20width='38'%20height='32'%20viewBox='0%200%2038%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e",N8={class:"flex items-center"},U8=["src"],tu=Ie({__name:"BackButton",setup(e){return(t,n)=>(oe(),he("div",N8,[Z("img",{src:re(eu),alt:"뒤로가기"},null,8,U8)]))}}),V8={class:"flex flex-col items-end w-[90px]"},W8=Z("span",{class:"text-caption-b text-dark-green"}," Player ",-1),j8={class:"text-caption-b"},Q8=Ie({__name:"Player",props:{name:{type:String,default:""}},setup(e){return(t,n)=>(oe(),he("div",V8,[W8,Z("span",j8,Ke(e.name),1)]))}}),Po=q1("user",()=>({nickName:Ue("")})),q8="/assets/play-background-BoRY1Pxb.svg",z8={class:"relative flex-1"},K8={class:"absolute -z-10 top-1/2 -translate-y-1/2 w-full"},Z8=["src"],G8=Ie({__name:"PlayPage",setup(e){const t=Po(),n=Yr(),s=Ue(),{replay:i,nextBlockRef:r,groundHeightRef:a,gameOverRef:l,scoreRef:f}=L8(s);M0(()=>{t.nickName||n.replace("/"),document.body.style.cssText="overflow: hidden; overscroll-behavior: none;"}),jr(()=>{document.body.style.cssText=""});const d=()=>{n.back()},c=()=>{n.push("/rank")};return(x,u)=>(oe(),he(_e,null,[pe(Do,{class:"mt-3"},{left:Ze(()=>[pe(tu,{onClick:d})]),right:Ze(()=>[pe(Q8,{name:re(t).nickName},null,8,["name"])]),default:Ze(()=>[pe(A8,{score:re(f)},null,8,["score"])]),_:1}),Z("div",z8,[Z("div",K8,[Z("img",{class:"m-auto",alt:"background",src:re(q8)},null,8,Z8)]),pe(Nh,{"next-index":re(r),class:"pointer-events-none absolute top-6"},null,8,["next-index"]),Z("canvas",{ref_key:"canvas",ref:s,class:"w-full h-full"},null,512),pe(v8,{height:re(a)},null,8,["height"])]),re(l)?(oe(),Mt(h8,{key:0,score:re(f),nickname:re(t).nickName,onReplay:re(i),onBack:d,onRank:c},null,8,["score","nickname","onReplay"])):at("",!0)],64))}}),nu="/assets/zzio-game-CCL09Za-.svg",J8="/assets/title-beta-Dezxm_b7.svg",ru="/assets/illustration-t2TZ0xN0.svg",Y8="data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20style='fill:%20%23489B6D'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='inherit'%20d='M12%202C10.6868%202%209.38642%202.25866%208.17317%202.7612C6.95991%203.26375%205.85752%204.00035%204.92893%204.92893C3.05357%206.8043%202%209.34784%202%2012C2%2016.42%204.87%2020.17%208.84%2021.5C9.34%2021.58%209.5%2021.27%209.5%2021V19.31C6.73%2019.91%206.14%2017.97%206.14%2017.97C5.68%2016.81%205.03%2016.5%205.03%2016.5C4.12%2015.88%205.1%2015.9%205.1%2015.9C6.1%2015.97%206.63%2016.93%206.63%2016.93C7.5%2018.45%208.97%2018%209.54%2017.76C9.63%2017.11%209.89%2016.67%2010.17%2016.42C7.95%2016.17%205.62%2015.31%205.62%2011.5C5.62%2010.39%206%209.5%206.65%208.79C6.55%208.54%206.2%207.5%206.75%206.15C6.75%206.15%207.59%205.88%209.5%207.17C10.29%206.95%2011.15%206.84%2012%206.84C12.85%206.84%2013.71%206.95%2014.5%207.17C16.41%205.88%2017.25%206.15%2017.25%206.15C17.8%207.5%2017.45%208.54%2017.35%208.79C18%209.5%2018.38%2010.39%2018.38%2011.5C18.38%2015.32%2016.04%2016.16%2013.81%2016.41C14.17%2016.72%2014.5%2017.33%2014.5%2018.26V21C14.5%2021.27%2014.66%2021.59%2015.17%2021.5C19.14%2020.16%2022%2016.42%2022%2012C22%2010.6868%2021.7413%209.38642%2021.2388%208.17317C20.7362%206.95991%2019.9997%205.85752%2019.0711%204.92893C18.1425%204.00035%2017.0401%203.26375%2015.8268%202.7612C14.6136%202.25866%2013.3132%202%2012%202Z'/%3e%3c/svg%3e",X8={class:"text-dark-green flex flex-col items-center pb-12 pt-4"},$8={class:"flex items-center gap-1 text-caption-b",href:"https://github.com/zzzi-ori",target:"_blank"},ep=["src"],tp=Z("h3",null,"zzio-game",-1),np=Z("span",{class:"text-caption-r"},"© IT’S YOUR PRIMETIME",-1),rp=Z("span",{class:"text-caption-r"},"develop by zzio-games",-1),Oo=Ie({__name:"Footer",setup(e){return(t,n)=>(oe(),he("div",X8,[Z("a",$8,[Z("img",{class:"text-dark-green",src:re(Y8),alt:"github"},null,8,ep),tp]),np,rp]))}}),sp="data:image/svg+xml,%3csvg%20width='55'%20height='22'%20viewBox='0%200%2055%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.95809%201.72925C11.5932%201.69208%2014.0155%201.65407%2015.6513%201.65407C16.7795%201.65407%2017.9096%201.58814%2019.034%201.5156C20.3055%201.43357%2021.6106%201.51164%2022.8836%201.51164C24.1659%201.51164%2025.4435%201.44043%2026.7292%201.44043C29.9809%201.44043%2033.2319%201.48987%2036.4816%201.5789C39.2326%201.65427%2042.0226%201.66875%2044.6357%202.63526C46.4858%203.31952%2048.3613%203.90303%2050.0085%205.00117C50.9551%205.63226%2051.9846%206.40982%2052.6118%207.36708C53.3073%208.42859%2053.3821%209.8471%2053.1815%2011.0505C53.0459%2011.864%2052.6656%2012.6858%2052.3902%2013.4599C52.2596%2013.8272%2052.1021%2014.1492%2051.9155%2014.4886C51.6444%2014.9815%2051.3987%2015.481%2051.1203%2015.9683C50.7634%2016.5928%2050.2688%2017.343%2049.6603%2017.7486C49.2024%2018.0539%2048.6696%2018.2164%2048.1965%2018.4924C47.6444%2018.8145%2046.9121%2019.0579%2046.2974%2019.2283C44.8748%2019.6227%2043.4239%2019.8606%2041.9612%2020.0631C40.1719%2020.3109%2038.3583%2020.2411%2036.5568%2020.2411C34.9588%2020.2411%2033.3596%2020.2221%2031.7617%2020.2411C30.0172%2020.2619%2028.2692%2020.3716%2026.5234%2020.3836C25.5083%2020.3905%2024.5065%2020.6117%2023.4968%2020.7001C22.6192%2020.7769%2021.7303%2020.7396%2020.85%2020.7396C17.4521%2020.7396%2014.1614%2020.3402%2010.8404%2019.616C8.30368%2019.0629%205.74602%2018.2158%203.5448%2016.807C2.48459%2016.1285%201.81672%2015.0333%201.76838%2013.7764C1.65416%2010.8066%201.66275%207.85901%202.83265%205.08821C3.50052%203.50642%205.47022%202.78585%206.9275%202.19214C7.24625%202.06228%207.60611%202.04422%207.94429%201.99432C8.62044%201.89456%209.26937%201.7449%209.95809%201.72925Z'%20fill='%2366BE8B'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.909%2013.1409C23.2956%2013.1409%2024.6932%2013.1463%2025.7989%2012.1634C26.0518%2011.9385%2026.7028%2010.8607%2026.4884%2010.4971C26.202%2010.0113%2024.9009%2010.0517%2024.4714%2010.0416C23.9373%2010.0291%2023.2157%2010.1122%2022.7374%2010.4026C22.1385%2010.7663%2021.8001%2011.168%2021.7289%2011.9356C21.6569%2012.7131%2022.1321%2013.6008%2022.6294%2014.1185C23.2268%2014.7403%2024.2371%2015.4404%2025.1043%2015.4404C26.0964%2015.4404%2027.0415%2015.0405%2028.0217%2015.0405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M29.8217%2010.9404H34.3217'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M32.5217%208.24048C32.5029%208.57958%2032.4041%208.93656%2032.3417%209.27048C32.1679%2010.2009%2032.1066%2011.1439%2031.9817%2012.0805C31.8364%2013.1701%2031.6217%2014.3426%2031.6217%2015.4405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M38.4458%2010.9404C37.8164%2011.0019%2037.2365%2012.1706%2037.133%2012.6759C37.003%2013.3111%2036.8827%2014.3195%2037.4143%2014.8389C37.877%2015.2909%2038.6357%2015.5034%2039.2845%2015.4242C39.7187%2015.3711%2040.5741%2014.6222%2040.7483%2014.2332C41.0389%2013.5843%2041.4228%2012.7137%2040.9567%2012.0397C40.797%2011.8088%2040.5748%2011.5565%2040.3212%2011.4188C40.1812%2011.3429%2039.9542%2011.2938%2039.8523%2011.1695C39.6835%2010.9633%2039.8716%2011.2288%2040.0451%2011.3527C40.5276%2011.6971%2040.9926%2012.051%2041.4672%2012.4062C41.9513%2012.7684%2042.4245%2013.1383%2042.9362%2013.4597C43.0899%2013.5561%2043.2193%2013.6302%2043.3217%2013.7803'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M12.9738%206.44043C12.9354%207.12336%2012.7347%207.78117%2012.7275%208.48097C12.7144%209.74646%2012.7275%2011.0127%2012.7275%2012.2783C12.7275%2013.1657%2013.0217%2015.8278%2013.0217%2014.9404C13.0217%2013.8437%2012.8802%2012.655%2013.5281%2011.731C14.1557%2010.8358%2015.5416%2010.9404%2016.5184%2010.9404C17.5439%2010.9404%2018.9647%2011.3184%2019.0092%2012.5485C19.0297%2013.115%2019.0692%2013.5833%2018.7081%2014.0418C18.1068%2014.8051%2016.9377%2014.8162%2016.0531%2015.0148C15.258%2015.1932%2014.4057%2015.4404%2013.5897%2015.4404'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",ip={class:"text-dark-green mt-6 mb-2"},op=["src"],ap={class:"text-caption-b inline"},lp={class:"text-caption-r text-dark-green list-disc ml-4"},cp=Ie({__name:"Notice",props:{closed:{type:Boolean,default:!1}},setup(e){const t=Se(()=>closed?"운영 종료 안내":"운영 안내"),n=Se(()=>closed?["현재 찌오 게임 베타 버전은 종료 되었으며, 정식 버전은 24.03.24(일) 이후 오픈 예정입니다."]:["베타 버전은 24.03.18 (월) 19시 까지만 시범 운영 예정이며, 정식 버전은 24.03.24 (일) 이후 오픈 예정입니다.","베타 버전이 종료된 이후에는 모든 랭킹이 초기화 됩니다."]);return(s,i)=>(oe(),he(_e,null,[Z("div",ip,[Z("img",{src:re(sp),class:"inline mr-1",alt:"beta"},null,8,op),Z("h3",ap,Ke(t.value),1)]),Z("ul",lp,[(oe(!0),he(_e,null,uo(n.value,r=>(oe(),he("li",{key:r},Ke(r),1))),128))])],64))}}),up=()=>new Date{s.value=!up()},1e3);jr(()=>clearInterval(i));const r=()=>{t.push("/play")},a=()=>{t.push("/rank")};return(l,f)=>(oe(),he(_e,null,[Z("div",fp,[Z("img",{src:re(nu),alt:"zzio game"},null,8,dp),Z("img",{src:re(J8),alt:"황금 찌오를 찾아라 beta",class:"my-8"},null,8,hp),Z("img",{src:re(ru),alt:"찌오 이미지",class:"mb-6"},null,8,xp),s.value?(oe(),he("div",pp,[pe(q0,{color:"secondary",disabled:!0},{default:Ze(()=>[dt("4월 초 오픈 예정")]),_:1})])):(oe(),he("div",vp,[pe(Rr,{modelValue:re(n).nickName,"onUpdate:modelValue":f[0]||(f[0]=d=>re(n).nickName=d)},null,8,["modelValue"]),pe(q0,{onClick:r,color:"primary",disabled:!re(n).nickName,class:"mt-2"},{default:Ze(()=>[dt("게임 시작")]),_:1},8,["disabled"]),pe(q0,{onClick:a,color:"secondary",disabled:!1,class:"mt-6"},{default:Ze(()=>[dt(" 실시간 랭킹 ")]),_:1})])),pe(cp,{closed:s.value},null,8,["closed"])]),pe(Oo)],64))}}),mp="/assets/rank-DURnOjWp.svg",Cp="data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.27295%201.38288C2.72656%201.38288%204.55953%201.24929%205.94683%201.67319C6.16152%201.73879%206.20919%202.32808%206.30971%202.48604C6.64759%203.01699%206.99995%203.63674%207.22417%204.22786C7.6944%205.46757%207.94133%206.84558%208.16765%208.14695C8.25945%208.67479%208.45796%209.35081%208.45796%209.87426'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M8.26127%2013.6484C8.16865%2013.66%208.08112%2013.7385%208%2013.7791'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",yp={class:"relative border-solid border-2 border-black rounded-lg bg-primary px-4 py-1"},Ap={class:"text-body-b"},Ep=["src"],bp=Ie({__name:"ZLabel",props:{text:{type:String,default:""}},setup(e){return(t,n)=>(oe(),he("div",yp,[Z("span",Ap,Ke(e.text),1),Z("img",{src:re(Cp),class:"absolute right-[2px] top-[2px]"},null,8,Ep)]))}}),Bp="/assets/medal-zzio-C0E2RPes.svg",Fp="/assets/medal1-BCZWchkN.svg",wp="data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2252%2020.4625%2012.6416%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1535%2023.3097%2014.4184C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8567%2024.1704%2016.3618%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3163C24.847%2018.8784%2025%2019.4522%2025%2020.0444C25%2020.2445%2024.913%2020.1797%2024.811%2020.0909C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.69%2021.5281%2018.6961C21.1936%2018.7005%2021.1426%2019.2521%2021.0588%2019.5717C20.8524%2020.359%2020.7209%2021.1802%2020.5749%2021.9869C20.5277%2022.248%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6895C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8942%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.174%2019.77%2021.087%2019.7298%2021.0105C19.3458%2020.2799%2018.8508%2019.5357%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9285C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1548C9.88096%2022.2865%209.45315%2023.1384%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1806%207.75245%2020.1839C7.41864%2020.1896%207.06751%2020.2314%206.73911%2020.3027C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5791C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6721C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9953%205.5771%2019.7562%205.70916%2019.5097C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1055C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5371%2014.688%2012.2615C15.7635%2011.9854%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M11%207.4445C11.0533%206.00462%2013.0492%205.82818%2014.0803%206.11689C14.5781%206.25627%2014.9933%206.72901%2015.3491%207.0848C15.9737%207.70949%2016.1343%208.38864%2016.1208%209.25606C16.1081%2010.0653%2015.7485%2010.8814%2015.2183%2011.4796C14.8644%2011.8789%2014.4805%2012.2684%2014.0313%2012.5587C13.545%2012.8729%2012.8888%2013.2083%2012.3243%2013.3337C12.1671%2013.3686%2011.5016%2013.6629%2011.6409%2013.713C12.6555%2014.0783%2013.7368%2014.2927%2014.7735%2014.5861C15.3355%2014.7451%2015.8982%2014.8825%2016.4739%2014.9785'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",Sp="/assets/medal3-CLOTJF2t.svg",Dp="data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2253%2020.4625%2012.6417%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1536%2023.3097%2014.4185C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8568%2024.1704%2016.3619%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3164C24.847%2018.8784%2025%2019.4522%2025%2020.0445C25%2020.2446%2024.913%2020.1797%2024.811%2020.091C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.6901%2021.5281%2018.6961C21.1936%2018.7006%2021.1426%2019.2521%2021.0588%2019.5718C20.8524%2020.3591%2020.7209%2021.1802%2020.5749%2021.987C20.5277%2022.2481%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6896C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8943%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.1741%2019.77%2021.087%2019.7298%2021.0106C19.3458%2020.2799%2018.8508%2019.5358%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9286C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1549C9.88096%2022.2865%209.45315%2023.1385%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1807%207.75245%2020.184C7.41864%2020.1896%207.06751%2020.2315%206.73911%2020.3028C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5792C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6722C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9954%205.5771%2019.7562%205.70916%2019.5098C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1056C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5372%2014.688%2012.2616C15.7635%2011.9855%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23D88F4B'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M19.668%2012.6527C18.6089%2012.6066%2017.5663%2012.389%2016.5097%2012.3135C14.7245%2012.186%2012.9339%2011.9495%2011.1389%2012.0646C11.1233%2012.0656%2010.5327%2012.1373%2010.5476%2012.0552C10.5843%2011.8534%2010.7626%2011.5724%2010.8495%2011.3862C11.4861%2010.0219%2012.3305%208.72783%2013.3264%207.59615C13.6097%207.27421%2013.8747%206.9252%2014.2039%206.64708C14.3214%206.54779%2014.6786%206.18033%2014.8387%206.18033C14.8687%206.18033%2014.8413%206.30049%2014.8387%206.31102C14.8005%206.46356%2014.793%206.61388%2014.8076%206.77155C14.8898%207.66205%2015.2584%208.51072%2015.3677%209.40405C15.4721%2010.2575%2015.5897%2011.1052%2015.6664%2011.9619C15.714%2012.4938%2015.8375%2013.0301%2015.8593%2013.5613C15.8791%2014.0425%2015.9713%2014.5257%2015.9713%2015.0051'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e",kp={class:"min-w-14"},Rp={key:0},Pp=["src"],Op=["src"],Tp=["src"],Mp=["src"],Ip={class:"flex-1 text-caption-b"},_p={class:"flex text-body-b"},Hp={class:"pr-1"},Lp=["src"],Np=Ie({__name:"Rank",props:{item:{type:Object}},setup(e){const t=e,n=Se(()=>{var i;return t!=null&&t.item&&((i=t.item)==null?void 0:i.rank)<=4?"highlight":"normal"}),s=Xr(["flex w-full text-body-b py-2"],{variants:{type:{highlight:"rounded-lg bg-white mt-1 border-2 pl-2 pr-4",normal:"border-b-solid border-b-2 last:border-b-0 border-b-dark-green px-4"}}});return(i,r)=>{var a,l,f,d,c,x,u,o,h;return oe(),he("div",{class:h0(re(s)({type:n.value}))},[Z("div",kp,[(a=e.item)!=null&&a.rank&&((l=e.item)==null?void 0:l.rank)>4?(oe(),he("span",Rp,Ke((f=e.item)==null?void 0:f.rank),1)):((d=e.item)==null?void 0:d.rank)===1?(oe(),he("img",{key:1,src:re(Fp),alt:"1st"},null,8,Pp)):((c=e.item)==null?void 0:c.rank)===2?(oe(),he("img",{key:2,src:re(wp),alt:"1st"},null,8,Op)):((x=e.item)==null?void 0:x.rank)===3?(oe(),he("img",{key:3,src:re(Sp),alt:"1st"},null,8,Tp)):((u=e.item)==null?void 0:u.rank)===4?(oe(),he("img",{key:4,src:re(Dp),alt:"1st"},null,8,Mp)):at("",!0)]),Z("span",Ip,Ke((o=e.item)==null?void 0:o.nickName),1),Z("div",_p,[Z("span",Hp,Ke((h=e.item)==null?void 0:h.score),1),Z("img",{src:re(S2),alt:"코인"},null,8,Lp)])],2)}}}),Up=Ie({__name:"RankList",props:{list:{type:Object}},setup(e){return(t,n)=>(oe(),he("div",null,[(oe(!0),he(_e,null,uo(e.list,s=>(oe(),Mt(Np,{item:s,key:s==null?void 0:s.rank},null,8,["item"]))),128))]))}}),Vp=async e=>(await So.get("/rank",{params:e})).data,Wp=()=>{const e=Date.now();return md({queryKey:["rank"],queryFn:({pageParam:t})=>Vp({pageNumber:t,dateTime:e}),initialPageParam:0,getNextPageParam:t=>t.nextPageNumber})},jp="data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_694_3918)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.5%2044C29.6717%2044%2034.6316%2041.9455%2038.2886%2038.2886C41.9455%2034.6316%2044%2029.6717%2044%2024.5C44%2019.3283%2041.9455%2014.3684%2038.2886%2010.7114C34.6316%207.05446%2029.6717%205%2024.5%205C19.3283%205%2014.3684%207.05446%2010.7114%2010.7114C7.05446%2014.3684%205%2019.3283%205%2024.5C5%2029.6717%207.05446%2034.6316%2010.7114%2038.2886C14.3684%2041.9455%2019.3283%2044%2024.5%2044ZM24.5%2048.5C30.8652%2048.5%2036.9697%2045.9714%2041.4706%2041.4706C45.9714%2036.9697%2048.5%2030.8652%2048.5%2024.5C48.5%2018.1348%2045.9714%2012.0303%2041.4706%207.52944C36.9697%203.02856%2030.8652%200.5%2024.5%200.5C18.1348%200.5%2012.0303%203.02856%207.52944%207.52944C3.02856%2012.0303%200.5%2018.1348%200.5%2024.5C0.5%2030.8652%203.02856%2036.9697%207.52944%2041.4706C12.0303%2045.9714%2018.1348%2048.5%2024.5%2048.5ZM27.5%2033.5C27.5%2034.2957%2027.1839%2035.0587%2026.6213%2035.6213C26.0587%2036.1839%2025.2956%2036.5%2024.5%2036.5C23.7044%2036.5%2022.9413%2036.1839%2022.3787%2035.6213C21.8161%2035.0587%2021.5%2034.2957%2021.5%2033.5C21.5%2032.7043%2021.8161%2031.9413%2022.3787%2031.3787C22.9413%2030.8161%2023.7044%2030.5%2024.5%2030.5C25.2956%2030.5%2026.0587%2030.8161%2026.6213%2031.3787C27.1839%2031.9413%2027.5%2032.7043%2027.5%2033.5ZM26.75%2014.75C26.75%2014.1533%2026.5129%2013.581%2026.091%2013.159C25.669%2012.7371%2025.0967%2012.5%2024.5%2012.5C23.9033%2012.5%2023.331%2012.7371%2022.909%2013.159C22.4871%2013.581%2022.25%2014.1533%2022.25%2014.75V25.25C22.25%2025.8467%2022.4871%2026.419%2022.909%2026.841C23.331%2027.2629%2023.9033%2027.5%2024.5%2027.5C25.0967%2027.5%2025.669%2027.2629%2026.091%2026.841C26.5129%2026.419%2026.75%2025.8467%2026.75%2025.25V14.75Z'%20fill='%23489B6D'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_694_3918'%3e%3crect%20width='48'%20height='48'%20fill='white'%20transform='translate(0.5%200.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e",Qp={},qp={class:"loader"};function zp(e,t){return oe(),he("span",qp)}const Kp=I0(Qp,[["render",zp],["__scopeId","data-v-f80639eb"]]),Zp={class:"fixed w-full flex flex-col items-center bg-light-green z-10"},Gp=["src"],Jp={key:0,class:"text-body-b mt-6 mb-4 text-dark-green"},Yp={key:0,class:"w-full h-full flex flex-col items-center justify-center text-dark-green"},Xp=["src"],$p=Z("span",{class:"text-body-b mb-1 mt-4"},"앗! 아직 참여한 사람이 없찌오",-1),e6=Z("span",{class:"text-caption-r"},"지금 플레이해서 1등을 차지하세요!",-1),t6={key:1,class:"w-full pt-2 px-6"},n6={class:"flex flex-col items-center mb-6"},r6=["src"],s6={class:"flex items-center justify-center h-8"},i6=["src"],o6=300,a6=Ie({__name:"RankPage",setup(e){const t=Yr(),{data:n,fetchNextPage:s,isFetching:i}=Wp(),r=Ue(null);M0(()=>{document.body.style.cssText="overflow: hidden; overscroll-behavior: none;"}),jr(()=>{document.body.style.cssText=""});const a=Se(()=>{var h;return n?(h=n.value)==null?void 0:h.pages.map(p=>p.rankList??[]).flat():[]}),l=Se(()=>{var h;return(h=n.value)==null?void 0:h.pages[0].totalCount}),f=Se(()=>{var h,p;return(p=(h=n.value)==null?void 0:h.pages[0].rankList[0])==null?void 0:p.nickName}),d=Ue(!1),c=()=>{t.back()};let x=!1;const u=()=>{if(!r.value)return;const{offsetHeight:h,scrollTop:p,scrollHeight:v}=r.value;d.value=p!==0;const m=h+p>v-o6;m&&!x&&(s(),x=!0),m||(x=!1)},o=()=>{r.value&&r.value.scrollTo({top:0,behavior:"smooth"})};return(h,p)=>{var v;return oe(),he(_e,null,[Z("div",Zp,[pe(Do,{class:"w-full"},{left:Ze(()=>[pe(tu,{onClick:c})]),default:Ze(()=>[Z("img",{src:re(mp),alt:"명예의 찌오당"},null,8,Gp)]),_:1}),l.value?(oe(),he("span",Jp,Ke(l.value)+"명의 찌오가 함께했찌오 ",1)):at("",!0)]),Z("div",{ref_key:"container",ref:r,onScroll:u,class:"h-full pt-32 overflow-y-scroll hide-scroll"},[((v=a.value)==null?void 0:v.length)===0?(oe(),he("div",Yp,[Z("img",{src:re(jp),alt:"error"},null,8,Xp),$p,e6])):(oe(),he("div",t6,[Z("div",n6,[f.value?(oe(),Mt(bp,{key:0,text:f.value},null,8,["text"])):at("",!0),Z("img",{src:re(Bp),class:"mt-2",alt:"찌오"},null,8,r6)]),pe(Up,{list:a.value},null,8,["list"]),Z("div",s6,[re(i)?(oe(),Mt(Kp,{key:0})):at("",!0)]),pe(Oo)])),d.value?(oe(),Mt(Ni,{key:2,class:"absolute right-6 bottom-6",onClick:o},{default:Ze(()=>[Z("img",{src:re(eu),alt:"위로가기",class:"rotate-90"},null,8,i6)]),_:1})):at("",!0)],544)],64)}}}),l6="/assets/title-DWHbXsBD.svg",c6="data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2011.3335C8.18889%2011.3335%208.34733%2011.2695%208.47533%2011.1415C8.60333%2011.0135%208.66711%2010.8553%208.66667%2010.6668V8.00016C8.66667%207.81127%208.60267%207.65305%208.47467%207.5255C8.34667%207.39794%208.18844%207.33394%208%207.3335C7.81111%207.3335%207.65289%207.3975%207.52533%207.5255C7.39778%207.6535%207.33378%207.81172%207.33333%208.00016V10.6668C7.33333%2010.8557%207.39733%2011.0142%207.52533%2011.1422C7.65333%2011.2702%207.81155%2011.3339%208%2011.3335ZM8%206.00016C8.18889%206.00016%208.34733%205.93616%208.47533%205.80816C8.60333%205.68016%208.66711%205.52194%208.66667%205.3335C8.66667%205.14461%208.60267%204.98639%208.47467%204.85883C8.34667%204.73127%208.18844%204.66727%208%204.66683C7.81111%204.66683%207.65289%204.73083%207.52533%204.85883C7.39778%204.98683%207.33378%205.14505%207.33333%205.3335C7.33333%205.52239%207.39733%205.68083%207.52533%205.80883C7.65333%205.93683%207.81155%206.00061%208%206.00016ZM8%2014.6668C7.07778%2014.6668%206.21111%2014.4917%205.4%2014.1415C4.58889%2013.7913%203.88333%2013.3164%203.28333%2012.7168C2.68333%2012.1168%202.20844%2011.4113%201.85867%2010.6002C1.50889%209.78905%201.33378%208.92239%201.33333%208.00016C1.33333%207.07794%201.50844%206.21127%201.85867%205.40016C2.20889%204.58905%202.68378%203.8835%203.28333%203.2835C3.88333%202.6835%204.58889%202.20861%205.4%201.85883C6.21111%201.50905%207.07778%201.33394%208%201.3335C8.92222%201.3335%209.78889%201.50861%2010.6%201.85883C11.4111%202.20905%2012.1167%202.68394%2012.7167%203.2835C13.3167%203.8835%2013.7918%204.58905%2014.142%205.40016C14.4922%206.21127%2014.6671%207.07794%2014.6667%208.00016C14.6667%208.92239%2014.4916%209.78905%2014.1413%2010.6002C13.7911%2011.4113%2013.3162%2012.1168%2012.7167%2012.7168C12.1167%2013.3168%2011.4111%2013.7919%2010.6%2014.1422C9.78889%2014.4924%208.92222%2014.6673%208%2014.6668Z'%20fill='%23489B6D'/%3e%3c/svg%3e",u6="/assets/event-Duj73pHB.svg",f6={class:"text-dark-green mt-6 mb-2"},d6=["src"],h6=Z("h3",{class:"text-caption-b inline"},"운영 안내",-1),x6={class:"text-caption-r text-dark-green list-disc ml-4"},p6=Ie({__name:"Notice",props:{closed:{type:Boolean,default:!1}},setup(e){const t=e,n=Se(()=>t.closed?["현재 찌오 게임 이벤트는 종료 되었으며, 당첨자는 4월 26일 (금) 이후 찌오 인스타그램 (@zzzi_ori)에서 확인하실 수 있습니다.","찌오 게임은 언제든 자유롭게 플레이 가능하나, 실시간 랭킹은 확인하실 수 없습니다."]:["이벤트는 4월 19일 (금) 23시 59분까지 참여 가능하며, 종료 이후에도 찌오 게임을 언제든 플레이할 수 있습니다.","실시간 랭킹은 이벤트 종료와 동시에 확인이 불가합니다.","자세한 내용은 이벤트 페이지 또는 찌오 인스타그램 (@zzzi_ori)에서 확인하세요."]);return(s,i)=>(oe(),he(_e,null,[Z("div",f6,[Z("img",{src:re(u6),class:"inline mr-1",alt:"beta"},null,8,d6),h6]),Z("ul",x6,[(oe(!0),he(_e,null,uo(n.value,r=>(oe(),he("li",{key:r},Ke(r),1))),128))])],64))}}),v6="/assets/event-white-BVCXPOMU.svg",g6={key:0,class:"w-full bg-green border-y-2 border-white text-white text-body-b flex justify-center items-center gap-2 py-1.5"},m6=["src"],C6=Z("span",null,"이벤트 종료까지",-1),y6={key:0},A6={key:1},E6=Ie({__name:"Counter",props:{target:{type:Date,default:new Date},current:{type:Date,default:new Date}},setup(e){const t=e,n=Se(()=>t.target.getTime()-t.current.getTime()),s=Se(()=>Math.ceil(n.value/(1e3*60*60*24))),i=Se(()=>{const r=String(Math.floor(n.value/36e5)%24).padStart(2,"0"),a=String(Math.floor(n.value/(1e3*60))%60).padStart(2,"0"),l=String(Math.floor(n.value/1e3)%60).padStart(2,"0");return`${r}:${a}:${l}`});return(r,a)=>n.value>0?(oe(),he("div",g6,[Z("img",{src:re(v6),alt:"event"},null,8,m6),C6,s.value>1?(oe(),he("span",y6,"D-"+Ke(s.value),1)):(oe(),he("span",A6,Ke(i.value),1))])):at("",!0)}}),b6={href:"https://www.instagram.com/zzzi_ori",target:"_blank"},B6={class:"flex flex-col flex-1 items-center px-6"},F6=["src"],w6=["src"],S6=["src"],D6={class:"w-full flex text-caption-r text-dark-green mb-2"},k6=["src"],R6=Ie({__name:"DevHomePage",setup(e){const t=Yr(),n=Po(),s=Ue(new Date),i=Se(()=>a(s.value)),r=new Date("2024-04-05T23:59:59+09:00"),a=d=>d{const d=setInterval(()=>{s.value=new Date},1e3);return()=>clearInterval(d)});const l=()=>{t.push("/play")},f=()=>{t.push("/rank")};return(d,c)=>(oe(),he(_e,null,[Z("a",b6,[pe(E6,{target:re(r),current:s.value,class:"mt-3"},null,8,["target","current"])]),Z("div",B6,[Z("img",{src:re(nu),alt:"zzio game",class:"mt-6"},null,8,F6),Z("img",{src:re(l6),alt:"황금 찌오를 찾아라 beta",class:"my-3"},null,8,w6),Z("img",{src:re(ru),alt:"찌오 이미지",class:"mb-6"},null,8,S6),Z("div",D6,[Z("img",{src:re(c6),alt:"info",class:"mr-[2px]"},null,8,k6),Z("span",null,Ke(i.value?"랭킹에 올라갈 ":"")+"닉네임을 8자 이내로 적으찌오",1)]),pe(Rr,{modelValue:re(n).nickName,"onUpdate:modelValue":c[0]||(c[0]=x=>re(n).nickName=x)},null,8,["modelValue"]),pe(q0,{onClick:l,color:"primary",disabled:!re(n).nickName,class:"mt-2"},{default:Ze(()=>[dt("게임 시작")]),_:1},8,["disabled"]),i.value?(oe(),Mt(q0,{key:0,onClick:f,color:"secondary",disabled:!1,class:"mt-6"},{default:Ze(()=>[dt(" 실시간 랭킹 ")]),_:1})):at("",!0),pe(p6,{closed:!i.value},null,8,["closed"])]),pe(Oo)],64))}}),P6=[{path:"/",component:gp},{path:"/play",component:G8},{path:"/rank",component:a6},{path:"/dev",component:R6}],O6=Ch({history:Gd("/"),routes:P6}),T6=N1(),is=I1(Fh);is.use(T6);is.use(O6);is.use(vd);is.mount("#app"); +//# sourceMappingURL=index-C1n6Kl5t.js.map diff --git a/assets/index-D3-QFJZT.js.map b/assets/index-C1n6Kl5t.js.map similarity index 99% rename from assets/index-D3-QFJZT.js.map rename to assets/index-C1n6Kl5t.js.map index 7bdc3a4..1ed59e0 100644 --- a/assets/index-D3-QFJZT.js.map +++ b/assets/index-C1n6Kl5t.js.map @@ -1 +1 @@ -{"version":3,"file":"index-D3-QFJZT.js","sources":["../../node_modules/.pnpm/@vue+shared@3.4.21/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/.pnpm/@vue+reactivity@3.4.21/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-core@3.4.21/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-dom@3.4.21/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.21/node_modules/vue-demi/lib/index.mjs","../../node_modules/.pnpm/pinia@2.1.7_typescript@5.4.4_vue@3.4.21/node_modules/pinia/dist/pinia.mjs","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/useQueryClient.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/vueQueryPlugin.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/useBaseQuery.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/useInfiniteQuery.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/useMutation.js","../../node_modules/.pnpm/vue-router@4.3.0_vue@3.4.21/node_modules/vue-router/dist/vue-router.mjs","../../src/components/Layout.vue","../../src/assets/next/n1.png","../../src/assets/next/n2.png","../../src/assets/next/n3.png","../../src/assets/next/n4.png","../../src/assets/next/n5.png","../../src/assets/next/n6.png","../../src/assets/next/n7.png","../../src/assets/next/n8.png","../../src/assets/next/n9.png","../../src/assets/next/n10.png","../../src/pages/play/_components/NextBlock.vue","../../src/assets/game-over.svg","../../src/assets/replay.svg","../../src/assets/home.svg","../../src/assets/game-over-zzio.svg","../../node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs","../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.mjs","../../src/components/button/ZRoundButton.vue","../../src/assets/rank-banner.png","../../src/assets/coin-sm.svg","../../src/assets/gift-zzio.svg","../../src/assets/arrow.svg","../../src/assets/event-join-tag.svg","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/bind.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/utils.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/AxiosError.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/null.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/toFormData.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/buildURL.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/defaults/transitional.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/browser/index.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/common/utils.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/index.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/defaults/index.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/transformData.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/cancel/isCancel.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/settle.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/cookies.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/buildFullPath.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/speedometer.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/adapters/xhr.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/adapters/adapters.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/mergeConfig.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/env/data.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/validator.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/Axios.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/spread.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/axios.js","../../src/requests/zaxios.ts","../../src/requests/fetch/postEvent.ts","../../src/requests/use/usePostEvent.ts","../../src/assets/event-title.svg","../../src/requests/fetch/postRank.ts","../../src/requests/use/usePostRank.ts","../../src/components/ZInput.vue","../../src/components/button/_assets/LeftLine.vue","../../src/components/button/_assets/RightLine.vue","../../src/components/button/ZButton.vue","../../src/assets/checkbox-default.svg","../../src/assets/checkbox-active.svg","../../src/components/ZCheckbox.vue","../../src/components/ZHeader.vue","../../src/assets/close.svg","../../__vite-browser-external","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.js","../../src/utils/get-game-id.ts","../../src/pages/play/_components/GameOver.vue","../../src/pages/play/_components/Ground.vue","../../src/assets/coin.svg","../../node_modules/.pnpm/matter-js@0.19.0/node_modules/matter-js/build/matter.js","../../src/assets/block/1.png","../../src/assets/block/2.png","../../src/assets/block/3.png","../../src/assets/block/4.png","../../src/assets/block/5.png","../../src/assets/block/6.png","../../src/assets/block/7.png","../../src/assets/block/8.png","../../src/assets/block/9.png","../../src/assets/block/10.png","../../src/pages/play/setting.ts","../../src/utils/create-block.ts","../../src/utils/get-block-index.ts","../../src/utils/get-dynamic-canvas-size.ts","../../src/utils/set-field.ts","../../src/hooks/use-timer.ts","../../src/hooks/use-player.ts","../../src/assets/back.svg","../../src/stores/user.ts","../../src/assets/play-background.svg","../../src/pages/play/PlayPage.vue","../../src/assets/zzio-game.svg","../../src/assets/title-beta.svg","../../src/assets/illustration.svg","../../src/assets/github-green.svg","../../src/assets/beta.svg","../../src/pages/home/_components/Notice.vue","../../src/utils/check-open.ts","../../src/pages/home/HomePage.vue","../../src/assets/rank.svg","../../src/assets/label-line.svg","../../src/assets/medal-zzio.svg","../../src/assets/medal1.svg","../../src/assets/medal2.svg","../../src/assets/medal3.svg","../../src/assets/medal4.svg","../../src/pages/rank/_components/Rank.vue","../../src/requests/fetch/getRank.ts","../../src/requests/use/useGetInfiniteRank.ts","../../src/assets/error.svg","../../src/components/ZLoading.vue","../../src/pages/rank/RankPage.vue","../../src/assets/title.svg","../../src/assets/info.svg","../../src/assets/event.svg","../../src/event-pages/home/_components/Notice.vue","../../src/assets/event-white.svg","../../src/event-pages/home/_components/Counter.vue","../../src/event-pages/home/DevHomePage.vue","../../src/router/index.ts","../../src/main.ts"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst deferredComputed = computed;\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","/**\n* @vue/runtime-core v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, isShallow, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n","export default \"data:image/svg+xml,%3csvg%20width='185'%20height='37'%20viewBox='0%200%20185%2037'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M23.4694%207.95518C21.997%206.70688%2020.0195%206.41223%2018.1614%206.41223C11.8952%206.41223%207.47036%208.38623%203.72574%2013.6984C3.02871%2014.6872%202.02975%2016.0504%201.73171%2017.27C1.11513%2019.7931%202.03722%2022.9521%202.54617%2025.3562C3.01634%2027.577%203.09501%2031.3632%205.18615%2032.8137C7.4063%2034.3538%209.31842%2034.8524%2011.8984%2034.6424C16.1031%2034.3002%2021.3045%2035.0085%2023.8485%2030.9708C25.3739%2028.5499%2025.2387%2026.156%2025.2387%2023.3846'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M16.1206%2024.5332C18.6681%2024.5332%2022.1089%2024.8539%2024.46%2023.8101C25.5347%2023.3329%2026.8223%2025.5178%2027.0082%2026.2977C27.3172%2027.5941%2028.0047%2028.8553%2028.1085%2030.2027C28.1479%2030.7143%2028.4979%2032.6679%2028.8903%2032.8639'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M45.5195%2018.9062C43.713%2018.9062%2041.8658%2018.7818%2040.0681%2018.9381C36.2347%2019.2714%2033.7237%2023.2894%2033.501%2026.7963C33.281%2030.2618%2033.2558%2031.0222%2036.2426%2031.5941C38.8324%2032.09%2042.1692%2033.9881%2044.2921%2031.8651C46.9026%2029.2547%2046.954%2027.0863%2046.954%2023.6243C46.954%2022.8699%2046.954%2022.1154%2046.954%2021.3609C46.954%2020.2014%2047.8089%2021.7147%2048.1336%2022.0941C51.3013%2025.7954%2054.4514%2029.5097%2057.5698%2033.2519'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M61.6381%2020.0537C61.6381%2021.7372%2062.2023%2023.4454%2062.6423%2025.0587C63.1023%2026.7457%2063.1996%2028.3964%2063.503%2030.0956C63.5397%2030.3013%2063.9334%2032.0179%2063.9334%2030.9564C63.9334%2028.6842%2064.3213%2026.5351%2064.7303%2024.2936C65.0731%2022.4155%2065.0927%2020.4723%2066.7069%2019.2886C68.0889%2018.2751%2068.2489%2018.1957%2069.1137%2019.6552C70.4103%2021.8431%2070.9237%2024.058%2071.409%2026.5252C71.6709%2027.8565%2071.807%2029.3128%2072.1901%2030.6057C72.5145%2031.7008%2072.2413%2030.174%2072.1901%2029.7768C71.7889%2026.6677%2071.4451%2021.4418%2073.529%2018.7626C74.3927%2017.6521%2077.3345%2021.2185%2078.0559%2022.1896C79.2855%2023.8449%2079.7521%2025.9628%2080.6381%2027.8003C80.952%2028.4514%2081.4351%2029.0699%2081.4351%2029.8087'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M84.8779%2024.9314C88.411%2024.9314%2091.9289%2024.6692%2095.4618%2024.6445C97.2723%2024.6318%2099.0792%2024.5265%20100.881%2024.3575C101.722%2024.2787%20100.539%2022.6444%20100.371%2022.3651C98.1466%2018.6573%2093.4209%2016.2697%2089.3091%2018.6193C88.3747%2019.1532%2087.7471%2020.572%2087.7471%2021.6319C87.7471%2022.9352%2087.9762%2024.2014%2088.1774%2025.4893C88.2736%2026.1048%2088.1463%2028.3941%2088.9585%2028.725C91.2752%2029.6689%2093.4985%2030.7979%2096.0675%2030.9406C97.0674%2030.9961%2098.6352%2031.2531%2099.5105%2030.6696'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M128.673%201.97827C125.774%204.39382%20124.402%206.86071%20122.951%2010.4263C120.878%2015.5174%20119.486%2021.4132%20122.058%2026.5572C123.395%2029.2315%20125.527%2031.4883%20128.657%2031.2275C130.832%2031.0462%20134.234%2030.0047%20136.101%2028.8046C139.748%2026.4601%20139.862%2019.3628%20139.862%2015.7501C139.862%2012.1221%20139.322%207.54722%20136.133%205.42123'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M145.314%2017.7585C145.314%2020.0361%20146.94%2022.8141%20147.864%2024.8676C148.314%2025.8674%20148.34%2027.0432%20149.187%2026.3659C149.547%2026.0784%20149.733%2025.3173%20149.968%2024.9314C150.702%2023.7254%20151.478%2022.5438%20152.295%2021.3928C152.999%2020.4007%20153.542%2019.3307%20154.208%2018.3324'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M159.946%2022.6363C162.329%2022.7852%20167.174%2024.139%20168.538%2021.2973C170.36%2017.5004%20164.404%2016.564%20161.955%2016.9139C160.772%2017.0829%20159.925%2018.3952%20159.596%2019.4164C158.844%2021.7461%20161.08%2023.8794%20162.465%2025.5054C163.229%2026.4021%20165.738%2028.7064%20166.896%2027.8644C167.871%2027.1554%20170.837%2027.8943%20171.997%2028.0876'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M177.448%2018.0455C177.559%2019.0398%20178.226%2019.8639%20178.596%2020.7552C179.176%2022.1549%20179.17%2024.1885%20179.17%2025.7284C179.17%2026.1851%20178.941%2027.3717%20179.233%2027.7367C179.632%2028.2343%20178.845%2025.8489%20178.739%2025.3617C178.372%2023.6722%20178.375%2021.8003%20179.313%2020.3408C180.093%2019.1282%20182.021%2017.7585%20183.473%2017.7585'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='24'%20viewBox='0%200%2020%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.82205%207.21589C1.69799%205.97529%201.30287%204.89144%201.62129%203.61774C1.85076%202.69986%204.09944%202.44983%204.55541%202.35143C7.48579%201.71907%2010.5606%201.12752%2013.5662%201.02336C14.8054%200.980419%2015.3672%201.79215%2016.1375%202.6294C17.3154%203.90983%2018.1631%205.05896%2018.3303%206.81438C18.4926%208.51806%2018.4244%209.76023%2017.9751%2011.4318C17.4987%2013.2044%2016.6239%2014.5602%2015.2958%2015.8329C13.9439%2017.1285%2012.4993%2018.5086%2010.6862%2019.1222C8.43473%2019.8843%205.35043%2018.6103%203.90682%2016.8058'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.96465%2014.165C6.0624%2015.0673%205.05937%2015.8567%203.97648%2016.4583C3.5156%2016.7143%204.31379%2018.1121%204.43204%2018.5199C4.67598%2019.361%205.05164%2020.1566%205.26595%2021.0062C5.35625%2021.3641%205.41003%2021.7576%205.57481%2022.0872'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='27'%20height='28'%20viewBox='0%200%2027%2028'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.18318%207.00292C8.70656%205.2824%2012.3997%202.9563%2014.2866%202.02173C14.2866%202.02173%2014.8832%202.61948%2015.0474%202.6664C15.4959%202.79455%2016.1389%203.36089%2016.5049%203.65543C17.9568%204.824%2019.5572%205.83512%2020.7173%207.35529C21.52%208.4071%2022.5307%209.34097%2023.2519%2010.4505C23.8801%2011.417%2024.5944%2012.3271%2025.242%2013.2815C25.3369%2013.4213%2026.1835%2014.7508%2025.8026%2014.779C25.4613%2014.8043%2025.066%2014.8224%2024.7295%2014.8871C24.0748%2015.013%2023.3668%2014.8956%2022.7034%2014.9392C22.3182%2014.9645%2021.9585%2015.0673%2021.5702%2015.0673C21.3286%2015.0673%2021.3499%2015.6677%2021.3499%2015.8601C21.3499%2017.4481%2021.1337%2019.0287%2021.1337%2020.6171C21.1337%2021.7162%2020.9575%2022.8015%2020.9215%2023.9005C20.9032%2024.4588%2020.8577%2025.0037%2020.7894%2025.5582C20.7708%2025.7084%2020.7943%2026.1086%2020.6292%2026.1829C20.2391%2026.3585%2019.6908%2026.311%2019.2598%2026.311C17.7708%2026.311%2016.2655%2026.3781%2014.7871%2026.1669C12.6155%2025.8566%2010.35%2025.8786%208.1602%2025.8786C7.6708%2025.8786%207.72775%2025.6701%207.72775%2025.2299C7.72775%2023.4468%207.39509%2021.6983%206.97496%2019.9684C6.71287%2018.8892%206.57455%2017.7665%206.57455%2016.657C6.57455%2016.2185%206.56854%2015.7901%206.6306%2015.3556C6.64647%2015.2446%206.7108%2014.8953%206.6306%2014.795C6.54591%2014.6892%206.2751%2014.7126%206.17813%2014.7069C5.64321%2014.6755%205.10811%2014.6497%204.57246%2014.6349C3.72344%2014.6113%202.86447%2014.6217%202.0178%2014.5468C1.87123%2014.5338%201.63271%2014.5257%201.50526%2014.4347C1.44289%2014.3901%201.95469%2013.7833%201.99377%2013.7379C2.27258%2013.4145%202.48111%2013.0473%202.6905%2012.6768C3.86252%2010.6033%205.61401%208.77515%207.18318%207.00292Z'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__C6q6eZ_S__\"","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","\n\n","export default \"__VITE_ASSET__kfgGGJ25__\"","export default \"data:image/svg+xml,%3csvg%20width='19'%20height='19'%20viewBox='0%200%2019%2019'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.43059%201.02173C8.92229%201.02173%209.53439%201.02275%209.97498%201.27106C10.5034%201.27106%2012.5403%202.22615%2013.0052%202.45905C14.0392%202.97705%2015.371%203.51223%2015.9696%204.57836C16.7893%206.03845%2017.6095%207.16875%2017.9458%208.85366C18.0986%209.61892%2017.8799%2010.3522%2017.8799%2011.1196C17.8799%2012.048%2017.6975%2013.0301%2017.2212%2013.8403C16.362%2015.3016%2015.2688%2016.7749%2013.5029%2016.9496C11.889%2017.1093%2010.0937%2016.9919%208.49647%2016.7149C6.89916%2016.4379%203.35156%2016.2248%202.47261%2014.4636C2.06266%2013.6422%201.62576%2013.0587%201.34543%2012.1536C0.965334%2010.9266%200.934584%209.60991%201.08193%208.34033C1.28432%206.59645%201.69217%205.01032%203.12404%203.8377C4.23262%202.92984%205.51234%202.22705%206.78373%201.57906C7.30733%201.31219%207.83266%201.02173%208.43059%201.02173Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M7%207.12347C7.31959%207.01947%207.73803%207.03886%208.0731%207.03189C8.69347%207.01898%209.31513%207.02927%209.93567%207.02927C10.2532%207.02927%2010.5774%207.01257%2010.8947%207.02927C11.0553%207.03773%2010.9775%207.55206%2010.9591%207.6311C10.8308%208.18224%2010.3287%208.6837%209.88304%209.05456C9.17184%209.64635%208.40718%2010.2032%207.64327%2010.7397C7.46968%2010.8616%207.21317%2011.0028%207.09357%2011.1741C7.01759%2011.2828%206.99859%2011.2601%207.22807%2011.3154C7.72868%2011.436%208.2552%2011.48%208.76608%2011.5509C9.6289%2011.6704%2010.4852%2011.824%2011.348%2011.9434C11.5601%2011.9727%2011.7838%2012.0219%2012%2012.0219'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__DH0XSkXz__\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17%2014L12%209L7%2014'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='57'%20height='21'%20viewBox='0%200%2057%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20y='0.5'%20width='57'%20height='20'%20rx='10'%20fill='black'/%3e%3cpath%20d='M13.3579%2010.82L12.8899%2011.576C11.6659%2011.192%2010.7299%2010.4%2010.2499%209.38C9.78188%2010.508%208.80988%2011.372%207.53788%2011.78L7.05788%2011.012C8.65388%2010.52%209.74588%209.272%209.74588%207.844V7.676H7.35788V6.884H9.74588V5.564H10.7299V6.884H13.1059V7.676H10.7299V7.844C10.7299%209.152%2011.7739%2010.34%2013.3579%2010.82ZM9.61388%2013.28V15.452H14.4379V13.28H9.61388ZM8.65388%2016.244V12.5H15.4099V16.244H8.65388ZM17.0059%208.348V9.164H15.4099V11.996H14.4259V5.624H15.4099V8.348H17.0059ZM23.5329%2011.432H25.9809V8.84H23.4969C23.5929%209.26%2023.6529%209.716%2023.6529%2010.208C23.6529%2010.652%2023.6049%2011.06%2023.5329%2011.432ZM20.9769%2013.088C21.9969%2013.088%2022.7289%2011.96%2022.7289%2010.208C22.7289%208.468%2021.9969%207.34%2020.9769%207.34C19.9449%207.34%2019.2249%208.468%2019.2249%2010.208C19.2249%2011.96%2019.9449%2013.088%2020.9769%2013.088ZM25.9809%205.624H26.9649V16.412H25.9809V12.236H23.2929C22.8489%2013.328%2022.0089%2013.964%2020.9769%2013.964C19.4049%2013.964%2018.2889%2012.5%2018.2889%2010.208C18.2889%207.916%2019.4049%206.452%2020.9769%206.452C21.9729%206.452%2022.7649%207.028%2023.2209%208.036H25.9809V5.624ZM30.66%208.24C30.66%209.068%2031.368%209.608%2032.4%209.608C33.408%209.608%2034.128%209.068%2034.128%208.24C34.128%207.424%2033.408%206.872%2032.4%206.872C31.368%206.872%2030.66%207.424%2030.66%208.24ZM35.832%2011.108L35.892%2011.828C33.648%2012.236%2031.092%2012.272%2029.256%2012.272L29.124%2011.468C29.952%2011.468%2030.912%2011.456%2031.92%2011.42V10.34C30.612%2010.184%2029.748%209.392%2029.748%208.24C29.748%206.98%2030.828%206.128%2032.4%206.128C33.96%206.128%2035.052%206.98%2035.052%208.24C35.052%209.38%2034.188%2010.172%2032.904%2010.328V11.384C33.9%2011.324%2034.896%2011.252%2035.832%2011.108ZM31.656%2013.172V15.332H37.86V16.136H30.672V13.172H31.656ZM37.476%209.272H39.048V10.088H37.476V13.868H36.492V5.636H37.476V9.272ZM43.8711%2012.212V14.252H46.3311V12.212H43.8711ZM47.3031%2014.252H49.9431V15.056H40.1631V14.252H42.8991V12.212H41.3871V8.888H47.7711V7.22H41.3631V6.416H48.7311V9.68H42.3591V11.408H48.9831V12.212H47.3031V14.252Z'%20fill='white'/%3e%3c/svg%3e\"","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios, {AxiosInstance, CreateAxiosDefaults} from 'axios'\n\nconst config: CreateAxiosDefaults = {\n baseURL: 'https://3.35.245.28.nip.io'\n}\n\nexport const zaxios: AxiosInstance = axios.create(config)\n","import {zaxios} from '../zaxios.ts'\n\nexport interface PostEventParams {\n userId: number,\n phoneNumber: string\n}\n\nexport const postEvent = async (params: PostEventParams) => {\n const response = await zaxios.post('/rank/event', params)\n return response.data\n}\n","import {useMutation} from '@tanstack/vue-query'\nimport {postEvent, PostEventParams} from '../fetch/postEvent.ts'\n\nexport const usePostEvent = () => {\n return useMutation({\n mutationFn: (params: PostEventParams) => postEvent(params),\n })\n}\n","export default \"__VITE_ASSET__CiGzWlA6__\"","import { zaxios } from '../zaxios.ts'\n\nexport interface PostRankParams {\n nickName: string\n score: number\n gameId: string\n}\n\nexport interface PostRankResult {\n userId: number\n rank: number\n count: number\n currentTime: number\n}\n\nexport const postRank = async (params: PostRankParams): Promise => {\n const response = await zaxios.post('/rank', params)\n return response.data\n}\n","import {postRank, PostRankParams} from '../fetch/postRank.ts'\nimport {useMutation} from '@tanstack/vue-query'\n\nexport const usePostRank = () => {\n return useMutation({\n mutationFn: (params: PostRankParams) => postRank(params),\n })\n}\n","\n\n","\n","\n","\n\n","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2021C14.4853%2021%2016.7353%2019.9926%2018.3639%2018.3639C19.9926%2016.7353%2021%2014.4853%2021%2012C21%209.51474%2019.9926%207.26474%2018.3639%205.63604C16.7353%204.00736%2014.4853%203%2012%203C9.51474%203%207.26474%204.00736%205.63604%205.63604C4.00736%207.26474%203%209.51474%203%2012C3%2014.4853%204.00736%2016.7353%205.63604%2018.3639C7.26474%2019.9926%209.51474%2021%2012%2021Z'%20fill='%2366BE8B'/%3e%3cpath%20d='M8.5%2011.8333L10.8333%2014.1667L15.5%209.5'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2021C14.4853%2021%2016.7353%2019.9926%2018.3639%2018.3639C19.9926%2016.7353%2021%2014.4853%2021%2012C21%209.51474%2019.9926%207.26474%2018.3639%205.63604C16.7353%204.00736%2014.4853%203%2012%203C9.51474%203%207.26474%204.00736%205.63604%205.63604C4.00736%207.26474%203%209.51474%203%2012C3%2014.4853%204.00736%2016.7353%205.63604%2018.3639C7.26474%2019.9926%209.51474%2021%2012%2021Z'%20fill='%23FEBE31'/%3e%3cpath%20d='M8.5%2011.8333L10.8333%2014.1667L15.5%209.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","\n\n\n","\n\n","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18%206L6%2018M6%206L18%2018'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default {}",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t const N = 16;\n\n\t //Origin pbox and sbox, derived from PI\n\t const ORIG_P = [\n\t 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,\n\t 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,\n\t 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,\n\t 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,\n\t 0x9216D5D9, 0x8979FB1B\n\t ];\n\n\t const ORIG_S = [\n\t [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,\n\t 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,\n\t 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,\n\t 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,\n\t 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,\n\t 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,\n\t 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,\n\t 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,\n\t 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,\n\t 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,\n\t 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,\n\t 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,\n\t 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,\n\t 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,\n\t 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,\n\t 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,\n\t 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,\n\t 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,\n\t 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,\n\t 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,\n\t 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,\n\t 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,\n\t 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,\n\t 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,\n\t 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,\n\t 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,\n\t 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,\n\t 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,\n\t 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,\n\t 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,\n\t 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,\n\t 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,\n\t 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,\n\t 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,\n\t 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,\n\t 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,\n\t 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,\n\t 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,\n\t 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,\n\t 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,\n\t 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,\n\t 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,\n\t 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,\n\t 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,\n\t 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,\n\t 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,\n\t 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,\n\t 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,\n\t 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,\n\t 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,\n\t 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,\n\t 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,\n\t 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,\n\t 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,\n\t 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,\n\t 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,\n\t 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,\n\t 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,\n\t 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,\n\t 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,\n\t 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,\n\t 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,\n\t 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,\n\t 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],\n\t [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,\n\t 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,\n\t 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,\n\t 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,\n\t 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,\n\t 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,\n\t 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,\n\t 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,\n\t 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,\n\t 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,\n\t 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,\n\t 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,\n\t 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,\n\t 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,\n\t 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,\n\t 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,\n\t 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,\n\t 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,\n\t 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,\n\t 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,\n\t 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,\n\t 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,\n\t 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,\n\t 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,\n\t 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,\n\t 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,\n\t 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,\n\t 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,\n\t 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,\n\t 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,\n\t 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,\n\t 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,\n\t 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,\n\t 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,\n\t 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,\n\t 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,\n\t 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,\n\t 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,\n\t 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,\n\t 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,\n\t 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,\n\t 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,\n\t 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,\n\t 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,\n\t 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,\n\t 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,\n\t 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,\n\t 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,\n\t 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,\n\t 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,\n\t 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,\n\t 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,\n\t 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,\n\t 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,\n\t 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,\n\t 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,\n\t 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,\n\t 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,\n\t 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,\n\t 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,\n\t 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,\n\t 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,\n\t 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,\n\t 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],\n\t [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,\n\t 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,\n\t 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,\n\t 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,\n\t 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,\n\t 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,\n\t 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,\n\t 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,\n\t 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,\n\t 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,\n\t 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,\n\t 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,\n\t 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,\n\t 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,\n\t 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,\n\t 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,\n\t 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,\n\t 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,\n\t 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,\n\t 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,\n\t 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,\n\t 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,\n\t 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,\n\t 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,\n\t 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,\n\t 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,\n\t 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,\n\t 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,\n\t 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,\n\t 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,\n\t 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,\n\t 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,\n\t 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,\n\t 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,\n\t 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,\n\t 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,\n\t 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,\n\t 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,\n\t 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,\n\t 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,\n\t 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,\n\t 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,\n\t 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,\n\t 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,\n\t 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,\n\t 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,\n\t 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,\n\t 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,\n\t 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,\n\t 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,\n\t 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,\n\t 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,\n\t 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,\n\t 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,\n\t 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,\n\t 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,\n\t 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,\n\t 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,\n\t 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,\n\t 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,\n\t 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,\n\t 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,\n\t 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,\n\t 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],\n\t [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,\n\t 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,\n\t 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,\n\t 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,\n\t 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,\n\t 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,\n\t 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,\n\t 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,\n\t 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,\n\t 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,\n\t 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,\n\t 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,\n\t 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,\n\t 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,\n\t 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,\n\t 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,\n\t 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,\n\t 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,\n\t 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,\n\t 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,\n\t 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,\n\t 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,\n\t 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,\n\t 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,\n\t 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,\n\t 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,\n\t 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,\n\t 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,\n\t 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,\n\t 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,\n\t 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,\n\t 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,\n\t 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,\n\t 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,\n\t 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,\n\t 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,\n\t 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,\n\t 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,\n\t 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,\n\t 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,\n\t 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,\n\t 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,\n\t 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,\n\t 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,\n\t 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,\n\t 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,\n\t 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,\n\t 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,\n\t 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,\n\t 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,\n\t 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,\n\t 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,\n\t 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,\n\t 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,\n\t 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,\n\t 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,\n\t 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,\n\t 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,\n\t 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,\n\t 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,\n\t 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,\n\t 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,\n\t 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,\n\t 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]\n\t ];\n\n\t var BLOWFISH_CTX = {\n\t pbox: [],\n\t sbox: []\n\t }\n\n\t function F(ctx, x){\n\t let a = (x >> 24) & 0xFF;\n\t let b = (x >> 16) & 0xFF;\n\t let c = (x >> 8) & 0xFF;\n\t let d = x & 0xFF;\n\n\t let y = ctx.sbox[0][a] + ctx.sbox[1][b];\n\t y = y ^ ctx.sbox[2][c];\n\t y = y + ctx.sbox[3][d];\n\n\t return y;\n\t }\n\n\t function BlowFish_Encrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = 0; i < N; ++i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[N];\n\t Xl = Xl ^ ctx.pbox[N + 1];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t function BlowFish_Decrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = N + 1; i > 1; --i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[1];\n\t Xl = Xl ^ ctx.pbox[0];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t /**\n\t * Initialization ctx's pbox and sbox.\n\t *\n\t * @param {Object} ctx The object has pbox and sbox.\n\t * @param {Array} key An array of 32-bit words.\n\t * @param {int} keysize The length of the key.\n\t *\n\t * @example\n\t *\n\t * BlowFishInit(BLOWFISH_CTX, key, 128/32);\n\t */\n\t function BlowFishInit(ctx, key, keysize)\n\t {\n\t for(let Row = 0; Row < 4; Row++)\n\t {\n\t ctx.sbox[Row] = [];\n\t for(let Col = 0; Col < 256; Col++)\n\t {\n\t ctx.sbox[Row][Col] = ORIG_S[Row][Col];\n\t }\n\t }\n\n\t let keyIndex = 0;\n\t for(let index = 0; index < N + 2; index++)\n\t {\n\t ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\n\t keyIndex++;\n\t if(keyIndex >= keysize)\n\t {\n\t keyIndex = 0;\n\t }\n\t }\n\n\t let Data1 = 0;\n\t let Data2 = 0;\n\t let res = 0;\n\t for(let i = 0; i < N + 2; i += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.pbox[i] = Data1;\n\t ctx.pbox[i + 1] = Data2;\n\t }\n\n\t for(let i = 0; i < 4; i++)\n\t {\n\t for(let j = 0; j < 256; j += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.sbox[i][j] = Data1;\n\t ctx.sbox[i][j + 1] = Data2;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t /**\n\t * Blowfish block cipher algorithm.\n\t */\n\t var Blowfish = C_algo.Blowfish = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t //Initialization pbox and sbox\n\t BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t blockSize: 64/32,\n\n\t keySize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Blowfish = BlockCipher._createHelper(Blowfish);\n\t}());\n\n\n\treturn CryptoJS.Blowfish;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"), require(\"./blowfish\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\", \"./blowfish\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));","import * as crypto from 'crypto-js'\n\nexport const getGameId = () => {\n const current = new Date()\n const text = JSON.stringify(current)\n const encrypted = crypto.AES.encrypt(text, 'zzio-games-watermelon').toString()\n return encrypted\n}\n","\n\n","\n\n\n","export default \"data:image/svg+xml,%3csvg%20width='27'%20height='32'%20viewBox='0%200%2027%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.6751%2013.9973C22.0094%2013.0074%2021.4337%2011.9797%2020.7618%2011C18.0659%2011%2013.2394%2012.3628%2010.721%2013.3337C9.5596%2013.7815%208.51678%2014.2514%207.56378%2015.131C6.41118%2016.1949%205.7163%2017.3982%204.85279%2018.6537C4.26802%2019.504%203.6337%2020.8005%203.69252%2021.8502C3.74063%2022.7086%204.29889%2023.4778%204.39537%2024.3387C4.47243%2025.0262%204.94275%2025.7335%205.29904%2026.3075C5.41578%2026.4955%205.53843%2026.678%205.70067%2026.8273C6.11779%2027.2113%206.77047%2027.887%207.35739%2028.0163C7.77046%2028.1073%208.18879%2028.3071%208.56786%2028.4145C8.7991%2028.48%209.58367%2028.6032%209.71696%2028.7684C9.9764%2029.0899%2010.704%2028.9942%2011.0111%2029.2606C11.3322%2029.5391%2011.9475%2029.6032%2012.3499%2029.7362C13.5928%2030.1469%2014.8972%2029.97%2016.1877%2029.9131C17.9245%2029.8366%2019.9897%2029.4132%2021.6097%2028.8292C22.9624%2028.3416%2023.8858%2027.4229%2024.7725%2026.3241C25.3628%2025.5926%2025.1578%2024.8156%2025.4998%2023.9437C25.4998%2022.2917%2024.4865%2017.7774%2024.2705%2017.0279C24.1799%2016.7138%2023.8308%2016.0193%2023.6234%2015.7725C23.2005%2015.2695%2023.0384%2014.5376%2022.6751%2013.9973Z'%20fill='%23FFAF00'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M11.394%204.88757C12.0487%204.88757%2012.8637%204.88894%2013.4503%205.21956C14.1539%205.21956%2016.866%206.49125%2017.4851%206.80135C18.8619%207.49106%2020.6351%208.20366%2021.4321%209.6232C22.5235%2011.5673%2023.6156%2013.0723%2024.0634%2015.3157C24.2668%2016.3346%2023.9757%2017.311%2023.9757%2018.3328C23.9757%2019.569%2023.7328%2020.8766%2023.0986%2021.9553C21.9546%2023.901%2020.499%2025.8627%2018.1478%2026.0954C15.9988%2026.308%2013.6084%2026.1517%2011.4817%2025.7829C9.35491%2025.4141%204.63133%2025.1304%203.46101%2022.7853C2.91517%2021.6915%202.33344%2020.9146%201.96018%2019.7096C1.45409%2018.0758%201.41314%2016.3226%201.60933%2014.6322C1.87882%2012.3103%202.42186%2010.1983%204.32838%208.63702C5.80445%207.4282%207.50838%206.49245%209.20122%205.62965C9.89839%205.27432%2010.5979%204.88757%2011.394%204.88757Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M9.48914%2013.0118C9.91466%2012.8733%2010.4718%2012.8991%2010.918%2012.8898C11.744%2012.8726%2012.5717%2012.8863%2013.398%2012.8863C13.8207%2012.8863%2014.2525%2012.8641%2014.6749%2012.8863C14.8888%2012.8976%2014.7851%2013.5824%2014.7606%2013.6877C14.5898%2014.4215%2013.9213%2015.0892%2013.3279%2015.583C12.3809%2016.371%2011.3628%2017.1124%2010.3456%2017.8267C10.1145%2017.9891%209.77297%2018.1771%209.61372%2018.4051C9.51256%2018.5499%209.48725%2018.5196%209.79281%2018.5932C10.4594%2018.7538%2011.1604%2018.8125%2011.8407%2018.9068C12.9895%2019.066%2014.1296%2019.2704%2015.2784%2019.4294C15.5609%2019.4685%2015.8587%2019.5339%2016.1466%2019.5339'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.7046%2026.567C14.7046%2026.8579%2014.7319%2027.3589%2014.9399%2027.5669'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M20.3511%2025.2731C20.4794%2025.6296%2020.6433%2025.9734%2020.7628%2026.3318'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","/*!\n * matter-js 0.19.0 by @liabru\n * http://brm.io/matter-js/\n * License MIT\n * \n * The MIT License (MIT)\n * \n * Copyright (c) Liam Brummitt and contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Matter\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Matter\"] = factory();\n\telse\n\t\troot[\"Matter\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Common` module contains utility functions that are common to all modules.\n*\n* @class Common\n*/\n\nvar Common = {};\n\nmodule.exports = Common;\n\n(function() {\n\n Common._baseDelta = 1000 / 60;\n Common._nextId = 0;\n Common._seed = 0;\n Common._nowStartTime = +(new Date());\n Common._warnedOnce = {};\n Common._decomp = null;\n \n /**\n * Extends the object in the first argument using the object in the second argument.\n * @method extend\n * @param {} obj\n * @param {boolean} deep\n * @return {} obj extended\n */\n Common.extend = function(obj, deep) {\n var argsStart,\n args,\n deepClone;\n\n if (typeof deep === 'boolean') {\n argsStart = 2;\n deepClone = deep;\n } else {\n argsStart = 1;\n deepClone = true;\n }\n\n for (var i = argsStart; i < arguments.length; i++) {\n var source = arguments[i];\n\n if (source) {\n for (var prop in source) {\n if (deepClone && source[prop] && source[prop].constructor === Object) {\n if (!obj[prop] || obj[prop].constructor === Object) {\n obj[prop] = obj[prop] || {};\n Common.extend(obj[prop], deepClone, source[prop]);\n } else {\n obj[prop] = source[prop];\n }\n } else {\n obj[prop] = source[prop];\n }\n }\n }\n }\n \n return obj;\n };\n\n /**\n * Creates a new clone of the object, if deep is true references will also be cloned.\n * @method clone\n * @param {} obj\n * @param {bool} deep\n * @return {} obj cloned\n */\n Common.clone = function(obj, deep) {\n return Common.extend({}, deep, obj);\n };\n\n /**\n * Returns the list of keys for the given object.\n * @method keys\n * @param {} obj\n * @return {string[]} keys\n */\n Common.keys = function(obj) {\n if (Object.keys)\n return Object.keys(obj);\n\n // avoid hasOwnProperty for performance\n var keys = [];\n for (var key in obj)\n keys.push(key);\n return keys;\n };\n\n /**\n * Returns the list of values for the given object.\n * @method values\n * @param {} obj\n * @return {array} Array of the objects property values\n */\n Common.values = function(obj) {\n var values = [];\n \n if (Object.keys) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n \n // avoid hasOwnProperty for performance\n for (var key in obj)\n values.push(obj[key]);\n return values;\n };\n\n /**\n * Gets a value from `base` relative to the `path` string.\n * @method get\n * @param {} obj The base object\n * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n * @param {number} [begin] Path slice begin\n * @param {number} [end] Path slice end\n * @return {} The object at the given path\n */\n Common.get = function(obj, path, begin, end) {\n path = path.split('.').slice(begin, end);\n\n for (var i = 0; i < path.length; i += 1) {\n obj = obj[path[i]];\n }\n\n return obj;\n };\n\n /**\n * Sets a value on `base` relative to the given `path` string.\n * @method set\n * @param {} obj The base object\n * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n * @param {} val The value to set\n * @param {number} [begin] Path slice begin\n * @param {number} [end] Path slice end\n * @return {} Pass through `val` for chaining\n */\n Common.set = function(obj, path, val, begin, end) {\n var parts = path.split('.').slice(begin, end);\n Common.get(obj, path, 0, -1)[parts[parts.length - 1]] = val;\n return val;\n };\n\n /**\n * Shuffles the given array in-place.\n * The function uses a seeded random generator.\n * @method shuffle\n * @param {array} array\n * @return {array} array shuffled randomly\n */\n Common.shuffle = function(array) {\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Common.random() * (i + 1));\n var temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n return array;\n };\n\n /**\n * Randomly chooses a value from a list with equal probability.\n * The function uses a seeded random generator.\n * @method choose\n * @param {array} choices\n * @return {object} A random choice object from the array\n */\n Common.choose = function(choices) {\n return choices[Math.floor(Common.random() * choices.length)];\n };\n\n /**\n * Returns true if the object is a HTMLElement, otherwise false.\n * @method isElement\n * @param {object} obj\n * @return {boolean} True if the object is a HTMLElement, otherwise false\n */\n Common.isElement = function(obj) {\n if (typeof HTMLElement !== 'undefined') {\n return obj instanceof HTMLElement;\n }\n\n return !!(obj && obj.nodeType && obj.nodeName);\n };\n\n /**\n * Returns true if the object is an array.\n * @method isArray\n * @param {object} obj\n * @return {boolean} True if the object is an array, otherwise false\n */\n Common.isArray = function(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n\n /**\n * Returns true if the object is a function.\n * @method isFunction\n * @param {object} obj\n * @return {boolean} True if the object is a function, otherwise false\n */\n Common.isFunction = function(obj) {\n return typeof obj === \"function\";\n };\n\n /**\n * Returns true if the object is a plain object.\n * @method isPlainObject\n * @param {object} obj\n * @return {boolean} True if the object is a plain object, otherwise false\n */\n Common.isPlainObject = function(obj) {\n return typeof obj === 'object' && obj.constructor === Object;\n };\n\n /**\n * Returns true if the object is a string.\n * @method isString\n * @param {object} obj\n * @return {boolean} True if the object is a string, otherwise false\n */\n Common.isString = function(obj) {\n return toString.call(obj) === '[object String]';\n };\n \n /**\n * Returns the given value clamped between a minimum and maximum value.\n * @method clamp\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @return {number} The value clamped between min and max inclusive\n */\n Common.clamp = function(value, min, max) {\n if (value < min)\n return min;\n if (value > max)\n return max;\n return value;\n };\n \n /**\n * Returns the sign of the given value.\n * @method sign\n * @param {number} value\n * @return {number} -1 if negative, +1 if 0 or positive\n */\n Common.sign = function(value) {\n return value < 0 ? -1 : 1;\n };\n \n /**\n * Returns the current timestamp since the time origin (e.g. from page load).\n * The result is in milliseconds and will use high-resolution timing if available.\n * @method now\n * @return {number} the current timestamp in milliseconds\n */\n Common.now = function() {\n if (typeof window !== 'undefined' && window.performance) {\n if (window.performance.now) {\n return window.performance.now();\n } else if (window.performance.webkitNow) {\n return window.performance.webkitNow();\n }\n }\n\n if (Date.now) {\n return Date.now();\n }\n\n return (new Date()) - Common._nowStartTime;\n };\n \n /**\n * Returns a random value between a minimum and a maximum value inclusive.\n * The function uses a seeded random generator.\n * @method random\n * @param {number} min\n * @param {number} max\n * @return {number} A random number between min and max inclusive\n */\n Common.random = function(min, max) {\n min = (typeof min !== \"undefined\") ? min : 0;\n max = (typeof max !== \"undefined\") ? max : 1;\n return min + _seededRandom() * (max - min);\n };\n\n var _seededRandom = function() {\n // https://en.wikipedia.org/wiki/Linear_congruential_generator\n Common._seed = (Common._seed * 9301 + 49297) % 233280;\n return Common._seed / 233280;\n };\n\n /**\n * Converts a CSS hex colour string into an integer.\n * @method colorToNumber\n * @param {string} colorString\n * @return {number} An integer representing the CSS hex string\n */\n Common.colorToNumber = function(colorString) {\n colorString = colorString.replace('#','');\n\n if (colorString.length == 3) {\n colorString = colorString.charAt(0) + colorString.charAt(0)\n + colorString.charAt(1) + colorString.charAt(1)\n + colorString.charAt(2) + colorString.charAt(2);\n }\n\n return parseInt(colorString, 16);\n };\n\n /**\n * The console logging level to use, where each level includes all levels above and excludes the levels below.\n * The default level is 'debug' which shows all console messages. \n *\n * Possible level values are:\n * - 0 = None\n * - 1 = Debug\n * - 2 = Info\n * - 3 = Warn\n * - 4 = Error\n * @static\n * @property logLevel\n * @type {Number}\n * @default 1\n */\n Common.logLevel = 1;\n\n /**\n * Shows a `console.log` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method log\n * @param ...objs {} The objects to log.\n */\n Common.log = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 3) {\n console.log.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Shows a `console.info` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method info\n * @param ...objs {} The objects to log.\n */\n Common.info = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 2) {\n console.info.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Shows a `console.warn` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method warn\n * @param ...objs {} The objects to log.\n */\n Common.warn = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 3) {\n console.warn.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Uses `Common.warn` to log the given message one time only.\n * @method warnOnce\n * @param ...objs {} The objects to log.\n */\n Common.warnOnce = function() {\n var message = Array.prototype.slice.call(arguments).join(' ');\n\n if (!Common._warnedOnce[message]) {\n Common.warn(message);\n Common._warnedOnce[message] = true;\n }\n };\n\n /**\n * Shows a deprecated console warning when the function on the given object is called.\n * The target function will be replaced with a new function that first shows the warning\n * and then calls the original function.\n * @method deprecated\n * @param {object} obj The object or module\n * @param {string} name The property name of the function on obj\n * @param {string} warning The one-time message to show if the function is called\n */\n Common.deprecated = function(obj, prop, warning) {\n obj[prop] = Common.chain(function() {\n Common.warnOnce('🔅 deprecated 🔅', warning);\n }, obj[prop]);\n };\n\n /**\n * Returns the next unique sequential ID.\n * @method nextId\n * @return {Number} Unique sequential ID\n */\n Common.nextId = function() {\n return Common._nextId++;\n };\n\n /**\n * A cross browser compatible indexOf implementation.\n * @method indexOf\n * @param {array} haystack\n * @param {object} needle\n * @return {number} The position of needle in haystack, otherwise -1.\n */\n Common.indexOf = function(haystack, needle) {\n if (haystack.indexOf)\n return haystack.indexOf(needle);\n\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle)\n return i;\n }\n\n return -1;\n };\n\n /**\n * A cross browser compatible array map implementation.\n * @method map\n * @param {array} list\n * @param {function} func\n * @return {array} Values from list transformed by func.\n */\n Common.map = function(list, func) {\n if (list.map) {\n return list.map(func);\n }\n\n var mapped = [];\n\n for (var i = 0; i < list.length; i += 1) {\n mapped.push(func(list[i]));\n }\n\n return mapped;\n };\n\n /**\n * Takes a directed graph and returns the partially ordered set of vertices in topological order.\n * Circular dependencies are allowed.\n * @method topologicalSort\n * @param {object} graph\n * @return {array} Partially ordered set of vertices in topological order.\n */\n Common.topologicalSort = function(graph) {\n // https://github.com/mgechev/javascript-algorithms\n // Copyright (c) Minko Gechev (MIT license)\n // Modifications: tidy formatting and naming\n var result = [],\n visited = [],\n temp = [];\n\n for (var node in graph) {\n if (!visited[node] && !temp[node]) {\n Common._topologicalSort(node, visited, temp, graph, result);\n }\n }\n\n return result;\n };\n\n Common._topologicalSort = function(node, visited, temp, graph, result) {\n var neighbors = graph[node] || [];\n temp[node] = true;\n\n for (var i = 0; i < neighbors.length; i += 1) {\n var neighbor = neighbors[i];\n\n if (temp[neighbor]) {\n // skip circular dependencies\n continue;\n }\n\n if (!visited[neighbor]) {\n Common._topologicalSort(neighbor, visited, temp, graph, result);\n }\n }\n\n temp[node] = false;\n visited[node] = true;\n\n result.push(node);\n };\n\n /**\n * Takes _n_ functions as arguments and returns a new function that calls them in order.\n * The arguments applied when calling the new function will also be applied to every function passed.\n * The value of `this` refers to the last value returned in the chain that was not `undefined`.\n * Therefore if a passed function does not return a value, the previously returned value is maintained.\n * After all passed functions have been called the new function returns the last returned value (if any).\n * If any of the passed functions are a chain, then the chain will be flattened.\n * @method chain\n * @param ...funcs {function} The functions to chain.\n * @return {function} A new function that calls the passed functions in order.\n */\n Common.chain = function() {\n var funcs = [];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var func = arguments[i];\n\n if (func._chained) {\n // flatten already chained functions\n funcs.push.apply(funcs, func._chained);\n } else {\n funcs.push(func);\n }\n }\n\n var chain = function() {\n // https://github.com/GoogleChrome/devtools-docs/issues/53#issuecomment-51941358\n var lastResult,\n args = new Array(arguments.length);\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n args[i] = arguments[i];\n }\n\n for (i = 0; i < funcs.length; i += 1) {\n var result = funcs[i].apply(lastResult, args);\n\n if (typeof result !== 'undefined') {\n lastResult = result;\n }\n }\n\n return lastResult;\n };\n\n chain._chained = funcs;\n\n return chain;\n };\n\n /**\n * Chains a function to excute before the original function on the given `path` relative to `base`.\n * See also docs for `Common.chain`.\n * @method chainPathBefore\n * @param {} base The base object\n * @param {string} path The path relative to `base`\n * @param {function} func The function to chain before the original\n * @return {function} The chained function that replaced the original\n */\n Common.chainPathBefore = function(base, path, func) {\n return Common.set(base, path, Common.chain(\n func,\n Common.get(base, path)\n ));\n };\n\n /**\n * Chains a function to excute after the original function on the given `path` relative to `base`.\n * See also docs for `Common.chain`.\n * @method chainPathAfter\n * @param {} base The base object\n * @param {string} path The path relative to `base`\n * @param {function} func The function to chain after the original\n * @return {function} The chained function that replaced the original\n */\n Common.chainPathAfter = function(base, path, func) {\n return Common.set(base, path, Common.chain(\n Common.get(base, path),\n func\n ));\n };\n\n /**\n * Provide the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module to enable\n * concave vertex decomposition support when using `Bodies.fromVertices` e.g. `Common.setDecomp(require('poly-decomp'))`.\n * @method setDecomp\n * @param {} decomp The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module.\n */\n Common.setDecomp = function(decomp) {\n Common._decomp = decomp;\n };\n\n /**\n * Returns the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module provided through `Common.setDecomp`,\n * otherwise returns the global `decomp` if set.\n * @method getDecomp\n * @return {} The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module if provided.\n */\n Common.getDecomp = function() {\n // get user provided decomp if set\n var decomp = Common._decomp;\n\n try {\n // otherwise from window global\n if (!decomp && typeof window !== 'undefined') {\n decomp = window.decomp;\n }\n \n // otherwise from node global\n if (!decomp && typeof global !== 'undefined') {\n decomp = global.decomp;\n }\n } catch (e) {\n // decomp not available\n decomp = null;\n }\n\n return decomp;\n };\n})();\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Bounds` module contains methods for creating and manipulating axis-aligned bounding boxes (AABB).\n*\n* @class Bounds\n*/\n\nvar Bounds = {};\n\nmodule.exports = Bounds;\n\n(function() {\n\n /**\n * Creates a new axis-aligned bounding box (AABB) for the given vertices.\n * @method create\n * @param {vertices} vertices\n * @return {bounds} A new bounds object\n */\n Bounds.create = function(vertices) {\n var bounds = { \n min: { x: 0, y: 0 }, \n max: { x: 0, y: 0 }\n };\n\n if (vertices)\n Bounds.update(bounds, vertices);\n \n return bounds;\n };\n\n /**\n * Updates bounds using the given vertices and extends the bounds given a velocity.\n * @method update\n * @param {bounds} bounds\n * @param {vertices} vertices\n * @param {vector} velocity\n */\n Bounds.update = function(bounds, vertices, velocity) {\n bounds.min.x = Infinity;\n bounds.max.x = -Infinity;\n bounds.min.y = Infinity;\n bounds.max.y = -Infinity;\n\n for (var i = 0; i < vertices.length; i++) {\n var vertex = vertices[i];\n if (vertex.x > bounds.max.x) bounds.max.x = vertex.x;\n if (vertex.x < bounds.min.x) bounds.min.x = vertex.x;\n if (vertex.y > bounds.max.y) bounds.max.y = vertex.y;\n if (vertex.y < bounds.min.y) bounds.min.y = vertex.y;\n }\n \n if (velocity) {\n if (velocity.x > 0) {\n bounds.max.x += velocity.x;\n } else {\n bounds.min.x += velocity.x;\n }\n \n if (velocity.y > 0) {\n bounds.max.y += velocity.y;\n } else {\n bounds.min.y += velocity.y;\n }\n }\n };\n\n /**\n * Returns true if the bounds contains the given point.\n * @method contains\n * @param {bounds} bounds\n * @param {vector} point\n * @return {boolean} True if the bounds contain the point, otherwise false\n */\n Bounds.contains = function(bounds, point) {\n return point.x >= bounds.min.x && point.x <= bounds.max.x \n && point.y >= bounds.min.y && point.y <= bounds.max.y;\n };\n\n /**\n * Returns true if the two bounds intersect.\n * @method overlaps\n * @param {bounds} boundsA\n * @param {bounds} boundsB\n * @return {boolean} True if the bounds overlap, otherwise false\n */\n Bounds.overlaps = function(boundsA, boundsB) {\n return (boundsA.min.x <= boundsB.max.x && boundsA.max.x >= boundsB.min.x\n && boundsA.max.y >= boundsB.min.y && boundsA.min.y <= boundsB.max.y);\n };\n\n /**\n * Translates the bounds by the given vector.\n * @method translate\n * @param {bounds} bounds\n * @param {vector} vector\n */\n Bounds.translate = function(bounds, vector) {\n bounds.min.x += vector.x;\n bounds.max.x += vector.x;\n bounds.min.y += vector.y;\n bounds.max.y += vector.y;\n };\n\n /**\n * Shifts the bounds to the given position.\n * @method shift\n * @param {bounds} bounds\n * @param {vector} position\n */\n Bounds.shift = function(bounds, position) {\n var deltaX = bounds.max.x - bounds.min.x,\n deltaY = bounds.max.y - bounds.min.y;\n \n bounds.min.x = position.x;\n bounds.max.x = position.x + deltaX;\n bounds.min.y = position.y;\n bounds.max.y = position.y + deltaY;\n };\n \n})();\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Vector` module contains methods for creating and manipulating vectors.\n* Vectors are the basis of all the geometry related operations in the engine.\n* A `Matter.Vector` object is of the form `{ x: 0, y: 0 }`.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Vector\n*/\n\n// TODO: consider params for reusing vector objects\n\nvar Vector = {};\n\nmodule.exports = Vector;\n\n(function() {\n\n /**\n * Creates a new vector.\n * @method create\n * @param {number} x\n * @param {number} y\n * @return {vector} A new vector\n */\n Vector.create = function(x, y) {\n return { x: x || 0, y: y || 0 };\n };\n\n /**\n * Returns a new vector with `x` and `y` copied from the given `vector`.\n * @method clone\n * @param {vector} vector\n * @return {vector} A new cloned vector\n */\n Vector.clone = function(vector) {\n return { x: vector.x, y: vector.y };\n };\n\n /**\n * Returns the magnitude (length) of a vector.\n * @method magnitude\n * @param {vector} vector\n * @return {number} The magnitude of the vector\n */\n Vector.magnitude = function(vector) {\n return Math.sqrt((vector.x * vector.x) + (vector.y * vector.y));\n };\n\n /**\n * Returns the magnitude (length) of a vector (therefore saving a `sqrt` operation).\n * @method magnitudeSquared\n * @param {vector} vector\n * @return {number} The squared magnitude of the vector\n */\n Vector.magnitudeSquared = function(vector) {\n return (vector.x * vector.x) + (vector.y * vector.y);\n };\n\n /**\n * Rotates the vector about (0, 0) by specified angle.\n * @method rotate\n * @param {vector} vector\n * @param {number} angle\n * @param {vector} [output]\n * @return {vector} The vector rotated about (0, 0)\n */\n Vector.rotate = function(vector, angle, output) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n if (!output) output = {};\n var x = vector.x * cos - vector.y * sin;\n output.y = vector.x * sin + vector.y * cos;\n output.x = x;\n return output;\n };\n\n /**\n * Rotates the vector about a specified point by specified angle.\n * @method rotateAbout\n * @param {vector} vector\n * @param {number} angle\n * @param {vector} point\n * @param {vector} [output]\n * @return {vector} A new vector rotated about the point\n */\n Vector.rotateAbout = function(vector, angle, point, output) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n if (!output) output = {};\n var x = point.x + ((vector.x - point.x) * cos - (vector.y - point.y) * sin);\n output.y = point.y + ((vector.x - point.x) * sin + (vector.y - point.y) * cos);\n output.x = x;\n return output;\n };\n\n /**\n * Normalises a vector (such that its magnitude is `1`).\n * @method normalise\n * @param {vector} vector\n * @return {vector} A new vector normalised\n */\n Vector.normalise = function(vector) {\n var magnitude = Vector.magnitude(vector);\n if (magnitude === 0)\n return { x: 0, y: 0 };\n return { x: vector.x / magnitude, y: vector.y / magnitude };\n };\n\n /**\n * Returns the dot-product of two vectors.\n * @method dot\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The dot product of the two vectors\n */\n Vector.dot = function(vectorA, vectorB) {\n return (vectorA.x * vectorB.x) + (vectorA.y * vectorB.y);\n };\n\n /**\n * Returns the cross-product of two vectors.\n * @method cross\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The cross product of the two vectors\n */\n Vector.cross = function(vectorA, vectorB) {\n return (vectorA.x * vectorB.y) - (vectorA.y * vectorB.x);\n };\n\n /**\n * Returns the cross-product of three vectors.\n * @method cross3\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} vectorC\n * @return {number} The cross product of the three vectors\n */\n Vector.cross3 = function(vectorA, vectorB, vectorC) {\n return (vectorB.x - vectorA.x) * (vectorC.y - vectorA.y) - (vectorB.y - vectorA.y) * (vectorC.x - vectorA.x);\n };\n\n /**\n * Adds the two vectors.\n * @method add\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} [output]\n * @return {vector} A new vector of vectorA and vectorB added\n */\n Vector.add = function(vectorA, vectorB, output) {\n if (!output) output = {};\n output.x = vectorA.x + vectorB.x;\n output.y = vectorA.y + vectorB.y;\n return output;\n };\n\n /**\n * Subtracts the two vectors.\n * @method sub\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} [output]\n * @return {vector} A new vector of vectorA and vectorB subtracted\n */\n Vector.sub = function(vectorA, vectorB, output) {\n if (!output) output = {};\n output.x = vectorA.x - vectorB.x;\n output.y = vectorA.y - vectorB.y;\n return output;\n };\n\n /**\n * Multiplies a vector and a scalar.\n * @method mult\n * @param {vector} vector\n * @param {number} scalar\n * @return {vector} A new vector multiplied by scalar\n */\n Vector.mult = function(vector, scalar) {\n return { x: vector.x * scalar, y: vector.y * scalar };\n };\n\n /**\n * Divides a vector and a scalar.\n * @method div\n * @param {vector} vector\n * @param {number} scalar\n * @return {vector} A new vector divided by scalar\n */\n Vector.div = function(vector, scalar) {\n return { x: vector.x / scalar, y: vector.y / scalar };\n };\n\n /**\n * Returns the perpendicular vector. Set `negate` to true for the perpendicular in the opposite direction.\n * @method perp\n * @param {vector} vector\n * @param {bool} [negate=false]\n * @return {vector} The perpendicular vector\n */\n Vector.perp = function(vector, negate) {\n negate = negate === true ? -1 : 1;\n return { x: negate * -vector.y, y: negate * vector.x };\n };\n\n /**\n * Negates both components of a vector such that it points in the opposite direction.\n * @method neg\n * @param {vector} vector\n * @return {vector} The negated vector\n */\n Vector.neg = function(vector) {\n return { x: -vector.x, y: -vector.y };\n };\n\n /**\n * Returns the angle between the vector `vectorB - vectorA` and the x-axis in radians.\n * @method angle\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The angle in radians\n */\n Vector.angle = function(vectorA, vectorB) {\n return Math.atan2(vectorB.y - vectorA.y, vectorB.x - vectorA.x);\n };\n\n /**\n * Temporary vector pool (not thread-safe).\n * @property _temp\n * @type {vector[]}\n * @private\n */\n Vector._temp = [\n Vector.create(), Vector.create(), \n Vector.create(), Vector.create(), \n Vector.create(), Vector.create()\n ];\n\n})();\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Vertices` module contains methods for creating and manipulating sets of vertices.\n* A set of vertices is an array of `Matter.Vector` with additional indexing properties inserted by `Vertices.create`.\n* A `Matter.Body` maintains a set of vertices to represent the shape of the object (its convex hull).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Vertices\n*/\n\nvar Vertices = {};\n\nmodule.exports = Vertices;\n\nvar Vector = __webpack_require__(2);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new set of `Matter.Body` compatible vertices.\n * The `points` argument accepts an array of `Matter.Vector` points orientated around the origin `(0, 0)`, for example:\n *\n * [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]\n *\n * The `Vertices.create` method returns a new array of vertices, which are similar to Matter.Vector objects,\n * but with some additional references required for efficient collision detection routines.\n *\n * Vertices must be specified in clockwise order.\n *\n * Note that the `body` argument is not optional, a `Matter.Body` reference must be provided.\n *\n * @method create\n * @param {vector[]} points\n * @param {body} body\n */\n Vertices.create = function(points, body) {\n var vertices = [];\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i],\n vertex = {\n x: point.x,\n y: point.y,\n index: i,\n body: body,\n isInternal: false\n };\n\n vertices.push(vertex);\n }\n\n return vertices;\n };\n\n /**\n * Parses a string containing ordered x y pairs separated by spaces (and optionally commas), \n * into a `Matter.Vertices` object for the given `Matter.Body`.\n * For parsing SVG paths, see `Svg.pathToVertices`.\n * @method fromPath\n * @param {string} path\n * @param {body} body\n * @return {vertices} vertices\n */\n Vertices.fromPath = function(path, body) {\n var pathPattern = /L?\\s*([-\\d.e]+)[\\s,]*([-\\d.e]+)*/ig,\n points = [];\n\n path.replace(pathPattern, function(match, x, y) {\n points.push({ x: parseFloat(x), y: parseFloat(y) });\n });\n\n return Vertices.create(points, body);\n };\n\n /**\n * Returns the centre (centroid) of the set of vertices.\n * @method centre\n * @param {vertices} vertices\n * @return {vector} The centre point\n */\n Vertices.centre = function(vertices) {\n var area = Vertices.area(vertices, true),\n centre = { x: 0, y: 0 },\n cross,\n temp,\n j;\n\n for (var i = 0; i < vertices.length; i++) {\n j = (i + 1) % vertices.length;\n cross = Vector.cross(vertices[i], vertices[j]);\n temp = Vector.mult(Vector.add(vertices[i], vertices[j]), cross);\n centre = Vector.add(centre, temp);\n }\n\n return Vector.div(centre, 6 * area);\n };\n\n /**\n * Returns the average (mean) of the set of vertices.\n * @method mean\n * @param {vertices} vertices\n * @return {vector} The average point\n */\n Vertices.mean = function(vertices) {\n var average = { x: 0, y: 0 };\n\n for (var i = 0; i < vertices.length; i++) {\n average.x += vertices[i].x;\n average.y += vertices[i].y;\n }\n\n return Vector.div(average, vertices.length);\n };\n\n /**\n * Returns the area of the set of vertices.\n * @method area\n * @param {vertices} vertices\n * @param {bool} signed\n * @return {number} The area\n */\n Vertices.area = function(vertices, signed) {\n var area = 0,\n j = vertices.length - 1;\n\n for (var i = 0; i < vertices.length; i++) {\n area += (vertices[j].x - vertices[i].x) * (vertices[j].y + vertices[i].y);\n j = i;\n }\n\n if (signed)\n return area / 2;\n\n return Math.abs(area) / 2;\n };\n\n /**\n * Returns the moment of inertia (second moment of area) of the set of vertices given the total mass.\n * @method inertia\n * @param {vertices} vertices\n * @param {number} mass\n * @return {number} The polygon's moment of inertia\n */\n Vertices.inertia = function(vertices, mass) {\n var numerator = 0,\n denominator = 0,\n v = vertices,\n cross,\n j;\n\n // find the polygon's moment of inertia, using second moment of area\n // from equations at http://www.physicsforums.com/showthread.php?t=25293\n for (var n = 0; n < v.length; n++) {\n j = (n + 1) % v.length;\n cross = Math.abs(Vector.cross(v[j], v[n]));\n numerator += cross * (Vector.dot(v[j], v[j]) + Vector.dot(v[j], v[n]) + Vector.dot(v[n], v[n]));\n denominator += cross;\n }\n\n return (mass / 6) * (numerator / denominator);\n };\n\n /**\n * Translates the set of vertices in-place.\n * @method translate\n * @param {vertices} vertices\n * @param {vector} vector\n * @param {number} scalar\n */\n Vertices.translate = function(vertices, vector, scalar) {\n scalar = typeof scalar !== 'undefined' ? scalar : 1;\n\n var verticesLength = vertices.length,\n translateX = vector.x * scalar,\n translateY = vector.y * scalar,\n i;\n \n for (i = 0; i < verticesLength; i++) {\n vertices[i].x += translateX;\n vertices[i].y += translateY;\n }\n\n return vertices;\n };\n\n /**\n * Rotates the set of vertices in-place.\n * @method rotate\n * @param {vertices} vertices\n * @param {number} angle\n * @param {vector} point\n */\n Vertices.rotate = function(vertices, angle, point) {\n if (angle === 0)\n return;\n\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n pointX = point.x,\n pointY = point.y,\n verticesLength = vertices.length,\n vertex,\n dx,\n dy,\n i;\n\n for (i = 0; i < verticesLength; i++) {\n vertex = vertices[i];\n dx = vertex.x - pointX;\n dy = vertex.y - pointY;\n vertex.x = pointX + (dx * cos - dy * sin);\n vertex.y = pointY + (dx * sin + dy * cos);\n }\n\n return vertices;\n };\n\n /**\n * Returns `true` if the `point` is inside the set of `vertices`.\n * @method contains\n * @param {vertices} vertices\n * @param {vector} point\n * @return {boolean} True if the vertices contains point, otherwise false\n */\n Vertices.contains = function(vertices, point) {\n var pointX = point.x,\n pointY = point.y,\n verticesLength = vertices.length,\n vertex = vertices[verticesLength - 1],\n nextVertex;\n\n for (var i = 0; i < verticesLength; i++) {\n nextVertex = vertices[i];\n\n if ((pointX - vertex.x) * (nextVertex.y - vertex.y) \n + (pointY - vertex.y) * (vertex.x - nextVertex.x) > 0) {\n return false;\n }\n\n vertex = nextVertex;\n }\n\n return true;\n };\n\n /**\n * Scales the vertices from a point (default is centre) in-place.\n * @method scale\n * @param {vertices} vertices\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} point\n */\n Vertices.scale = function(vertices, scaleX, scaleY, point) {\n if (scaleX === 1 && scaleY === 1)\n return vertices;\n\n point = point || Vertices.centre(vertices);\n\n var vertex,\n delta;\n\n for (var i = 0; i < vertices.length; i++) {\n vertex = vertices[i];\n delta = Vector.sub(vertex, point);\n vertices[i].x = point.x + delta.x * scaleX;\n vertices[i].y = point.y + delta.y * scaleY;\n }\n\n return vertices;\n };\n\n /**\n * Chamfers a set of vertices by giving them rounded corners, returns a new set of vertices.\n * The radius parameter is a single number or an array to specify the radius for each vertex.\n * @method chamfer\n * @param {vertices} vertices\n * @param {number[]} radius\n * @param {number} quality\n * @param {number} qualityMin\n * @param {number} qualityMax\n */\n Vertices.chamfer = function(vertices, radius, quality, qualityMin, qualityMax) {\n if (typeof radius === 'number') {\n radius = [radius];\n } else {\n radius = radius || [8];\n }\n\n // quality defaults to -1, which is auto\n quality = (typeof quality !== 'undefined') ? quality : -1;\n qualityMin = qualityMin || 2;\n qualityMax = qualityMax || 14;\n\n var newVertices = [];\n\n for (var i = 0; i < vertices.length; i++) {\n var prevVertex = vertices[i - 1 >= 0 ? i - 1 : vertices.length - 1],\n vertex = vertices[i],\n nextVertex = vertices[(i + 1) % vertices.length],\n currentRadius = radius[i < radius.length ? i : radius.length - 1];\n\n if (currentRadius === 0) {\n newVertices.push(vertex);\n continue;\n }\n\n var prevNormal = Vector.normalise({ \n x: vertex.y - prevVertex.y, \n y: prevVertex.x - vertex.x\n });\n\n var nextNormal = Vector.normalise({ \n x: nextVertex.y - vertex.y, \n y: vertex.x - nextVertex.x\n });\n\n var diagonalRadius = Math.sqrt(2 * Math.pow(currentRadius, 2)),\n radiusVector = Vector.mult(Common.clone(prevNormal), currentRadius),\n midNormal = Vector.normalise(Vector.mult(Vector.add(prevNormal, nextNormal), 0.5)),\n scaledVertex = Vector.sub(vertex, Vector.mult(midNormal, diagonalRadius));\n\n var precision = quality;\n\n if (quality === -1) {\n // automatically decide precision\n precision = Math.pow(currentRadius, 0.32) * 1.75;\n }\n\n precision = Common.clamp(precision, qualityMin, qualityMax);\n\n // use an even value for precision, more likely to reduce axes by using symmetry\n if (precision % 2 === 1)\n precision += 1;\n\n var alpha = Math.acos(Vector.dot(prevNormal, nextNormal)),\n theta = alpha / precision;\n\n for (var j = 0; j < precision; j++) {\n newVertices.push(Vector.add(Vector.rotate(radiusVector, theta * j), scaledVertex));\n }\n }\n\n return newVertices;\n };\n\n /**\n * Sorts the input vertices into clockwise order in place.\n * @method clockwiseSort\n * @param {vertices} vertices\n * @return {vertices} vertices\n */\n Vertices.clockwiseSort = function(vertices) {\n var centre = Vertices.mean(vertices);\n\n vertices.sort(function(vertexA, vertexB) {\n return Vector.angle(centre, vertexA) - Vector.angle(centre, vertexB);\n });\n\n return vertices;\n };\n\n /**\n * Returns true if the vertices form a convex shape (vertices must be in clockwise order).\n * @method isConvex\n * @param {vertices} vertices\n * @return {bool} `true` if the `vertices` are convex, `false` if not (or `null` if not computable).\n */\n Vertices.isConvex = function(vertices) {\n // http://paulbourke.net/geometry/polygonmesh/\n // Copyright (c) Paul Bourke (use permitted)\n\n var flag = 0,\n n = vertices.length,\n i,\n j,\n k,\n z;\n\n if (n < 3)\n return null;\n\n for (i = 0; i < n; i++) {\n j = (i + 1) % n;\n k = (i + 2) % n;\n z = (vertices[j].x - vertices[i].x) * (vertices[k].y - vertices[j].y);\n z -= (vertices[j].y - vertices[i].y) * (vertices[k].x - vertices[j].x);\n\n if (z < 0) {\n flag |= 1;\n } else if (z > 0) {\n flag |= 2;\n }\n\n if (flag === 3) {\n return false;\n }\n }\n\n if (flag !== 0){\n return true;\n } else {\n return null;\n }\n };\n\n /**\n * Returns the convex hull of the input vertices as a new array of points.\n * @method hull\n * @param {vertices} vertices\n * @return [vertex] vertices\n */\n Vertices.hull = function(vertices) {\n // http://geomalgorithms.com/a10-_hull-1.html\n\n var upper = [],\n lower = [], \n vertex,\n i;\n\n // sort vertices on x-axis (y-axis for ties)\n vertices = vertices.slice(0);\n vertices.sort(function(vertexA, vertexB) {\n var dx = vertexA.x - vertexB.x;\n return dx !== 0 ? dx : vertexA.y - vertexB.y;\n });\n\n // build lower hull\n for (i = 0; i < vertices.length; i += 1) {\n vertex = vertices[i];\n\n while (lower.length >= 2 \n && Vector.cross3(lower[lower.length - 2], lower[lower.length - 1], vertex) <= 0) {\n lower.pop();\n }\n\n lower.push(vertex);\n }\n\n // build upper hull\n for (i = vertices.length - 1; i >= 0; i -= 1) {\n vertex = vertices[i];\n\n while (upper.length >= 2 \n && Vector.cross3(upper[upper.length - 2], upper[upper.length - 1], vertex) <= 0) {\n upper.pop();\n }\n\n upper.push(vertex);\n }\n\n // concatenation of the lower and upper hulls gives the convex hull\n // omit last points because they are repeated at the beginning of the other list\n upper.pop();\n lower.pop();\n\n return upper.concat(lower);\n };\n\n})();\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Body` module contains methods for creating and manipulating rigid bodies.\n* For creating bodies with common configurations such as rectangles, circles and other polygons see the module `Matter.Bodies`.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n\n* @class Body\n*/\n\nvar Body = {};\n\nmodule.exports = Body;\n\nvar Vertices = __webpack_require__(3);\nvar Vector = __webpack_require__(2);\nvar Sleeping = __webpack_require__(7);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\nvar Axes = __webpack_require__(11);\n\n(function() {\n\n Body._timeCorrection = true;\n Body._inertiaScale = 4;\n Body._nextCollidingGroupId = 1;\n Body._nextNonCollidingGroupId = -1;\n Body._nextCategory = 0x0001;\n Body._baseDelta = 1000 / 60;\n\n /**\n * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * Vertices must be specified in clockwise order.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} options\n * @return {body} body\n */\n Body.create = function(options) {\n var defaults = {\n id: Common.nextId(),\n type: 'body',\n label: 'Body',\n parts: [],\n plugin: {},\n angle: 0,\n vertices: Vertices.fromPath('L 0 0 L 40 0 L 40 40 L 0 40'),\n position: { x: 0, y: 0 },\n force: { x: 0, y: 0 },\n torque: 0,\n positionImpulse: { x: 0, y: 0 },\n constraintImpulse: { x: 0, y: 0, angle: 0 },\n totalContacts: 0,\n speed: 0,\n angularSpeed: 0,\n velocity: { x: 0, y: 0 },\n angularVelocity: 0,\n isSensor: false,\n isStatic: false,\n isSleeping: false,\n motion: 0,\n sleepThreshold: 60,\n density: 0.001,\n restitution: 0,\n friction: 0.1,\n frictionStatic: 0.5,\n frictionAir: 0.01,\n collisionFilter: {\n category: 0x0001,\n mask: 0xFFFFFFFF,\n group: 0\n },\n slop: 0.05,\n timeScale: 1,\n render: {\n visible: true,\n opacity: 1,\n strokeStyle: null,\n fillStyle: null,\n lineWidth: null,\n sprite: {\n xScale: 1,\n yScale: 1,\n xOffset: 0,\n yOffset: 0\n }\n },\n events: null,\n bounds: null,\n chamfer: null,\n circleRadius: 0,\n positionPrev: null,\n anglePrev: 0,\n parent: null,\n axes: null,\n area: 0,\n mass: 0,\n inertia: 0,\n deltaTime: 1000 / 60,\n _original: null\n };\n\n var body = Common.extend(defaults, options);\n\n _initProperties(body, options);\n\n return body;\n };\n\n /**\n * Returns the next unique group index for which bodies will collide.\n * If `isNonColliding` is `true`, returns the next unique group index for which bodies will _not_ collide.\n * See `body.collisionFilter` for more information.\n * @method nextGroup\n * @param {bool} [isNonColliding=false]\n * @return {Number} Unique group index\n */\n Body.nextGroup = function(isNonColliding) {\n if (isNonColliding)\n return Body._nextNonCollidingGroupId--;\n\n return Body._nextCollidingGroupId++;\n };\n\n /**\n * Returns the next unique category bitfield (starting after the initial default category `0x0001`).\n * There are 32 available. See `body.collisionFilter` for more information.\n * @method nextCategory\n * @return {Number} Unique category bitfield\n */\n Body.nextCategory = function() {\n Body._nextCategory = Body._nextCategory << 1;\n return Body._nextCategory;\n };\n\n /**\n * Initialises body properties.\n * @method _initProperties\n * @private\n * @param {body} body\n * @param {} [options]\n */\n var _initProperties = function(body, options) {\n options = options || {};\n\n // init required properties (order is important)\n Body.set(body, {\n bounds: body.bounds || Bounds.create(body.vertices),\n positionPrev: body.positionPrev || Vector.clone(body.position),\n anglePrev: body.anglePrev || body.angle,\n vertices: body.vertices,\n parts: body.parts || [body],\n isStatic: body.isStatic,\n isSleeping: body.isSleeping,\n parent: body.parent || body\n });\n\n Vertices.rotate(body.vertices, body.angle, body.position);\n Axes.rotate(body.axes, body.angle);\n Bounds.update(body.bounds, body.vertices, body.velocity);\n\n // allow options to override the automatically calculated properties\n Body.set(body, {\n axes: options.axes || body.axes,\n area: options.area || body.area,\n mass: options.mass || body.mass,\n inertia: options.inertia || body.inertia\n });\n\n // render properties\n var defaultFillStyle = (body.isStatic ? '#14151f' : Common.choose(['#f19648', '#f5d259', '#f55a3c', '#063e7b', '#ececd1'])),\n defaultStrokeStyle = body.isStatic ? '#555' : '#ccc',\n defaultLineWidth = body.isStatic && body.render.fillStyle === null ? 1 : 0;\n body.render.fillStyle = body.render.fillStyle || defaultFillStyle;\n body.render.strokeStyle = body.render.strokeStyle || defaultStrokeStyle;\n body.render.lineWidth = body.render.lineWidth || defaultLineWidth;\n body.render.sprite.xOffset += -(body.bounds.min.x - body.position.x) / (body.bounds.max.x - body.bounds.min.x);\n body.render.sprite.yOffset += -(body.bounds.min.y - body.position.y) / (body.bounds.max.y - body.bounds.min.y);\n };\n\n /**\n * Given a property and a value (or map of), sets the property(s) on the body, using the appropriate setter functions if they exist.\n * Prefer to use the actual setter functions in performance critical situations.\n * @method set\n * @param {body} body\n * @param {} settings A property name (or map of properties and values) to set on the body.\n * @param {} value The value to set if `settings` is a single property name.\n */\n Body.set = function(body, settings, value) {\n var property;\n\n if (typeof settings === 'string') {\n property = settings;\n settings = {};\n settings[property] = value;\n }\n\n for (property in settings) {\n if (!Object.prototype.hasOwnProperty.call(settings, property))\n continue;\n\n value = settings[property];\n switch (property) {\n\n case 'isStatic':\n Body.setStatic(body, value);\n break;\n case 'isSleeping':\n Sleeping.set(body, value);\n break;\n case 'mass':\n Body.setMass(body, value);\n break;\n case 'density':\n Body.setDensity(body, value);\n break;\n case 'inertia':\n Body.setInertia(body, value);\n break;\n case 'vertices':\n Body.setVertices(body, value);\n break;\n case 'position':\n Body.setPosition(body, value);\n break;\n case 'angle':\n Body.setAngle(body, value);\n break;\n case 'velocity':\n Body.setVelocity(body, value);\n break;\n case 'angularVelocity':\n Body.setAngularVelocity(body, value);\n break;\n case 'speed':\n Body.setSpeed(body, value);\n break;\n case 'angularSpeed':\n Body.setAngularSpeed(body, value);\n break;\n case 'parts':\n Body.setParts(body, value);\n break;\n case 'centre':\n Body.setCentre(body, value);\n break;\n default:\n body[property] = value;\n\n }\n }\n };\n\n /**\n * Sets the body as static, including isStatic flag and setting mass and inertia to Infinity.\n * @method setStatic\n * @param {body} body\n * @param {bool} isStatic\n */\n Body.setStatic = function(body, isStatic) {\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.isStatic = isStatic;\n\n if (isStatic) {\n part._original = {\n restitution: part.restitution,\n friction: part.friction,\n mass: part.mass,\n inertia: part.inertia,\n density: part.density,\n inverseMass: part.inverseMass,\n inverseInertia: part.inverseInertia\n };\n\n part.restitution = 0;\n part.friction = 1;\n part.mass = part.inertia = part.density = Infinity;\n part.inverseMass = part.inverseInertia = 0;\n\n part.positionPrev.x = part.position.x;\n part.positionPrev.y = part.position.y;\n part.anglePrev = part.angle;\n part.angularVelocity = 0;\n part.speed = 0;\n part.angularSpeed = 0;\n part.motion = 0;\n } else if (part._original) {\n part.restitution = part._original.restitution;\n part.friction = part._original.friction;\n part.mass = part._original.mass;\n part.inertia = part._original.inertia;\n part.density = part._original.density;\n part.inverseMass = part._original.inverseMass;\n part.inverseInertia = part._original.inverseInertia;\n\n part._original = null;\n }\n }\n };\n\n /**\n * Sets the mass of the body. Inverse mass, density and inertia are automatically updated to reflect the change.\n * @method setMass\n * @param {body} body\n * @param {number} mass\n */\n Body.setMass = function(body, mass) {\n var moment = body.inertia / (body.mass / 6);\n body.inertia = moment * (mass / 6);\n body.inverseInertia = 1 / body.inertia;\n\n body.mass = mass;\n body.inverseMass = 1 / body.mass;\n body.density = body.mass / body.area;\n };\n\n /**\n * Sets the density of the body. Mass and inertia are automatically updated to reflect the change.\n * @method setDensity\n * @param {body} body\n * @param {number} density\n */\n Body.setDensity = function(body, density) {\n Body.setMass(body, density * body.area);\n body.density = density;\n };\n\n /**\n * Sets the moment of inertia of the body. This is the second moment of area in two dimensions.\n * Inverse inertia is automatically updated to reflect the change. Mass is not changed.\n * @method setInertia\n * @param {body} body\n * @param {number} inertia\n */\n Body.setInertia = function(body, inertia) {\n body.inertia = inertia;\n body.inverseInertia = 1 / body.inertia;\n };\n\n /**\n * Sets the body's vertices and updates body properties accordingly, including inertia, area and mass (with respect to `body.density`).\n * Vertices will be automatically transformed to be orientated around their centre of mass as the origin.\n * They are then automatically translated to world space based on `body.position`.\n *\n * The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array).\n * Vertices must form a convex hull. Concave vertices must be decomposed into convex parts.\n * \n * @method setVertices\n * @param {body} body\n * @param {vector[]} vertices\n */\n Body.setVertices = function(body, vertices) {\n // change vertices\n if (vertices[0].body === body) {\n body.vertices = vertices;\n } else {\n body.vertices = Vertices.create(vertices, body);\n }\n\n // update properties\n body.axes = Axes.fromVertices(body.vertices);\n body.area = Vertices.area(body.vertices);\n Body.setMass(body, body.density * body.area);\n\n // orient vertices around the centre of mass at origin (0, 0)\n var centre = Vertices.centre(body.vertices);\n Vertices.translate(body.vertices, centre, -1);\n\n // update inertia while vertices are at origin (0, 0)\n Body.setInertia(body, Body._inertiaScale * Vertices.inertia(body.vertices, body.mass));\n\n // update geometry\n Vertices.translate(body.vertices, body.position);\n Bounds.update(body.bounds, body.vertices, body.velocity);\n };\n\n /**\n * Sets the parts of the `body` and updates mass, inertia and centroid.\n * Each part will have its parent set to `body`.\n * By default the convex hull will be automatically computed and set on `body`, unless `autoHull` is set to `false.`\n * Note that this method will ensure that the first part in `body.parts` will always be the `body`.\n * @method setParts\n * @param {body} body\n * @param {body[]} parts\n * @param {bool} [autoHull=true]\n */\n Body.setParts = function(body, parts, autoHull) {\n var i;\n\n // add all the parts, ensuring that the first part is always the parent body\n parts = parts.slice(0);\n body.parts.length = 0;\n body.parts.push(body);\n body.parent = body;\n\n for (i = 0; i < parts.length; i++) {\n var part = parts[i];\n if (part !== body) {\n part.parent = body;\n body.parts.push(part);\n }\n }\n\n if (body.parts.length === 1)\n return;\n\n autoHull = typeof autoHull !== 'undefined' ? autoHull : true;\n\n // find the convex hull of all parts to set on the parent body\n if (autoHull) {\n var vertices = [];\n for (i = 0; i < parts.length; i++) {\n vertices = vertices.concat(parts[i].vertices);\n }\n\n Vertices.clockwiseSort(vertices);\n\n var hull = Vertices.hull(vertices),\n hullCentre = Vertices.centre(hull);\n\n Body.setVertices(body, hull);\n Vertices.translate(body.vertices, hullCentre);\n }\n\n // sum the properties of all compound parts of the parent body\n var total = Body._totalProperties(body);\n\n body.area = total.area;\n body.parent = body;\n body.position.x = total.centre.x;\n body.position.y = total.centre.y;\n body.positionPrev.x = total.centre.x;\n body.positionPrev.y = total.centre.y;\n\n Body.setMass(body, total.mass);\n Body.setInertia(body, total.inertia);\n Body.setPosition(body, total.centre);\n };\n\n /**\n * Set the centre of mass of the body. \n * The `centre` is a vector in world-space unless `relative` is set, in which case it is a translation.\n * The centre of mass is the point the body rotates about and can be used to simulate non-uniform density.\n * This is equal to moving `body.position` but not the `body.vertices`.\n * Invalid if the `centre` falls outside the body's convex hull.\n * @method setCentre\n * @param {body} body\n * @param {vector} centre\n * @param {bool} relative\n */\n Body.setCentre = function(body, centre, relative) {\n if (!relative) {\n body.positionPrev.x = centre.x - (body.position.x - body.positionPrev.x);\n body.positionPrev.y = centre.y - (body.position.y - body.positionPrev.y);\n body.position.x = centre.x;\n body.position.y = centre.y;\n } else {\n body.positionPrev.x += centre.x;\n body.positionPrev.y += centre.y;\n body.position.x += centre.x;\n body.position.y += centre.y;\n }\n };\n\n /**\n * Sets the position of the body. By default velocity is unchanged.\n * If `updateVelocity` is `true` then velocity is inferred from the change in position.\n * @method setPosition\n * @param {body} body\n * @param {vector} position\n * @param {boolean} [updateVelocity=false]\n */\n Body.setPosition = function(body, position, updateVelocity) {\n var delta = Vector.sub(position, body.position);\n\n if (updateVelocity) {\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n body.velocity.x = delta.x;\n body.velocity.y = delta.y;\n body.speed = Vector.magnitude(delta);\n } else {\n body.positionPrev.x += delta.x;\n body.positionPrev.y += delta.y;\n }\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.position.x += delta.x;\n part.position.y += delta.y;\n Vertices.translate(part.vertices, delta);\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n };\n\n /**\n * Sets the angle of the body. By default angular velocity is unchanged.\n * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle.\n * @method setAngle\n * @param {body} body\n * @param {number} angle\n * @param {boolean} [updateVelocity=false]\n */\n Body.setAngle = function(body, angle, updateVelocity) {\n var delta = angle - body.angle;\n \n if (updateVelocity) {\n body.anglePrev = body.angle;\n body.angularVelocity = delta;\n body.angularSpeed = Math.abs(delta);\n } else {\n body.anglePrev += delta;\n }\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.angle += delta;\n Vertices.rotate(part.vertices, delta, body.position);\n Axes.rotate(part.axes, delta);\n Bounds.update(part.bounds, part.vertices, body.velocity);\n if (i > 0) {\n Vector.rotateAbout(part.position, delta, body.position, part.position);\n }\n }\n };\n\n /**\n * Sets the current linear velocity of the body. \n * Affects body speed.\n * @method setVelocity\n * @param {body} body\n * @param {vector} velocity\n */\n Body.setVelocity = function(body, velocity) {\n var timeScale = body.deltaTime / Body._baseDelta;\n body.positionPrev.x = body.position.x - velocity.x * timeScale;\n body.positionPrev.y = body.position.y - velocity.y * timeScale;\n body.velocity.x = (body.position.x - body.positionPrev.x) / timeScale;\n body.velocity.y = (body.position.y - body.positionPrev.y) / timeScale;\n body.speed = Vector.magnitude(body.velocity);\n };\n\n /**\n * Gets the current linear velocity of the body.\n * @method getVelocity\n * @param {body} body\n * @return {vector} velocity\n */\n Body.getVelocity = function(body) {\n var timeScale = Body._baseDelta / body.deltaTime;\n\n return {\n x: (body.position.x - body.positionPrev.x) * timeScale,\n y: (body.position.y - body.positionPrev.y) * timeScale\n };\n };\n\n /**\n * Gets the current linear speed of the body. \n * Equivalent to the magnitude of its velocity.\n * @method getSpeed\n * @param {body} body\n * @return {number} speed\n */\n Body.getSpeed = function(body) {\n return Vector.magnitude(Body.getVelocity(body));\n };\n\n /**\n * Sets the current linear speed of the body. \n * Direction is maintained. Affects body velocity.\n * @method setSpeed\n * @param {body} body\n * @param {number} speed\n */\n Body.setSpeed = function(body, speed) {\n Body.setVelocity(body, Vector.mult(Vector.normalise(Body.getVelocity(body)), speed));\n };\n\n /**\n * Sets the current rotational velocity of the body. \n * Affects body angular speed.\n * @method setAngularVelocity\n * @param {body} body\n * @param {number} velocity\n */\n Body.setAngularVelocity = function(body, velocity) {\n var timeScale = body.deltaTime / Body._baseDelta;\n body.anglePrev = body.angle - velocity * timeScale;\n body.angularVelocity = (body.angle - body.anglePrev) / timeScale;\n body.angularSpeed = Math.abs(body.angularVelocity);\n };\n\n /**\n * Gets the current rotational velocity of the body.\n * @method getAngularVelocity\n * @param {body} body\n * @return {number} angular velocity\n */\n Body.getAngularVelocity = function(body) {\n return (body.angle - body.anglePrev) * Body._baseDelta / body.deltaTime;\n };\n\n /**\n * Gets the current rotational speed of the body. \n * Equivalent to the magnitude of its angular velocity.\n * @method getAngularSpeed\n * @param {body} body\n * @return {number} angular speed\n */\n Body.getAngularSpeed = function(body) {\n return Math.abs(Body.getAngularVelocity(body));\n };\n\n /**\n * Sets the current rotational speed of the body. \n * Direction is maintained. Affects body angular velocity.\n * @method setAngularSpeed\n * @param {body} body\n * @param {number} speed\n */\n Body.setAngularSpeed = function(body, speed) {\n Body.setAngularVelocity(body, Common.sign(Body.getAngularVelocity(body)) * speed);\n };\n\n /**\n * Moves a body by a given vector relative to its current position. By default velocity is unchanged.\n * If `updateVelocity` is `true` then velocity is inferred from the change in position.\n * @method translate\n * @param {body} body\n * @param {vector} translation\n * @param {boolean} [updateVelocity=false]\n */\n Body.translate = function(body, translation, updateVelocity) {\n Body.setPosition(body, Vector.add(body.position, translation), updateVelocity);\n };\n\n /**\n * Rotates a body by a given angle relative to its current angle. By default angular velocity is unchanged.\n * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle.\n * @method rotate\n * @param {body} body\n * @param {number} rotation\n * @param {vector} [point]\n * @param {boolean} [updateVelocity=false]\n */\n Body.rotate = function(body, rotation, point, updateVelocity) {\n if (!point) {\n Body.setAngle(body, body.angle + rotation, updateVelocity);\n } else {\n var cos = Math.cos(rotation),\n sin = Math.sin(rotation),\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + (dx * cos - dy * sin),\n y: point.y + (dx * sin + dy * cos)\n }, updateVelocity);\n\n Body.setAngle(body, body.angle + rotation, updateVelocity);\n }\n };\n\n /**\n * Scales the body, including updating physical properties (mass, area, axes, inertia), from a world-space point (default is body centre).\n * @method scale\n * @param {body} body\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} [point]\n */\n Body.scale = function(body, scaleX, scaleY, point) {\n var totalArea = 0,\n totalInertia = 0;\n\n point = point || body.position;\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n\n // scale vertices\n Vertices.scale(part.vertices, scaleX, scaleY, point);\n\n // update properties\n part.axes = Axes.fromVertices(part.vertices);\n part.area = Vertices.area(part.vertices);\n Body.setMass(part, body.density * part.area);\n\n // update inertia (requires vertices to be at origin)\n Vertices.translate(part.vertices, { x: -part.position.x, y: -part.position.y });\n Body.setInertia(part, Body._inertiaScale * Vertices.inertia(part.vertices, part.mass));\n Vertices.translate(part.vertices, { x: part.position.x, y: part.position.y });\n\n if (i > 0) {\n totalArea += part.area;\n totalInertia += part.inertia;\n }\n\n // scale position\n part.position.x = point.x + (part.position.x - point.x) * scaleX;\n part.position.y = point.y + (part.position.y - point.y) * scaleY;\n\n // update bounds\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n\n // handle parent body\n if (body.parts.length > 1) {\n body.area = totalArea;\n\n if (!body.isStatic) {\n Body.setMass(body, body.density * totalArea);\n Body.setInertia(body, totalInertia);\n }\n }\n\n // handle circles\n if (body.circleRadius) { \n if (scaleX === scaleY) {\n body.circleRadius *= scaleX;\n } else {\n // body is no longer a circle\n body.circleRadius = null;\n }\n }\n };\n\n /**\n * Performs an update by integrating the equations of motion on the `body`.\n * This is applied every update by `Matter.Engine` automatically.\n * @method update\n * @param {body} body\n * @param {number} [deltaTime=16.666]\n */\n Body.update = function(body, deltaTime) {\n deltaTime = (typeof deltaTime !== 'undefined' ? deltaTime : (1000 / 60)) * body.timeScale;\n\n var deltaTimeSquared = deltaTime * deltaTime,\n correction = Body._timeCorrection ? deltaTime / (body.deltaTime || deltaTime) : 1;\n\n // from the previous step\n var frictionAir = 1 - body.frictionAir * (deltaTime / Common._baseDelta),\n velocityPrevX = (body.position.x - body.positionPrev.x) * correction,\n velocityPrevY = (body.position.y - body.positionPrev.y) * correction;\n\n // update velocity with Verlet integration\n body.velocity.x = (velocityPrevX * frictionAir) + (body.force.x / body.mass) * deltaTimeSquared;\n body.velocity.y = (velocityPrevY * frictionAir) + (body.force.y / body.mass) * deltaTimeSquared;\n\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n body.position.x += body.velocity.x;\n body.position.y += body.velocity.y;\n body.deltaTime = deltaTime;\n\n // update angular velocity with Verlet integration\n body.angularVelocity = ((body.angle - body.anglePrev) * frictionAir * correction) + (body.torque / body.inertia) * deltaTimeSquared;\n body.anglePrev = body.angle;\n body.angle += body.angularVelocity;\n\n // transform the body geometry\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n\n Vertices.translate(part.vertices, body.velocity);\n \n if (i > 0) {\n part.position.x += body.velocity.x;\n part.position.y += body.velocity.y;\n }\n\n if (body.angularVelocity !== 0) {\n Vertices.rotate(part.vertices, body.angularVelocity, body.position);\n Axes.rotate(part.axes, body.angularVelocity);\n if (i > 0) {\n Vector.rotateAbout(part.position, body.angularVelocity, body.position, part.position);\n }\n }\n\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n };\n\n /**\n * Updates properties `body.velocity`, `body.speed`, `body.angularVelocity` and `body.angularSpeed` which are normalised in relation to `Body._baseDelta`.\n * @method updateVelocities\n * @param {body} body\n */\n Body.updateVelocities = function(body) {\n var timeScale = Body._baseDelta / body.deltaTime,\n bodyVelocity = body.velocity;\n\n bodyVelocity.x = (body.position.x - body.positionPrev.x) * timeScale;\n bodyVelocity.y = (body.position.y - body.positionPrev.y) * timeScale;\n body.speed = Math.sqrt((bodyVelocity.x * bodyVelocity.x) + (bodyVelocity.y * bodyVelocity.y));\n\n body.angularVelocity = (body.angle - body.anglePrev) * timeScale;\n body.angularSpeed = Math.abs(body.angularVelocity);\n };\n\n /**\n * Applies the `force` to the `body` from the force origin `position` in world-space, over a single timestep, including applying any resulting angular torque.\n * \n * Forces are useful for effects like gravity, wind or rocket thrust, but can be difficult in practice when precise control is needed. In these cases see `Body.setVelocity` and `Body.setPosition` as an alternative.\n * \n * The force from this function is only applied once for the duration of a single timestep, in other words the duration depends directly on the current engine update `delta` and the rate of calls to this function.\n * \n * Therefore to account for time, you should apply the force constantly over as many engine updates as equivalent to the intended duration.\n * \n * If all or part of the force duration is some fraction of a timestep, first multiply the force by `duration / timestep`.\n * \n * The force origin `position` in world-space must also be specified. Passing `body.position` will result in zero angular effect as the force origin would be at the centre of mass.\n * \n * The `body` will take time to accelerate under a force, the resulting effect depends on duration of the force, the body mass and other forces on the body including friction combined.\n * @method applyForce\n * @param {body} body\n * @param {vector} position The force origin in world-space. Pass `body.position` to avoid angular torque.\n * @param {vector} force\n */\n Body.applyForce = function(body, position, force) {\n var offset = { x: position.x - body.position.x, y: position.y - body.position.y };\n body.force.x += force.x;\n body.force.y += force.y;\n body.torque += offset.x * force.y - offset.y * force.x;\n };\n\n /**\n * Returns the sums of the properties of all compound parts of the parent body.\n * @method _totalProperties\n * @private\n * @param {body} body\n * @return {}\n */\n Body._totalProperties = function(body) {\n // from equations at:\n // https://ecourses.ou.edu/cgi-bin/ebook.cgi?doc=&topic=st&chap_sec=07.2&page=theory\n // http://output.to/sideway/default.asp?qno=121100087\n\n var properties = {\n mass: 0,\n area: 0,\n inertia: 0,\n centre: { x: 0, y: 0 }\n };\n\n // sum the properties of all compound parts of the parent body\n for (var i = body.parts.length === 1 ? 0 : 1; i < body.parts.length; i++) {\n var part = body.parts[i],\n mass = part.mass !== Infinity ? part.mass : 1;\n\n properties.mass += mass;\n properties.area += part.area;\n properties.inertia += part.inertia;\n properties.centre = Vector.add(properties.centre, Vector.mult(part.position, mass));\n }\n\n properties.centre = Vector.div(properties.centre, properties.mass);\n\n return properties;\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when a body starts sleeping (where `this` is the body).\n *\n * @event sleepStart\n * @this {body} The body that has started sleeping\n * @param {} event An event object\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a body ends sleeping (where `this` is the body).\n *\n * @event sleepEnd\n * @this {body} The body that has ended sleeping\n * @param {} event An event object\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Body.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * _Read only_. Set by `Body.create`.\n * \n * A `String` denoting the type of object.\n *\n * @readOnly\n * @property type\n * @type string\n * @default \"body\"\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage bodies.\n *\n * @property label\n * @type string\n * @default \"Body\"\n */\n\n /**\n * _Read only_. Use `Body.setParts` to set. \n * \n * An array of bodies that make up this body. \n * The first body in the array must always be a self reference to the current body instance.\n * All bodies in the `parts` array together form a single rigid compound body.\n * Parts are allowed to overlap, have gaps or holes or even form concave bodies.\n * Parts themselves should never be added to a `World`, only the parent body should be.\n * Use `Body.setParts` when setting parts to ensure correct updates of all properties.\n *\n * @readOnly\n * @property parts\n * @type body[]\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * _Read only_. Updated by `Body.setParts`.\n * \n * A reference to the body that this is a part of. See `body.parts`.\n * This is a self reference if the body is not a part of another body.\n *\n * @readOnly\n * @property parent\n * @type body\n */\n\n /**\n * A `Number` specifying the angle of the body, in radians.\n *\n * @property angle\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setVertices` or `Body.setParts` to set. See also `Bodies.fromVertices`.\n * \n * An array of `Vector` objects that specify the convex hull of the rigid body.\n * These should be provided about the origin `(0, 0)`. E.g.\n *\n * `[{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]`\n * \n * Vertices must always be convex, in clockwise order and must not contain any duplicate points.\n * \n * Concave vertices should be decomposed into convex `parts`, see `Bodies.fromVertices` and `Body.setParts`.\n *\n * When set the vertices are translated such that `body.position` is at the centre of mass.\n * Many other body properties are automatically calculated from these vertices when set including `density`, `area` and `inertia`.\n * \n * The module `Matter.Vertices` contains useful methods for working with vertices.\n *\n * @readOnly\n * @property vertices\n * @type vector[]\n */\n\n /**\n * _Read only_. Use `Body.setPosition` to set. \n * \n * A `Vector` that specifies the current world-space position of the body.\n * \n * @readOnly\n * @property position\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that accumulates the total force applied to the body for a single update.\n * Force is zeroed after every `Engine.update`, so constant forces should be applied for every update they are needed. See also `Body.applyForce`.\n * \n * @property force\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Number` that accumulates the total torque (turning force) applied to the body for a single update. See also `Body.applyForce`.\n * Torque is zeroed after every `Engine.update`, so constant torques should be applied for every update they are needed.\n *\n * Torques result in angular acceleration on every update, which depends on body inertia and the engine update delta.\n * \n * @property torque\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setSpeed` to set. \n * \n * See `Body.getSpeed` for details.\n * \n * Equivalent to the magnitude of `body.velocity` (always positive).\n * \n * @readOnly\n * @property speed\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setVelocity` to set. \n * \n * See `Body.getVelocity` for details.\n * \n * Equivalent to the magnitude of `body.angularVelocity` (always positive).\n * \n * @readOnly\n * @property velocity\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * _Read only_. Use `Body.setAngularSpeed` to set. \n * \n * See `Body.getAngularSpeed` for details.\n * \n * \n * @readOnly\n * @property angularSpeed\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setAngularVelocity` to set. \n * \n * See `Body.getAngularVelocity` for details.\n * \n *\n * @readOnly\n * @property angularVelocity\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setStatic` to set. \n * \n * A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed.\n *\n * @readOnly\n * @property isStatic\n * @type boolean\n * @default false\n */\n\n /**\n * A flag that indicates whether a body is a sensor. Sensor triggers collision events, but doesn't react with colliding body physically.\n *\n * @property isSensor\n * @type boolean\n * @default false\n */\n\n /**\n * _Read only_. Use `Sleeping.set` to set. \n * \n * A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken.\n *\n * @readOnly\n * @property isSleeping\n * @type boolean\n * @default false\n */\n\n /**\n * _Read only_. Calculated during engine update only when sleeping is enabled.\n * \n * A `Number` that loosely measures the amount of movement a body currently has.\n *\n * Derived from `body.speed^2 + body.angularSpeed^2`. See `Sleeping.update`.\n * \n * @readOnly\n * @property motion\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the length of time during which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine).\n * \n * @property sleepThreshold\n * @type number\n * @default 60\n */\n\n /**\n * _Read only_. Use `Body.setDensity` to set. \n * \n * A `Number` that defines the density of the body (mass per unit area).\n * \n * Mass will also be updated when set.\n *\n * @readOnly\n * @property density\n * @type number\n * @default 0.001\n */\n\n /**\n * _Read only_. Use `Body.setMass` to set. \n * \n * A `Number` that defines the mass of the body.\n * \n * Density will also be updated when set.\n * \n * @readOnly\n * @property mass\n * @type number\n */\n\n /**\n * _Read only_. Use `Body.setMass` to set. \n * \n * A `Number` that defines the inverse mass of the body (`1 / mass`).\n *\n * @readOnly\n * @property inverseMass\n * @type number\n */\n\n /**\n * _Read only_. Automatically calculated when vertices, mass or density are set or set through `Body.setInertia`.\n * \n * A `Number` that defines the moment of inertia of the body. This is the second moment of area in two dimensions.\n * \n * Can be manually set to `Infinity` to prevent rotation of the body. See `Body.setInertia`.\n * \n * @readOnly\n * @property inertia\n * @type number\n */\n\n /**\n * _Read only_. Automatically calculated when vertices, mass or density are set or calculated by `Body.setInertia`.\n * \n * A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`).\n * \n * @readOnly\n * @property inverseInertia\n * @type number\n */\n\n /**\n * A `Number` that defines the restitution (elasticity) of the body. The value is always positive and is in the range `(0, 1)`.\n * A value of `0` means collisions may be perfectly inelastic and no bouncing may occur. \n * A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy.\n * Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula:\n *\n * `Math.max(bodyA.restitution, bodyB.restitution)`\n *\n * @property restitution\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the friction of the body. The value is always positive and is in the range `(0, 1)`.\n * A value of `0` means that the body may slide indefinitely.\n * A value of `1` means the body may come to a stop almost instantly after a force is applied.\n *\n * The effects of the value may be non-linear. \n * High values may be unstable depending on the body.\n * The engine uses a Coulomb friction model including static and kinetic friction.\n * Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula:\n *\n * `Math.min(bodyA.friction, bodyB.friction)`\n *\n * @property friction\n * @type number\n * @default 0.1\n */\n\n /**\n * A `Number` that defines the static friction of the body (in the Coulomb friction model). \n * A value of `0` means the body will never 'stick' when it is nearly stationary and only dynamic `friction` is used.\n * The higher the value (e.g. `10`), the more force it will take to initially get the body moving when nearly stationary.\n * This value is multiplied with the `friction` property to make it easier to change `friction` and maintain an appropriate amount of static friction.\n *\n * @property frictionStatic\n * @type number\n * @default 0.5\n */\n\n /**\n * A `Number` that defines the air friction of the body (air resistance). \n * A value of `0` means the body will never slow as it moves through space.\n * The higher the value, the faster a body slows when moving through space.\n * The effects of the value are non-linear. \n *\n * @property frictionAir\n * @type number\n * @default 0.01\n */\n\n /**\n * An `Object` that specifies the collision filtering properties of this body.\n *\n * Collisions between two bodies will obey the following rules:\n * - If the two bodies have the same non-zero value of `collisionFilter.group`,\n * they will always collide if the value is positive, and they will never collide\n * if the value is negative.\n * - If the two bodies have different values of `collisionFilter.group` or if one\n * (or both) of the bodies has a value of 0, then the category/mask rules apply as follows:\n *\n * Each body belongs to a collision category, given by `collisionFilter.category`. This\n * value is used as a bit field and the category should have only one bit set, meaning that\n * the value of this property is a power of two in the range [1, 2^31]. Thus, there are 32\n * different collision categories available.\n *\n * Each body also defines a collision bitmask, given by `collisionFilter.mask` which specifies\n * the categories it collides with (the value is the bitwise AND value of all these categories).\n *\n * Using the category/mask rules, two bodies `A` and `B` collide if each includes the other's\n * category in its mask, i.e. `(categoryA & maskB) !== 0` and `(categoryB & maskA) !== 0`\n * are both true.\n *\n * @property collisionFilter\n * @type object\n */\n\n /**\n * An Integer `Number`, that specifies the collision group this body belongs to.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.group\n * @type object\n * @default 0\n */\n\n /**\n * A bit field that specifies the collision category this body belongs to.\n * The category value should have only one bit set, for example `0x0001`.\n * This means there are up to 32 unique collision categories available.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.category\n * @type object\n * @default 1\n */\n\n /**\n * A bit mask that specifies the collision categories this body may collide with.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.mask\n * @type object\n * @default -1\n */\n\n /**\n * A `Number` that specifies a thin boundary around the body where it is allowed to slightly sink into other bodies.\n * \n * This is required for proper collision response, including friction and restitution effects.\n * \n * The default should generally suffice in most cases. You may need to decrease this value for very small bodies that are nearing the default value in scale.\n *\n * @property slop\n * @type number\n * @default 0.05\n */\n\n /**\n * A `Number` that specifies per-body time scaling.\n *\n * @property timeScale\n * @type number\n * @default 1\n */\n\n /**\n * _Read only_. Updated during engine update.\n * \n * A `Number` that records the last delta time value used to update this body.\n * Used to calculate speed and velocity.\n *\n * @readOnly\n * @property deltaTime\n * @type number\n * @default 1000 / 60\n */\n\n /**\n * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n *\n * @property render\n * @type object\n */\n\n /**\n * A flag that indicates if the body should be rendered.\n *\n * @property render.visible\n * @type boolean\n * @default true\n */\n\n /**\n * Sets the opacity to use when rendering.\n *\n * @property render.opacity\n * @type number\n * @default 1\n */\n\n /**\n * An `Object` that defines the sprite properties to use when rendering, if any.\n *\n * @property render.sprite\n * @type object\n */\n\n /**\n * An `String` that defines the path to the image to use as the sprite texture, if any.\n *\n * @property render.sprite.texture\n * @type string\n */\n \n /**\n * A `Number` that defines the scaling in the x-axis for the sprite, if any.\n *\n * @property render.sprite.xScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that defines the scaling in the y-axis for the sprite, if any.\n *\n * @property render.sprite.yScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that defines the offset in the x-axis for the sprite (normalised by texture width).\n *\n * @property render.sprite.xOffset\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the offset in the y-axis for the sprite (normalised by texture height).\n *\n * @property render.sprite.yOffset\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the line width to use when rendering the body outline (if a sprite is not defined).\n * A value of `0` means no outline will be rendered.\n *\n * @property render.lineWidth\n * @type number\n * @default 0\n */\n\n /**\n * A `String` that defines the fill style to use when rendering the body (if a sprite is not defined).\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.fillStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * A `String` that defines the stroke style to use when rendering the body outline (if a sprite is not defined).\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.strokeStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * _Read only_. Calculated automatically when vertices are set.\n * \n * An array of unique axis vectors (edge normals) used for collision detection.\n * These are automatically calculated when vertices are set.\n * They are constantly updated by `Body.update` during the simulation.\n *\n * @readOnly\n * @property axes\n * @type vector[]\n */\n \n /**\n * _Read only_. Calculated automatically when vertices are set.\n * \n * A `Number` that measures the area of the body's convex hull.\n * \n * @readOnly\n * @property area\n * @type string\n * @default \n */\n\n /**\n * A `Bounds` object that defines the AABB region for the body.\n * It is automatically calculated when vertices are set and constantly updated by `Body.update` during simulation.\n * \n * @property bounds\n * @type bounds\n */\n\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Events` module contains methods to fire and listen to events on other objects.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Events\n*/\n\nvar Events = {};\n\nmodule.exports = Events;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Subscribes a callback function to the given object's `eventName`.\n * @method on\n * @param {} object\n * @param {string} eventNames\n * @param {function} callback\n */\n Events.on = function(object, eventNames, callback) {\n var names = eventNames.split(' '),\n name;\n\n for (var i = 0; i < names.length; i++) {\n name = names[i];\n object.events = object.events || {};\n object.events[name] = object.events[name] || [];\n object.events[name].push(callback);\n }\n\n return callback;\n };\n\n /**\n * Removes the given event callback. If no callback, clears all callbacks in `eventNames`. If no `eventNames`, clears all events.\n * @method off\n * @param {} object\n * @param {string} eventNames\n * @param {function} callback\n */\n Events.off = function(object, eventNames, callback) {\n if (!eventNames) {\n object.events = {};\n return;\n }\n\n // handle Events.off(object, callback)\n if (typeof eventNames === 'function') {\n callback = eventNames;\n eventNames = Common.keys(object.events).join(' ');\n }\n\n var names = eventNames.split(' ');\n\n for (var i = 0; i < names.length; i++) {\n var callbacks = object.events[names[i]],\n newCallbacks = [];\n\n if (callback && callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n if (callbacks[j] !== callback)\n newCallbacks.push(callbacks[j]);\n }\n }\n\n object.events[names[i]] = newCallbacks;\n }\n };\n\n /**\n * Fires all the callbacks subscribed to the given object's `eventName`, in the order they subscribed, if any.\n * @method trigger\n * @param {} object\n * @param {string} eventNames\n * @param {} event\n */\n Events.trigger = function(object, eventNames, event) {\n var names,\n name,\n callbacks,\n eventClone;\n\n var events = object.events;\n \n if (events && Common.keys(events).length > 0) {\n if (!event)\n event = {};\n\n names = eventNames.split(' ');\n\n for (var i = 0; i < names.length; i++) {\n name = names[i];\n callbacks = events[name];\n\n if (callbacks) {\n eventClone = Common.clone(event, false);\n eventClone.name = name;\n eventClone.source = object;\n\n for (var j = 0; j < callbacks.length; j++) {\n callbacks[j].apply(object, [eventClone]);\n }\n }\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* A composite is a collection of `Matter.Body`, `Matter.Constraint` and other `Matter.Composite` objects.\n*\n* They are a container that can represent complex objects made of multiple parts, even if they are not physically connected.\n* A composite could contain anything from a single body all the way up to a whole world.\n* \n* When making any changes to composites, use the included functions rather than changing their properties directly.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Composite\n*/\n\nvar Composite = {};\n\nmodule.exports = Composite;\n\nvar Events = __webpack_require__(5);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\nvar Body = __webpack_require__(4);\n\n(function() {\n\n /**\n * Creates a new composite. The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properites section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} [options]\n * @return {composite} A new composite\n */\n Composite.create = function(options) {\n return Common.extend({ \n id: Common.nextId(),\n type: 'composite',\n parent: null,\n isModified: false,\n bodies: [], \n constraints: [], \n composites: [],\n label: 'Composite',\n plugin: {},\n cache: {\n allBodies: null,\n allConstraints: null,\n allComposites: null\n }\n }, options);\n };\n\n /**\n * Sets the composite's `isModified` flag. \n * If `updateParents` is true, all parents will be set (default: false).\n * If `updateChildren` is true, all children will be set (default: false).\n * @private\n * @method setModified\n * @param {composite} composite\n * @param {boolean} isModified\n * @param {boolean} [updateParents=false]\n * @param {boolean} [updateChildren=false]\n */\n Composite.setModified = function(composite, isModified, updateParents, updateChildren) {\n composite.isModified = isModified;\n\n if (isModified && composite.cache) {\n composite.cache.allBodies = null;\n composite.cache.allConstraints = null;\n composite.cache.allComposites = null;\n }\n\n if (updateParents && composite.parent) {\n Composite.setModified(composite.parent, isModified, updateParents, updateChildren);\n }\n\n if (updateChildren) {\n for (var i = 0; i < composite.composites.length; i++) {\n var childComposite = composite.composites[i];\n Composite.setModified(childComposite, isModified, updateParents, updateChildren);\n }\n }\n };\n\n /**\n * Generic single or multi-add function. Adds a single or an array of body(s), constraint(s) or composite(s) to the given composite.\n * Triggers `beforeAdd` and `afterAdd` events on the `composite`.\n * @method add\n * @param {composite} composite\n * @param {object|array} object A single or an array of body(s), constraint(s) or composite(s)\n * @return {composite} The original composite with the objects added\n */\n Composite.add = function(composite, object) {\n var objects = [].concat(object);\n\n Events.trigger(composite, 'beforeAdd', { object: object });\n\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n\n switch (obj.type) {\n\n case 'body':\n // skip adding compound parts\n if (obj.parent !== obj) {\n Common.warn('Composite.add: skipped adding a compound body part (you must add its parent instead)');\n break;\n }\n\n Composite.addBody(composite, obj);\n break;\n case 'constraint':\n Composite.addConstraint(composite, obj);\n break;\n case 'composite':\n Composite.addComposite(composite, obj);\n break;\n case 'mouseConstraint':\n Composite.addConstraint(composite, obj.constraint);\n break;\n\n }\n }\n\n Events.trigger(composite, 'afterAdd', { object: object });\n\n return composite;\n };\n\n /**\n * Generic remove function. Removes one or many body(s), constraint(s) or a composite(s) to the given composite.\n * Optionally searching its children recursively.\n * Triggers `beforeRemove` and `afterRemove` events on the `composite`.\n * @method remove\n * @param {composite} composite\n * @param {object|array} object\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the objects removed\n */\n Composite.remove = function(composite, object, deep) {\n var objects = [].concat(object);\n\n Events.trigger(composite, 'beforeRemove', { object: object });\n\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n\n switch (obj.type) {\n\n case 'body':\n Composite.removeBody(composite, obj, deep);\n break;\n case 'constraint':\n Composite.removeConstraint(composite, obj, deep);\n break;\n case 'composite':\n Composite.removeComposite(composite, obj, deep);\n break;\n case 'mouseConstraint':\n Composite.removeConstraint(composite, obj.constraint);\n break;\n\n }\n }\n\n Events.trigger(composite, 'afterRemove', { object: object });\n\n return composite;\n };\n\n /**\n * Adds a composite to the given composite.\n * @private\n * @method addComposite\n * @param {composite} compositeA\n * @param {composite} compositeB\n * @return {composite} The original compositeA with the objects from compositeB added\n */\n Composite.addComposite = function(compositeA, compositeB) {\n compositeA.composites.push(compositeB);\n compositeB.parent = compositeA;\n Composite.setModified(compositeA, true, true, false);\n return compositeA;\n };\n\n /**\n * Removes a composite from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeComposite\n * @param {composite} compositeA\n * @param {composite} compositeB\n * @param {boolean} [deep=false]\n * @return {composite} The original compositeA with the composite removed\n */\n Composite.removeComposite = function(compositeA, compositeB, deep) {\n var position = Common.indexOf(compositeA.composites, compositeB);\n if (position !== -1) {\n Composite.removeCompositeAt(compositeA, position);\n }\n\n if (deep) {\n for (var i = 0; i < compositeA.composites.length; i++){\n Composite.removeComposite(compositeA.composites[i], compositeB, true);\n }\n }\n\n return compositeA;\n };\n\n /**\n * Removes a composite from the given composite.\n * @private\n * @method removeCompositeAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the composite removed\n */\n Composite.removeCompositeAt = function(composite, position) {\n composite.composites.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Adds a body to the given composite.\n * @private\n * @method addBody\n * @param {composite} composite\n * @param {body} body\n * @return {composite} The original composite with the body added\n */\n Composite.addBody = function(composite, body) {\n composite.bodies.push(body);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes a body from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeBody\n * @param {composite} composite\n * @param {body} body\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the body removed\n */\n Composite.removeBody = function(composite, body, deep) {\n var position = Common.indexOf(composite.bodies, body);\n if (position !== -1) {\n Composite.removeBodyAt(composite, position);\n }\n\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.removeBody(composite.composites[i], body, true);\n }\n }\n\n return composite;\n };\n\n /**\n * Removes a body from the given composite.\n * @private\n * @method removeBodyAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the body removed\n */\n Composite.removeBodyAt = function(composite, position) {\n composite.bodies.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Adds a constraint to the given composite.\n * @private\n * @method addConstraint\n * @param {composite} composite\n * @param {constraint} constraint\n * @return {composite} The original composite with the constraint added\n */\n Composite.addConstraint = function(composite, constraint) {\n composite.constraints.push(constraint);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes a constraint from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeConstraint\n * @param {composite} composite\n * @param {constraint} constraint\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the constraint removed\n */\n Composite.removeConstraint = function(composite, constraint, deep) {\n var position = Common.indexOf(composite.constraints, constraint);\n if (position !== -1) {\n Composite.removeConstraintAt(composite, position);\n }\n\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.removeConstraint(composite.composites[i], constraint, true);\n }\n }\n\n return composite;\n };\n\n /**\n * Removes a body from the given composite.\n * @private\n * @method removeConstraintAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the constraint removed\n */\n Composite.removeConstraintAt = function(composite, position) {\n composite.constraints.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes all bodies, constraints and composites from the given composite.\n * Optionally clearing its children recursively.\n * @method clear\n * @param {composite} composite\n * @param {boolean} keepStatic\n * @param {boolean} [deep=false]\n */\n Composite.clear = function(composite, keepStatic, deep) {\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.clear(composite.composites[i], keepStatic, true);\n }\n }\n \n if (keepStatic) {\n composite.bodies = composite.bodies.filter(function(body) { return body.isStatic; });\n } else {\n composite.bodies.length = 0;\n }\n\n composite.constraints.length = 0;\n composite.composites.length = 0;\n\n Composite.setModified(composite, true, true, false);\n\n return composite;\n };\n\n /**\n * Returns all bodies in the given composite, including all bodies in its children, recursively.\n * @method allBodies\n * @param {composite} composite\n * @return {body[]} All the bodies\n */\n Composite.allBodies = function(composite) {\n if (composite.cache && composite.cache.allBodies) {\n return composite.cache.allBodies;\n }\n\n var bodies = [].concat(composite.bodies);\n\n for (var i = 0; i < composite.composites.length; i++)\n bodies = bodies.concat(Composite.allBodies(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allBodies = bodies;\n }\n\n return bodies;\n };\n\n /**\n * Returns all constraints in the given composite, including all constraints in its children, recursively.\n * @method allConstraints\n * @param {composite} composite\n * @return {constraint[]} All the constraints\n */\n Composite.allConstraints = function(composite) {\n if (composite.cache && composite.cache.allConstraints) {\n return composite.cache.allConstraints;\n }\n\n var constraints = [].concat(composite.constraints);\n\n for (var i = 0; i < composite.composites.length; i++)\n constraints = constraints.concat(Composite.allConstraints(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allConstraints = constraints;\n }\n\n return constraints;\n };\n\n /**\n * Returns all composites in the given composite, including all composites in its children, recursively.\n * @method allComposites\n * @param {composite} composite\n * @return {composite[]} All the composites\n */\n Composite.allComposites = function(composite) {\n if (composite.cache && composite.cache.allComposites) {\n return composite.cache.allComposites;\n }\n\n var composites = [].concat(composite.composites);\n\n for (var i = 0; i < composite.composites.length; i++)\n composites = composites.concat(Composite.allComposites(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allComposites = composites;\n }\n\n return composites;\n };\n\n /**\n * Searches the composite recursively for an object matching the type and id supplied, null if not found.\n * @method get\n * @param {composite} composite\n * @param {number} id\n * @param {string} type\n * @return {object} The requested object, if found\n */\n Composite.get = function(composite, id, type) {\n var objects,\n object;\n\n switch (type) {\n case 'body':\n objects = Composite.allBodies(composite);\n break;\n case 'constraint':\n objects = Composite.allConstraints(composite);\n break;\n case 'composite':\n objects = Composite.allComposites(composite).concat(composite);\n break;\n }\n\n if (!objects)\n return null;\n\n object = objects.filter(function(object) { \n return object.id.toString() === id.toString(); \n });\n\n return object.length === 0 ? null : object[0];\n };\n\n /**\n * Moves the given object(s) from compositeA to compositeB (equal to a remove followed by an add).\n * @method move\n * @param {compositeA} compositeA\n * @param {object[]} objects\n * @param {compositeB} compositeB\n * @return {composite} Returns compositeA\n */\n Composite.move = function(compositeA, objects, compositeB) {\n Composite.remove(compositeA, objects);\n Composite.add(compositeB, objects);\n return compositeA;\n };\n\n /**\n * Assigns new ids for all objects in the composite, recursively.\n * @method rebase\n * @param {composite} composite\n * @return {composite} Returns composite\n */\n Composite.rebase = function(composite) {\n var objects = Composite.allBodies(composite)\n .concat(Composite.allConstraints(composite))\n .concat(Composite.allComposites(composite));\n\n for (var i = 0; i < objects.length; i++) {\n objects[i].id = Common.nextId();\n }\n\n return composite;\n };\n\n /**\n * Translates all children in the composite by a given vector relative to their current positions, \n * without imparting any velocity.\n * @method translate\n * @param {composite} composite\n * @param {vector} translation\n * @param {bool} [recursive=true]\n */\n Composite.translate = function(composite, translation, recursive) {\n var bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n Body.translate(bodies[i], translation);\n }\n\n return composite;\n };\n\n /**\n * Rotates all children in the composite by a given angle about the given point, without imparting any angular velocity.\n * @method rotate\n * @param {composite} composite\n * @param {number} rotation\n * @param {vector} point\n * @param {bool} [recursive=true]\n */\n Composite.rotate = function(composite, rotation, point, recursive) {\n var cos = Math.cos(rotation),\n sin = Math.sin(rotation),\n bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + (dx * cos - dy * sin),\n y: point.y + (dx * sin + dy * cos)\n });\n\n Body.rotate(body, rotation);\n }\n\n return composite;\n };\n\n /**\n * Scales all children in the composite, including updating physical properties (mass, area, axes, inertia), from a world-space point.\n * @method scale\n * @param {composite} composite\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} point\n * @param {bool} [recursive=true]\n */\n Composite.scale = function(composite, scaleX, scaleY, point, recursive) {\n var bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + dx * scaleX,\n y: point.y + dy * scaleY\n });\n\n Body.scale(body, scaleX, scaleY);\n }\n\n return composite;\n };\n\n /**\n * Returns the union of the bounds of all of the composite's bodies.\n * @method bounds\n * @param {composite} composite The composite.\n * @returns {bounds} The composite bounds.\n */\n Composite.bounds = function(composite) {\n var bodies = Composite.allBodies(composite),\n vertices = [];\n\n for (var i = 0; i < bodies.length; i += 1) {\n var body = bodies[i];\n vertices.push(body.bounds.min, body.bounds.max);\n }\n\n return Bounds.create(vertices);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when a call to `Composite.add` is made, before objects have been added.\n *\n * @event beforeAdd\n * @param {} event An event object\n * @param {} event.object The object(s) to be added (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.add` is made, after objects have been added.\n *\n * @event afterAdd\n * @param {} event An event object\n * @param {} event.object The object(s) that have been added (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.remove` is made, before objects have been removed.\n *\n * @event beforeRemove\n * @param {} event An event object\n * @param {} event.object The object(s) to be removed (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.remove` is made, after objects have been removed.\n *\n * @event afterRemove\n * @param {} event An event object\n * @param {} event.object The object(s) that have been removed (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"composite\"\n * @readOnly\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage composites.\n *\n * @property label\n * @type string\n * @default \"Composite\"\n */\n\n /**\n * A flag that specifies whether the composite has been modified during the current step.\n * This is automatically managed when bodies, constraints or composites are added or removed.\n *\n * @property isModified\n * @type boolean\n * @default false\n */\n\n /**\n * The `Composite` that is the parent of this composite. It is automatically managed by the `Matter.Composite` methods.\n *\n * @property parent\n * @type composite\n * @default null\n */\n\n /**\n * An array of `Body` that are _direct_ children of this composite.\n * To add or remove bodies you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allBodies` method.\n *\n * @property bodies\n * @type body[]\n * @default []\n */\n\n /**\n * An array of `Constraint` that are _direct_ children of this composite.\n * To add or remove constraints you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allConstraints` method.\n *\n * @property constraints\n * @type constraint[]\n * @default []\n */\n\n /**\n * An array of `Composite` that are _direct_ children of this composite.\n * To add or remove composites you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allComposites` method.\n *\n * @property composites\n * @type composite[]\n * @default []\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * An object used for storing cached results for performance reasons.\n * This is used internally only and is automatically managed.\n *\n * @private\n * @property cache\n * @type {}\n */\n\n})();\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Sleeping` module contains methods to manage the sleeping state of bodies.\n*\n* @class Sleeping\n*/\n\nvar Sleeping = {};\n\nmodule.exports = Sleeping;\n\nvar Body = __webpack_require__(4);\nvar Events = __webpack_require__(5);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Sleeping._motionWakeThreshold = 0.18;\n Sleeping._motionSleepThreshold = 0.08;\n Sleeping._minBias = 0.9;\n\n /**\n * Puts bodies to sleep or wakes them up depending on their motion.\n * @method update\n * @param {body[]} bodies\n * @param {number} delta\n */\n Sleeping.update = function(bodies, delta) {\n var timeScale = delta / Common._baseDelta,\n motionSleepThreshold = Sleeping._motionSleepThreshold;\n \n // update bodies sleeping status\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n speed = Body.getSpeed(body),\n angularSpeed = Body.getAngularSpeed(body),\n motion = speed * speed + angularSpeed * angularSpeed;\n\n // wake up bodies if they have a force applied\n if (body.force.x !== 0 || body.force.y !== 0) {\n Sleeping.set(body, false);\n continue;\n }\n\n var minMotion = Math.min(body.motion, motion),\n maxMotion = Math.max(body.motion, motion);\n \n // biased average motion estimation between frames\n body.motion = Sleeping._minBias * minMotion + (1 - Sleeping._minBias) * maxMotion;\n\n if (body.sleepThreshold > 0 && body.motion < motionSleepThreshold) {\n body.sleepCounter += 1;\n \n if (body.sleepCounter >= body.sleepThreshold / timeScale) {\n Sleeping.set(body, true);\n }\n } else if (body.sleepCounter > 0) {\n body.sleepCounter -= 1;\n }\n }\n };\n\n /**\n * Given a set of colliding pairs, wakes the sleeping bodies involved.\n * @method afterCollisions\n * @param {pair[]} pairs\n */\n Sleeping.afterCollisions = function(pairs) {\n var motionSleepThreshold = Sleeping._motionSleepThreshold;\n\n // wake up bodies involved in collisions\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n \n // don't wake inactive pairs\n if (!pair.isActive)\n continue;\n\n var collision = pair.collision,\n bodyA = collision.bodyA.parent, \n bodyB = collision.bodyB.parent;\n \n // don't wake if at least one body is static\n if ((bodyA.isSleeping && bodyB.isSleeping) || bodyA.isStatic || bodyB.isStatic)\n continue;\n \n if (bodyA.isSleeping || bodyB.isSleeping) {\n var sleepingBody = (bodyA.isSleeping && !bodyA.isStatic) ? bodyA : bodyB,\n movingBody = sleepingBody === bodyA ? bodyB : bodyA;\n\n if (!sleepingBody.isStatic && movingBody.motion > motionSleepThreshold) {\n Sleeping.set(sleepingBody, false);\n }\n }\n }\n };\n \n /**\n * Set a body as sleeping or awake.\n * @method set\n * @param {body} body\n * @param {boolean} isSleeping\n */\n Sleeping.set = function(body, isSleeping) {\n var wasSleeping = body.isSleeping;\n\n if (isSleeping) {\n body.isSleeping = true;\n body.sleepCounter = body.sleepThreshold;\n\n body.positionImpulse.x = 0;\n body.positionImpulse.y = 0;\n\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n\n body.anglePrev = body.angle;\n body.speed = 0;\n body.angularSpeed = 0;\n body.motion = 0;\n\n if (!wasSleeping) {\n Events.trigger(body, 'sleepStart');\n }\n } else {\n body.isSleeping = false;\n body.sleepCounter = 0;\n\n if (wasSleeping) {\n Events.trigger(body, 'sleepEnd');\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Collision` module contains methods for detecting collisions between a given pair of bodies.\n*\n* For efficient detection between a list of bodies, see `Matter.Detector` and `Matter.Query`.\n*\n* See `Matter.Engine` for collision events.\n*\n* @class Collision\n*/\n\nvar Collision = {};\n\nmodule.exports = Collision;\n\nvar Vertices = __webpack_require__(3);\nvar Pair = __webpack_require__(9);\n\n(function() {\n var _supports = [];\n\n var _overlapAB = {\n overlap: 0,\n axis: null\n };\n\n var _overlapBA = {\n overlap: 0,\n axis: null\n };\n\n /**\n * Creates a new collision record.\n * @method create\n * @param {body} bodyA The first body part represented by the collision record\n * @param {body} bodyB The second body part represented by the collision record\n * @return {collision} A new collision record\n */\n Collision.create = function(bodyA, bodyB) {\n return { \n pair: null,\n collided: false,\n bodyA: bodyA,\n bodyB: bodyB,\n parentA: bodyA.parent,\n parentB: bodyB.parent,\n depth: 0,\n normal: { x: 0, y: 0 },\n tangent: { x: 0, y: 0 },\n penetration: { x: 0, y: 0 },\n supports: []\n };\n };\n\n /**\n * Detect collision between two bodies.\n * @method collides\n * @param {body} bodyA\n * @param {body} bodyB\n * @param {pairs} [pairs] Optionally reuse collision records from existing pairs.\n * @return {collision|null} A collision record if detected, otherwise null\n */\n Collision.collides = function(bodyA, bodyB, pairs) {\n Collision._overlapAxes(_overlapAB, bodyA.vertices, bodyB.vertices, bodyA.axes);\n\n if (_overlapAB.overlap <= 0) {\n return null;\n }\n\n Collision._overlapAxes(_overlapBA, bodyB.vertices, bodyA.vertices, bodyB.axes);\n\n if (_overlapBA.overlap <= 0) {\n return null;\n }\n\n // reuse collision records for gc efficiency\n var pair = pairs && pairs.table[Pair.id(bodyA, bodyB)],\n collision;\n\n if (!pair) {\n collision = Collision.create(bodyA, bodyB);\n collision.collided = true;\n collision.bodyA = bodyA.id < bodyB.id ? bodyA : bodyB;\n collision.bodyB = bodyA.id < bodyB.id ? bodyB : bodyA;\n collision.parentA = collision.bodyA.parent;\n collision.parentB = collision.bodyB.parent;\n } else {\n collision = pair.collision;\n }\n\n bodyA = collision.bodyA;\n bodyB = collision.bodyB;\n\n var minOverlap;\n\n if (_overlapAB.overlap < _overlapBA.overlap) {\n minOverlap = _overlapAB;\n } else {\n minOverlap = _overlapBA;\n }\n\n var normal = collision.normal,\n supports = collision.supports,\n minAxis = minOverlap.axis,\n minAxisX = minAxis.x,\n minAxisY = minAxis.y;\n\n // ensure normal is facing away from bodyA\n if (minAxisX * (bodyB.position.x - bodyA.position.x) + minAxisY * (bodyB.position.y - bodyA.position.y) < 0) {\n normal.x = minAxisX;\n normal.y = minAxisY;\n } else {\n normal.x = -minAxisX;\n normal.y = -minAxisY;\n }\n \n collision.tangent.x = -normal.y;\n collision.tangent.y = normal.x;\n\n collision.depth = minOverlap.overlap;\n\n collision.penetration.x = normal.x * collision.depth;\n collision.penetration.y = normal.y * collision.depth;\n\n // find support points, there is always either exactly one or two\n var supportsB = Collision._findSupports(bodyA, bodyB, normal, 1),\n supportCount = 0;\n\n // find the supports from bodyB that are inside bodyA\n if (Vertices.contains(bodyA.vertices, supportsB[0])) {\n supports[supportCount++] = supportsB[0];\n }\n\n if (Vertices.contains(bodyA.vertices, supportsB[1])) {\n supports[supportCount++] = supportsB[1];\n }\n\n // find the supports from bodyA that are inside bodyB\n if (supportCount < 2) {\n var supportsA = Collision._findSupports(bodyB, bodyA, normal, -1);\n\n if (Vertices.contains(bodyB.vertices, supportsA[0])) {\n supports[supportCount++] = supportsA[0];\n }\n\n if (supportCount < 2 && Vertices.contains(bodyB.vertices, supportsA[1])) {\n supports[supportCount++] = supportsA[1];\n }\n }\n\n // account for the edge case of overlapping but no vertex containment\n if (supportCount === 0) {\n supports[supportCount++] = supportsB[0];\n }\n\n // update supports array size\n supports.length = supportCount;\n\n return collision;\n };\n\n /**\n * Find the overlap between two sets of vertices.\n * @method _overlapAxes\n * @private\n * @param {object} result\n * @param {vertices} verticesA\n * @param {vertices} verticesB\n * @param {axes} axes\n */\n Collision._overlapAxes = function(result, verticesA, verticesB, axes) {\n var verticesALength = verticesA.length,\n verticesBLength = verticesB.length,\n verticesAX = verticesA[0].x,\n verticesAY = verticesA[0].y,\n verticesBX = verticesB[0].x,\n verticesBY = verticesB[0].y,\n axesLength = axes.length,\n overlapMin = Number.MAX_VALUE,\n overlapAxisNumber = 0,\n overlap,\n overlapAB,\n overlapBA,\n dot,\n i,\n j;\n\n for (i = 0; i < axesLength; i++) {\n var axis = axes[i],\n axisX = axis.x,\n axisY = axis.y,\n minA = verticesAX * axisX + verticesAY * axisY,\n minB = verticesBX * axisX + verticesBY * axisY,\n maxA = minA,\n maxB = minB;\n \n for (j = 1; j < verticesALength; j += 1) {\n dot = verticesA[j].x * axisX + verticesA[j].y * axisY;\n\n if (dot > maxA) { \n maxA = dot;\n } else if (dot < minA) { \n minA = dot;\n }\n }\n\n for (j = 1; j < verticesBLength; j += 1) {\n dot = verticesB[j].x * axisX + verticesB[j].y * axisY;\n\n if (dot > maxB) { \n maxB = dot;\n } else if (dot < minB) { \n minB = dot;\n }\n }\n\n overlapAB = maxA - minB;\n overlapBA = maxB - minA;\n overlap = overlapAB < overlapBA ? overlapAB : overlapBA;\n\n if (overlap < overlapMin) {\n overlapMin = overlap;\n overlapAxisNumber = i;\n\n if (overlap <= 0) {\n // can not be intersecting\n break;\n }\n } \n }\n\n result.axis = axes[overlapAxisNumber];\n result.overlap = overlapMin;\n };\n\n /**\n * Projects vertices on an axis and returns an interval.\n * @method _projectToAxis\n * @private\n * @param {} projection\n * @param {} vertices\n * @param {} axis\n */\n Collision._projectToAxis = function(projection, vertices, axis) {\n var min = vertices[0].x * axis.x + vertices[0].y * axis.y,\n max = min;\n\n for (var i = 1; i < vertices.length; i += 1) {\n var dot = vertices[i].x * axis.x + vertices[i].y * axis.y;\n\n if (dot > max) { \n max = dot; \n } else if (dot < min) { \n min = dot; \n }\n }\n\n projection.min = min;\n projection.max = max;\n };\n\n /**\n * Finds supporting vertices given two bodies along a given direction using hill-climbing.\n * @method _findSupports\n * @private\n * @param {body} bodyA\n * @param {body} bodyB\n * @param {vector} normal\n * @param {number} direction\n * @return [vector]\n */\n Collision._findSupports = function(bodyA, bodyB, normal, direction) {\n var vertices = bodyB.vertices,\n verticesLength = vertices.length,\n bodyAPositionX = bodyA.position.x,\n bodyAPositionY = bodyA.position.y,\n normalX = normal.x * direction,\n normalY = normal.y * direction,\n nearestDistance = Number.MAX_VALUE,\n vertexA,\n vertexB,\n vertexC,\n distance,\n j;\n\n // find deepest vertex relative to the axis\n for (j = 0; j < verticesLength; j += 1) {\n vertexB = vertices[j];\n distance = normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y);\n\n // convex hill-climbing\n if (distance < nearestDistance) {\n nearestDistance = distance;\n vertexA = vertexB;\n }\n }\n\n // measure next vertex\n vertexC = vertices[(verticesLength + vertexA.index - 1) % verticesLength];\n nearestDistance = normalX * (bodyAPositionX - vertexC.x) + normalY * (bodyAPositionY - vertexC.y);\n\n // compare with previous vertex\n vertexB = vertices[(vertexA.index + 1) % verticesLength];\n if (normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y) < nearestDistance) {\n _supports[0] = vertexA;\n _supports[1] = vertexB;\n\n return _supports;\n }\n\n _supports[0] = vertexA;\n _supports[1] = vertexC;\n\n return _supports;\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A reference to the pair using this collision record, if there is one.\n *\n * @property pair\n * @type {pair|null}\n * @default null\n */\n\n /**\n * A flag that indicates if the bodies were colliding when the collision was last updated.\n * \n * @property collided\n * @type boolean\n * @default false\n */\n\n /**\n * The first body part represented by the collision (see also `collision.parentA`).\n * \n * @property bodyA\n * @type body\n */\n\n /**\n * The second body part represented by the collision (see also `collision.parentB`).\n * \n * @property bodyB\n * @type body\n */\n\n /**\n * The first body represented by the collision (i.e. `collision.bodyA.parent`).\n * \n * @property parentA\n * @type body\n */\n\n /**\n * The second body represented by the collision (i.e. `collision.bodyB.parent`).\n * \n * @property parentB\n * @type body\n */\n\n /**\n * A `Number` that represents the minimum separating distance between the bodies along the collision normal.\n *\n * @readOnly\n * @property depth\n * @type number\n * @default 0\n */\n\n /**\n * A normalised `Vector` that represents the direction between the bodies that provides the minimum separating distance.\n *\n * @property normal\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A normalised `Vector` that is the tangent direction to the collision normal.\n *\n * @property tangent\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that represents the direction and depth of the collision.\n *\n * @property penetration\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * An array of body vertices that represent the support points in the collision.\n * These are the deepest vertices (along the collision normal) of each body that are contained by the other body's vertices.\n *\n * @property supports\n * @type vector[]\n * @default []\n */\n\n})();\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Pair` module contains methods for creating and manipulating collision pairs.\n*\n* @class Pair\n*/\n\nvar Pair = {};\n\nmodule.exports = Pair;\n\nvar Contact = __webpack_require__(16);\n\n(function() {\n \n /**\n * Creates a pair.\n * @method create\n * @param {collision} collision\n * @param {number} timestamp\n * @return {pair} A new pair\n */\n Pair.create = function(collision, timestamp) {\n var bodyA = collision.bodyA,\n bodyB = collision.bodyB;\n\n var pair = {\n id: Pair.id(bodyA, bodyB),\n bodyA: bodyA,\n bodyB: bodyB,\n collision: collision,\n contacts: [],\n activeContacts: [],\n separation: 0,\n isActive: true,\n confirmedActive: true,\n isSensor: bodyA.isSensor || bodyB.isSensor,\n timeCreated: timestamp,\n timeUpdated: timestamp,\n inverseMass: 0,\n friction: 0,\n frictionStatic: 0,\n restitution: 0,\n slop: 0\n };\n\n Pair.update(pair, collision, timestamp);\n\n return pair;\n };\n\n /**\n * Updates a pair given a collision.\n * @method update\n * @param {pair} pair\n * @param {collision} collision\n * @param {number} timestamp\n */\n Pair.update = function(pair, collision, timestamp) {\n var contacts = pair.contacts,\n supports = collision.supports,\n activeContacts = pair.activeContacts,\n parentA = collision.parentA,\n parentB = collision.parentB,\n parentAVerticesLength = parentA.vertices.length;\n \n pair.isActive = true;\n pair.timeUpdated = timestamp;\n pair.collision = collision;\n pair.separation = collision.depth;\n pair.inverseMass = parentA.inverseMass + parentB.inverseMass;\n pair.friction = parentA.friction < parentB.friction ? parentA.friction : parentB.friction;\n pair.frictionStatic = parentA.frictionStatic > parentB.frictionStatic ? parentA.frictionStatic : parentB.frictionStatic;\n pair.restitution = parentA.restitution > parentB.restitution ? parentA.restitution : parentB.restitution;\n pair.slop = parentA.slop > parentB.slop ? parentA.slop : parentB.slop;\n\n collision.pair = pair;\n activeContacts.length = 0;\n \n for (var i = 0; i < supports.length; i++) {\n var support = supports[i],\n contactId = support.body === parentA ? support.index : parentAVerticesLength + support.index,\n contact = contacts[contactId];\n\n if (contact) {\n activeContacts.push(contact);\n } else {\n activeContacts.push(contacts[contactId] = Contact.create(support));\n }\n }\n };\n \n /**\n * Set a pair as active or inactive.\n * @method setActive\n * @param {pair} pair\n * @param {bool} isActive\n * @param {number} timestamp\n */\n Pair.setActive = function(pair, isActive, timestamp) {\n if (isActive) {\n pair.isActive = true;\n pair.timeUpdated = timestamp;\n } else {\n pair.isActive = false;\n pair.activeContacts.length = 0;\n }\n };\n\n /**\n * Get the id for the given pair.\n * @method id\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {string} Unique pairId\n */\n Pair.id = function(bodyA, bodyB) {\n if (bodyA.id < bodyB.id) {\n return 'A' + bodyA.id + 'B' + bodyB.id;\n } else {\n return 'A' + bodyB.id + 'B' + bodyA.id;\n }\n };\n\n})();\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Constraint` module contains methods for creating and manipulating constraints.\n* Constraints are used for specifying that a fixed distance must be maintained between two bodies (or a body and a fixed world-space position).\n* The stiffness of constraints can be modified to create springs or elastic.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Constraint\n*/\n\nvar Constraint = {};\n\nmodule.exports = Constraint;\n\nvar Vertices = __webpack_require__(3);\nvar Vector = __webpack_require__(2);\nvar Sleeping = __webpack_require__(7);\nvar Bounds = __webpack_require__(1);\nvar Axes = __webpack_require__(11);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Constraint._warming = 0.4;\n Constraint._torqueDampen = 1;\n Constraint._minLength = 0.000001;\n\n /**\n * Creates a new constraint.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * To simulate a revolute constraint (or pin joint) set `length: 0` and a high `stiffness` value (e.g. `0.7` or above).\n * If the constraint is unstable, try lowering the `stiffness` value and / or increasing `engine.constraintIterations`.\n * For compound bodies, constraints must be applied to the parent body (not one of its parts).\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} options\n * @return {constraint} constraint\n */\n Constraint.create = function(options) {\n var constraint = options;\n\n // if bodies defined but no points, use body centre\n if (constraint.bodyA && !constraint.pointA)\n constraint.pointA = { x: 0, y: 0 };\n if (constraint.bodyB && !constraint.pointB)\n constraint.pointB = { x: 0, y: 0 };\n\n // calculate static length using initial world space points\n var initialPointA = constraint.bodyA ? Vector.add(constraint.bodyA.position, constraint.pointA) : constraint.pointA,\n initialPointB = constraint.bodyB ? Vector.add(constraint.bodyB.position, constraint.pointB) : constraint.pointB,\n length = Vector.magnitude(Vector.sub(initialPointA, initialPointB));\n \n constraint.length = typeof constraint.length !== 'undefined' ? constraint.length : length;\n\n // option defaults\n constraint.id = constraint.id || Common.nextId();\n constraint.label = constraint.label || 'Constraint';\n constraint.type = 'constraint';\n constraint.stiffness = constraint.stiffness || (constraint.length > 0 ? 1 : 0.7);\n constraint.damping = constraint.damping || 0;\n constraint.angularStiffness = constraint.angularStiffness || 0;\n constraint.angleA = constraint.bodyA ? constraint.bodyA.angle : constraint.angleA;\n constraint.angleB = constraint.bodyB ? constraint.bodyB.angle : constraint.angleB;\n constraint.plugin = {};\n\n // render\n var render = {\n visible: true,\n lineWidth: 2,\n strokeStyle: '#ffffff',\n type: 'line',\n anchors: true\n };\n\n if (constraint.length === 0 && constraint.stiffness > 0.1) {\n render.type = 'pin';\n render.anchors = false;\n } else if (constraint.stiffness < 0.9) {\n render.type = 'spring';\n }\n\n constraint.render = Common.extend(render, constraint.render);\n\n return constraint;\n };\n\n /**\n * Prepares for solving by constraint warming.\n * @private\n * @method preSolveAll\n * @param {body[]} bodies\n */\n Constraint.preSolveAll = function(bodies) {\n for (var i = 0; i < bodies.length; i += 1) {\n var body = bodies[i],\n impulse = body.constraintImpulse;\n\n if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) {\n continue;\n }\n\n body.position.x += impulse.x;\n body.position.y += impulse.y;\n body.angle += impulse.angle;\n }\n };\n\n /**\n * Solves all constraints in a list of collisions.\n * @private\n * @method solveAll\n * @param {constraint[]} constraints\n * @param {number} delta\n */\n Constraint.solveAll = function(constraints, delta) {\n var timeScale = Common.clamp(delta / Common._baseDelta, 0, 1);\n\n // Solve fixed constraints first.\n for (var i = 0; i < constraints.length; i += 1) {\n var constraint = constraints[i],\n fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic),\n fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic);\n\n if (fixedA || fixedB) {\n Constraint.solve(constraints[i], timeScale);\n }\n }\n\n // Solve free constraints last.\n for (i = 0; i < constraints.length; i += 1) {\n constraint = constraints[i];\n fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic);\n fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic);\n\n if (!fixedA && !fixedB) {\n Constraint.solve(constraints[i], timeScale);\n }\n }\n };\n\n /**\n * Solves a distance constraint with Gauss-Siedel method.\n * @private\n * @method solve\n * @param {constraint} constraint\n * @param {number} timeScale\n */\n Constraint.solve = function(constraint, timeScale) {\n var bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n pointA = constraint.pointA,\n pointB = constraint.pointB;\n\n if (!bodyA && !bodyB)\n return;\n\n // update reference angle\n if (bodyA && !bodyA.isStatic) {\n Vector.rotate(pointA, bodyA.angle - constraint.angleA, pointA);\n constraint.angleA = bodyA.angle;\n }\n \n // update reference angle\n if (bodyB && !bodyB.isStatic) {\n Vector.rotate(pointB, bodyB.angle - constraint.angleB, pointB);\n constraint.angleB = bodyB.angle;\n }\n\n var pointAWorld = pointA,\n pointBWorld = pointB;\n\n if (bodyA) pointAWorld = Vector.add(bodyA.position, pointA);\n if (bodyB) pointBWorld = Vector.add(bodyB.position, pointB);\n\n if (!pointAWorld || !pointBWorld)\n return;\n\n var delta = Vector.sub(pointAWorld, pointBWorld),\n currentLength = Vector.magnitude(delta);\n\n // prevent singularity\n if (currentLength < Constraint._minLength) {\n currentLength = Constraint._minLength;\n }\n\n // solve distance constraint with Gauss-Siedel method\n var difference = (currentLength - constraint.length) / currentLength,\n isRigid = constraint.stiffness >= 1 || constraint.length === 0,\n stiffness = isRigid ? constraint.stiffness * timeScale \n : constraint.stiffness * timeScale * timeScale,\n damping = constraint.damping * timeScale,\n force = Vector.mult(delta, difference * stiffness),\n massTotal = (bodyA ? bodyA.inverseMass : 0) + (bodyB ? bodyB.inverseMass : 0),\n inertiaTotal = (bodyA ? bodyA.inverseInertia : 0) + (bodyB ? bodyB.inverseInertia : 0),\n resistanceTotal = massTotal + inertiaTotal,\n torque,\n share,\n normal,\n normalVelocity,\n relativeVelocity;\n \n if (damping > 0) {\n var zero = Vector.create();\n normal = Vector.div(delta, currentLength);\n\n relativeVelocity = Vector.sub(\n bodyB && Vector.sub(bodyB.position, bodyB.positionPrev) || zero,\n bodyA && Vector.sub(bodyA.position, bodyA.positionPrev) || zero\n );\n\n normalVelocity = Vector.dot(normal, relativeVelocity);\n }\n\n if (bodyA && !bodyA.isStatic) {\n share = bodyA.inverseMass / massTotal;\n\n // keep track of applied impulses for post solving\n bodyA.constraintImpulse.x -= force.x * share;\n bodyA.constraintImpulse.y -= force.y * share;\n\n // apply forces\n bodyA.position.x -= force.x * share;\n bodyA.position.y -= force.y * share;\n\n // apply damping\n if (damping > 0) {\n bodyA.positionPrev.x -= damping * normal.x * normalVelocity * share;\n bodyA.positionPrev.y -= damping * normal.y * normalVelocity * share;\n }\n\n // apply torque\n torque = (Vector.cross(pointA, force) / resistanceTotal) * Constraint._torqueDampen * bodyA.inverseInertia * (1 - constraint.angularStiffness);\n bodyA.constraintImpulse.angle -= torque;\n bodyA.angle -= torque;\n }\n\n if (bodyB && !bodyB.isStatic) {\n share = bodyB.inverseMass / massTotal;\n\n // keep track of applied impulses for post solving\n bodyB.constraintImpulse.x += force.x * share;\n bodyB.constraintImpulse.y += force.y * share;\n \n // apply forces\n bodyB.position.x += force.x * share;\n bodyB.position.y += force.y * share;\n\n // apply damping\n if (damping > 0) {\n bodyB.positionPrev.x += damping * normal.x * normalVelocity * share;\n bodyB.positionPrev.y += damping * normal.y * normalVelocity * share;\n }\n\n // apply torque\n torque = (Vector.cross(pointB, force) / resistanceTotal) * Constraint._torqueDampen * bodyB.inverseInertia * (1 - constraint.angularStiffness);\n bodyB.constraintImpulse.angle += torque;\n bodyB.angle += torque;\n }\n\n };\n\n /**\n * Performs body updates required after solving constraints.\n * @private\n * @method postSolveAll\n * @param {body[]} bodies\n */\n Constraint.postSolveAll = function(bodies) {\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n impulse = body.constraintImpulse;\n\n if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) {\n continue;\n }\n\n Sleeping.set(body, false);\n\n // update geometry and reset\n for (var j = 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n \n Vertices.translate(part.vertices, impulse);\n\n if (j > 0) {\n part.position.x += impulse.x;\n part.position.y += impulse.y;\n }\n\n if (impulse.angle !== 0) {\n Vertices.rotate(part.vertices, impulse.angle, body.position);\n Axes.rotate(part.axes, impulse.angle);\n if (j > 0) {\n Vector.rotateAbout(part.position, impulse.angle, body.position, part.position);\n }\n }\n\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n\n // dampen the cached impulse for warming next step\n impulse.angle *= Constraint._warming;\n impulse.x *= Constraint._warming;\n impulse.y *= Constraint._warming;\n }\n };\n\n /**\n * Returns the world-space position of `constraint.pointA`, accounting for `constraint.bodyA`.\n * @method pointAWorld\n * @param {constraint} constraint\n * @returns {vector} the world-space position\n */\n Constraint.pointAWorld = function(constraint) {\n return {\n x: (constraint.bodyA ? constraint.bodyA.position.x : 0) \n + (constraint.pointA ? constraint.pointA.x : 0),\n y: (constraint.bodyA ? constraint.bodyA.position.y : 0) \n + (constraint.pointA ? constraint.pointA.y : 0)\n };\n };\n\n /**\n * Returns the world-space position of `constraint.pointB`, accounting for `constraint.bodyB`.\n * @method pointBWorld\n * @param {constraint} constraint\n * @returns {vector} the world-space position\n */\n Constraint.pointBWorld = function(constraint) {\n return {\n x: (constraint.bodyB ? constraint.bodyB.position.x : 0) \n + (constraint.pointB ? constraint.pointB.x : 0),\n y: (constraint.bodyB ? constraint.bodyB.position.y : 0) \n + (constraint.pointB ? constraint.pointB.y : 0)\n };\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"constraint\"\n * @readOnly\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage bodies.\n *\n * @property label\n * @type string\n * @default \"Constraint\"\n */\n\n /**\n * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n *\n * @property render\n * @type object\n */\n\n /**\n * A flag that indicates if the constraint should be rendered.\n *\n * @property render.visible\n * @type boolean\n * @default true\n */\n\n /**\n * A `Number` that defines the line width to use when rendering the constraint outline.\n * A value of `0` means no outline will be rendered.\n *\n * @property render.lineWidth\n * @type number\n * @default 2\n */\n\n /**\n * A `String` that defines the stroke style to use when rendering the constraint outline.\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.strokeStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * A `String` that defines the constraint rendering type. \n * The possible values are 'line', 'pin', 'spring'.\n * An appropriate render type will be automatically chosen unless one is given in options.\n *\n * @property render.type\n * @type string\n * @default 'line'\n */\n\n /**\n * A `Boolean` that defines if the constraint's anchor points should be rendered.\n *\n * @property render.anchors\n * @type boolean\n * @default true\n */\n\n /**\n * The first possible `Body` that this constraint is attached to.\n *\n * @property bodyA\n * @type body\n * @default null\n */\n\n /**\n * The second possible `Body` that this constraint is attached to.\n *\n * @property bodyB\n * @type body\n * @default null\n */\n\n /**\n * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyA` if defined, otherwise a world-space position.\n *\n * @property pointA\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyB` if defined, otherwise a world-space position.\n *\n * @property pointB\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Number` that specifies the stiffness of the constraint, i.e. the rate at which it returns to its resting `constraint.length`.\n * A value of `1` means the constraint should be very stiff.\n * A value of `0.2` means the constraint acts like a soft spring.\n *\n * @property stiffness\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that specifies the damping of the constraint, \n * i.e. the amount of resistance applied to each body based on their velocities to limit the amount of oscillation.\n * Damping will only be apparent when the constraint also has a very low `stiffness`.\n * A value of `0.1` means the constraint will apply heavy damping, resulting in little to no oscillation.\n * A value of `0` means the constraint will apply no damping.\n *\n * @property damping\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that specifies the target resting length of the constraint. \n * It is calculated automatically in `Constraint.create` from initial positions of the `constraint.bodyA` and `constraint.bodyB`.\n *\n * @property length\n * @type number\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n})();\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Axes` module contains methods for creating and manipulating sets of axes.\n*\n* @class Axes\n*/\n\nvar Axes = {};\n\nmodule.exports = Axes;\n\nvar Vector = __webpack_require__(2);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new set of axes from the given vertices.\n * @method fromVertices\n * @param {vertices} vertices\n * @return {axes} A new axes from the given vertices\n */\n Axes.fromVertices = function(vertices) {\n var axes = {};\n\n // find the unique axes, using edge normal gradients\n for (var i = 0; i < vertices.length; i++) {\n var j = (i + 1) % vertices.length, \n normal = Vector.normalise({ \n x: vertices[j].y - vertices[i].y, \n y: vertices[i].x - vertices[j].x\n }),\n gradient = (normal.y === 0) ? Infinity : (normal.x / normal.y);\n \n // limit precision\n gradient = gradient.toFixed(3).toString();\n axes[gradient] = normal;\n }\n\n return Common.values(axes);\n };\n\n /**\n * Rotates a set of axes by the given angle.\n * @method rotate\n * @param {axes} axes\n * @param {number} angle\n */\n Axes.rotate = function(axes, angle) {\n if (angle === 0)\n return;\n \n var cos = Math.cos(angle),\n sin = Math.sin(angle);\n\n for (var i = 0; i < axes.length; i++) {\n var axis = axes[i],\n xx;\n xx = axis.x * cos - axis.y * sin;\n axis.y = axis.x * sin + axis.y * cos;\n axis.x = xx;\n }\n };\n\n})();\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Bodies` module contains factory methods for creating rigid body models \n* with commonly used body configurations (such as rectangles, circles and other polygons).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Bodies\n*/\n\n// TODO: true circle bodies\n\nvar Bodies = {};\n\nmodule.exports = Bodies;\n\nvar Vertices = __webpack_require__(3);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\nvar Bounds = __webpack_require__(1);\nvar Vector = __webpack_require__(2);\n\n(function() {\n\n /**\n * Creates a new rigid body model with a rectangle hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method rectangle\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {object} [options]\n * @return {body} A new rectangle body\n */\n Bodies.rectangle = function(x, y, width, height, options) {\n options = options || {};\n\n var rectangle = { \n label: 'Rectangle Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath('L 0 0 L ' + width + ' 0 L ' + width + ' ' + height + ' L 0 ' + height)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n rectangle.vertices = Vertices.chamfer(rectangle.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, rectangle, options));\n };\n \n /**\n * Creates a new rigid body model with a trapezoid hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method trapezoid\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {number} slope\n * @param {object} [options]\n * @return {body} A new trapezoid body\n */\n Bodies.trapezoid = function(x, y, width, height, slope, options) {\n options = options || {};\n\n slope *= 0.5;\n var roof = (1 - (slope * 2)) * width;\n \n var x1 = width * slope,\n x2 = x1 + roof,\n x3 = x2 + x1,\n verticesPath;\n\n if (slope < 0.5) {\n verticesPath = 'L 0 0 L ' + x1 + ' ' + (-height) + ' L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0';\n } else {\n verticesPath = 'L 0 0 L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0';\n }\n\n var trapezoid = { \n label: 'Trapezoid Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath(verticesPath)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n trapezoid.vertices = Vertices.chamfer(trapezoid.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, trapezoid, options));\n };\n\n /**\n * Creates a new rigid body model with a circle hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method circle\n * @param {number} x\n * @param {number} y\n * @param {number} radius\n * @param {object} [options]\n * @param {number} [maxSides]\n * @return {body} A new circle body\n */\n Bodies.circle = function(x, y, radius, options, maxSides) {\n options = options || {};\n\n var circle = {\n label: 'Circle Body',\n circleRadius: radius\n };\n \n // approximate circles with polygons until true circles implemented in SAT\n maxSides = maxSides || 25;\n var sides = Math.ceil(Math.max(10, Math.min(maxSides, radius)));\n\n // optimisation: always use even number of sides (half the number of unique axes)\n if (sides % 2 === 1)\n sides += 1;\n\n return Bodies.polygon(x, y, sides, radius, Common.extend({}, circle, options));\n };\n\n /**\n * Creates a new rigid body model with a regular polygon hull with the given number of sides. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method polygon\n * @param {number} x\n * @param {number} y\n * @param {number} sides\n * @param {number} radius\n * @param {object} [options]\n * @return {body} A new regular polygon body\n */\n Bodies.polygon = function(x, y, sides, radius, options) {\n options = options || {};\n\n if (sides < 3)\n return Bodies.circle(x, y, radius, options);\n\n var theta = 2 * Math.PI / sides,\n path = '',\n offset = theta * 0.5;\n\n for (var i = 0; i < sides; i += 1) {\n var angle = offset + (i * theta),\n xx = Math.cos(angle) * radius,\n yy = Math.sin(angle) * radius;\n\n path += 'L ' + xx.toFixed(3) + ' ' + yy.toFixed(3) + ' ';\n }\n\n var polygon = { \n label: 'Polygon Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath(path)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n polygon.vertices = Vertices.chamfer(polygon.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, polygon, options));\n };\n\n /**\n * Utility to create a compound body based on set(s) of vertices.\n * \n * _Note:_ To optionally enable automatic concave vertices decomposition the [poly-decomp](https://github.com/schteppe/poly-decomp.js) \n * package must be first installed and provided see `Common.setDecomp`, otherwise the convex hull of each vertex set will be used.\n * \n * The resulting vertices are reorientated about their centre of mass,\n * and offset such that `body.position` corresponds to this point.\n * \n * The resulting offset may be found if needed by subtracting `body.bounds` from the original input bounds.\n * To later move the centre of mass see `Body.setCentre`.\n * \n * Note that automatic conconcave decomposition results are not always optimal. \n * For best results, simplify the input vertices as much as possible first.\n * By default this function applies some addtional simplification to help.\n * \n * Some outputs may also require further manual processing afterwards to be robust.\n * In particular some parts may need to be overlapped to avoid collision gaps.\n * Thin parts and sharp points should be avoided or removed where possible.\n *\n * The options parameter object specifies any `Matter.Body` properties you wish to override the defaults.\n * \n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method fromVertices\n * @param {number} x\n * @param {number} y\n * @param {array} vertexSets One or more arrays of vertex points e.g. `[[{ x: 0, y: 0 }...], ...]`.\n * @param {object} [options] The body options.\n * @param {bool} [flagInternal=false] Optionally marks internal edges with `isInternal`.\n * @param {number} [removeCollinear=0.01] Threshold when simplifying vertices along the same edge.\n * @param {number} [minimumArea=10] Threshold when removing small parts.\n * @param {number} [removeDuplicatePoints=0.01] Threshold when simplifying nearby vertices.\n * @return {body}\n */\n Bodies.fromVertices = function(x, y, vertexSets, options, flagInternal, removeCollinear, minimumArea, removeDuplicatePoints) {\n var decomp = Common.getDecomp(),\n canDecomp,\n body,\n parts,\n isConvex,\n isConcave,\n vertices,\n i,\n j,\n k,\n v,\n z;\n\n // check decomp is as expected\n canDecomp = Boolean(decomp && decomp.quickDecomp);\n\n options = options || {};\n parts = [];\n\n flagInternal = typeof flagInternal !== 'undefined' ? flagInternal : false;\n removeCollinear = typeof removeCollinear !== 'undefined' ? removeCollinear : 0.01;\n minimumArea = typeof minimumArea !== 'undefined' ? minimumArea : 10;\n removeDuplicatePoints = typeof removeDuplicatePoints !== 'undefined' ? removeDuplicatePoints : 0.01;\n\n // ensure vertexSets is an array of arrays\n if (!Common.isArray(vertexSets[0])) {\n vertexSets = [vertexSets];\n }\n\n for (v = 0; v < vertexSets.length; v += 1) {\n vertices = vertexSets[v];\n isConvex = Vertices.isConvex(vertices);\n isConcave = !isConvex;\n\n if (isConcave && !canDecomp) {\n Common.warnOnce(\n 'Bodies.fromVertices: Install the \\'poly-decomp\\' library and use Common.setDecomp or provide \\'decomp\\' as a global to decompose concave vertices.'\n );\n }\n\n if (isConvex || !canDecomp) {\n if (isConvex) {\n vertices = Vertices.clockwiseSort(vertices);\n } else {\n // fallback to convex hull when decomposition is not possible\n vertices = Vertices.hull(vertices);\n }\n\n parts.push({\n position: { x: x, y: y },\n vertices: vertices\n });\n } else {\n // initialise a decomposition\n var concave = vertices.map(function(vertex) {\n return [vertex.x, vertex.y];\n });\n\n // vertices are concave and simple, we can decompose into parts\n decomp.makeCCW(concave);\n if (removeCollinear !== false)\n decomp.removeCollinearPoints(concave, removeCollinear);\n if (removeDuplicatePoints !== false && decomp.removeDuplicatePoints)\n decomp.removeDuplicatePoints(concave, removeDuplicatePoints);\n\n // use the quick decomposition algorithm (Bayazit)\n var decomposed = decomp.quickDecomp(concave);\n\n // for each decomposed chunk\n for (i = 0; i < decomposed.length; i++) {\n var chunk = decomposed[i];\n\n // convert vertices into the correct structure\n var chunkVertices = chunk.map(function(vertices) {\n return {\n x: vertices[0],\n y: vertices[1]\n };\n });\n\n // skip small chunks\n if (minimumArea > 0 && Vertices.area(chunkVertices) < minimumArea)\n continue;\n\n // create a compound part\n parts.push({\n position: Vertices.centre(chunkVertices),\n vertices: chunkVertices\n });\n }\n }\n }\n\n // create body parts\n for (i = 0; i < parts.length; i++) {\n parts[i] = Body.create(Common.extend(parts[i], options));\n }\n\n // flag internal edges (coincident part edges)\n if (flagInternal) {\n var coincident_max_dist = 5;\n\n for (i = 0; i < parts.length; i++) {\n var partA = parts[i];\n\n for (j = i + 1; j < parts.length; j++) {\n var partB = parts[j];\n\n if (Bounds.overlaps(partA.bounds, partB.bounds)) {\n var pav = partA.vertices,\n pbv = partB.vertices;\n\n // iterate vertices of both parts\n for (k = 0; k < partA.vertices.length; k++) {\n for (z = 0; z < partB.vertices.length; z++) {\n // find distances between the vertices\n var da = Vector.magnitudeSquared(Vector.sub(pav[(k + 1) % pav.length], pbv[z])),\n db = Vector.magnitudeSquared(Vector.sub(pav[k], pbv[(z + 1) % pbv.length]));\n\n // if both vertices are very close, consider the edge concident (internal)\n if (da < coincident_max_dist && db < coincident_max_dist) {\n pav[k].isInternal = true;\n pbv[z].isInternal = true;\n }\n }\n }\n\n }\n }\n }\n }\n\n if (parts.length > 1) {\n // create the parent body to be returned, that contains generated compound parts\n body = Body.create(Common.extend({ parts: parts.slice(0) }, options));\n\n // offset such that body.position is at the centre off mass\n Body.setPosition(body, { x: x, y: y });\n\n return body;\n } else {\n return parts[0];\n }\n };\n\n})();\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Detector` module contains methods for efficiently detecting collisions between a list of bodies using a broadphase algorithm.\n*\n* @class Detector\n*/\n\nvar Detector = {};\n\nmodule.exports = Detector;\n\nvar Common = __webpack_require__(0);\nvar Collision = __webpack_require__(8);\n\n(function() {\n\n /**\n * Creates a new collision detector.\n * @method create\n * @param {} options\n * @return {detector} A new collision detector\n */\n Detector.create = function(options) {\n var defaults = {\n bodies: [],\n pairs: null\n };\n\n return Common.extend(defaults, options);\n };\n\n /**\n * Sets the list of bodies in the detector.\n * @method setBodies\n * @param {detector} detector\n * @param {body[]} bodies\n */\n Detector.setBodies = function(detector, bodies) {\n detector.bodies = bodies.slice(0);\n };\n\n /**\n * Clears the detector including its list of bodies.\n * @method clear\n * @param {detector} detector\n */\n Detector.clear = function(detector) {\n detector.bodies = [];\n };\n\n /**\n * Efficiently finds all collisions among all the bodies in `detector.bodies` using a broadphase algorithm.\n * \n * _Note:_ The specific ordering of collisions returned is not guaranteed between releases and may change for performance reasons.\n * If a specific ordering is required then apply a sort to the resulting array.\n * @method collisions\n * @param {detector} detector\n * @return {collision[]} collisions\n */\n Detector.collisions = function(detector) {\n var collisions = [],\n pairs = detector.pairs,\n bodies = detector.bodies,\n bodiesLength = bodies.length,\n canCollide = Detector.canCollide,\n collides = Collision.collides,\n i,\n j;\n\n bodies.sort(Detector._compareBoundsX);\n\n for (i = 0; i < bodiesLength; i++) {\n var bodyA = bodies[i],\n boundsA = bodyA.bounds,\n boundXMax = bodyA.bounds.max.x,\n boundYMax = bodyA.bounds.max.y,\n boundYMin = bodyA.bounds.min.y,\n bodyAStatic = bodyA.isStatic || bodyA.isSleeping,\n partsALength = bodyA.parts.length,\n partsASingle = partsALength === 1;\n\n for (j = i + 1; j < bodiesLength; j++) {\n var bodyB = bodies[j],\n boundsB = bodyB.bounds;\n\n if (boundsB.min.x > boundXMax) {\n break;\n }\n\n if (boundYMax < boundsB.min.y || boundYMin > boundsB.max.y) {\n continue;\n }\n\n if (bodyAStatic && (bodyB.isStatic || bodyB.isSleeping)) {\n continue;\n }\n\n if (!canCollide(bodyA.collisionFilter, bodyB.collisionFilter)) {\n continue;\n }\n\n var partsBLength = bodyB.parts.length;\n\n if (partsASingle && partsBLength === 1) {\n var collision = collides(bodyA, bodyB, pairs);\n\n if (collision) {\n collisions.push(collision);\n }\n } else {\n var partsAStart = partsALength > 1 ? 1 : 0,\n partsBStart = partsBLength > 1 ? 1 : 0;\n \n for (var k = partsAStart; k < partsALength; k++) {\n var partA = bodyA.parts[k],\n boundsA = partA.bounds;\n\n for (var z = partsBStart; z < partsBLength; z++) {\n var partB = bodyB.parts[z],\n boundsB = partB.bounds;\n\n if (boundsA.min.x > boundsB.max.x || boundsA.max.x < boundsB.min.x\n || boundsA.max.y < boundsB.min.y || boundsA.min.y > boundsB.max.y) {\n continue;\n }\n\n var collision = collides(partA, partB, pairs);\n\n if (collision) {\n collisions.push(collision);\n }\n }\n }\n }\n }\n }\n\n return collisions;\n };\n\n /**\n * Returns `true` if both supplied collision filters will allow a collision to occur.\n * See `body.collisionFilter` for more information.\n * @method canCollide\n * @param {} filterA\n * @param {} filterB\n * @return {bool} `true` if collision can occur\n */\n Detector.canCollide = function(filterA, filterB) {\n if (filterA.group === filterB.group && filterA.group !== 0)\n return filterA.group > 0;\n\n return (filterA.mask & filterB.category) !== 0 && (filterB.mask & filterA.category) !== 0;\n };\n\n /**\n * The comparison function used in the broadphase algorithm.\n * Returns the signed delta of the bodies bounds on the x-axis.\n * @private\n * @method _sortCompare\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {number} The signed delta used for sorting\n */\n Detector._compareBoundsX = function(bodyA, bodyB) {\n return bodyA.bounds.min.x - bodyB.bounds.min.x;\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * The array of `Matter.Body` between which the detector finds collisions.\n * \n * _Note:_ The order of bodies in this array _is not fixed_ and will be continually managed by the detector.\n * @property bodies\n * @type body[]\n * @default []\n */\n\n /**\n * Optional. A `Matter.Pairs` object from which previous collision objects may be reused. Intended for internal `Matter.Engine` usage.\n * @property pairs\n * @type {pairs|null}\n * @default null\n */\n\n})();\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Mouse` module contains methods for creating and manipulating mouse inputs.\n*\n* @class Mouse\n*/\n\nvar Mouse = {};\n\nmodule.exports = Mouse;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a mouse input.\n * @method create\n * @param {HTMLElement} element\n * @return {mouse} A new mouse\n */\n Mouse.create = function(element) {\n var mouse = {};\n\n if (!element) {\n Common.log('Mouse.create: element was undefined, defaulting to document.body', 'warn');\n }\n \n mouse.element = element || document.body;\n mouse.absolute = { x: 0, y: 0 };\n mouse.position = { x: 0, y: 0 };\n mouse.mousedownPosition = { x: 0, y: 0 };\n mouse.mouseupPosition = { x: 0, y: 0 };\n mouse.offset = { x: 0, y: 0 };\n mouse.scale = { x: 1, y: 1 };\n mouse.wheelDelta = 0;\n mouse.button = -1;\n mouse.pixelRatio = parseInt(mouse.element.getAttribute('data-pixel-ratio'), 10) || 1;\n\n mouse.sourceEvents = {\n mousemove: null,\n mousedown: null,\n mouseup: null,\n mousewheel: null\n };\n \n mouse.mousemove = function(event) { \n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n mouse.button = 0;\n event.preventDefault();\n }\n\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.sourceEvents.mousemove = event;\n };\n \n mouse.mousedown = function(event) {\n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n mouse.button = 0;\n event.preventDefault();\n } else {\n mouse.button = event.button;\n }\n\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.mousedownPosition.x = mouse.position.x;\n mouse.mousedownPosition.y = mouse.position.y;\n mouse.sourceEvents.mousedown = event;\n };\n \n mouse.mouseup = function(event) {\n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n event.preventDefault();\n }\n \n mouse.button = -1;\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.mouseupPosition.x = mouse.position.x;\n mouse.mouseupPosition.y = mouse.position.y;\n mouse.sourceEvents.mouseup = event;\n };\n\n mouse.mousewheel = function(event) {\n mouse.wheelDelta = Math.max(-1, Math.min(1, event.wheelDelta || -event.detail));\n event.preventDefault();\n };\n\n Mouse.setElement(mouse, mouse.element);\n\n return mouse;\n };\n\n /**\n * Sets the element the mouse is bound to (and relative to).\n * @method setElement\n * @param {mouse} mouse\n * @param {HTMLElement} element\n */\n Mouse.setElement = function(mouse, element) {\n mouse.element = element;\n\n element.addEventListener('mousemove', mouse.mousemove);\n element.addEventListener('mousedown', mouse.mousedown);\n element.addEventListener('mouseup', mouse.mouseup);\n \n element.addEventListener('mousewheel', mouse.mousewheel);\n element.addEventListener('DOMMouseScroll', mouse.mousewheel);\n\n element.addEventListener('touchmove', mouse.mousemove);\n element.addEventListener('touchstart', mouse.mousedown);\n element.addEventListener('touchend', mouse.mouseup);\n };\n\n /**\n * Clears all captured source events.\n * @method clearSourceEvents\n * @param {mouse} mouse\n */\n Mouse.clearSourceEvents = function(mouse) {\n mouse.sourceEvents.mousemove = null;\n mouse.sourceEvents.mousedown = null;\n mouse.sourceEvents.mouseup = null;\n mouse.sourceEvents.mousewheel = null;\n mouse.wheelDelta = 0;\n };\n\n /**\n * Sets the mouse position offset.\n * @method setOffset\n * @param {mouse} mouse\n * @param {vector} offset\n */\n Mouse.setOffset = function(mouse, offset) {\n mouse.offset.x = offset.x;\n mouse.offset.y = offset.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n };\n\n /**\n * Sets the mouse position scale.\n * @method setScale\n * @param {mouse} mouse\n * @param {vector} scale\n */\n Mouse.setScale = function(mouse, scale) {\n mouse.scale.x = scale.x;\n mouse.scale.y = scale.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n };\n \n /**\n * Gets the mouse position relative to an element given a screen pixel ratio.\n * @method _getRelativeMousePosition\n * @private\n * @param {} event\n * @param {} element\n * @param {number} pixelRatio\n * @return {}\n */\n Mouse._getRelativeMousePosition = function(event, element, pixelRatio) {\n var elementBounds = element.getBoundingClientRect(),\n rootNode = (document.documentElement || document.body.parentNode || document.body),\n scrollX = (window.pageXOffset !== undefined) ? window.pageXOffset : rootNode.scrollLeft,\n scrollY = (window.pageYOffset !== undefined) ? window.pageYOffset : rootNode.scrollTop,\n touches = event.changedTouches,\n x, y;\n \n if (touches) {\n x = touches[0].pageX - elementBounds.left - scrollX;\n y = touches[0].pageY - elementBounds.top - scrollY;\n } else {\n x = event.pageX - elementBounds.left - scrollX;\n y = event.pageY - elementBounds.top - scrollY;\n }\n\n return { \n x: x / (element.clientWidth / (element.width || element.clientWidth) * pixelRatio),\n y: y / (element.clientHeight / (element.height || element.clientHeight) * pixelRatio)\n };\n };\n\n})();\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Plugin` module contains functions for registering and installing plugins on modules.\n*\n* @class Plugin\n*/\n\nvar Plugin = {};\n\nmodule.exports = Plugin;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Plugin._registry = {};\n\n /**\n * Registers a plugin object so it can be resolved later by name.\n * @method register\n * @param plugin {} The plugin to register.\n * @return {object} The plugin.\n */\n Plugin.register = function(plugin) {\n if (!Plugin.isPlugin(plugin)) {\n Common.warn('Plugin.register:', Plugin.toString(plugin), 'does not implement all required fields.');\n }\n\n if (plugin.name in Plugin._registry) {\n var registered = Plugin._registry[plugin.name],\n pluginVersion = Plugin.versionParse(plugin.version).number,\n registeredVersion = Plugin.versionParse(registered.version).number;\n\n if (pluginVersion > registeredVersion) {\n Common.warn('Plugin.register:', Plugin.toString(registered), 'was upgraded to', Plugin.toString(plugin));\n Plugin._registry[plugin.name] = plugin;\n } else if (pluginVersion < registeredVersion) {\n Common.warn('Plugin.register:', Plugin.toString(registered), 'can not be downgraded to', Plugin.toString(plugin));\n } else if (plugin !== registered) {\n Common.warn('Plugin.register:', Plugin.toString(plugin), 'is already registered to different plugin object');\n }\n } else {\n Plugin._registry[plugin.name] = plugin;\n }\n\n return plugin;\n };\n\n /**\n * Resolves a dependency to a plugin object from the registry if it exists. \n * The `dependency` may contain a version, but only the name matters when resolving.\n * @method resolve\n * @param dependency {string} The dependency.\n * @return {object} The plugin if resolved, otherwise `undefined`.\n */\n Plugin.resolve = function(dependency) {\n return Plugin._registry[Plugin.dependencyParse(dependency).name];\n };\n\n /**\n * Returns a pretty printed plugin name and version.\n * @method toString\n * @param plugin {} The plugin.\n * @return {string} Pretty printed plugin name and version.\n */\n Plugin.toString = function(plugin) {\n return typeof plugin === 'string' ? plugin : (plugin.name || 'anonymous') + '@' + (plugin.version || plugin.range || '0.0.0');\n };\n\n /**\n * Returns `true` if the object meets the minimum standard to be considered a plugin.\n * This means it must define the following properties:\n * - `name`\n * - `version`\n * - `install`\n * @method isPlugin\n * @param obj {} The obj to test.\n * @return {boolean} `true` if the object can be considered a plugin otherwise `false`.\n */\n Plugin.isPlugin = function(obj) {\n return obj && obj.name && obj.version && obj.install;\n };\n\n /**\n * Returns `true` if a plugin with the given `name` been installed on `module`.\n * @method isUsed\n * @param module {} The module.\n * @param name {string} The plugin name.\n * @return {boolean} `true` if a plugin with the given `name` been installed on `module`, otherwise `false`.\n */\n Plugin.isUsed = function(module, name) {\n return module.used.indexOf(name) > -1;\n };\n\n /**\n * Returns `true` if `plugin.for` is applicable to `module` by comparing against `module.name` and `module.version`.\n * If `plugin.for` is not specified then it is assumed to be applicable.\n * The value of `plugin.for` is a string of the format `'module-name'` or `'module-name@version'`.\n * @method isFor\n * @param plugin {} The plugin.\n * @param module {} The module.\n * @return {boolean} `true` if `plugin.for` is applicable to `module`, otherwise `false`.\n */\n Plugin.isFor = function(plugin, module) {\n var parsed = plugin.for && Plugin.dependencyParse(plugin.for);\n return !plugin.for || (module.name === parsed.name && Plugin.versionSatisfies(module.version, parsed.range));\n };\n\n /**\n * Installs the plugins by calling `plugin.install` on each plugin specified in `plugins` if passed, otherwise `module.uses`.\n * For installing plugins on `Matter` see the convenience function `Matter.use`.\n * Plugins may be specified either by their name or a reference to the plugin object.\n * Plugins themselves may specify further dependencies, but each plugin is installed only once.\n * Order is important, a topological sort is performed to find the best resulting order of installation.\n * This sorting attempts to satisfy every dependency's requested ordering, but may not be exact in all cases.\n * This function logs the resulting status of each dependency in the console, along with any warnings.\n * - A green tick ✅ indicates a dependency was resolved and installed.\n * - An orange diamond 🔶 indicates a dependency was resolved but a warning was thrown for it or one if its dependencies.\n * - A red cross ❌ indicates a dependency could not be resolved.\n * Avoid calling this function multiple times on the same module unless you intend to manually control installation order.\n * @method use\n * @param module {} The module install plugins on.\n * @param [plugins=module.uses] {} The plugins to install on module (optional, defaults to `module.uses`).\n */\n Plugin.use = function(module, plugins) {\n module.uses = (module.uses || []).concat(plugins || []);\n\n if (module.uses.length === 0) {\n Common.warn('Plugin.use:', Plugin.toString(module), 'does not specify any dependencies to install.');\n return;\n }\n\n var dependencies = Plugin.dependencies(module),\n sortedDependencies = Common.topologicalSort(dependencies),\n status = [];\n\n for (var i = 0; i < sortedDependencies.length; i += 1) {\n if (sortedDependencies[i] === module.name) {\n continue;\n }\n\n var plugin = Plugin.resolve(sortedDependencies[i]);\n\n if (!plugin) {\n status.push('❌ ' + sortedDependencies[i]);\n continue;\n }\n\n if (Plugin.isUsed(module, plugin.name)) {\n continue;\n }\n\n if (!Plugin.isFor(plugin, module)) {\n Common.warn('Plugin.use:', Plugin.toString(plugin), 'is for', plugin.for, 'but installed on', Plugin.toString(module) + '.');\n plugin._warned = true;\n }\n\n if (plugin.install) {\n plugin.install(module);\n } else {\n Common.warn('Plugin.use:', Plugin.toString(plugin), 'does not specify an install function.');\n plugin._warned = true;\n }\n\n if (plugin._warned) {\n status.push('🔶 ' + Plugin.toString(plugin));\n delete plugin._warned;\n } else {\n status.push('✅ ' + Plugin.toString(plugin));\n }\n\n module.used.push(plugin.name);\n }\n\n if (status.length > 0) {\n Common.info(status.join(' '));\n }\n };\n\n /**\n * Recursively finds all of a module's dependencies and returns a flat dependency graph.\n * @method dependencies\n * @param module {} The module.\n * @return {object} A dependency graph.\n */\n Plugin.dependencies = function(module, tracked) {\n var parsedBase = Plugin.dependencyParse(module),\n name = parsedBase.name;\n\n tracked = tracked || {};\n\n if (name in tracked) {\n return;\n }\n\n module = Plugin.resolve(module) || module;\n\n tracked[name] = Common.map(module.uses || [], function(dependency) {\n if (Plugin.isPlugin(dependency)) {\n Plugin.register(dependency);\n }\n\n var parsed = Plugin.dependencyParse(dependency),\n resolved = Plugin.resolve(dependency);\n\n if (resolved && !Plugin.versionSatisfies(resolved.version, parsed.range)) {\n Common.warn(\n 'Plugin.dependencies:', Plugin.toString(resolved), 'does not satisfy',\n Plugin.toString(parsed), 'used by', Plugin.toString(parsedBase) + '.'\n );\n\n resolved._warned = true;\n module._warned = true;\n } else if (!resolved) {\n Common.warn(\n 'Plugin.dependencies:', Plugin.toString(dependency), 'used by',\n Plugin.toString(parsedBase), 'could not be resolved.'\n );\n\n module._warned = true;\n }\n\n return parsed.name;\n });\n\n for (var i = 0; i < tracked[name].length; i += 1) {\n Plugin.dependencies(tracked[name][i], tracked);\n }\n\n return tracked;\n };\n\n /**\n * Parses a dependency string into its components.\n * The `dependency` is a string of the format `'module-name'` or `'module-name@version'`.\n * See documentation for `Plugin.versionParse` for a description of the format.\n * This function can also handle dependencies that are already resolved (e.g. a module object).\n * @method dependencyParse\n * @param dependency {string} The dependency of the format `'module-name'` or `'module-name@version'`.\n * @return {object} The dependency parsed into its components.\n */\n Plugin.dependencyParse = function(dependency) {\n if (Common.isString(dependency)) {\n var pattern = /^[\\w-]+(@(\\*|[\\^~]?\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-+]+)?))?$/;\n\n if (!pattern.test(dependency)) {\n Common.warn('Plugin.dependencyParse:', dependency, 'is not a valid dependency string.');\n }\n\n return {\n name: dependency.split('@')[0],\n range: dependency.split('@')[1] || '*'\n };\n }\n\n return {\n name: dependency.name,\n range: dependency.range || dependency.version\n };\n };\n\n /**\n * Parses a version string into its components. \n * Versions are strictly of the format `x.y.z` (as in [semver](http://semver.org/)).\n * Versions may optionally have a prerelease tag in the format `x.y.z-alpha`.\n * Ranges are a strict subset of [npm ranges](https://docs.npmjs.com/misc/semver#advanced-range-syntax).\n * Only the following range types are supported:\n * - Tilde ranges e.g. `~1.2.3`\n * - Caret ranges e.g. `^1.2.3`\n * - Greater than ranges e.g. `>1.2.3`\n * - Greater than or equal ranges e.g. `>=1.2.3`\n * - Exact version e.g. `1.2.3`\n * - Any version `*`\n * @method versionParse\n * @param range {string} The version string.\n * @return {object} The version range parsed into its components.\n */\n Plugin.versionParse = function(range) {\n var pattern = /^(\\*)|(\\^|~|>=|>)?\\s*((\\d+)\\.(\\d+)\\.(\\d+))(-[0-9A-Za-z-+]+)?$/;\n\n if (!pattern.test(range)) {\n Common.warn('Plugin.versionParse:', range, 'is not a valid version or range.');\n }\n\n var parts = pattern.exec(range);\n var major = Number(parts[4]);\n var minor = Number(parts[5]);\n var patch = Number(parts[6]);\n\n return {\n isRange: Boolean(parts[1] || parts[2]),\n version: parts[3],\n range: range,\n operator: parts[1] || parts[2] || '',\n major: major,\n minor: minor,\n patch: patch,\n parts: [major, minor, patch],\n prerelease: parts[7],\n number: major * 1e8 + minor * 1e4 + patch\n };\n };\n\n /**\n * Returns `true` if `version` satisfies the given `range`.\n * See documentation for `Plugin.versionParse` for a description of the format.\n * If a version or range is not specified, then any version (`*`) is assumed to satisfy.\n * @method versionSatisfies\n * @param version {string} The version string.\n * @param range {string} The range string.\n * @return {boolean} `true` if `version` satisfies `range`, otherwise `false`.\n */\n Plugin.versionSatisfies = function(version, range) {\n range = range || '*';\n\n var r = Plugin.versionParse(range),\n v = Plugin.versionParse(version);\n\n if (r.isRange) {\n if (r.operator === '*' || version === '*') {\n return true;\n }\n\n if (r.operator === '>') {\n return v.number > r.number;\n }\n\n if (r.operator === '>=') {\n return v.number >= r.number;\n }\n\n if (r.operator === '~') {\n return v.major === r.major && v.minor === r.minor && v.patch >= r.patch;\n }\n\n if (r.operator === '^') {\n if (r.major > 0) {\n return v.major === r.major && v.number >= r.number;\n }\n\n if (r.minor > 0) {\n return v.minor === r.minor && v.patch >= r.patch;\n }\n\n return v.patch === r.patch;\n }\n }\n\n return version === range || version === '*';\n };\n\n})();\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Contact` module contains methods for creating and manipulating collision contacts.\n*\n* @class Contact\n*/\n\nvar Contact = {};\n\nmodule.exports = Contact;\n\n(function() {\n\n /**\n * Creates a new contact.\n * @method create\n * @param {vertex} vertex\n * @return {contact} A new contact\n */\n Contact.create = function(vertex) {\n return {\n vertex: vertex,\n normalImpulse: 0,\n tangentImpulse: 0\n };\n };\n\n})();\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Engine` module contains methods for creating and manipulating engines.\n* An engine is a controller that manages updating the simulation of the world.\n* See `Matter.Runner` for an optional game loop utility.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Engine\n*/\n\nvar Engine = {};\n\nmodule.exports = Engine;\n\nvar Sleeping = __webpack_require__(7);\nvar Resolver = __webpack_require__(18);\nvar Detector = __webpack_require__(13);\nvar Pairs = __webpack_require__(19);\nvar Events = __webpack_require__(5);\nvar Composite = __webpack_require__(6);\nvar Constraint = __webpack_require__(10);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\n\n(function() {\n\n /**\n * Creates a new engine. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {object} [options]\n * @return {engine} engine\n */\n Engine.create = function(options) {\n options = options || {};\n\n var defaults = {\n positionIterations: 6,\n velocityIterations: 4,\n constraintIterations: 2,\n enableSleeping: false,\n events: [],\n plugin: {},\n gravity: {\n x: 0,\n y: 1,\n scale: 0.001\n },\n timing: {\n timestamp: 0,\n timeScale: 1,\n lastDelta: 0,\n lastElapsed: 0\n }\n };\n\n var engine = Common.extend(defaults, options);\n\n engine.world = options.world || Composite.create({ label: 'World' });\n engine.pairs = options.pairs || Pairs.create();\n engine.detector = options.detector || Detector.create();\n\n // for temporary back compatibility only\n engine.grid = { buckets: [] };\n engine.world.gravity = engine.gravity;\n engine.broadphase = engine.grid;\n engine.metrics = {};\n \n return engine;\n };\n\n /**\n * Moves the simulation forward in time by `delta` milliseconds.\n * Triggers `beforeUpdate` and `afterUpdate` events.\n * Triggers `collisionStart`, `collisionActive` and `collisionEnd` events.\n * @method update\n * @param {engine} engine\n * @param {number} [delta=16.666]\n */\n Engine.update = function(engine, delta) {\n var startTime = Common.now();\n\n var world = engine.world,\n detector = engine.detector,\n pairs = engine.pairs,\n timing = engine.timing,\n timestamp = timing.timestamp,\n i;\n\n delta = typeof delta !== 'undefined' ? delta : Common._baseDelta;\n delta *= timing.timeScale;\n\n // increment timestamp\n timing.timestamp += delta;\n timing.lastDelta = delta;\n\n // create an event object\n var event = {\n timestamp: timing.timestamp,\n delta: delta\n };\n\n Events.trigger(engine, 'beforeUpdate', event);\n\n // get all bodies and all constraints in the world\n var allBodies = Composite.allBodies(world),\n allConstraints = Composite.allConstraints(world);\n\n // if the world has changed\n if (world.isModified) {\n // update the detector bodies\n Detector.setBodies(detector, allBodies);\n\n // reset all composite modified flags\n Composite.setModified(world, false, false, true);\n }\n\n // update sleeping if enabled\n if (engine.enableSleeping)\n Sleeping.update(allBodies, delta);\n\n // apply gravity to all bodies\n Engine._bodiesApplyGravity(allBodies, engine.gravity);\n\n // update all body position and rotation by integration\n if (delta > 0) {\n Engine._bodiesUpdate(allBodies, delta);\n }\n\n // update all constraints (first pass)\n Constraint.preSolveAll(allBodies);\n for (i = 0; i < engine.constraintIterations; i++) {\n Constraint.solveAll(allConstraints, delta);\n }\n Constraint.postSolveAll(allBodies);\n\n // find all collisions\n detector.pairs = engine.pairs;\n var collisions = Detector.collisions(detector);\n\n // update collision pairs\n Pairs.update(pairs, collisions, timestamp);\n\n // wake up bodies involved in collisions\n if (engine.enableSleeping)\n Sleeping.afterCollisions(pairs.list);\n\n // trigger collision events\n if (pairs.collisionStart.length > 0)\n Events.trigger(engine, 'collisionStart', { pairs: pairs.collisionStart });\n\n // iteratively resolve position between collisions\n var positionDamping = Common.clamp(20 / engine.positionIterations, 0, 1);\n \n Resolver.preSolvePosition(pairs.list);\n for (i = 0; i < engine.positionIterations; i++) {\n Resolver.solvePosition(pairs.list, delta, positionDamping);\n }\n Resolver.postSolvePosition(allBodies);\n\n // update all constraints (second pass)\n Constraint.preSolveAll(allBodies);\n for (i = 0; i < engine.constraintIterations; i++) {\n Constraint.solveAll(allConstraints, delta);\n }\n Constraint.postSolveAll(allBodies);\n\n // iteratively resolve velocity between collisions\n Resolver.preSolveVelocity(pairs.list);\n for (i = 0; i < engine.velocityIterations; i++) {\n Resolver.solveVelocity(pairs.list, delta);\n }\n\n // update body speed and velocity properties\n Engine._bodiesUpdateVelocities(allBodies);\n\n // trigger collision events\n if (pairs.collisionActive.length > 0)\n Events.trigger(engine, 'collisionActive', { pairs: pairs.collisionActive });\n\n if (pairs.collisionEnd.length > 0)\n Events.trigger(engine, 'collisionEnd', { pairs: pairs.collisionEnd });\n\n // clear force buffers\n Engine._bodiesClearForces(allBodies);\n\n Events.trigger(engine, 'afterUpdate', event);\n\n // log the time elapsed computing this update\n engine.timing.lastElapsed = Common.now() - startTime;\n\n return engine;\n };\n \n /**\n * Merges two engines by keeping the configuration of `engineA` but replacing the world with the one from `engineB`.\n * @method merge\n * @param {engine} engineA\n * @param {engine} engineB\n */\n Engine.merge = function(engineA, engineB) {\n Common.extend(engineA, engineB);\n \n if (engineB.world) {\n engineA.world = engineB.world;\n\n Engine.clear(engineA);\n\n var bodies = Composite.allBodies(engineA.world);\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n Sleeping.set(body, false);\n body.id = Common.nextId();\n }\n }\n };\n\n /**\n * Clears the engine pairs and detector.\n * @method clear\n * @param {engine} engine\n */\n Engine.clear = function(engine) {\n Pairs.clear(engine.pairs);\n Detector.clear(engine.detector);\n };\n\n /**\n * Zeroes the `body.force` and `body.torque` force buffers.\n * @method _bodiesClearForces\n * @private\n * @param {body[]} bodies\n */\n Engine._bodiesClearForces = function(bodies) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n // reset force buffers\n body.force.x = 0;\n body.force.y = 0;\n body.torque = 0;\n }\n };\n\n /**\n * Applies gravitational acceleration to all `bodies`.\n * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet.\n * \n * @method _bodiesApplyGravity\n * @private\n * @param {body[]} bodies\n * @param {vector} gravity\n */\n Engine._bodiesApplyGravity = function(bodies, gravity) {\n var gravityScale = typeof gravity.scale !== 'undefined' ? gravity.scale : 0.001,\n bodiesLength = bodies.length;\n\n if ((gravity.x === 0 && gravity.y === 0) || gravityScale === 0) {\n return;\n }\n \n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n if (body.isStatic || body.isSleeping)\n continue;\n\n // add the resultant force of gravity\n body.force.y += body.mass * gravity.y * gravityScale;\n body.force.x += body.mass * gravity.x * gravityScale;\n }\n };\n\n /**\n * Applies `Body.update` to all given `bodies`.\n * @method _bodiesUpdate\n * @private\n * @param {body[]} bodies\n * @param {number} delta The amount of time elapsed between updates\n */\n Engine._bodiesUpdate = function(bodies, delta) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n if (body.isStatic || body.isSleeping)\n continue;\n\n Body.update(body, delta);\n }\n };\n\n /**\n * Applies `Body.updateVelocities` to all given `bodies`.\n * @method _bodiesUpdateVelocities\n * @private\n * @param {body[]} bodies\n */\n Engine._bodiesUpdateVelocities = function(bodies) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n Body.updateVelocities(bodies[i]);\n }\n };\n\n /**\n * A deprecated alias for `Runner.run`, use `Matter.Runner.run(engine)` instead and see `Matter.Runner` for more information.\n * @deprecated use Matter.Runner.run(engine) instead\n * @method run\n * @param {engine} engine\n */\n\n /**\n * Fired just before an update\n *\n * @event beforeUpdate\n * @param {object} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update and all collision events\n *\n * @event afterUpdate\n * @param {object} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that have started to collide in the current tick (if any)\n *\n * @event collisionStart\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that are colliding in the current tick (if any)\n *\n * @event collisionActive\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that have ended collision in the current tick (if any)\n *\n * @event collisionEnd\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` that specifies the number of position iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n *\n * @property positionIterations\n * @type number\n * @default 6\n */\n\n /**\n * An integer `Number` that specifies the number of velocity iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n *\n * @property velocityIterations\n * @type number\n * @default 4\n */\n\n /**\n * An integer `Number` that specifies the number of constraint iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n * The default value of `2` is usually very adequate.\n *\n * @property constraintIterations\n * @type number\n * @default 2\n */\n\n /**\n * A flag that specifies whether the engine should allow sleeping via the `Matter.Sleeping` module.\n * Sleeping can improve stability and performance, but often at the expense of accuracy.\n *\n * @property enableSleeping\n * @type boolean\n * @default false\n */\n\n /**\n * An `Object` containing properties regarding the timing systems of the engine. \n *\n * @property timing\n * @type object\n */\n\n /**\n * A `Number` that specifies the global scaling factor of time for all bodies.\n * A value of `0` freezes the simulation.\n * A value of `0.1` gives a slow-motion effect.\n * A value of `1.2` gives a speed-up effect.\n *\n * @property timing.timeScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that specifies the current simulation-time in milliseconds starting from `0`. \n * It is incremented on every `Engine.update` by the given `delta` argument. \n * \n * @property timing.timestamp\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that represents the total execution time elapsed during the last `Engine.update` in milliseconds.\n * It is updated by timing from the start of the last `Engine.update` call until it ends.\n *\n * This value will also include the total execution time of all event handlers directly or indirectly triggered by the engine update.\n * \n * @property timing.lastElapsed\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that represents the `delta` value used in the last engine update.\n * \n * @property timing.lastDelta\n * @type number\n * @default 0\n */\n\n /**\n * A `Matter.Detector` instance.\n *\n * @property detector\n * @type detector\n * @default a Matter.Detector instance\n */\n\n /**\n * A `Matter.Grid` instance.\n *\n * @deprecated replaced by `engine.detector`\n * @property grid\n * @type grid\n * @default a Matter.Grid instance\n */\n\n /**\n * Replaced by and now alias for `engine.grid`.\n *\n * @deprecated replaced by `engine.detector`\n * @property broadphase\n * @type grid\n * @default a Matter.Grid instance\n */\n\n /**\n * The root `Matter.Composite` instance that will contain all bodies, constraints and other composites to be simulated by this engine.\n *\n * @property world\n * @type composite\n * @default a Matter.Composite instance\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * An optional gravitational acceleration applied to all bodies in `engine.world` on every update.\n * \n * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet. For gravity in other contexts, disable this and apply forces as needed.\n * \n * To disable set the `scale` component to `0`.\n * \n * This is split into three components for ease of use: \n * a normalised direction (`x` and `y`) and magnitude (`scale`).\n *\n * @property gravity\n * @type object\n */\n\n /**\n * The gravitational direction normal `x` component, to be multiplied by `gravity.scale`.\n * \n * @property gravity.x\n * @type object\n * @default 0\n */\n\n /**\n * The gravitational direction normal `y` component, to be multiplied by `gravity.scale`.\n *\n * @property gravity.y\n * @type object\n * @default 1\n */\n\n /**\n * The magnitude of the gravitational acceleration.\n * \n * @property gravity.scale\n * @type object\n * @default 0.001\n */\n\n})();\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Resolver` module contains methods for resolving collision pairs.\n*\n* @class Resolver\n*/\n\nvar Resolver = {};\n\nmodule.exports = Resolver;\n\nvar Vertices = __webpack_require__(3);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\n\n(function() {\n\n Resolver._restingThresh = 2;\n Resolver._restingThreshTangent = Math.sqrt(6);\n Resolver._positionDampen = 0.9;\n Resolver._positionWarming = 0.8;\n Resolver._frictionNormalMultiplier = 5;\n Resolver._frictionMaxStatic = Number.MAX_VALUE;\n\n /**\n * Prepare pairs for position solving.\n * @method preSolvePosition\n * @param {pair[]} pairs\n */\n Resolver.preSolvePosition = function(pairs) {\n var i,\n pair,\n activeCount,\n pairsLength = pairs.length;\n\n // find total contacts on each body\n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n \n if (!pair.isActive)\n continue;\n \n activeCount = pair.activeContacts.length;\n pair.collision.parentA.totalContacts += activeCount;\n pair.collision.parentB.totalContacts += activeCount;\n }\n };\n\n /**\n * Find a solution for pair positions.\n * @method solvePosition\n * @param {pair[]} pairs\n * @param {number} delta\n * @param {number} [damping=1]\n */\n Resolver.solvePosition = function(pairs, delta, damping) {\n var i,\n pair,\n collision,\n bodyA,\n bodyB,\n normal,\n contactShare,\n positionImpulse,\n positionDampen = Resolver._positionDampen * (damping || 1),\n slopDampen = Common.clamp(delta / Common._baseDelta, 0, 1),\n pairsLength = pairs.length;\n\n // find impulses required to resolve penetration\n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n\n collision = pair.collision;\n bodyA = collision.parentA;\n bodyB = collision.parentB;\n normal = collision.normal;\n\n // get current separation between body edges involved in collision\n pair.separation = \n normal.x * (bodyB.positionImpulse.x + collision.penetration.x - bodyA.positionImpulse.x)\n + normal.y * (bodyB.positionImpulse.y + collision.penetration.y - bodyA.positionImpulse.y);\n }\n \n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n\n if (!pair.isActive || pair.isSensor)\n continue;\n \n collision = pair.collision;\n bodyA = collision.parentA;\n bodyB = collision.parentB;\n normal = collision.normal;\n positionImpulse = pair.separation - pair.slop * slopDampen;\n\n if (bodyA.isStatic || bodyB.isStatic)\n positionImpulse *= 2;\n \n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n contactShare = positionDampen / bodyA.totalContacts;\n bodyA.positionImpulse.x += normal.x * positionImpulse * contactShare;\n bodyA.positionImpulse.y += normal.y * positionImpulse * contactShare;\n }\n\n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n contactShare = positionDampen / bodyB.totalContacts;\n bodyB.positionImpulse.x -= normal.x * positionImpulse * contactShare;\n bodyB.positionImpulse.y -= normal.y * positionImpulse * contactShare;\n }\n }\n };\n\n /**\n * Apply position resolution.\n * @method postSolvePosition\n * @param {body[]} bodies\n */\n Resolver.postSolvePosition = function(bodies) {\n var positionWarming = Resolver._positionWarming,\n bodiesLength = bodies.length,\n verticesTranslate = Vertices.translate,\n boundsUpdate = Bounds.update;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i],\n positionImpulse = body.positionImpulse,\n positionImpulseX = positionImpulse.x,\n positionImpulseY = positionImpulse.y,\n velocity = body.velocity;\n\n // reset contact count\n body.totalContacts = 0;\n\n if (positionImpulseX !== 0 || positionImpulseY !== 0) {\n // update body geometry\n for (var j = 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n verticesTranslate(part.vertices, positionImpulse);\n boundsUpdate(part.bounds, part.vertices, velocity);\n part.position.x += positionImpulseX;\n part.position.y += positionImpulseY;\n }\n\n // move the body without changing velocity\n body.positionPrev.x += positionImpulseX;\n body.positionPrev.y += positionImpulseY;\n\n if (positionImpulseX * velocity.x + positionImpulseY * velocity.y < 0) {\n // reset cached impulse if the body has velocity along it\n positionImpulse.x = 0;\n positionImpulse.y = 0;\n } else {\n // warm the next iteration\n positionImpulse.x *= positionWarming;\n positionImpulse.y *= positionWarming;\n }\n }\n }\n };\n\n /**\n * Prepare pairs for velocity solving.\n * @method preSolveVelocity\n * @param {pair[]} pairs\n */\n Resolver.preSolveVelocity = function(pairs) {\n var pairsLength = pairs.length,\n i,\n j;\n \n for (i = 0; i < pairsLength; i++) {\n var pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n \n var contacts = pair.activeContacts,\n contactsLength = contacts.length,\n collision = pair.collision,\n bodyA = collision.parentA,\n bodyB = collision.parentB,\n normal = collision.normal,\n tangent = collision.tangent;\n \n // resolve each contact\n for (j = 0; j < contactsLength; j++) {\n var contact = contacts[j],\n contactVertex = contact.vertex,\n normalImpulse = contact.normalImpulse,\n tangentImpulse = contact.tangentImpulse;\n \n if (normalImpulse !== 0 || tangentImpulse !== 0) {\n // total impulse from contact\n var impulseX = normal.x * normalImpulse + tangent.x * tangentImpulse,\n impulseY = normal.y * normalImpulse + tangent.y * tangentImpulse;\n \n // apply impulse from contact\n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n bodyA.positionPrev.x += impulseX * bodyA.inverseMass;\n bodyA.positionPrev.y += impulseY * bodyA.inverseMass;\n bodyA.anglePrev += bodyA.inverseInertia * (\n (contactVertex.x - bodyA.position.x) * impulseY\n - (contactVertex.y - bodyA.position.y) * impulseX\n );\n }\n \n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n bodyB.positionPrev.x -= impulseX * bodyB.inverseMass;\n bodyB.positionPrev.y -= impulseY * bodyB.inverseMass;\n bodyB.anglePrev -= bodyB.inverseInertia * (\n (contactVertex.x - bodyB.position.x) * impulseY \n - (contactVertex.y - bodyB.position.y) * impulseX\n );\n }\n }\n }\n }\n };\n\n /**\n * Find a solution for pair velocities.\n * @method solveVelocity\n * @param {pair[]} pairs\n * @param {number} delta\n */\n Resolver.solveVelocity = function(pairs, delta) {\n var timeScale = delta / Common._baseDelta,\n timeScaleSquared = timeScale * timeScale,\n timeScaleCubed = timeScaleSquared * timeScale,\n restingThresh = -Resolver._restingThresh * timeScale,\n restingThreshTangent = Resolver._restingThreshTangent,\n frictionNormalMultiplier = Resolver._frictionNormalMultiplier * timeScale,\n frictionMaxStatic = Resolver._frictionMaxStatic,\n pairsLength = pairs.length,\n tangentImpulse,\n maxFriction,\n i,\n j;\n\n for (i = 0; i < pairsLength; i++) {\n var pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n \n var collision = pair.collision,\n bodyA = collision.parentA,\n bodyB = collision.parentB,\n bodyAVelocity = bodyA.velocity,\n bodyBVelocity = bodyB.velocity,\n normalX = collision.normal.x,\n normalY = collision.normal.y,\n tangentX = collision.tangent.x,\n tangentY = collision.tangent.y,\n contacts = pair.activeContacts,\n contactsLength = contacts.length,\n contactShare = 1 / contactsLength,\n inverseMassTotal = bodyA.inverseMass + bodyB.inverseMass,\n friction = pair.friction * pair.frictionStatic * frictionNormalMultiplier;\n\n // update body velocities\n bodyAVelocity.x = bodyA.position.x - bodyA.positionPrev.x;\n bodyAVelocity.y = bodyA.position.y - bodyA.positionPrev.y;\n bodyBVelocity.x = bodyB.position.x - bodyB.positionPrev.x;\n bodyBVelocity.y = bodyB.position.y - bodyB.positionPrev.y;\n bodyA.angularVelocity = bodyA.angle - bodyA.anglePrev;\n bodyB.angularVelocity = bodyB.angle - bodyB.anglePrev;\n\n // resolve each contact\n for (j = 0; j < contactsLength; j++) {\n var contact = contacts[j],\n contactVertex = contact.vertex;\n\n var offsetAX = contactVertex.x - bodyA.position.x,\n offsetAY = contactVertex.y - bodyA.position.y,\n offsetBX = contactVertex.x - bodyB.position.x,\n offsetBY = contactVertex.y - bodyB.position.y;\n \n var velocityPointAX = bodyAVelocity.x - offsetAY * bodyA.angularVelocity,\n velocityPointAY = bodyAVelocity.y + offsetAX * bodyA.angularVelocity,\n velocityPointBX = bodyBVelocity.x - offsetBY * bodyB.angularVelocity,\n velocityPointBY = bodyBVelocity.y + offsetBX * bodyB.angularVelocity;\n\n var relativeVelocityX = velocityPointAX - velocityPointBX,\n relativeVelocityY = velocityPointAY - velocityPointBY;\n\n var normalVelocity = normalX * relativeVelocityX + normalY * relativeVelocityY,\n tangentVelocity = tangentX * relativeVelocityX + tangentY * relativeVelocityY;\n\n // coulomb friction\n var normalOverlap = pair.separation + normalVelocity;\n var normalForce = Math.min(normalOverlap, 1);\n normalForce = normalOverlap < 0 ? 0 : normalForce;\n\n var frictionLimit = normalForce * friction;\n\n if (tangentVelocity < -frictionLimit || tangentVelocity > frictionLimit) {\n maxFriction = (tangentVelocity > 0 ? tangentVelocity : -tangentVelocity);\n tangentImpulse = pair.friction * (tangentVelocity > 0 ? 1 : -1) * timeScaleCubed;\n \n if (tangentImpulse < -maxFriction) {\n tangentImpulse = -maxFriction;\n } else if (tangentImpulse > maxFriction) {\n tangentImpulse = maxFriction;\n }\n } else {\n tangentImpulse = tangentVelocity;\n maxFriction = frictionMaxStatic;\n }\n\n // account for mass, inertia and contact offset\n var oAcN = offsetAX * normalY - offsetAY * normalX,\n oBcN = offsetBX * normalY - offsetBY * normalX,\n share = contactShare / (inverseMassTotal + bodyA.inverseInertia * oAcN * oAcN + bodyB.inverseInertia * oBcN * oBcN);\n\n // raw impulses\n var normalImpulse = (1 + pair.restitution) * normalVelocity * share;\n tangentImpulse *= share;\n\n // handle high velocity and resting collisions separately\n if (normalVelocity < restingThresh) {\n // high normal velocity so clear cached contact normal impulse\n contact.normalImpulse = 0;\n } else {\n // solve resting collision constraints using Erin Catto's method (GDC08)\n // impulse constraint tends to 0\n var contactNormalImpulse = contact.normalImpulse;\n contact.normalImpulse += normalImpulse;\n if (contact.normalImpulse > 0) contact.normalImpulse = 0;\n normalImpulse = contact.normalImpulse - contactNormalImpulse;\n }\n\n // handle high velocity and resting collisions separately\n if (tangentVelocity < -restingThreshTangent || tangentVelocity > restingThreshTangent) {\n // high tangent velocity so clear cached contact tangent impulse\n contact.tangentImpulse = 0;\n } else {\n // solve resting collision constraints using Erin Catto's method (GDC08)\n // tangent impulse tends to -tangentSpeed or +tangentSpeed\n var contactTangentImpulse = contact.tangentImpulse;\n contact.tangentImpulse += tangentImpulse;\n if (contact.tangentImpulse < -maxFriction) contact.tangentImpulse = -maxFriction;\n if (contact.tangentImpulse > maxFriction) contact.tangentImpulse = maxFriction;\n tangentImpulse = contact.tangentImpulse - contactTangentImpulse;\n }\n\n // total impulse from contact\n var impulseX = normalX * normalImpulse + tangentX * tangentImpulse,\n impulseY = normalY * normalImpulse + tangentY * tangentImpulse;\n \n // apply impulse from contact\n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n bodyA.positionPrev.x += impulseX * bodyA.inverseMass;\n bodyA.positionPrev.y += impulseY * bodyA.inverseMass;\n bodyA.anglePrev += (offsetAX * impulseY - offsetAY * impulseX) * bodyA.inverseInertia;\n }\n\n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n bodyB.positionPrev.x -= impulseX * bodyB.inverseMass;\n bodyB.positionPrev.y -= impulseY * bodyB.inverseMass;\n bodyB.anglePrev -= (offsetBX * impulseY - offsetBY * impulseX) * bodyB.inverseInertia;\n }\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Pairs` module contains methods for creating and manipulating collision pair sets.\n*\n* @class Pairs\n*/\n\nvar Pairs = {};\n\nmodule.exports = Pairs;\n\nvar Pair = __webpack_require__(9);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new pairs structure.\n * @method create\n * @param {object} options\n * @return {pairs} A new pairs structure\n */\n Pairs.create = function(options) {\n return Common.extend({ \n table: {},\n list: [],\n collisionStart: [],\n collisionActive: [],\n collisionEnd: []\n }, options);\n };\n\n /**\n * Updates pairs given a list of collisions.\n * @method update\n * @param {object} pairs\n * @param {collision[]} collisions\n * @param {number} timestamp\n */\n Pairs.update = function(pairs, collisions, timestamp) {\n var pairsList = pairs.list,\n pairsListLength = pairsList.length,\n pairsTable = pairs.table,\n collisionsLength = collisions.length,\n collisionStart = pairs.collisionStart,\n collisionEnd = pairs.collisionEnd,\n collisionActive = pairs.collisionActive,\n collision,\n pairIndex,\n pair,\n i;\n\n // clear collision state arrays, but maintain old reference\n collisionStart.length = 0;\n collisionEnd.length = 0;\n collisionActive.length = 0;\n\n for (i = 0; i < pairsListLength; i++) {\n pairsList[i].confirmedActive = false;\n }\n\n for (i = 0; i < collisionsLength; i++) {\n collision = collisions[i];\n pair = collision.pair;\n\n if (pair) {\n // pair already exists (but may or may not be active)\n if (pair.isActive) {\n // pair exists and is active\n collisionActive.push(pair);\n } else {\n // pair exists but was inactive, so a collision has just started again\n collisionStart.push(pair);\n }\n\n // update the pair\n Pair.update(pair, collision, timestamp);\n pair.confirmedActive = true;\n } else {\n // pair did not exist, create a new pair\n pair = Pair.create(collision, timestamp);\n pairsTable[pair.id] = pair;\n\n // push the new pair\n collisionStart.push(pair);\n pairsList.push(pair);\n }\n }\n\n // find pairs that are no longer active\n var removePairIndex = [];\n pairsListLength = pairsList.length;\n\n for (i = 0; i < pairsListLength; i++) {\n pair = pairsList[i];\n \n if (!pair.confirmedActive) {\n Pair.setActive(pair, false, timestamp);\n collisionEnd.push(pair);\n\n if (!pair.collision.bodyA.isSleeping && !pair.collision.bodyB.isSleeping) {\n removePairIndex.push(i);\n }\n }\n }\n\n // remove inactive pairs\n for (i = 0; i < removePairIndex.length; i++) {\n pairIndex = removePairIndex[i] - i;\n pair = pairsList[pairIndex];\n pairsList.splice(pairIndex, 1);\n delete pairsTable[pair.id];\n }\n };\n\n /**\n * Clears the given pairs structure.\n * @method clear\n * @param {pairs} pairs\n * @return {pairs} pairs\n */\n Pairs.clear = function(pairs) {\n pairs.table = {};\n pairs.list.length = 0;\n pairs.collisionStart.length = 0;\n pairs.collisionActive.length = 0;\n pairs.collisionEnd.length = 0;\n return pairs;\n };\n\n})();\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Matter = module.exports = __webpack_require__(21);\r\n\r\nMatter.Axes = __webpack_require__(11);\r\nMatter.Bodies = __webpack_require__(12);\r\nMatter.Body = __webpack_require__(4);\r\nMatter.Bounds = __webpack_require__(1);\r\nMatter.Collision = __webpack_require__(8);\r\nMatter.Common = __webpack_require__(0);\r\nMatter.Composite = __webpack_require__(6);\r\nMatter.Composites = __webpack_require__(22);\r\nMatter.Constraint = __webpack_require__(10);\r\nMatter.Contact = __webpack_require__(16);\r\nMatter.Detector = __webpack_require__(13);\r\nMatter.Engine = __webpack_require__(17);\r\nMatter.Events = __webpack_require__(5);\r\nMatter.Grid = __webpack_require__(23);\r\nMatter.Mouse = __webpack_require__(14);\r\nMatter.MouseConstraint = __webpack_require__(24);\r\nMatter.Pair = __webpack_require__(9);\r\nMatter.Pairs = __webpack_require__(19);\r\nMatter.Plugin = __webpack_require__(15);\r\nMatter.Query = __webpack_require__(25);\r\nMatter.Render = __webpack_require__(26);\r\nMatter.Resolver = __webpack_require__(18);\r\nMatter.Runner = __webpack_require__(27);\r\nMatter.SAT = __webpack_require__(28);\r\nMatter.Sleeping = __webpack_require__(7);\r\nMatter.Svg = __webpack_require__(29);\r\nMatter.Vector = __webpack_require__(2);\r\nMatter.Vertices = __webpack_require__(3);\r\nMatter.World = __webpack_require__(30);\r\n\r\n// temporary back compatibility\r\nMatter.Engine.run = Matter.Runner.run;\r\nMatter.Common.deprecated(Matter.Engine, 'run', 'Engine.run ➤ use Matter.Runner.run(engine) instead');\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\r\n* The `Matter` module is the top level namespace. It also includes a function for installing plugins on top of the library.\r\n*\r\n* @class Matter\r\n*/\r\n\r\nvar Matter = {};\r\n\r\nmodule.exports = Matter;\r\n\r\nvar Plugin = __webpack_require__(15);\r\nvar Common = __webpack_require__(0);\r\n\r\n(function() {\r\n\r\n /**\r\n * The library name.\r\n * @property name\r\n * @readOnly\r\n * @type {String}\r\n */\r\n Matter.name = 'matter-js';\r\n\r\n /**\r\n * The library version.\r\n * @property version\r\n * @readOnly\r\n * @type {String}\r\n */\r\n Matter.version = true ? \"0.19.0\" : undefined;\r\n\r\n /**\r\n * A list of plugin dependencies to be installed. These are normally set and installed through `Matter.use`.\r\n * Alternatively you may set `Matter.uses` manually and install them by calling `Plugin.use(Matter)`.\r\n * @property uses\r\n * @type {Array}\r\n */\r\n Matter.uses = [];\r\n\r\n /**\r\n * The plugins that have been installed through `Matter.Plugin.install`. Read only.\r\n * @property used\r\n * @readOnly\r\n * @type {Array}\r\n */\r\n Matter.used = [];\r\n\r\n /**\r\n * Installs the given plugins on the `Matter` namespace.\r\n * This is a short-hand for `Plugin.use`, see it for more information.\r\n * Call this function once at the start of your code, with all of the plugins you wish to install as arguments.\r\n * Avoid calling this function multiple times unless you intend to manually control installation order.\r\n * @method use\r\n * @param ...plugin {Function} The plugin(s) to install on `base` (multi-argument).\r\n */\r\n Matter.use = function() {\r\n Plugin.use(Matter, Array.prototype.slice.call(arguments));\r\n };\r\n\r\n /**\r\n * Chains a function to excute before the original function on the given `path` relative to `Matter`.\r\n * See also docs for `Common.chain`.\r\n * @method before\r\n * @param {string} path The path relative to `Matter`\r\n * @param {function} func The function to chain before the original\r\n * @return {function} The chained function that replaced the original\r\n */\r\n Matter.before = function(path, func) {\r\n path = path.replace(/^Matter./, '');\r\n return Common.chainPathBefore(Matter, path, func);\r\n };\r\n\r\n /**\r\n * Chains a function to excute after the original function on the given `path` relative to `Matter`.\r\n * See also docs for `Common.chain`.\r\n * @method after\r\n * @param {string} path The path relative to `Matter`\r\n * @param {function} func The function to chain after the original\r\n * @return {function} The chained function that replaced the original\r\n */\r\n Matter.after = function(path, func) {\r\n path = path.replace(/^Matter./, '');\r\n return Common.chainPathAfter(Matter, path, func);\r\n };\r\n\r\n})();\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Composites` module contains factory methods for creating composite bodies\n* with commonly used configurations (such as stacks and chains).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Composites\n*/\n\nvar Composites = {};\n\nmodule.exports = Composites;\n\nvar Composite = __webpack_require__(6);\nvar Constraint = __webpack_require__(10);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\nvar Bodies = __webpack_require__(12);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Create a new composite containing bodies created in the callback in a grid arrangement.\n * This function uses the body's bounds to prevent overlaps.\n * @method stack\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {function} callback\n * @return {composite} A new composite containing objects created in the callback\n */\n Composites.stack = function(xx, yy, columns, rows, columnGap, rowGap, callback) {\n var stack = Composite.create({ label: 'Stack' }),\n x = xx,\n y = yy,\n lastBody,\n i = 0;\n\n for (var row = 0; row < rows; row++) {\n var maxHeight = 0;\n \n for (var column = 0; column < columns; column++) {\n var body = callback(x, y, column, row, lastBody, i);\n \n if (body) {\n var bodyHeight = body.bounds.max.y - body.bounds.min.y,\n bodyWidth = body.bounds.max.x - body.bounds.min.x; \n\n if (bodyHeight > maxHeight)\n maxHeight = bodyHeight;\n \n Body.translate(body, { x: bodyWidth * 0.5, y: bodyHeight * 0.5 });\n\n x = body.bounds.max.x + columnGap;\n\n Composite.addBody(stack, body);\n \n lastBody = body;\n i += 1;\n } else {\n x += columnGap;\n }\n }\n \n y += maxHeight + rowGap;\n x = xx;\n }\n\n return stack;\n };\n \n /**\n * Chains all bodies in the given composite together using constraints.\n * @method chain\n * @param {composite} composite\n * @param {number} xOffsetA\n * @param {number} yOffsetA\n * @param {number} xOffsetB\n * @param {number} yOffsetB\n * @param {object} options\n * @return {composite} A new composite containing objects chained together with constraints\n */\n Composites.chain = function(composite, xOffsetA, yOffsetA, xOffsetB, yOffsetB, options) {\n var bodies = composite.bodies;\n \n for (var i = 1; i < bodies.length; i++) {\n var bodyA = bodies[i - 1],\n bodyB = bodies[i],\n bodyAHeight = bodyA.bounds.max.y - bodyA.bounds.min.y,\n bodyAWidth = bodyA.bounds.max.x - bodyA.bounds.min.x, \n bodyBHeight = bodyB.bounds.max.y - bodyB.bounds.min.y,\n bodyBWidth = bodyB.bounds.max.x - bodyB.bounds.min.x;\n \n var defaults = {\n bodyA: bodyA,\n pointA: { x: bodyAWidth * xOffsetA, y: bodyAHeight * yOffsetA },\n bodyB: bodyB,\n pointB: { x: bodyBWidth * xOffsetB, y: bodyBHeight * yOffsetB }\n };\n \n var constraint = Common.extend(defaults, options);\n \n Composite.addConstraint(composite, Constraint.create(constraint));\n }\n\n composite.label += ' Chain';\n \n return composite;\n };\n\n /**\n * Connects bodies in the composite with constraints in a grid pattern, with optional cross braces.\n * @method mesh\n * @param {composite} composite\n * @param {number} columns\n * @param {number} rows\n * @param {boolean} crossBrace\n * @param {object} options\n * @return {composite} The composite containing objects meshed together with constraints\n */\n Composites.mesh = function(composite, columns, rows, crossBrace, options) {\n var bodies = composite.bodies,\n row,\n col,\n bodyA,\n bodyB,\n bodyC;\n \n for (row = 0; row < rows; row++) {\n for (col = 1; col < columns; col++) {\n bodyA = bodies[(col - 1) + (row * columns)];\n bodyB = bodies[col + (row * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options)));\n }\n\n if (row > 0) {\n for (col = 0; col < columns; col++) {\n bodyA = bodies[col + ((row - 1) * columns)];\n bodyB = bodies[col + (row * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options)));\n\n if (crossBrace && col > 0) {\n bodyC = bodies[(col - 1) + ((row - 1) * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options)));\n }\n\n if (crossBrace && col < columns - 1) {\n bodyC = bodies[(col + 1) + ((row - 1) * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options)));\n }\n }\n }\n }\n\n composite.label += ' Mesh';\n \n return composite;\n };\n \n /**\n * Create a new composite containing bodies created in the callback in a pyramid arrangement.\n * This function uses the body's bounds to prevent overlaps.\n * @method pyramid\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {function} callback\n * @return {composite} A new composite containing objects created in the callback\n */\n Composites.pyramid = function(xx, yy, columns, rows, columnGap, rowGap, callback) {\n return Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y, column, row, lastBody, i) {\n var actualRows = Math.min(rows, Math.ceil(columns / 2)),\n lastBodyWidth = lastBody ? lastBody.bounds.max.x - lastBody.bounds.min.x : 0;\n \n if (row > actualRows)\n return;\n \n // reverse row order\n row = actualRows - row;\n \n var start = row,\n end = columns - 1 - row;\n\n if (column < start || column > end)\n return;\n \n // retroactively fix the first body's position, since width was unknown\n if (i === 1) {\n Body.translate(lastBody, { x: (column + (columns % 2 === 1 ? 1 : -1)) * lastBodyWidth, y: 0 });\n }\n\n var xOffset = lastBody ? column * lastBodyWidth : 0;\n \n return callback(xx + xOffset + column * columnGap, y, column, row, lastBody, i);\n });\n };\n\n /**\n * This has now moved to the [newtonsCradle example](https://github.com/liabru/matter-js/blob/master/examples/newtonsCradle.js), follow that instead as this function is deprecated here.\n * @deprecated moved to newtonsCradle example\n * @method newtonsCradle\n * @param {number} xx\n * @param {number} yy\n * @param {number} number\n * @param {number} size\n * @param {number} length\n * @return {composite} A new composite newtonsCradle body\n */\n Composites.newtonsCradle = function(xx, yy, number, size, length) {\n var newtonsCradle = Composite.create({ label: 'Newtons Cradle' });\n\n for (var i = 0; i < number; i++) {\n var separation = 1.9,\n circle = Bodies.circle(xx + i * (size * separation), yy + length, size, \n { inertia: Infinity, restitution: 1, friction: 0, frictionAir: 0.0001, slop: 1 }),\n constraint = Constraint.create({ pointA: { x: xx + i * (size * separation), y: yy }, bodyB: circle });\n\n Composite.addBody(newtonsCradle, circle);\n Composite.addConstraint(newtonsCradle, constraint);\n }\n\n return newtonsCradle;\n };\n\n deprecated(Composites, 'newtonsCradle', 'Composites.newtonsCradle ➤ moved to newtonsCradle example');\n \n /**\n * This has now moved to the [car example](https://github.com/liabru/matter-js/blob/master/examples/car.js), follow that instead as this function is deprecated here.\n * @deprecated moved to car example\n * @method car\n * @param {number} xx\n * @param {number} yy\n * @param {number} width\n * @param {number} height\n * @param {number} wheelSize\n * @return {composite} A new composite car body\n */\n Composites.car = function(xx, yy, width, height, wheelSize) {\n var group = Body.nextGroup(true),\n wheelBase = 20,\n wheelAOffset = -width * 0.5 + wheelBase,\n wheelBOffset = width * 0.5 - wheelBase,\n wheelYOffset = 0;\n \n var car = Composite.create({ label: 'Car' }),\n body = Bodies.rectangle(xx, yy, width, height, { \n collisionFilter: {\n group: group\n },\n chamfer: {\n radius: height * 0.5\n },\n density: 0.0002\n });\n \n var wheelA = Bodies.circle(xx + wheelAOffset, yy + wheelYOffset, wheelSize, { \n collisionFilter: {\n group: group\n },\n friction: 0.8\n });\n \n var wheelB = Bodies.circle(xx + wheelBOffset, yy + wheelYOffset, wheelSize, { \n collisionFilter: {\n group: group\n },\n friction: 0.8\n });\n \n var axelA = Constraint.create({\n bodyB: body,\n pointB: { x: wheelAOffset, y: wheelYOffset },\n bodyA: wheelA,\n stiffness: 1,\n length: 0\n });\n \n var axelB = Constraint.create({\n bodyB: body,\n pointB: { x: wheelBOffset, y: wheelYOffset },\n bodyA: wheelB,\n stiffness: 1,\n length: 0\n });\n \n Composite.addBody(car, body);\n Composite.addBody(car, wheelA);\n Composite.addBody(car, wheelB);\n Composite.addConstraint(car, axelA);\n Composite.addConstraint(car, axelB);\n\n return car;\n };\n\n deprecated(Composites, 'car', 'Composites.car ➤ moved to car example');\n\n /**\n * This has now moved to the [softBody example](https://github.com/liabru/matter-js/blob/master/examples/softBody.js)\n * and the [cloth example](https://github.com/liabru/matter-js/blob/master/examples/cloth.js), follow those instead as this function is deprecated here.\n * @deprecated moved to softBody and cloth examples\n * @method softBody\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {boolean} crossBrace\n * @param {number} particleRadius\n * @param {} particleOptions\n * @param {} constraintOptions\n * @return {composite} A new composite softBody\n */\n Composites.softBody = function(xx, yy, columns, rows, columnGap, rowGap, crossBrace, particleRadius, particleOptions, constraintOptions) {\n particleOptions = Common.extend({ inertia: Infinity }, particleOptions);\n constraintOptions = Common.extend({ stiffness: 0.2, render: { type: 'line', anchors: false } }, constraintOptions);\n\n var softBody = Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y) {\n return Bodies.circle(x, y, particleRadius, particleOptions);\n });\n\n Composites.mesh(softBody, columns, rows, crossBrace, constraintOptions);\n\n softBody.label = 'Soft Body';\n\n return softBody;\n };\n\n deprecated(Composites, 'softBody', 'Composites.softBody ➤ moved to softBody and cloth examples');\n})();\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Detector`.\n*\n* All usage should be migrated to `Matter.Detector` or another alternative.\n* For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n*\n* The `Matter.Grid` module contains methods for creating and manipulating collision broadphase grid structures.\n*\n* @class Grid\n* @deprecated\n*/\n\nvar Grid = {};\n\nmodule.exports = Grid;\n\nvar Pair = __webpack_require__(9);\nvar Common = __webpack_require__(0);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Creates a new grid.\n * @deprecated replaced by Matter.Detector\n * @method create\n * @param {} options\n * @return {grid} A new grid\n */\n Grid.create = function(options) {\n var defaults = {\n buckets: {},\n pairs: {},\n pairsList: [],\n bucketWidth: 48,\n bucketHeight: 48\n };\n\n return Common.extend(defaults, options);\n };\n\n /**\n * The width of a single grid bucket.\n *\n * @property bucketWidth\n * @type number\n * @default 48\n */\n\n /**\n * The height of a single grid bucket.\n *\n * @property bucketHeight\n * @type number\n * @default 48\n */\n\n /**\n * Updates the grid.\n * @deprecated replaced by Matter.Detector\n * @method update\n * @param {grid} grid\n * @param {body[]} bodies\n * @param {engine} engine\n * @param {boolean} forceUpdate\n */\n Grid.update = function(grid, bodies, engine, forceUpdate) {\n var i, col, row,\n world = engine.world,\n buckets = grid.buckets,\n bucket,\n bucketId,\n gridChanged = false;\n\n for (i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (body.isSleeping && !forceUpdate)\n continue;\n\n // temporary back compatibility bounds check\n if (world.bounds && (body.bounds.max.x < world.bounds.min.x || body.bounds.min.x > world.bounds.max.x\n || body.bounds.max.y < world.bounds.min.y || body.bounds.min.y > world.bounds.max.y))\n continue;\n\n var newRegion = Grid._getRegion(grid, body);\n\n // if the body has changed grid region\n if (!body.region || newRegion.id !== body.region.id || forceUpdate) {\n\n if (!body.region || forceUpdate)\n body.region = newRegion;\n\n var union = Grid._regionUnion(newRegion, body.region);\n\n // update grid buckets affected by region change\n // iterate over the union of both regions\n for (col = union.startCol; col <= union.endCol; col++) {\n for (row = union.startRow; row <= union.endRow; row++) {\n bucketId = Grid._getBucketId(col, row);\n bucket = buckets[bucketId];\n\n var isInsideNewRegion = (col >= newRegion.startCol && col <= newRegion.endCol\n && row >= newRegion.startRow && row <= newRegion.endRow);\n\n var isInsideOldRegion = (col >= body.region.startCol && col <= body.region.endCol\n && row >= body.region.startRow && row <= body.region.endRow);\n\n // remove from old region buckets\n if (!isInsideNewRegion && isInsideOldRegion) {\n if (isInsideOldRegion) {\n if (bucket)\n Grid._bucketRemoveBody(grid, bucket, body);\n }\n }\n\n // add to new region buckets\n if (body.region === newRegion || (isInsideNewRegion && !isInsideOldRegion) || forceUpdate) {\n if (!bucket)\n bucket = Grid._createBucket(buckets, bucketId);\n Grid._bucketAddBody(grid, bucket, body);\n }\n }\n }\n\n // set the new region\n body.region = newRegion;\n\n // flag changes so we can update pairs\n gridChanged = true;\n }\n }\n\n // update pairs list only if pairs changed (i.e. a body changed region)\n if (gridChanged)\n grid.pairsList = Grid._createActivePairsList(grid);\n };\n\n deprecated(Grid, 'update', 'Grid.update ➤ replaced by Matter.Detector');\n\n /**\n * Clears the grid.\n * @deprecated replaced by Matter.Detector\n * @method clear\n * @param {grid} grid\n */\n Grid.clear = function(grid) {\n grid.buckets = {};\n grid.pairs = {};\n grid.pairsList = [];\n };\n\n deprecated(Grid, 'clear', 'Grid.clear ➤ replaced by Matter.Detector');\n\n /**\n * Finds the union of two regions.\n * @method _regionUnion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} regionA\n * @param {} regionB\n * @return {} region\n */\n Grid._regionUnion = function(regionA, regionB) {\n var startCol = Math.min(regionA.startCol, regionB.startCol),\n endCol = Math.max(regionA.endCol, regionB.endCol),\n startRow = Math.min(regionA.startRow, regionB.startRow),\n endRow = Math.max(regionA.endRow, regionB.endRow);\n\n return Grid._createRegion(startCol, endCol, startRow, endRow);\n };\n\n /**\n * Gets the region a given body falls in for a given grid.\n * @method _getRegion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} body\n * @return {} region\n */\n Grid._getRegion = function(grid, body) {\n var bounds = body.bounds,\n startCol = Math.floor(bounds.min.x / grid.bucketWidth),\n endCol = Math.floor(bounds.max.x / grid.bucketWidth),\n startRow = Math.floor(bounds.min.y / grid.bucketHeight),\n endRow = Math.floor(bounds.max.y / grid.bucketHeight);\n\n return Grid._createRegion(startCol, endCol, startRow, endRow);\n };\n\n /**\n * Creates a region.\n * @method _createRegion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} startCol\n * @param {} endCol\n * @param {} startRow\n * @param {} endRow\n * @return {} region\n */\n Grid._createRegion = function(startCol, endCol, startRow, endRow) {\n return { \n id: startCol + ',' + endCol + ',' + startRow + ',' + endRow,\n startCol: startCol, \n endCol: endCol, \n startRow: startRow, \n endRow: endRow \n };\n };\n\n /**\n * Gets the bucket id at the given position.\n * @method _getBucketId\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} column\n * @param {} row\n * @return {string} bucket id\n */\n Grid._getBucketId = function(column, row) {\n return 'C' + column + 'R' + row;\n };\n\n /**\n * Creates a bucket.\n * @method _createBucket\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} buckets\n * @param {} bucketId\n * @return {} bucket\n */\n Grid._createBucket = function(buckets, bucketId) {\n var bucket = buckets[bucketId] = [];\n return bucket;\n };\n\n /**\n * Adds a body to a bucket.\n * @method _bucketAddBody\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} bucket\n * @param {} body\n */\n Grid._bucketAddBody = function(grid, bucket, body) {\n var gridPairs = grid.pairs,\n pairId = Pair.id,\n bucketLength = bucket.length,\n i;\n\n // add new pairs\n for (i = 0; i < bucketLength; i++) {\n var bodyB = bucket[i];\n\n if (body.id === bodyB.id || (body.isStatic && bodyB.isStatic))\n continue;\n\n // keep track of the number of buckets the pair exists in\n // important for Grid.update to work\n var id = pairId(body, bodyB),\n pair = gridPairs[id];\n\n if (pair) {\n pair[2] += 1;\n } else {\n gridPairs[id] = [body, bodyB, 1];\n }\n }\n\n // add to bodies (after pairs, otherwise pairs with self)\n bucket.push(body);\n };\n\n /**\n * Removes a body from a bucket.\n * @method _bucketRemoveBody\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} bucket\n * @param {} body\n */\n Grid._bucketRemoveBody = function(grid, bucket, body) {\n var gridPairs = grid.pairs,\n pairId = Pair.id,\n i;\n\n // remove from bucket\n bucket.splice(Common.indexOf(bucket, body), 1);\n\n var bucketLength = bucket.length;\n\n // update pair counts\n for (i = 0; i < bucketLength; i++) {\n // keep track of the number of buckets the pair exists in\n // important for _createActivePairsList to work\n var pair = gridPairs[pairId(body, bucket[i])];\n\n if (pair)\n pair[2] -= 1;\n }\n };\n\n /**\n * Generates a list of the active pairs in the grid.\n * @method _createActivePairsList\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @return [] pairs\n */\n Grid._createActivePairsList = function(grid) {\n var pair,\n gridPairs = grid.pairs,\n pairKeys = Common.keys(gridPairs),\n pairKeysLength = pairKeys.length,\n pairs = [],\n k;\n\n // iterate over grid.pairs\n for (k = 0; k < pairKeysLength; k++) {\n pair = gridPairs[pairKeys[k]];\n\n // if pair exists in at least one bucket\n // it is a pair that needs further collision testing so push it\n if (pair[2] > 0) {\n pairs.push(pair);\n } else {\n delete gridPairs[pairKeys[k]];\n }\n }\n\n return pairs;\n };\n \n})();\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.MouseConstraint` module contains methods for creating mouse constraints.\n* Mouse constraints are used for allowing user interaction, providing the ability to move bodies via the mouse or touch.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class MouseConstraint\n*/\n\nvar MouseConstraint = {};\n\nmodule.exports = MouseConstraint;\n\nvar Vertices = __webpack_require__(3);\nvar Sleeping = __webpack_require__(7);\nvar Mouse = __webpack_require__(14);\nvar Events = __webpack_require__(5);\nvar Detector = __webpack_require__(13);\nvar Constraint = __webpack_require__(10);\nvar Composite = __webpack_require__(6);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\n\n(function() {\n\n /**\n * Creates a new mouse constraint.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {engine} engine\n * @param {} options\n * @return {MouseConstraint} A new MouseConstraint\n */\n MouseConstraint.create = function(engine, options) {\n var mouse = (engine ? engine.mouse : null) || (options ? options.mouse : null);\n\n if (!mouse) {\n if (engine && engine.render && engine.render.canvas) {\n mouse = Mouse.create(engine.render.canvas);\n } else if (options && options.element) {\n mouse = Mouse.create(options.element);\n } else {\n mouse = Mouse.create();\n Common.warn('MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected');\n }\n }\n\n var constraint = Constraint.create({ \n label: 'Mouse Constraint',\n pointA: mouse.position,\n pointB: { x: 0, y: 0 },\n length: 0.01, \n stiffness: 0.1,\n angularStiffness: 1,\n render: {\n strokeStyle: '#90EE90',\n lineWidth: 3\n }\n });\n\n var defaults = {\n type: 'mouseConstraint',\n mouse: mouse,\n element: null,\n body: null,\n constraint: constraint,\n collisionFilter: {\n category: 0x0001,\n mask: 0xFFFFFFFF,\n group: 0\n }\n };\n\n var mouseConstraint = Common.extend(defaults, options);\n\n Events.on(engine, 'beforeUpdate', function() {\n var allBodies = Composite.allBodies(engine.world);\n MouseConstraint.update(mouseConstraint, allBodies);\n MouseConstraint._triggerEvents(mouseConstraint);\n });\n\n return mouseConstraint;\n };\n\n /**\n * Updates the given mouse constraint.\n * @private\n * @method update\n * @param {MouseConstraint} mouseConstraint\n * @param {body[]} bodies\n */\n MouseConstraint.update = function(mouseConstraint, bodies) {\n var mouse = mouseConstraint.mouse,\n constraint = mouseConstraint.constraint,\n body = mouseConstraint.body;\n\n if (mouse.button === 0) {\n if (!constraint.bodyB) {\n for (var i = 0; i < bodies.length; i++) {\n body = bodies[i];\n if (Bounds.contains(body.bounds, mouse.position) \n && Detector.canCollide(body.collisionFilter, mouseConstraint.collisionFilter)) {\n for (var j = body.parts.length > 1 ? 1 : 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n if (Vertices.contains(part.vertices, mouse.position)) {\n constraint.pointA = mouse.position;\n constraint.bodyB = mouseConstraint.body = body;\n constraint.pointB = { x: mouse.position.x - body.position.x, y: mouse.position.y - body.position.y };\n constraint.angleB = body.angle;\n\n Sleeping.set(body, false);\n Events.trigger(mouseConstraint, 'startdrag', { mouse: mouse, body: body });\n\n break;\n }\n }\n }\n }\n } else {\n Sleeping.set(constraint.bodyB, false);\n constraint.pointA = mouse.position;\n }\n } else {\n constraint.bodyB = mouseConstraint.body = null;\n constraint.pointB = null;\n\n if (body)\n Events.trigger(mouseConstraint, 'enddrag', { mouse: mouse, body: body });\n }\n };\n\n /**\n * Triggers mouse constraint events.\n * @method _triggerEvents\n * @private\n * @param {mouse} mouseConstraint\n */\n MouseConstraint._triggerEvents = function(mouseConstraint) {\n var mouse = mouseConstraint.mouse,\n mouseEvents = mouse.sourceEvents;\n\n if (mouseEvents.mousemove)\n Events.trigger(mouseConstraint, 'mousemove', { mouse: mouse });\n\n if (mouseEvents.mousedown)\n Events.trigger(mouseConstraint, 'mousedown', { mouse: mouse });\n\n if (mouseEvents.mouseup)\n Events.trigger(mouseConstraint, 'mouseup', { mouse: mouse });\n\n // reset the mouse state ready for the next step\n Mouse.clearSourceEvents(mouse);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when the mouse has moved (or a touch moves) during the last step\n *\n * @event mousemove\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the mouse is down (or a touch has started) during the last step\n *\n * @event mousedown\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the mouse is up (or a touch has ended) during the last step\n *\n * @event mouseup\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the user starts dragging a body\n *\n * @event startdrag\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {body} event.body The body being dragged\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the user ends dragging a body\n *\n * @event enddrag\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {body} event.body The body that has stopped being dragged\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"constraint\"\n * @readOnly\n */\n\n /**\n * The `Mouse` instance in use. If not supplied in `MouseConstraint.create`, one will be created.\n *\n * @property mouse\n * @type mouse\n * @default mouse\n */\n\n /**\n * The `Body` that is currently being moved by the user, or `null` if no body.\n *\n * @property body\n * @type body\n * @default null\n */\n\n /**\n * The `Constraint` object that is used to move the body during interaction.\n *\n * @property constraint\n * @type constraint\n */\n\n /**\n * An `Object` that specifies the collision filter properties.\n * The collision filter allows the user to define which types of body this mouse constraint can interact with.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter\n * @type object\n */\n\n})();\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Query` module contains methods for performing collision queries.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Query\n*/\n\nvar Query = {};\n\nmodule.exports = Query;\n\nvar Vector = __webpack_require__(2);\nvar Collision = __webpack_require__(8);\nvar Bounds = __webpack_require__(1);\nvar Bodies = __webpack_require__(12);\nvar Vertices = __webpack_require__(3);\n\n(function() {\n\n /**\n * Returns a list of collisions between `body` and `bodies`.\n * @method collides\n * @param {body} body\n * @param {body[]} bodies\n * @return {collision[]} Collisions\n */\n Query.collides = function(body, bodies) {\n var collisions = [],\n bodiesLength = bodies.length,\n bounds = body.bounds,\n collides = Collision.collides,\n overlaps = Bounds.overlaps;\n\n for (var i = 0; i < bodiesLength; i++) {\n var bodyA = bodies[i],\n partsALength = bodyA.parts.length,\n partsAStart = partsALength === 1 ? 0 : 1;\n \n if (overlaps(bodyA.bounds, bounds)) {\n for (var j = partsAStart; j < partsALength; j++) {\n var part = bodyA.parts[j];\n\n if (overlaps(part.bounds, bounds)) {\n var collision = collides(part, body);\n\n if (collision) {\n collisions.push(collision);\n break;\n }\n }\n }\n }\n }\n\n return collisions;\n };\n\n /**\n * Casts a ray segment against a set of bodies and returns all collisions, ray width is optional. Intersection points are not provided.\n * @method ray\n * @param {body[]} bodies\n * @param {vector} startPoint\n * @param {vector} endPoint\n * @param {number} [rayWidth]\n * @return {collision[]} Collisions\n */\n Query.ray = function(bodies, startPoint, endPoint, rayWidth) {\n rayWidth = rayWidth || 1e-100;\n\n var rayAngle = Vector.angle(startPoint, endPoint),\n rayLength = Vector.magnitude(Vector.sub(startPoint, endPoint)),\n rayX = (endPoint.x + startPoint.x) * 0.5,\n rayY = (endPoint.y + startPoint.y) * 0.5,\n ray = Bodies.rectangle(rayX, rayY, rayLength, rayWidth, { angle: rayAngle }),\n collisions = Query.collides(ray, bodies);\n\n for (var i = 0; i < collisions.length; i += 1) {\n var collision = collisions[i];\n collision.body = collision.bodyB = collision.bodyA; \n }\n\n return collisions;\n };\n\n /**\n * Returns all bodies whose bounds are inside (or outside if set) the given set of bounds, from the given set of bodies.\n * @method region\n * @param {body[]} bodies\n * @param {bounds} bounds\n * @param {bool} [outside=false]\n * @return {body[]} The bodies matching the query\n */\n Query.region = function(bodies, bounds, outside) {\n var result = [];\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n overlaps = Bounds.overlaps(body.bounds, bounds);\n if ((overlaps && !outside) || (!overlaps && outside))\n result.push(body);\n }\n\n return result;\n };\n\n /**\n * Returns all bodies whose vertices contain the given point, from the given set of bodies.\n * @method point\n * @param {body[]} bodies\n * @param {vector} point\n * @return {body[]} The bodies matching the query\n */\n Query.point = function(bodies, point) {\n var result = [];\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n \n if (Bounds.contains(body.bounds, point)) {\n for (var j = body.parts.length === 1 ? 0 : 1; j < body.parts.length; j++) {\n var part = body.parts[j];\n\n if (Bounds.contains(part.bounds, point)\n && Vertices.contains(part.vertices, point)) {\n result.push(body);\n break;\n }\n }\n }\n }\n\n return result;\n };\n\n})();\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Render` module is a simple canvas based renderer for visualising instances of `Matter.Engine`.\n* It is intended for development and debugging purposes, but may also be suitable for simple games.\n* It includes a number of drawing options including wireframe, vector with support for sprites and viewports.\n*\n* @class Render\n*/\n\nvar Render = {};\n\nmodule.exports = Render;\n\nvar Body = __webpack_require__(4);\nvar Common = __webpack_require__(0);\nvar Composite = __webpack_require__(6);\nvar Bounds = __webpack_require__(1);\nvar Events = __webpack_require__(5);\nvar Vector = __webpack_require__(2);\nvar Mouse = __webpack_require__(14);\n\n(function() {\n\n var _requestAnimationFrame,\n _cancelAnimationFrame;\n\n if (typeof window !== 'undefined') {\n _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame\n || window.mozRequestAnimationFrame || window.msRequestAnimationFrame\n || function(callback){ window.setTimeout(function() { callback(Common.now()); }, 1000 / 60); };\n\n _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame\n || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;\n }\n\n Render._goodFps = 30;\n Render._goodDelta = 1000 / 60;\n\n /**\n * Creates a new renderer. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {object} [options]\n * @return {render} A new renderer\n */\n Render.create = function(options) {\n var defaults = {\n engine: null,\n element: null,\n canvas: null,\n mouse: null,\n frameRequestId: null,\n timing: {\n historySize: 60,\n delta: 0,\n deltaHistory: [],\n lastTime: 0,\n lastTimestamp: 0,\n lastElapsed: 0,\n timestampElapsed: 0,\n timestampElapsedHistory: [],\n engineDeltaHistory: [],\n engineElapsedHistory: [],\n elapsedHistory: []\n },\n options: {\n width: 800,\n height: 600,\n pixelRatio: 1,\n background: '#14151f',\n wireframeBackground: '#14151f',\n hasBounds: !!options.bounds,\n enabled: true,\n wireframes: true,\n showSleeping: true,\n showDebug: false,\n showStats: false,\n showPerformance: false,\n showBounds: false,\n showVelocity: false,\n showCollisions: false,\n showSeparations: false,\n showAxes: false,\n showPositions: false,\n showAngleIndicator: false,\n showIds: false,\n showVertexNumbers: false,\n showConvexHulls: false,\n showInternalEdges: false,\n showMousePosition: false\n }\n };\n\n var render = Common.extend(defaults, options);\n\n if (render.canvas) {\n render.canvas.width = render.options.width || render.canvas.width;\n render.canvas.height = render.options.height || render.canvas.height;\n }\n\n render.mouse = options.mouse;\n render.engine = options.engine;\n render.canvas = render.canvas || _createCanvas(render.options.width, render.options.height);\n render.context = render.canvas.getContext('2d');\n render.textures = {};\n\n render.bounds = render.bounds || {\n min: {\n x: 0,\n y: 0\n },\n max: {\n x: render.canvas.width,\n y: render.canvas.height\n }\n };\n\n // for temporary back compatibility only\n render.controller = Render;\n render.options.showBroadphase = false;\n\n if (render.options.pixelRatio !== 1) {\n Render.setPixelRatio(render, render.options.pixelRatio);\n }\n\n if (Common.isElement(render.element)) {\n render.element.appendChild(render.canvas);\n }\n\n return render;\n };\n\n /**\n * Continuously updates the render canvas on the `requestAnimationFrame` event.\n * @method run\n * @param {render} render\n */\n Render.run = function(render) {\n (function loop(time){\n render.frameRequestId = _requestAnimationFrame(loop);\n \n _updateTiming(render, time);\n\n Render.world(render, time);\n\n if (render.options.showStats || render.options.showDebug) {\n Render.stats(render, render.context, time);\n }\n\n if (render.options.showPerformance || render.options.showDebug) {\n Render.performance(render, render.context, time);\n }\n })();\n };\n\n /**\n * Ends execution of `Render.run` on the given `render`, by canceling the animation frame request event loop.\n * @method stop\n * @param {render} render\n */\n Render.stop = function(render) {\n _cancelAnimationFrame(render.frameRequestId);\n };\n\n /**\n * Sets the pixel ratio of the renderer and updates the canvas.\n * To automatically detect the correct ratio, pass the string `'auto'` for `pixelRatio`.\n * @method setPixelRatio\n * @param {render} render\n * @param {number} pixelRatio\n */\n Render.setPixelRatio = function(render, pixelRatio) {\n var options = render.options,\n canvas = render.canvas;\n\n if (pixelRatio === 'auto') {\n pixelRatio = _getPixelRatio(canvas);\n }\n\n options.pixelRatio = pixelRatio;\n canvas.setAttribute('data-pixel-ratio', pixelRatio);\n canvas.width = options.width * pixelRatio;\n canvas.height = options.height * pixelRatio;\n canvas.style.width = options.width + 'px';\n canvas.style.height = options.height + 'px';\n };\n\n /**\n * Positions and sizes the viewport around the given object bounds.\n * Objects must have at least one of the following properties:\n * - `object.bounds`\n * - `object.position`\n * - `object.min` and `object.max`\n * - `object.x` and `object.y`\n * @method lookAt\n * @param {render} render\n * @param {object[]} objects\n * @param {vector} [padding]\n * @param {bool} [center=true]\n */\n Render.lookAt = function(render, objects, padding, center) {\n center = typeof center !== 'undefined' ? center : true;\n objects = Common.isArray(objects) ? objects : [objects];\n padding = padding || {\n x: 0,\n y: 0\n };\n\n // find bounds of all objects\n var bounds = {\n min: { x: Infinity, y: Infinity },\n max: { x: -Infinity, y: -Infinity }\n };\n\n for (var i = 0; i < objects.length; i += 1) {\n var object = objects[i],\n min = object.bounds ? object.bounds.min : (object.min || object.position || object),\n max = object.bounds ? object.bounds.max : (object.max || object.position || object);\n\n if (min && max) {\n if (min.x < bounds.min.x)\n bounds.min.x = min.x;\n\n if (max.x > bounds.max.x)\n bounds.max.x = max.x;\n\n if (min.y < bounds.min.y)\n bounds.min.y = min.y;\n\n if (max.y > bounds.max.y)\n bounds.max.y = max.y;\n }\n }\n\n // find ratios\n var width = (bounds.max.x - bounds.min.x) + 2 * padding.x,\n height = (bounds.max.y - bounds.min.y) + 2 * padding.y,\n viewHeight = render.canvas.height,\n viewWidth = render.canvas.width,\n outerRatio = viewWidth / viewHeight,\n innerRatio = width / height,\n scaleX = 1,\n scaleY = 1;\n\n // find scale factor\n if (innerRatio > outerRatio) {\n scaleY = innerRatio / outerRatio;\n } else {\n scaleX = outerRatio / innerRatio;\n }\n\n // enable bounds\n render.options.hasBounds = true;\n\n // position and size\n render.bounds.min.x = bounds.min.x;\n render.bounds.max.x = bounds.min.x + width * scaleX;\n render.bounds.min.y = bounds.min.y;\n render.bounds.max.y = bounds.min.y + height * scaleY;\n\n // center\n if (center) {\n render.bounds.min.x += width * 0.5 - (width * scaleX) * 0.5;\n render.bounds.max.x += width * 0.5 - (width * scaleX) * 0.5;\n render.bounds.min.y += height * 0.5 - (height * scaleY) * 0.5;\n render.bounds.max.y += height * 0.5 - (height * scaleY) * 0.5;\n }\n\n // padding\n render.bounds.min.x -= padding.x;\n render.bounds.max.x -= padding.x;\n render.bounds.min.y -= padding.y;\n render.bounds.max.y -= padding.y;\n\n // update mouse\n if (render.mouse) {\n Mouse.setScale(render.mouse, {\n x: (render.bounds.max.x - render.bounds.min.x) / render.canvas.width,\n y: (render.bounds.max.y - render.bounds.min.y) / render.canvas.height\n });\n\n Mouse.setOffset(render.mouse, render.bounds.min);\n }\n };\n\n /**\n * Applies viewport transforms based on `render.bounds` to a render context.\n * @method startViewTransform\n * @param {render} render\n */\n Render.startViewTransform = function(render) {\n var boundsWidth = render.bounds.max.x - render.bounds.min.x,\n boundsHeight = render.bounds.max.y - render.bounds.min.y,\n boundsScaleX = boundsWidth / render.options.width,\n boundsScaleY = boundsHeight / render.options.height;\n\n render.context.setTransform(\n render.options.pixelRatio / boundsScaleX, 0, 0, \n render.options.pixelRatio / boundsScaleY, 0, 0\n );\n \n render.context.translate(-render.bounds.min.x, -render.bounds.min.y);\n };\n\n /**\n * Resets all transforms on the render context.\n * @method endViewTransform\n * @param {render} render\n */\n Render.endViewTransform = function(render) {\n render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0);\n };\n\n /**\n * Renders the given `engine`'s `Matter.World` object.\n * This is the entry point for all rendering and should be called every time the scene changes.\n * @method world\n * @param {render} render\n */\n Render.world = function(render, time) {\n var startTime = Common.now(),\n engine = render.engine,\n world = engine.world,\n canvas = render.canvas,\n context = render.context,\n options = render.options,\n timing = render.timing;\n\n var allBodies = Composite.allBodies(world),\n allConstraints = Composite.allConstraints(world),\n background = options.wireframes ? options.wireframeBackground : options.background,\n bodies = [],\n constraints = [],\n i;\n\n var event = {\n timestamp: engine.timing.timestamp\n };\n\n Events.trigger(render, 'beforeRender', event);\n\n // apply background if it has changed\n if (render.currentBackground !== background)\n _applyBackground(render, background);\n\n // clear the canvas with a transparent fill, to allow the canvas background to show\n context.globalCompositeOperation = 'source-in';\n context.fillStyle = \"transparent\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.globalCompositeOperation = 'source-over';\n\n // handle bounds\n if (options.hasBounds) {\n // filter out bodies that are not in view\n for (i = 0; i < allBodies.length; i++) {\n var body = allBodies[i];\n if (Bounds.overlaps(body.bounds, render.bounds))\n bodies.push(body);\n }\n\n // filter out constraints that are not in view\n for (i = 0; i < allConstraints.length; i++) {\n var constraint = allConstraints[i],\n bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n pointAWorld = constraint.pointA,\n pointBWorld = constraint.pointB;\n\n if (bodyA) pointAWorld = Vector.add(bodyA.position, constraint.pointA);\n if (bodyB) pointBWorld = Vector.add(bodyB.position, constraint.pointB);\n\n if (!pointAWorld || !pointBWorld)\n continue;\n\n if (Bounds.contains(render.bounds, pointAWorld) || Bounds.contains(render.bounds, pointBWorld))\n constraints.push(constraint);\n }\n\n // transform the view\n Render.startViewTransform(render);\n\n // update mouse\n if (render.mouse) {\n Mouse.setScale(render.mouse, {\n x: (render.bounds.max.x - render.bounds.min.x) / render.options.width,\n y: (render.bounds.max.y - render.bounds.min.y) / render.options.height\n });\n\n Mouse.setOffset(render.mouse, render.bounds.min);\n }\n } else {\n constraints = allConstraints;\n bodies = allBodies;\n\n if (render.options.pixelRatio !== 1) {\n render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0);\n }\n }\n\n if (!options.wireframes || (engine.enableSleeping && options.showSleeping)) {\n // fully featured rendering of bodies\n Render.bodies(render, bodies, context);\n } else {\n if (options.showConvexHulls)\n Render.bodyConvexHulls(render, bodies, context);\n\n // optimised method for wireframes only\n Render.bodyWireframes(render, bodies, context);\n }\n\n if (options.showBounds)\n Render.bodyBounds(render, bodies, context);\n\n if (options.showAxes || options.showAngleIndicator)\n Render.bodyAxes(render, bodies, context);\n\n if (options.showPositions)\n Render.bodyPositions(render, bodies, context);\n\n if (options.showVelocity)\n Render.bodyVelocity(render, bodies, context);\n\n if (options.showIds)\n Render.bodyIds(render, bodies, context);\n\n if (options.showSeparations)\n Render.separations(render, engine.pairs.list, context);\n\n if (options.showCollisions)\n Render.collisions(render, engine.pairs.list, context);\n\n if (options.showVertexNumbers)\n Render.vertexNumbers(render, bodies, context);\n\n if (options.showMousePosition)\n Render.mousePosition(render, render.mouse, context);\n\n Render.constraints(constraints, context);\n\n if (options.hasBounds) {\n // revert view transforms\n Render.endViewTransform(render);\n }\n\n Events.trigger(render, 'afterRender', event);\n\n // log the time elapsed computing this update\n timing.lastElapsed = Common.now() - startTime;\n };\n\n /**\n * Renders statistics about the engine and world useful for debugging.\n * @private\n * @method stats\n * @param {render} render\n * @param {RenderingContext} context\n * @param {Number} time\n */\n Render.stats = function(render, context, time) {\n var engine = render.engine,\n world = engine.world,\n bodies = Composite.allBodies(world),\n parts = 0,\n width = 55,\n height = 44,\n x = 0,\n y = 0;\n \n // count parts\n for (var i = 0; i < bodies.length; i += 1) {\n parts += bodies[i].parts.length;\n }\n\n // sections\n var sections = {\n 'Part': parts,\n 'Body': bodies.length,\n 'Cons': Composite.allConstraints(world).length,\n 'Comp': Composite.allComposites(world).length,\n 'Pair': engine.pairs.list.length\n };\n\n // background\n context.fillStyle = '#0e0f19';\n context.fillRect(x, y, width * 5.5, height);\n\n context.font = '12px Arial';\n context.textBaseline = 'top';\n context.textAlign = 'right';\n\n // sections\n for (var key in sections) {\n var section = sections[key];\n // label\n context.fillStyle = '#aaa';\n context.fillText(key, x + width, y + 8);\n\n // value\n context.fillStyle = '#eee';\n context.fillText(section, x + width, y + 26);\n\n x += width;\n }\n };\n\n /**\n * Renders engine and render performance information.\n * @private\n * @method performance\n * @param {render} render\n * @param {RenderingContext} context\n */\n Render.performance = function(render, context) {\n var engine = render.engine,\n timing = render.timing,\n deltaHistory = timing.deltaHistory,\n elapsedHistory = timing.elapsedHistory,\n timestampElapsedHistory = timing.timestampElapsedHistory,\n engineDeltaHistory = timing.engineDeltaHistory,\n engineElapsedHistory = timing.engineElapsedHistory,\n lastEngineDelta = engine.timing.lastDelta;\n \n var deltaMean = _mean(deltaHistory),\n elapsedMean = _mean(elapsedHistory),\n engineDeltaMean = _mean(engineDeltaHistory),\n engineElapsedMean = _mean(engineElapsedHistory),\n timestampElapsedMean = _mean(timestampElapsedHistory),\n rateMean = (timestampElapsedMean / deltaMean) || 0,\n fps = (1000 / deltaMean) || 0;\n\n var graphHeight = 4,\n gap = 12,\n width = 60,\n height = 34,\n x = 10,\n y = 69;\n\n // background\n context.fillStyle = '#0e0f19';\n context.fillRect(0, 50, gap * 4 + width * 5 + 22, height);\n\n // show FPS\n Render.status(\n context, x, y, width, graphHeight, deltaHistory.length, \n Math.round(fps) + ' fps', \n fps / Render._goodFps,\n function(i) { return (deltaHistory[i] / deltaMean) - 1; }\n );\n\n // show engine delta\n Render.status(\n context, x + gap + width, y, width, graphHeight, engineDeltaHistory.length,\n lastEngineDelta.toFixed(2) + ' dt', \n Render._goodDelta / lastEngineDelta,\n function(i) { return (engineDeltaHistory[i] / engineDeltaMean) - 1; }\n );\n\n // show engine update time\n Render.status(\n context, x + (gap + width) * 2, y, width, graphHeight, engineElapsedHistory.length,\n engineElapsedMean.toFixed(2) + ' ut', \n 1 - (engineElapsedMean / Render._goodFps),\n function(i) { return (engineElapsedHistory[i] / engineElapsedMean) - 1; }\n );\n\n // show render time\n Render.status(\n context, x + (gap + width) * 3, y, width, graphHeight, elapsedHistory.length,\n elapsedMean.toFixed(2) + ' rt', \n 1 - (elapsedMean / Render._goodFps),\n function(i) { return (elapsedHistory[i] / elapsedMean) - 1; }\n );\n\n // show effective speed\n Render.status(\n context, x + (gap + width) * 4, y, width, graphHeight, timestampElapsedHistory.length, \n rateMean.toFixed(2) + ' x', \n rateMean * rateMean * rateMean,\n function(i) { return (((timestampElapsedHistory[i] / deltaHistory[i]) / rateMean) || 0) - 1; }\n );\n };\n\n /**\n * Renders a label, indicator and a chart.\n * @private\n * @method status\n * @param {RenderingContext} context\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {number} count\n * @param {string} label\n * @param {string} indicator\n * @param {function} plotY\n */\n Render.status = function(context, x, y, width, height, count, label, indicator, plotY) {\n // background\n context.strokeStyle = '#888';\n context.fillStyle = '#444';\n context.lineWidth = 1;\n context.fillRect(x, y + 7, width, 1);\n\n // chart\n context.beginPath();\n context.moveTo(x, y + 7 - height * Common.clamp(0.4 * plotY(0), -2, 2));\n for (var i = 0; i < width; i += 1) {\n context.lineTo(x + i, y + 7 - (i < count ? height * Common.clamp(0.4 * plotY(i), -2, 2) : 0));\n }\n context.stroke();\n\n // indicator\n context.fillStyle = 'hsl(' + Common.clamp(25 + 95 * indicator, 0, 120) + ',100%,60%)';\n context.fillRect(x, y - 7, 4, 4);\n\n // label\n context.font = '12px Arial';\n context.textBaseline = 'middle';\n context.textAlign = 'right';\n context.fillStyle = '#eee';\n context.fillText(label, x + width, y - 5);\n };\n\n /**\n * Description\n * @private\n * @method constraints\n * @param {constraint[]} constraints\n * @param {RenderingContext} context\n */\n Render.constraints = function(constraints, context) {\n var c = context;\n\n for (var i = 0; i < constraints.length; i++) {\n var constraint = constraints[i];\n\n if (!constraint.render.visible || !constraint.pointA || !constraint.pointB)\n continue;\n\n var bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n start,\n end;\n\n if (bodyA) {\n start = Vector.add(bodyA.position, constraint.pointA);\n } else {\n start = constraint.pointA;\n }\n\n if (constraint.render.type === 'pin') {\n c.beginPath();\n c.arc(start.x, start.y, 3, 0, 2 * Math.PI);\n c.closePath();\n } else {\n if (bodyB) {\n end = Vector.add(bodyB.position, constraint.pointB);\n } else {\n end = constraint.pointB;\n }\n\n c.beginPath();\n c.moveTo(start.x, start.y);\n\n if (constraint.render.type === 'spring') {\n var delta = Vector.sub(end, start),\n normal = Vector.perp(Vector.normalise(delta)),\n coils = Math.ceil(Common.clamp(constraint.length / 5, 12, 20)),\n offset;\n\n for (var j = 1; j < coils; j += 1) {\n offset = j % 2 === 0 ? 1 : -1;\n\n c.lineTo(\n start.x + delta.x * (j / coils) + normal.x * offset * 4,\n start.y + delta.y * (j / coils) + normal.y * offset * 4\n );\n }\n }\n\n c.lineTo(end.x, end.y);\n }\n\n if (constraint.render.lineWidth) {\n c.lineWidth = constraint.render.lineWidth;\n c.strokeStyle = constraint.render.strokeStyle;\n c.stroke();\n }\n\n if (constraint.render.anchors) {\n c.fillStyle = constraint.render.strokeStyle;\n c.beginPath();\n c.arc(start.x, start.y, 3, 0, 2 * Math.PI);\n c.arc(end.x, end.y, 3, 0, 2 * Math.PI);\n c.closePath();\n c.fill();\n }\n }\n };\n\n /**\n * Description\n * @private\n * @method bodies\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodies = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n showInternalEdges = options.showInternalEdges || !options.wireframes,\n body,\n part,\n i,\n k;\n\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {\n part = body.parts[k];\n\n if (!part.render.visible)\n continue;\n\n if (options.showSleeping && body.isSleeping) {\n c.globalAlpha = 0.5 * part.render.opacity;\n } else if (part.render.opacity !== 1) {\n c.globalAlpha = part.render.opacity;\n }\n\n if (part.render.sprite && part.render.sprite.texture && !options.wireframes) {\n // part sprite\n var sprite = part.render.sprite,\n texture = _getTexture(render, sprite.texture);\n\n c.translate(part.position.x, part.position.y);\n c.rotate(part.angle);\n\n c.drawImage(\n texture,\n texture.width * -sprite.xOffset * sprite.xScale,\n texture.height * -sprite.yOffset * sprite.yScale,\n texture.width * sprite.xScale,\n texture.height * sprite.yScale\n );\n\n // revert translation, hopefully faster than save / restore\n c.rotate(-part.angle);\n c.translate(-part.position.x, -part.position.y);\n } else {\n // part polygon\n if (part.circleRadius) {\n c.beginPath();\n c.arc(part.position.x, part.position.y, part.circleRadius, 0, 2 * Math.PI);\n } else {\n c.beginPath();\n c.moveTo(part.vertices[0].x, part.vertices[0].y);\n\n for (var j = 1; j < part.vertices.length; j++) {\n if (!part.vertices[j - 1].isInternal || showInternalEdges) {\n c.lineTo(part.vertices[j].x, part.vertices[j].y);\n } else {\n c.moveTo(part.vertices[j].x, part.vertices[j].y);\n }\n\n if (part.vertices[j].isInternal && !showInternalEdges) {\n c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y);\n }\n }\n\n c.lineTo(part.vertices[0].x, part.vertices[0].y);\n c.closePath();\n }\n\n if (!options.wireframes) {\n c.fillStyle = part.render.fillStyle;\n\n if (part.render.lineWidth) {\n c.lineWidth = part.render.lineWidth;\n c.strokeStyle = part.render.strokeStyle;\n c.stroke();\n }\n\n c.fill();\n } else {\n c.lineWidth = 1;\n c.strokeStyle = '#bbb';\n c.stroke();\n }\n }\n\n c.globalAlpha = 1;\n }\n }\n };\n\n /**\n * Optimised method for drawing body wireframes in one pass\n * @private\n * @method bodyWireframes\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyWireframes = function(render, bodies, context) {\n var c = context,\n showInternalEdges = render.options.showInternalEdges,\n body,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n // render all bodies\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {\n part = body.parts[k];\n\n c.moveTo(part.vertices[0].x, part.vertices[0].y);\n\n for (j = 1; j < part.vertices.length; j++) {\n if (!part.vertices[j - 1].isInternal || showInternalEdges) {\n c.lineTo(part.vertices[j].x, part.vertices[j].y);\n } else {\n c.moveTo(part.vertices[j].x, part.vertices[j].y);\n }\n\n if (part.vertices[j].isInternal && !showInternalEdges) {\n c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y);\n }\n }\n\n c.lineTo(part.vertices[0].x, part.vertices[0].y);\n }\n }\n\n c.lineWidth = 1;\n c.strokeStyle = '#bbb';\n c.stroke();\n };\n\n /**\n * Optimised method for drawing body convex hull wireframes in one pass\n * @private\n * @method bodyConvexHulls\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyConvexHulls = function(render, bodies, context) {\n var c = context,\n body,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n // render convex hulls\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible || body.parts.length === 1)\n continue;\n\n c.moveTo(body.vertices[0].x, body.vertices[0].y);\n\n for (j = 1; j < body.vertices.length; j++) {\n c.lineTo(body.vertices[j].x, body.vertices[j].y);\n }\n\n c.lineTo(body.vertices[0].x, body.vertices[0].y);\n }\n\n c.lineWidth = 1;\n c.strokeStyle = 'rgba(255,255,255,0.2)';\n c.stroke();\n };\n\n /**\n * Renders body vertex numbers.\n * @private\n * @method vertexNumbers\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.vertexNumbers = function(render, bodies, context) {\n var c = context,\n i,\n j,\n k;\n\n for (i = 0; i < bodies.length; i++) {\n var parts = bodies[i].parts;\n for (k = parts.length > 1 ? 1 : 0; k < parts.length; k++) {\n var part = parts[k];\n for (j = 0; j < part.vertices.length; j++) {\n c.fillStyle = 'rgba(255,255,255,0.2)';\n c.fillText(i + '_' + j, part.position.x + (part.vertices[j].x - part.position.x) * 0.8, part.position.y + (part.vertices[j].y - part.position.y) * 0.8);\n }\n }\n }\n };\n\n /**\n * Renders mouse position.\n * @private\n * @method mousePosition\n * @param {render} render\n * @param {mouse} mouse\n * @param {RenderingContext} context\n */\n Render.mousePosition = function(render, mouse, context) {\n var c = context;\n c.fillStyle = 'rgba(255,255,255,0.8)';\n c.fillText(mouse.position.x + ' ' + mouse.position.y, mouse.position.x + 5, mouse.position.y - 5);\n };\n\n /**\n * Draws body bounds\n * @private\n * @method bodyBounds\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyBounds = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options;\n\n c.beginPath();\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (body.render.visible) {\n var parts = bodies[i].parts;\n for (var j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n var part = parts[j];\n c.rect(part.bounds.min.x, part.bounds.min.y, part.bounds.max.x - part.bounds.min.x, part.bounds.max.y - part.bounds.min.y);\n }\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,255,255,0.08)';\n } else {\n c.strokeStyle = 'rgba(0,0,0,0.1)';\n }\n\n c.lineWidth = 1;\n c.stroke();\n };\n\n /**\n * Draws body angle indicators and axes\n * @private\n * @method bodyAxes\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyAxes = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n for (i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n parts = body.parts;\n\n if (!body.render.visible)\n continue;\n\n if (options.showAxes) {\n // render all axes\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n part = parts[j];\n for (k = 0; k < part.axes.length; k++) {\n var axis = part.axes[k];\n c.moveTo(part.position.x, part.position.y);\n c.lineTo(part.position.x + axis.x * 20, part.position.y + axis.y * 20);\n }\n }\n } else {\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n part = parts[j];\n for (k = 0; k < part.axes.length; k++) {\n // render a single axis indicator\n c.moveTo(part.position.x, part.position.y);\n c.lineTo((part.vertices[0].x + part.vertices[part.vertices.length-1].x) / 2,\n (part.vertices[0].y + part.vertices[part.vertices.length-1].y) / 2);\n }\n }\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'indianred';\n c.lineWidth = 1;\n } else {\n c.strokeStyle = 'rgba(255, 255, 255, 0.4)';\n c.globalCompositeOperation = 'overlay';\n c.lineWidth = 2;\n }\n\n c.stroke();\n c.globalCompositeOperation = 'source-over';\n };\n\n /**\n * Draws body positions\n * @private\n * @method bodyPositions\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyPositions = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n body,\n part,\n i,\n k;\n\n c.beginPath();\n\n // render current positions\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = 0; k < body.parts.length; k++) {\n part = body.parts[k];\n c.arc(part.position.x, part.position.y, 3, 0, 2 * Math.PI, false);\n c.closePath();\n }\n }\n\n if (options.wireframes) {\n c.fillStyle = 'indianred';\n } else {\n c.fillStyle = 'rgba(0,0,0,0.5)';\n }\n c.fill();\n\n c.beginPath();\n\n // render previous positions\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n if (body.render.visible) {\n c.arc(body.positionPrev.x, body.positionPrev.y, 2, 0, 2 * Math.PI, false);\n c.closePath();\n }\n }\n\n c.fillStyle = 'rgba(255,165,0,0.8)';\n c.fill();\n };\n\n /**\n * Draws body velocity\n * @private\n * @method bodyVelocity\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyVelocity = function(render, bodies, context) {\n var c = context;\n\n c.beginPath();\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n var velocity = Body.getVelocity(body);\n\n c.moveTo(body.position.x, body.position.y);\n c.lineTo(body.position.x + velocity.x, body.position.y + velocity.y);\n }\n\n c.lineWidth = 3;\n c.strokeStyle = 'cornflowerblue';\n c.stroke();\n };\n\n /**\n * Draws body ids\n * @private\n * @method bodyIds\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyIds = function(render, bodies, context) {\n var c = context,\n i,\n j;\n\n for (i = 0; i < bodies.length; i++) {\n if (!bodies[i].render.visible)\n continue;\n\n var parts = bodies[i].parts;\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n var part = parts[j];\n c.font = \"12px Arial\";\n c.fillStyle = 'rgba(255,255,255,0.5)';\n c.fillText(part.id, part.position.x + 10, part.position.y - 10);\n }\n }\n };\n\n /**\n * Description\n * @private\n * @method collisions\n * @param {render} render\n * @param {pair[]} pairs\n * @param {RenderingContext} context\n */\n Render.collisions = function(render, pairs, context) {\n var c = context,\n options = render.options,\n pair,\n collision,\n corrected,\n bodyA,\n bodyB,\n i,\n j;\n\n c.beginPath();\n\n // render collision positions\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n for (j = 0; j < pair.activeContacts.length; j++) {\n var contact = pair.activeContacts[j],\n vertex = contact.vertex;\n c.rect(vertex.x - 1.5, vertex.y - 1.5, 3.5, 3.5);\n }\n }\n\n if (options.wireframes) {\n c.fillStyle = 'rgba(255,255,255,0.7)';\n } else {\n c.fillStyle = 'orange';\n }\n c.fill();\n\n c.beginPath();\n\n // render collision normals\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n\n if (pair.activeContacts.length > 0) {\n var normalPosX = pair.activeContacts[0].vertex.x,\n normalPosY = pair.activeContacts[0].vertex.y;\n\n if (pair.activeContacts.length === 2) {\n normalPosX = (pair.activeContacts[0].vertex.x + pair.activeContacts[1].vertex.x) / 2;\n normalPosY = (pair.activeContacts[0].vertex.y + pair.activeContacts[1].vertex.y) / 2;\n }\n\n if (collision.bodyB === collision.supports[0].body || collision.bodyA.isStatic === true) {\n c.moveTo(normalPosX - collision.normal.x * 8, normalPosY - collision.normal.y * 8);\n } else {\n c.moveTo(normalPosX + collision.normal.x * 8, normalPosY + collision.normal.y * 8);\n }\n\n c.lineTo(normalPosX, normalPosY);\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,165,0,0.7)';\n } else {\n c.strokeStyle = 'orange';\n }\n\n c.lineWidth = 1;\n c.stroke();\n };\n\n /**\n * Description\n * @private\n * @method separations\n * @param {render} render\n * @param {pair[]} pairs\n * @param {RenderingContext} context\n */\n Render.separations = function(render, pairs, context) {\n var c = context,\n options = render.options,\n pair,\n collision,\n corrected,\n bodyA,\n bodyB,\n i,\n j;\n\n c.beginPath();\n\n // render separations\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n bodyA = collision.bodyA;\n bodyB = collision.bodyB;\n\n var k = 1;\n\n if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5;\n if (bodyB.isStatic) k = 0;\n\n c.moveTo(bodyB.position.x, bodyB.position.y);\n c.lineTo(bodyB.position.x - collision.penetration.x * k, bodyB.position.y - collision.penetration.y * k);\n\n k = 1;\n\n if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5;\n if (bodyA.isStatic) k = 0;\n\n c.moveTo(bodyA.position.x, bodyA.position.y);\n c.lineTo(bodyA.position.x + collision.penetration.x * k, bodyA.position.y + collision.penetration.y * k);\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,165,0,0.5)';\n } else {\n c.strokeStyle = 'orange';\n }\n c.stroke();\n };\n\n /**\n * Description\n * @private\n * @method inspector\n * @param {inspector} inspector\n * @param {RenderingContext} context\n */\n Render.inspector = function(inspector, context) {\n var engine = inspector.engine,\n selected = inspector.selected,\n render = inspector.render,\n options = render.options,\n bounds;\n\n if (options.hasBounds) {\n var boundsWidth = render.bounds.max.x - render.bounds.min.x,\n boundsHeight = render.bounds.max.y - render.bounds.min.y,\n boundsScaleX = boundsWidth / render.options.width,\n boundsScaleY = boundsHeight / render.options.height;\n\n context.scale(1 / boundsScaleX, 1 / boundsScaleY);\n context.translate(-render.bounds.min.x, -render.bounds.min.y);\n }\n\n for (var i = 0; i < selected.length; i++) {\n var item = selected[i].data;\n\n context.translate(0.5, 0.5);\n context.lineWidth = 1;\n context.strokeStyle = 'rgba(255,165,0,0.9)';\n context.setLineDash([1,2]);\n\n switch (item.type) {\n\n case 'body':\n\n // render body selections\n bounds = item.bounds;\n context.beginPath();\n context.rect(Math.floor(bounds.min.x - 3), Math.floor(bounds.min.y - 3),\n Math.floor(bounds.max.x - bounds.min.x + 6), Math.floor(bounds.max.y - bounds.min.y + 6));\n context.closePath();\n context.stroke();\n\n break;\n\n case 'constraint':\n\n // render constraint selections\n var point = item.pointA;\n if (item.bodyA)\n point = item.pointB;\n context.beginPath();\n context.arc(point.x, point.y, 10, 0, 2 * Math.PI);\n context.closePath();\n context.stroke();\n\n break;\n\n }\n\n context.setLineDash([]);\n context.translate(-0.5, -0.5);\n }\n\n // render selection region\n if (inspector.selectStart !== null) {\n context.translate(0.5, 0.5);\n context.lineWidth = 1;\n context.strokeStyle = 'rgba(255,165,0,0.6)';\n context.fillStyle = 'rgba(255,165,0,0.1)';\n bounds = inspector.selectBounds;\n context.beginPath();\n context.rect(Math.floor(bounds.min.x), Math.floor(bounds.min.y),\n Math.floor(bounds.max.x - bounds.min.x), Math.floor(bounds.max.y - bounds.min.y));\n context.closePath();\n context.stroke();\n context.fill();\n context.translate(-0.5, -0.5);\n }\n\n if (options.hasBounds)\n context.setTransform(1, 0, 0, 1, 0, 0);\n };\n\n /**\n * Updates render timing.\n * @method _updateTiming\n * @private\n * @param {render} render\n * @param {number} time\n */\n var _updateTiming = function(render, time) {\n var engine = render.engine,\n timing = render.timing,\n historySize = timing.historySize,\n timestamp = engine.timing.timestamp;\n\n timing.delta = time - timing.lastTime || Render._goodDelta;\n timing.lastTime = time;\n\n timing.timestampElapsed = timestamp - timing.lastTimestamp || 0;\n timing.lastTimestamp = timestamp;\n\n timing.deltaHistory.unshift(timing.delta);\n timing.deltaHistory.length = Math.min(timing.deltaHistory.length, historySize);\n\n timing.engineDeltaHistory.unshift(engine.timing.lastDelta);\n timing.engineDeltaHistory.length = Math.min(timing.engineDeltaHistory.length, historySize);\n\n timing.timestampElapsedHistory.unshift(timing.timestampElapsed);\n timing.timestampElapsedHistory.length = Math.min(timing.timestampElapsedHistory.length, historySize);\n\n timing.engineElapsedHistory.unshift(engine.timing.lastElapsed);\n timing.engineElapsedHistory.length = Math.min(timing.engineElapsedHistory.length, historySize);\n\n timing.elapsedHistory.unshift(timing.lastElapsed);\n timing.elapsedHistory.length = Math.min(timing.elapsedHistory.length, historySize);\n };\n\n /**\n * Returns the mean value of the given numbers.\n * @method _mean\n * @private\n * @param {Number[]} values\n * @return {Number} the mean of given values\n */\n var _mean = function(values) {\n var result = 0;\n for (var i = 0; i < values.length; i += 1) {\n result += values[i];\n }\n return (result / values.length) || 0;\n };\n\n /**\n * @method _createCanvas\n * @private\n * @param {} width\n * @param {} height\n * @return canvas\n */\n var _createCanvas = function(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n canvas.oncontextmenu = function() { return false; };\n canvas.onselectstart = function() { return false; };\n return canvas;\n };\n\n /**\n * Gets the pixel ratio of the canvas.\n * @method _getPixelRatio\n * @private\n * @param {HTMLElement} canvas\n * @return {Number} pixel ratio\n */\n var _getPixelRatio = function(canvas) {\n var context = canvas.getContext('2d'),\n devicePixelRatio = window.devicePixelRatio || 1,\n backingStorePixelRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio\n || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio\n || context.backingStorePixelRatio || 1;\n\n return devicePixelRatio / backingStorePixelRatio;\n };\n\n /**\n * Gets the requested texture (an Image) via its path\n * @method _getTexture\n * @private\n * @param {render} render\n * @param {string} imagePath\n * @return {Image} texture\n */\n var _getTexture = function(render, imagePath) {\n var image = render.textures[imagePath];\n\n if (image)\n return image;\n\n image = render.textures[imagePath] = new Image();\n image.src = imagePath;\n\n return image;\n };\n\n /**\n * Applies the background to the canvas using CSS.\n * @method applyBackground\n * @private\n * @param {render} render\n * @param {string} background\n */\n var _applyBackground = function(render, background) {\n var cssBackground = background;\n\n if (/(jpg|gif|png)$/.test(background))\n cssBackground = 'url(' + background + ')';\n\n render.canvas.style.background = cssBackground;\n render.canvas.style.backgroundSize = \"contain\";\n render.currentBackground = background;\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired before rendering\n *\n * @event beforeRender\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after rendering\n *\n * @event afterRender\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A back-reference to the `Matter.Render` module.\n *\n * @deprecated\n * @property controller\n * @type render\n */\n\n /**\n * A reference to the `Matter.Engine` instance to be used.\n *\n * @property engine\n * @type engine\n */\n\n /**\n * A reference to the element where the canvas is to be inserted (if `render.canvas` has not been specified)\n *\n * @property element\n * @type HTMLElement\n * @default null\n */\n\n /**\n * The canvas element to render to. If not specified, one will be created if `render.element` has been specified.\n *\n * @property canvas\n * @type HTMLCanvasElement\n * @default null\n */\n\n /**\n * A `Bounds` object that specifies the drawing view region.\n * Rendering will be automatically transformed and scaled to fit within the canvas size (`render.options.width` and `render.options.height`).\n * This allows for creating views that can pan or zoom around the scene.\n * You must also set `render.options.hasBounds` to `true` to enable bounded rendering.\n *\n * @property bounds\n * @type bounds\n */\n\n /**\n * The 2d rendering context from the `render.canvas` element.\n *\n * @property context\n * @type CanvasRenderingContext2D\n */\n\n /**\n * The sprite texture cache.\n *\n * @property textures\n * @type {}\n */\n\n /**\n * The mouse to render if `render.options.showMousePosition` is enabled.\n *\n * @property mouse\n * @type mouse\n * @default null\n */\n\n /**\n * The configuration options of the renderer.\n *\n * @property options\n * @type {}\n */\n\n /**\n * The target width in pixels of the `render.canvas` to be created.\n * See also the `options.pixelRatio` property to change render quality.\n *\n * @property options.width\n * @type number\n * @default 800\n */\n\n /**\n * The target height in pixels of the `render.canvas` to be created.\n * See also the `options.pixelRatio` property to change render quality.\n *\n * @property options.height\n * @type number\n * @default 600\n */\n\n /**\n * The [pixel ratio](https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio) to use when rendering.\n *\n * @property options.pixelRatio\n * @type number\n * @default 1\n */\n\n /**\n * A CSS background color string to use when `render.options.wireframes` is disabled.\n * This may be also set to `'transparent'` or equivalent.\n *\n * @property options.background\n * @type string\n * @default '#14151f'\n */\n\n /**\n * A CSS background color string to use when `render.options.wireframes` is enabled.\n * This may be also set to `'transparent'` or equivalent.\n *\n * @property options.wireframeBackground\n * @type string\n * @default '#14151f'\n */\n\n /**\n * A flag that specifies if `render.bounds` should be used when rendering.\n *\n * @property options.hasBounds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable all debug information overlays together. \n * This includes and has priority over the values of:\n *\n * - `render.options.showStats`\n * - `render.options.showPerformance`\n *\n * @property options.showDebug\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the engine stats info overlay. \n * From left to right, the values shown are:\n *\n * - body parts total\n * - body total\n * - constraints total\n * - composites total\n * - collision pairs total\n *\n * @property options.showStats\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable performance charts. \n * From left to right, the values shown are:\n *\n * - average render frequency (e.g. 60 fps)\n * - exact engine delta time used for last update (e.g. 16.66ms)\n * - average engine execution duration (e.g. 5.00ms)\n * - average render execution duration (e.g. 0.40ms)\n * - average effective play speed (e.g. '1.00x' is 'real-time')\n *\n * Each value is recorded over a fixed sample of past frames (60 frames).\n *\n * A chart shown below each value indicates the variance from the average over the sample.\n * The more stable or fixed the value is the flatter the chart will appear.\n *\n * @property options.showPerformance\n * @type boolean\n * @default false\n */\n \n /**\n * A flag to enable or disable rendering entirely.\n *\n * @property options.enabled\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to toggle wireframe rendering otherwise solid fill rendering is used.\n *\n * @property options.wireframes\n * @type boolean\n * @default true\n */\n\n /**\n * A flag to enable or disable sleeping bodies indicators.\n *\n * @property options.showSleeping\n * @type boolean\n * @default true\n */\n\n /**\n * A flag to enable or disable the debug information overlay.\n *\n * @property options.showDebug\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the collision broadphase debug overlay.\n *\n * @deprecated no longer implemented\n * @property options.showBroadphase\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body bounds debug overlay.\n *\n * @property options.showBounds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body velocity debug overlay.\n *\n * @property options.showVelocity\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body collisions debug overlay.\n *\n * @property options.showCollisions\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the collision resolver separations debug overlay.\n *\n * @property options.showSeparations\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body axes debug overlay.\n *\n * @property options.showAxes\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body positions debug overlay.\n *\n * @property options.showPositions\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body angle debug overlay.\n *\n * @property options.showAngleIndicator\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body and part ids debug overlay.\n *\n * @property options.showIds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body vertex numbers debug overlay.\n *\n * @property options.showVertexNumbers\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body convex hulls debug overlay.\n *\n * @property options.showConvexHulls\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body internal edges debug overlay.\n *\n * @property options.showInternalEdges\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the mouse position debug overlay.\n *\n * @property options.showMousePosition\n * @type boolean\n * @default false\n */\n\n})();\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Runner` module is an optional utility which provides a game loop, \n* that handles continuously updating a `Matter.Engine` for you within a browser.\n* It is intended for development and debugging purposes, but may also be suitable for simple games.\n* If you are using your own game loop instead, then you do not need the `Matter.Runner` module.\n* Instead just call `Engine.update(engine, delta)` in your own loop.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Runner\n*/\n\nvar Runner = {};\n\nmodule.exports = Runner;\n\nvar Events = __webpack_require__(5);\nvar Engine = __webpack_require__(17);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n var _requestAnimationFrame,\n _cancelAnimationFrame;\n\n if (typeof window !== 'undefined') {\n _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame\n || window.mozRequestAnimationFrame || window.msRequestAnimationFrame;\n \n _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame \n || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;\n }\n\n if (!_requestAnimationFrame) {\n var _frameTimeout;\n\n _requestAnimationFrame = function(callback){ \n _frameTimeout = setTimeout(function() { \n callback(Common.now()); \n }, 1000 / 60);\n };\n\n _cancelAnimationFrame = function() {\n clearTimeout(_frameTimeout);\n };\n }\n\n /**\n * Creates a new Runner. The options parameter is an object that specifies any properties you wish to override the defaults.\n * @method create\n * @param {} options\n */\n Runner.create = function(options) {\n var defaults = {\n fps: 60,\n deltaSampleSize: 60,\n counterTimestamp: 0,\n frameCounter: 0,\n deltaHistory: [],\n timePrev: null,\n frameRequestId: null,\n isFixed: false,\n enabled: true\n };\n\n var runner = Common.extend(defaults, options);\n\n runner.delta = runner.delta || 1000 / runner.fps;\n runner.deltaMin = runner.deltaMin || 1000 / runner.fps;\n runner.deltaMax = runner.deltaMax || 1000 / (runner.fps * 0.5);\n runner.fps = 1000 / runner.delta;\n\n return runner;\n };\n\n /**\n * Continuously ticks a `Matter.Engine` by calling `Runner.tick` on the `requestAnimationFrame` event.\n * @method run\n * @param {engine} engine\n */\n Runner.run = function(runner, engine) {\n // create runner if engine is first argument\n if (typeof runner.positionIterations !== 'undefined') {\n engine = runner;\n runner = Runner.create();\n }\n\n (function run(time){\n runner.frameRequestId = _requestAnimationFrame(run);\n\n if (time && runner.enabled) {\n Runner.tick(runner, engine, time);\n }\n })();\n\n return runner;\n };\n\n /**\n * A game loop utility that updates the engine and renderer by one step (a 'tick').\n * Features delta smoothing, time correction and fixed or dynamic timing.\n * Consider just `Engine.update(engine, delta)` if you're using your own loop.\n * @method tick\n * @param {runner} runner\n * @param {engine} engine\n * @param {number} time\n */\n Runner.tick = function(runner, engine, time) {\n var timing = engine.timing,\n delta;\n\n if (runner.isFixed) {\n // fixed timestep\n delta = runner.delta;\n } else {\n // dynamic timestep based on wall clock between calls\n delta = (time - runner.timePrev) || runner.delta;\n runner.timePrev = time;\n\n // optimistically filter delta over a few frames, to improve stability\n runner.deltaHistory.push(delta);\n runner.deltaHistory = runner.deltaHistory.slice(-runner.deltaSampleSize);\n delta = Math.min.apply(null, runner.deltaHistory);\n\n // limit delta\n delta = delta < runner.deltaMin ? runner.deltaMin : delta;\n delta = delta > runner.deltaMax ? runner.deltaMax : delta;\n\n // update engine timing object\n runner.delta = delta;\n }\n\n // create an event object\n var event = {\n timestamp: timing.timestamp\n };\n\n Events.trigger(runner, 'beforeTick', event);\n\n // fps counter\n runner.frameCounter += 1;\n if (time - runner.counterTimestamp >= 1000) {\n runner.fps = runner.frameCounter * ((time - runner.counterTimestamp) / 1000);\n runner.counterTimestamp = time;\n runner.frameCounter = 0;\n }\n\n Events.trigger(runner, 'tick', event);\n\n // update\n Events.trigger(runner, 'beforeUpdate', event);\n\n Engine.update(engine, delta);\n\n Events.trigger(runner, 'afterUpdate', event);\n\n Events.trigger(runner, 'afterTick', event);\n };\n\n /**\n * Ends execution of `Runner.run` on the given `runner`, by canceling the animation frame request event loop.\n * If you wish to only temporarily pause the engine, see `engine.enabled` instead.\n * @method stop\n * @param {runner} runner\n */\n Runner.stop = function(runner) {\n _cancelAnimationFrame(runner.frameRequestId);\n };\n\n /**\n * Alias for `Runner.run`.\n * @method start\n * @param {runner} runner\n * @param {engine} engine\n */\n Runner.start = function(runner, engine) {\n Runner.run(runner, engine);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired at the start of a tick, before any updates to the engine or timing\n *\n * @event beforeTick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after engine timing updated, but just before update\n *\n * @event tick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired at the end of a tick, after engine update and after rendering\n *\n * @event afterTick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired before update\n *\n * @event beforeUpdate\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after update\n *\n * @event afterUpdate\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A flag that specifies whether the runner is running or not.\n *\n * @property enabled\n * @type boolean\n * @default true\n */\n\n /**\n * A `Boolean` that specifies if the runner should use a fixed timestep (otherwise it is variable).\n * If timing is fixed, then the apparent simulation speed will change depending on the frame rate (but behaviour will be deterministic).\n * If the timing is variable, then the apparent simulation speed will be constant (approximately, but at the cost of determininism).\n *\n * @property isFixed\n * @type boolean\n * @default false\n */\n\n /**\n * A `Number` that specifies the time step between updates in milliseconds.\n * If `engine.timing.isFixed` is set to `true`, then `delta` is fixed.\n * If it is `false`, then `delta` can dynamically change to maintain the correct apparent simulation speed.\n *\n * @property delta\n * @type number\n * @default 1000 / 60\n */\n\n})();\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Collision`.\n*\n* All usage should be migrated to `Matter.Collision`.\n* For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n*\n* The `Matter.SAT` module contains methods for detecting collisions using the Separating Axis Theorem.\n*\n* @class SAT\n* @deprecated\n*/\n\nvar SAT = {};\n\nmodule.exports = SAT;\n\nvar Collision = __webpack_require__(8);\nvar Common = __webpack_require__(0);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Detect collision between two bodies using the Separating Axis Theorem.\n * @deprecated replaced by Collision.collides\n * @method collides\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {collision} collision\n */\n SAT.collides = function(bodyA, bodyB) {\n return Collision.collides(bodyA, bodyB);\n };\n\n deprecated(SAT, 'collides', 'SAT.collides ➤ replaced by Collision.collides');\n\n})();\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Svg` module contains methods for converting SVG images into an array of vector points.\n*\n* To use this module you also need the SVGPathSeg polyfill: https://github.com/progers/pathseg\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Svg\n*/\n\nvar Svg = {};\n\nmodule.exports = Svg;\n\nvar Bounds = __webpack_require__(1);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Converts an SVG path into an array of vector points.\n * If the input path forms a concave shape, you must decompose the result into convex parts before use.\n * See `Bodies.fromVertices` which provides support for this.\n * Note that this function is not guaranteed to support complex paths (such as those with holes).\n * You must load the `pathseg.js` polyfill on newer browsers.\n * @method pathToVertices\n * @param {SVGPathElement} path\n * @param {Number} [sampleLength=15]\n * @return {Vector[]} points\n */\n Svg.pathToVertices = function(path, sampleLength) {\n if (typeof window !== 'undefined' && !('SVGPathSeg' in window)) {\n Common.warn('Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.');\n }\n\n // https://github.com/wout/svg.topoly.js/blob/master/svg.topoly.js\n var i, il, total, point, segment, segments, \n segmentsQueue, lastSegment, \n lastPoint, segmentIndex, points = [],\n lx, ly, length = 0, x = 0, y = 0;\n\n sampleLength = sampleLength || 15;\n\n var addPoint = function(px, py, pathSegType) {\n // all odd-numbered path types are relative except PATHSEG_CLOSEPATH (1)\n var isRelative = pathSegType % 2 === 1 && pathSegType > 1;\n\n // when the last point doesn't equal the current point add the current point\n if (!lastPoint || px != lastPoint.x || py != lastPoint.y) {\n if (lastPoint && isRelative) {\n lx = lastPoint.x;\n ly = lastPoint.y;\n } else {\n lx = 0;\n ly = 0;\n }\n\n var point = {\n x: lx + px,\n y: ly + py\n };\n\n // set last point\n if (isRelative || !lastPoint) {\n lastPoint = point;\n }\n\n points.push(point);\n\n x = lx + px;\n y = ly + py;\n }\n };\n\n var addSegmentPoint = function(segment) {\n var segType = segment.pathSegTypeAsLetter.toUpperCase();\n\n // skip path ends\n if (segType === 'Z') \n return;\n\n // map segment to x and y\n switch (segType) {\n\n case 'M':\n case 'L':\n case 'T':\n case 'C':\n case 'S':\n case 'Q':\n x = segment.x;\n y = segment.y;\n break;\n case 'H':\n x = segment.x;\n break;\n case 'V':\n y = segment.y;\n break;\n }\n\n addPoint(x, y, segment.pathSegType);\n };\n\n // ensure path is absolute\n Svg._svgPathToAbsolute(path);\n\n // get total length\n total = path.getTotalLength();\n\n // queue segments\n segments = [];\n for (i = 0; i < path.pathSegList.numberOfItems; i += 1)\n segments.push(path.pathSegList.getItem(i));\n\n segmentsQueue = segments.concat();\n\n // sample through path\n while (length < total) {\n // get segment at position\n segmentIndex = path.getPathSegAtLength(length);\n segment = segments[segmentIndex];\n\n // new segment\n if (segment != lastSegment) {\n while (segmentsQueue.length && segmentsQueue[0] != segment)\n addSegmentPoint(segmentsQueue.shift());\n\n lastSegment = segment;\n }\n\n // add points in between when curving\n // TODO: adaptive sampling\n switch (segment.pathSegTypeAsLetter.toUpperCase()) {\n\n case 'C':\n case 'T':\n case 'S':\n case 'Q':\n case 'A':\n point = path.getPointAtLength(length);\n addPoint(point.x, point.y, 0);\n break;\n\n }\n\n // increment by sample value\n length += sampleLength;\n }\n\n // add remaining segments not passed by sampling\n for (i = 0, il = segmentsQueue.length; i < il; ++i)\n addSegmentPoint(segmentsQueue[i]);\n\n return points;\n };\n\n Svg._svgPathToAbsolute = function(path) {\n // http://phrogz.net/convert-svg-path-to-all-absolute-commands\n // Copyright (c) Gavin Kistner\n // http://phrogz.net/js/_ReuseLicense.txt\n // Modifications: tidy formatting and naming\n var x0, y0, x1, y1, x2, y2, segs = path.pathSegList,\n x = 0, y = 0, len = segs.numberOfItems;\n\n for (var i = 0; i < len; ++i) {\n var seg = segs.getItem(i),\n segType = seg.pathSegTypeAsLetter;\n\n if (/[MLHVCSQTA]/.test(segType)) {\n if ('x' in seg) x = seg.x;\n if ('y' in seg) y = seg.y;\n } else {\n if ('x1' in seg) x1 = x + seg.x1;\n if ('x2' in seg) x2 = x + seg.x2;\n if ('y1' in seg) y1 = y + seg.y1;\n if ('y2' in seg) y2 = y + seg.y2;\n if ('x' in seg) x += seg.x;\n if ('y' in seg) y += seg.y;\n\n switch (segType) {\n\n case 'm':\n segs.replaceItem(path.createSVGPathSegMovetoAbs(x, y), i);\n break;\n case 'l':\n segs.replaceItem(path.createSVGPathSegLinetoAbs(x, y), i);\n break;\n case 'h':\n segs.replaceItem(path.createSVGPathSegLinetoHorizontalAbs(x), i);\n break;\n case 'v':\n segs.replaceItem(path.createSVGPathSegLinetoVerticalAbs(y), i);\n break;\n case 'c':\n segs.replaceItem(path.createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2), i);\n break;\n case 's':\n segs.replaceItem(path.createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2), i);\n break;\n case 'q':\n segs.replaceItem(path.createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1), i);\n break;\n case 't':\n segs.replaceItem(path.createSVGPathSegCurvetoQuadraticSmoothAbs(x, y), i);\n break;\n case 'a':\n segs.replaceItem(path.createSVGPathSegArcAbs(x, y, seg.r1, seg.r2, seg.angle, seg.largeArcFlag, seg.sweepFlag), i);\n break;\n case 'z':\n case 'Z':\n x = x0;\n y = y0;\n break;\n\n }\n }\n\n if (segType == 'M' || segType == 'm') {\n x0 = x;\n y0 = y;\n }\n }\n };\n\n})();\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Composite`.\n*\n* All usage should be migrated to the equivalent functions found on `Matter.Composite`.\n* For example `World.add(world, body)` now becomes `Composite.add(world, body)`.\n*\n* The property `world.gravity` has been moved to `engine.gravity`.\n*\n* For back-compatibility purposes this module will remain as a direct alias to `Matter.Composite` in the short term during migration.\n* Eventually this alias module will be marked as deprecated and then later removed in a future release.\n*\n* @class World\n*/\n\nvar World = {};\n\nmodule.exports = World;\n\nvar Composite = __webpack_require__(6);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * See above, aliases for back compatibility only\n */\n World.create = Composite.create;\n World.add = Composite.add;\n World.remove = Composite.remove;\n World.clear = Composite.clear;\n World.addComposite = Composite.addComposite;\n World.addBody = Composite.addBody;\n World.addConstraint = Composite.addConstraint;\n\n})();\n\n\n/***/ })\n/******/ ]);\n});","export default \"data:image/png;base64,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\"","export default \"__VITE_ASSET__CPFU07EA__\"","export default \"__VITE_ASSET__DqiIF01J__\"","export default \"__VITE_ASSET__BOvaN_Iw__\"","export default \"__VITE_ASSET__Dk8IVEH0__\"","export default \"__VITE_ASSET__C8JjYMqj__\"","export default \"__VITE_ASSET__CnCLtfhY__\"","export default \"__VITE_ASSET__Uej79w95__\"","export default \"__VITE_ASSET__D3o19kcX__\"","export default \"__VITE_ASSET__DTYQsqWc__\"","import b1 from '../../assets/block/1.png'\nimport b2 from '../../assets/block/2.png'\nimport b3 from '../../assets/block/3.png'\nimport b4 from '../../assets/block/4.png'\nimport b5 from '../../assets/block/5.png'\nimport b6 from '../../assets/block/6.png'\nimport b7 from '../../assets/block/7.png'\nimport b8 from '../../assets/block/8.png'\nimport b9 from '../../assets/block/9.png'\nimport b10 from '../../assets/block/10.png'\n\ntype Block = {\n size: number;\n color: string;\n score: number;\n};\n\nconst lineColor = '#1E1E1E'\n\nconst blocks: { [key: number]: Block } = {\n 1: {size: 30, color: '#94E9F6', score: 2},\n 2: {size: 40, color: '#97FFC6', score: 4},\n 3: {size: 55, color: '#FFB7E7', score: 6},\n 4: {size: 70, color: '#FFC8B7', score: 8},\n 5: {size: 90, color: '#FFDB98', score: 16},\n 6: {size: 110, color: '#60C7FF', score: 32},\n 7: {size: 125, color: '#43F091', score: 64},\n 8: {size: 140, color: '#FF8FDA', score: 128},\n 9: {size: 150, color: '#FF9A7A', score: 256},\n 10: {size: 160, color: '#FFC964', score: 512},\n}\n\n// const blocks: { [key: number]: Block } = {\n// 1: { size: 26, color: '#FFB7E7', score: 2},\n// 2: { size: 40, color: '#FFC8B7', score: 4},\n// 3: { size: 54, color: '#FFDB98', score: 6},\n// 4: { size: 90, color: '#97FFC6', score: 8},\n// 5: { size: 100, color: '#94E9F6', score: 16},\n// 6: { size: 120, color: '#FF8FDA', score: 32},\n// 7: { size: 140, color: '#FF9A7A', score: 64},\n// 8: { size: 160, color: '#FFC964', score: 128},\n// 9: { size: 160, color: '#43F091', score: 256},\n// 10: { size: 200, color: '#60C7FF', score: 512},\n// };\n\nexport {lineColor, blocks}\n\nexport const Background: { [key: number]: string } = {\n 1: b1,\n 2: b2,\n 3: b3,\n 4: b4,\n 5: b5,\n 6: b6,\n 7: b7,\n 8: b8,\n 9: b9,\n 10: b10\n}\n","import {Bodies} from 'matter-js'\nimport {Background, blocks, lineColor} from '../pages/play/setting.ts'\n\nexport const createBlock = (index: number, x: number, y: number, ratio: number, isStatic: boolean = false) => {\n const block = blocks[index]\n const background = Background[index]\n const circle = Bodies.circle(x, y, block.size * ratio / 2, {\n isStatic,\n label: String(index),\n render: {\n fillStyle: block.color,\n lineWidth: 8,\n strokeStyle: lineColor,\n sprite: {\n texture: background,\n xScale: 1 / 3 * ratio,\n yScale: 1 / 3 * ratio,\n }\n }\n })\n return circle\n}\n","/*\n * @param count 몇 번째 블럭인지\n */\nexport const getBlockIndex = (count: number) => {\n // const _count = count > 6 ? 6 : count\n console.log(count)\n // return Math.floor(Math.random() * (_count - 1)) + 1 // 1 ~ count\n return 9\n}\n","const RATIO = 560 / 360\n\nexport const getDynamicCanvasHeight = (width: number) => {\n return width * RATIO\n}\n","import {Bodies, Composite, World} from 'matter-js'\n\nexport const setField = (world: World, width: number, height: number) => {\n const bottom = Bodies.rectangle(width / 2, height, width, 30, {\n isStatic: true,\n restitution: 1,\n render: {fillStyle: '#81685A'}\n })\n const left = Bodies.rectangle(0, height / 2, 1, height, {\n isStatic: true,\n render: {fillStyle: '#FFFFFF'}\n })\n const right = Bodies.rectangle(width, height / 2, 1, height, {\n isStatic: true,\n render: {fillStyle: '#FFFFFF'}\n })\n const line = Bodies.rectangle(width / 2, 120, width, 2, {\n isStatic: true,\n isSensor: true,\n label: 'line',\n render: {fillStyle: '#FF6C6C'}\n })\n Composite.add(world, [line, bottom, left, right])\n}\n","import {ref} from 'vue'\n\nexport const useTimer = (limit: number, callback: () => void) => {\n const count = ref(undefined)\n let interval: undefined | number = undefined\n\n const clear = () => {\n if (interval) {\n clearInterval(interval)\n interval = undefined\n }\n }\n\n const start = () => {\n count.value = limit\n if (interval) {\n return\n }\n interval = setInterval(() => {\n if (count.value) {\n count.value = count.value - 1\n }\n if (count.value === 0) {\n clear()\n callback()\n }\n }, 1000)\n }\n\n const reset = () => {\n count.value = undefined\n clear()\n }\n\n return {count, reset, start}\n}\n","import {Body, Engine, Events, Render, Runner, World} from 'matter-js'\nimport {blocks} from '../pages/play/setting.ts'\nimport {createBlock, getBlockIndex, getDynamicCanvasHeight, setField} from '../utils'\nimport {onMounted, Ref, ref} from 'vue'\nimport {useTimer} from './use-timer.ts'\n\nexport const usePlayer = (\n element: Ref,\n) => {\n const engine = Engine.create(\n {\n gravity: {x: 0, y: 0.4},\n timing: {timeScale: 1.5}\n })\n const runner = Runner.create()\n\n const collisions = new Set()\n\n let width = 0\n let height = 0\n let ratio = 1\n const groundHeightRef = ref(0)\n\n let isSetBlock: boolean = false\n let currentBlock: Body | undefined = undefined\n let totalBlockCount = 0\n let canvasOffsetX = 0\n\n const gameOverRef = ref(false)\n const nextBlockRef = ref(0)\n const scoreRef = ref(0)\n\n onMounted(() => {\n if (!element.value) {\n return\n }\n width = element.value.clientWidth\n height = getDynamicCanvasHeight(width)\n ratio = width / 380\n canvasOffsetX = element.value?.getBoundingClientRect().x\n groundHeightRef.value = element.value?.clientHeight - height\n setNextBlock()\n addBlock()\n\n const render = Render.create({\n canvas: element.value,\n engine,\n options: {\n wireframes: false,\n background: 'transparent',\n width,\n height,\n pixelRatio: window.devicePixelRatio\n }\n })\n\n setField(engine.world, width, height)\n Render.run(render)\n Runner.run(runner, engine)\n\n element.value.addEventListener('mousemove', (event: MouseEvent) => {\n onDrag(event.offsetX)\n })\n\n element.value.addEventListener('mouseup', () => {\n drop()\n })\n\n element.value.addEventListener('touchmove', (event: TouchEvent) => {\n const x = event.touches[0].clientX - canvasOffsetX\n if (element?.value?.clientWidth && x > 0 && x < element.value.clientWidth) {\n onDrag(x)\n }\n }, {passive: true})\n\n element.value.addEventListener('touchend', () => {\n drop()\n })\n })\n\n Events.on(engine, 'collisionStart', (event) => {\n event.pairs.forEach((collision) => {\n if (collision.bodyA.label === 'line' || collision.bodyB.label === 'line') {\n const circle = collision.bodyA.label === 'line' ? collision.bodyB.id : collision.bodyA.id\n addCollisions(circle)\n }\n\n if (collision.bodyA.label !== collision.bodyB.label) {\n return\n }\n\n if (collision.bodyA.label === 'removed' || collision.bodyB.label === 'removed') {\n return\n }\n\n const index = Number(collision.bodyA.label)\n if (index === 10) {\n return\n }\n\n collision.bodyA.label = 'removed'\n collision.bodyB.label = 'removed'\n\n scoreRef.value = scoreRef.value + (blocks[index].score)\n\n const newBlock = createBlock(index + 1, collision.collision.supports[0].x, collision.collision.supports[0].y, ratio)\n World.remove(engine.world, [collision.bodyA, collision.bodyB])\n World.add(engine.world, newBlock)\n }\n )\n })\n\n Events.on(engine, 'collisionEnd', (event) => {\n event.pairs.forEach((collision) => {\n if (collision.bodyA.label === 'line' || collision.bodyB.label === 'line') {\n const circle = collision.bodyA.label === 'line' ? collision.bodyB.id : collision.bodyA.id\n removeCollisions(circle)\n }\n })\n })\n\n const {start, reset} = useTimer(3, () => {\n endGame()\n })\n\n const setLineCollisionTimer = () => {\n if (collisions.size > 0) {\n start()\n return\n }\n reset()\n }\n\n const addCollisions = (id: number) => {\n collisions.add(id)\n setLineCollisionTimer()\n }\n\n const removeCollisions = (id: number) => {\n collisions.delete(id)\n setLineCollisionTimer()\n }\n\n const addBlock = () => {\n // currentBlockRef.value = createBlock(4, widthRef.value / 2, 60, ratioRef.value, true)\n currentBlock = createBlock(nextBlockRef.value, width / 2, 60, ratio, true)\n isSetBlock = false\n World.add(engine.world, currentBlock)\n setNextBlock()\n }\n\n const setNextBlock = () => {\n totalBlockCount += 1\n nextBlockRef.value = getBlockIndex(totalBlockCount)\n }\n\n const drop = () => {\n if (gameOverRef.value) {\n return\n }\n if (!currentBlock || isSetBlock) {\n return\n }\n isSetBlock = true\n Body.setStatic(currentBlock, false)\n setTimeout(() => {\n addBlock()\n }, 1000)\n }\n\n const onDrag = (x: number) => {\n if (gameOverRef.value) {\n return\n }\n if (!currentBlock || isSetBlock) {\n return\n }\n Body.setPosition(currentBlock, {x, y: 60})\n }\n\n const endGame = () => {\n gameOverRef.value = true\n }\n\n const replay = () => {\n scoreRef.value = 0\n\n collisions.clear()\n reset()\n\n gameOverRef.value = false\n\n totalBlockCount = 0\n\n World.clear(engine.world, false)\n setField(engine.world, width, height)\n\n setNextBlock()\n addBlock()\n }\n\n return {replay, nextBlockRef, groundHeightRef, gameOverRef, scoreRef}\n}\n","export default \"data:image/svg+xml,%3csvg%20width='38'%20height='32'%20viewBox='0%200%2038%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","import {defineStore} from 'pinia'\nimport {ref} from 'vue'\n\nexport const useUserStore = defineStore('user', () => {\n const nickName = ref('')\n return {nickName}\n})\n","export default \"__VITE_ASSET__s2B8m4p$__\"","\n\n","export default \"__VITE_ASSET__B92Jurwa__\"","export default \"__VITE_ASSET__DRocghOK__\"","export default \"__VITE_ASSET__zi8jWbkq__\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20style='fill:%20%23489B6D'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='inherit'%20d='M12%202C10.6868%202%209.38642%202.25866%208.17317%202.7612C6.95991%203.26375%205.85752%204.00035%204.92893%204.92893C3.05357%206.8043%202%209.34784%202%2012C2%2016.42%204.87%2020.17%208.84%2021.5C9.34%2021.58%209.5%2021.27%209.5%2021V19.31C6.73%2019.91%206.14%2017.97%206.14%2017.97C5.68%2016.81%205.03%2016.5%205.03%2016.5C4.12%2015.88%205.1%2015.9%205.1%2015.9C6.1%2015.97%206.63%2016.93%206.63%2016.93C7.5%2018.45%208.97%2018%209.54%2017.76C9.63%2017.11%209.89%2016.67%2010.17%2016.42C7.95%2016.17%205.62%2015.31%205.62%2011.5C5.62%2010.39%206%209.5%206.65%208.79C6.55%208.54%206.2%207.5%206.75%206.15C6.75%206.15%207.59%205.88%209.5%207.17C10.29%206.95%2011.15%206.84%2012%206.84C12.85%206.84%2013.71%206.95%2014.5%207.17C16.41%205.88%2017.25%206.15%2017.25%206.15C17.8%207.5%2017.45%208.54%2017.35%208.79C18%209.5%2018.38%2010.39%2018.38%2011.5C18.38%2015.32%2016.04%2016.16%2013.81%2016.41C14.17%2016.72%2014.5%2017.33%2014.5%2018.26V21C14.5%2021.27%2014.66%2021.59%2015.17%2021.5C19.14%2020.16%2022%2016.42%2022%2012C22%2010.6868%2021.7413%209.38642%2021.2388%208.17317C20.7362%206.95991%2019.9997%205.85752%2019.0711%204.92893C18.1425%204.00035%2017.0401%203.26375%2015.8268%202.7612C14.6136%202.25866%2013.3132%202%2012%202Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='55'%20height='22'%20viewBox='0%200%2055%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.95809%201.72925C11.5932%201.69208%2014.0155%201.65407%2015.6513%201.65407C16.7795%201.65407%2017.9096%201.58814%2019.034%201.5156C20.3055%201.43357%2021.6106%201.51164%2022.8836%201.51164C24.1659%201.51164%2025.4435%201.44043%2026.7292%201.44043C29.9809%201.44043%2033.2319%201.48987%2036.4816%201.5789C39.2326%201.65427%2042.0226%201.66875%2044.6357%202.63526C46.4858%203.31952%2048.3613%203.90303%2050.0085%205.00117C50.9551%205.63226%2051.9846%206.40982%2052.6118%207.36708C53.3073%208.42859%2053.3821%209.8471%2053.1815%2011.0505C53.0459%2011.864%2052.6656%2012.6858%2052.3902%2013.4599C52.2596%2013.8272%2052.1021%2014.1492%2051.9155%2014.4886C51.6444%2014.9815%2051.3987%2015.481%2051.1203%2015.9683C50.7634%2016.5928%2050.2688%2017.343%2049.6603%2017.7486C49.2024%2018.0539%2048.6696%2018.2164%2048.1965%2018.4924C47.6444%2018.8145%2046.9121%2019.0579%2046.2974%2019.2283C44.8748%2019.6227%2043.4239%2019.8606%2041.9612%2020.0631C40.1719%2020.3109%2038.3583%2020.2411%2036.5568%2020.2411C34.9588%2020.2411%2033.3596%2020.2221%2031.7617%2020.2411C30.0172%2020.2619%2028.2692%2020.3716%2026.5234%2020.3836C25.5083%2020.3905%2024.5065%2020.6117%2023.4968%2020.7001C22.6192%2020.7769%2021.7303%2020.7396%2020.85%2020.7396C17.4521%2020.7396%2014.1614%2020.3402%2010.8404%2019.616C8.30368%2019.0629%205.74602%2018.2158%203.5448%2016.807C2.48459%2016.1285%201.81672%2015.0333%201.76838%2013.7764C1.65416%2010.8066%201.66275%207.85901%202.83265%205.08821C3.50052%203.50642%205.47022%202.78585%206.9275%202.19214C7.24625%202.06228%207.60611%202.04422%207.94429%201.99432C8.62044%201.89456%209.26937%201.7449%209.95809%201.72925Z'%20fill='%2366BE8B'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.909%2013.1409C23.2956%2013.1409%2024.6932%2013.1463%2025.7989%2012.1634C26.0518%2011.9385%2026.7028%2010.8607%2026.4884%2010.4971C26.202%2010.0113%2024.9009%2010.0517%2024.4714%2010.0416C23.9373%2010.0291%2023.2157%2010.1122%2022.7374%2010.4026C22.1385%2010.7663%2021.8001%2011.168%2021.7289%2011.9356C21.6569%2012.7131%2022.1321%2013.6008%2022.6294%2014.1185C23.2268%2014.7403%2024.2371%2015.4404%2025.1043%2015.4404C26.0964%2015.4404%2027.0415%2015.0405%2028.0217%2015.0405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M29.8217%2010.9404H34.3217'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M32.5217%208.24048C32.5029%208.57958%2032.4041%208.93656%2032.3417%209.27048C32.1679%2010.2009%2032.1066%2011.1439%2031.9817%2012.0805C31.8364%2013.1701%2031.6217%2014.3426%2031.6217%2015.4405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M38.4458%2010.9404C37.8164%2011.0019%2037.2365%2012.1706%2037.133%2012.6759C37.003%2013.3111%2036.8827%2014.3195%2037.4143%2014.8389C37.877%2015.2909%2038.6357%2015.5034%2039.2845%2015.4242C39.7187%2015.3711%2040.5741%2014.6222%2040.7483%2014.2332C41.0389%2013.5843%2041.4228%2012.7137%2040.9567%2012.0397C40.797%2011.8088%2040.5748%2011.5565%2040.3212%2011.4188C40.1812%2011.3429%2039.9542%2011.2938%2039.8523%2011.1695C39.6835%2010.9633%2039.8716%2011.2288%2040.0451%2011.3527C40.5276%2011.6971%2040.9926%2012.051%2041.4672%2012.4062C41.9513%2012.7684%2042.4245%2013.1383%2042.9362%2013.4597C43.0899%2013.5561%2043.2193%2013.6302%2043.3217%2013.7803'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M12.9738%206.44043C12.9354%207.12336%2012.7347%207.78117%2012.7275%208.48097C12.7144%209.74646%2012.7275%2011.0127%2012.7275%2012.2783C12.7275%2013.1657%2013.0217%2015.8278%2013.0217%2014.9404C13.0217%2013.8437%2012.8802%2012.655%2013.5281%2011.731C14.1557%2010.8358%2015.5416%2010.9404%2016.5184%2010.9404C17.5439%2010.9404%2018.9647%2011.3184%2019.0092%2012.5485C19.0297%2013.115%2019.0692%2013.5833%2018.7081%2014.0418C18.1068%2014.8051%2016.9377%2014.8162%2016.0531%2015.0148C15.258%2015.1932%2014.4057%2015.4404%2013.5897%2015.4404'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","\n\n","export const isOpen = () => {\n const targetTime = new Date('2024-03-18T19:00:00+09:00')\n const current = new Date()\n return current < targetTime\n}\n","\n\n","export default \"__VITE_ASSET__BPFe3XX8__\"","export default \"data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.27295%201.38288C2.72656%201.38288%204.55953%201.24929%205.94683%201.67319C6.16152%201.73879%206.20919%202.32808%206.30971%202.48604C6.64759%203.01699%206.99995%203.63674%207.22417%204.22786C7.6944%205.46757%207.94133%206.84558%208.16765%208.14695C8.25945%208.67479%208.45796%209.35081%208.45796%209.87426'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M8.26127%2013.6484C8.16865%2013.66%208.08112%2013.7385%208%2013.7791'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__CSHWqX0d__\"","export default \"__VITE_ASSET__BJGFyllh__\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2252%2020.4625%2012.6416%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1535%2023.3097%2014.4184C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8567%2024.1704%2016.3618%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3163C24.847%2018.8784%2025%2019.4522%2025%2020.0444C25%2020.2445%2024.913%2020.1797%2024.811%2020.0909C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.69%2021.5281%2018.6961C21.1936%2018.7005%2021.1426%2019.2521%2021.0588%2019.5717C20.8524%2020.359%2020.7209%2021.1802%2020.5749%2021.9869C20.5277%2022.248%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6895C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8942%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.174%2019.77%2021.087%2019.7298%2021.0105C19.3458%2020.2799%2018.8508%2019.5357%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9285C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1548C9.88096%2022.2865%209.45315%2023.1384%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1806%207.75245%2020.1839C7.41864%2020.1896%207.06751%2020.2314%206.73911%2020.3027C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5791C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6721C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9953%205.5771%2019.7562%205.70916%2019.5097C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1055C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5371%2014.688%2012.2615C15.7635%2011.9854%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M11%207.4445C11.0533%206.00462%2013.0492%205.82818%2014.0803%206.11689C14.5781%206.25627%2014.9933%206.72901%2015.3491%207.0848C15.9737%207.70949%2016.1343%208.38864%2016.1208%209.25606C16.1081%2010.0653%2015.7485%2010.8814%2015.2183%2011.4796C14.8644%2011.8789%2014.4805%2012.2684%2014.0313%2012.5587C13.545%2012.8729%2012.8888%2013.2083%2012.3243%2013.3337C12.1671%2013.3686%2011.5016%2013.6629%2011.6409%2013.713C12.6555%2014.0783%2013.7368%2014.2927%2014.7735%2014.5861C15.3355%2014.7451%2015.8982%2014.8825%2016.4739%2014.9785'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__T4FWtk06__\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2253%2020.4625%2012.6417%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1536%2023.3097%2014.4185C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8568%2024.1704%2016.3619%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3164C24.847%2018.8784%2025%2019.4522%2025%2020.0445C25%2020.2446%2024.913%2020.1797%2024.811%2020.091C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.6901%2021.5281%2018.6961C21.1936%2018.7006%2021.1426%2019.2521%2021.0588%2019.5718C20.8524%2020.3591%2020.7209%2021.1802%2020.5749%2021.987C20.5277%2022.2481%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6896C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8943%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.1741%2019.77%2021.087%2019.7298%2021.0106C19.3458%2020.2799%2018.8508%2019.5358%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9286C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1549C9.88096%2022.2865%209.45315%2023.1385%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1807%207.75245%2020.184C7.41864%2020.1896%207.06751%2020.2315%206.73911%2020.3028C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5792C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6722C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9954%205.5771%2019.7562%205.70916%2019.5098C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1056C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5372%2014.688%2012.2616C15.7635%2011.9855%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23D88F4B'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M19.668%2012.6527C18.6089%2012.6066%2017.5663%2012.389%2016.5097%2012.3135C14.7245%2012.186%2012.9339%2011.9495%2011.1389%2012.0646C11.1233%2012.0656%2010.5327%2012.1373%2010.5476%2012.0552C10.5843%2011.8534%2010.7626%2011.5724%2010.8495%2011.3862C11.4861%2010.0219%2012.3305%208.72783%2013.3264%207.59615C13.6097%207.27421%2013.8747%206.9252%2014.2039%206.64708C14.3214%206.54779%2014.6786%206.18033%2014.8387%206.18033C14.8687%206.18033%2014.8413%206.30049%2014.8387%206.31102C14.8005%206.46356%2014.793%206.61388%2014.8076%206.77155C14.8898%207.66205%2015.2584%208.51072%2015.3677%209.40405C15.4721%2010.2575%2015.5897%2011.1052%2015.6664%2011.9619C15.714%2012.4938%2015.8375%2013.0301%2015.8593%2013.5613C15.8791%2014.0425%2015.9713%2014.5257%2015.9713%2015.0051'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","\n\n","import {zaxios} from '../zaxios.ts'\n\nexport interface GetRankParams {\n pageNumber: number,\n dateTime: number,\n}\n\nexport interface RankItem {\n nickName: string,\n score: number,\n rank: number\n}\n\nexport interface GetRankResult {\n nextPageNumber: number\n rankList: RankItem[],\n totalCount: number\n}\n\nexport const getRank = async (params: GetRankParams): Promise => {\n const response = await zaxios.get('/rank', {\n params\n })\n return response.data\n}\n","import {useInfiniteQuery} from '@tanstack/vue-query'\nimport {getRank} from '../fetch/getRank.ts'\n\nexport const useGetInfiniteRank = () => {\n const date = Date.now()\n return useInfiniteQuery({\n queryKey: ['rank'],\n queryFn: ({pageParam}) => getRank({\n pageNumber: pageParam,\n dateTime: date\n }),\n initialPageParam: 0,\n getNextPageParam: (lastPage) => {\n return lastPage.nextPageNumber\n }\n })\n}\n","export default \"data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_694_3918)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.5%2044C29.6717%2044%2034.6316%2041.9455%2038.2886%2038.2886C41.9455%2034.6316%2044%2029.6717%2044%2024.5C44%2019.3283%2041.9455%2014.3684%2038.2886%2010.7114C34.6316%207.05446%2029.6717%205%2024.5%205C19.3283%205%2014.3684%207.05446%2010.7114%2010.7114C7.05446%2014.3684%205%2019.3283%205%2024.5C5%2029.6717%207.05446%2034.6316%2010.7114%2038.2886C14.3684%2041.9455%2019.3283%2044%2024.5%2044ZM24.5%2048.5C30.8652%2048.5%2036.9697%2045.9714%2041.4706%2041.4706C45.9714%2036.9697%2048.5%2030.8652%2048.5%2024.5C48.5%2018.1348%2045.9714%2012.0303%2041.4706%207.52944C36.9697%203.02856%2030.8652%200.5%2024.5%200.5C18.1348%200.5%2012.0303%203.02856%207.52944%207.52944C3.02856%2012.0303%200.5%2018.1348%200.5%2024.5C0.5%2030.8652%203.02856%2036.9697%207.52944%2041.4706C12.0303%2045.9714%2018.1348%2048.5%2024.5%2048.5ZM27.5%2033.5C27.5%2034.2957%2027.1839%2035.0587%2026.6213%2035.6213C26.0587%2036.1839%2025.2956%2036.5%2024.5%2036.5C23.7044%2036.5%2022.9413%2036.1839%2022.3787%2035.6213C21.8161%2035.0587%2021.5%2034.2957%2021.5%2033.5C21.5%2032.7043%2021.8161%2031.9413%2022.3787%2031.3787C22.9413%2030.8161%2023.7044%2030.5%2024.5%2030.5C25.2956%2030.5%2026.0587%2030.8161%2026.6213%2031.3787C27.1839%2031.9413%2027.5%2032.7043%2027.5%2033.5ZM26.75%2014.75C26.75%2014.1533%2026.5129%2013.581%2026.091%2013.159C25.669%2012.7371%2025.0967%2012.5%2024.5%2012.5C23.9033%2012.5%2023.331%2012.7371%2022.909%2013.159C22.4871%2013.581%2022.25%2014.1533%2022.25%2014.75V25.25C22.25%2025.8467%2022.4871%2026.419%2022.909%2026.841C23.331%2027.2629%2023.9033%2027.5%2024.5%2027.5C25.0967%2027.5%2025.669%2027.2629%2026.091%2026.841C26.5129%2026.419%2026.75%2025.8467%2026.75%2025.25V14.75Z'%20fill='%23489B6D'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_694_3918'%3e%3crect%20width='48'%20height='48'%20fill='white'%20transform='translate(0.5%200.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","\n\n","\n\n\n","export default \"__VITE_ASSET__DA6YS1b1__\"","export default \"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2011.3335C8.18889%2011.3335%208.34733%2011.2695%208.47533%2011.1415C8.60333%2011.0135%208.66711%2010.8553%208.66667%2010.6668V8.00016C8.66667%207.81127%208.60267%207.65305%208.47467%207.5255C8.34667%207.39794%208.18844%207.33394%208%207.3335C7.81111%207.3335%207.65289%207.3975%207.52533%207.5255C7.39778%207.6535%207.33378%207.81172%207.33333%208.00016V10.6668C7.33333%2010.8557%207.39733%2011.0142%207.52533%2011.1422C7.65333%2011.2702%207.81155%2011.3339%208%2011.3335ZM8%206.00016C8.18889%206.00016%208.34733%205.93616%208.47533%205.80816C8.60333%205.68016%208.66711%205.52194%208.66667%205.3335C8.66667%205.14461%208.60267%204.98639%208.47467%204.85883C8.34667%204.73127%208.18844%204.66727%208%204.66683C7.81111%204.66683%207.65289%204.73083%207.52533%204.85883C7.39778%204.98683%207.33378%205.14505%207.33333%205.3335C7.33333%205.52239%207.39733%205.68083%207.52533%205.80883C7.65333%205.93683%207.81155%206.00061%208%206.00016ZM8%2014.6668C7.07778%2014.6668%206.21111%2014.4917%205.4%2014.1415C4.58889%2013.7913%203.88333%2013.3164%203.28333%2012.7168C2.68333%2012.1168%202.20844%2011.4113%201.85867%2010.6002C1.50889%209.78905%201.33378%208.92239%201.33333%208.00016C1.33333%207.07794%201.50844%206.21127%201.85867%205.40016C2.20889%204.58905%202.68378%203.8835%203.28333%203.2835C3.88333%202.6835%204.58889%202.20861%205.4%201.85883C6.21111%201.50905%207.07778%201.33394%208%201.3335C8.92222%201.3335%209.78889%201.50861%2010.6%201.85883C11.4111%202.20905%2012.1167%202.68394%2012.7167%203.2835C13.3167%203.8835%2013.7918%204.58905%2014.142%205.40016C14.4922%206.21127%2014.6671%207.07794%2014.6667%208.00016C14.6667%208.92239%2014.4916%209.78905%2014.1413%2010.6002C13.7911%2011.4113%2013.3162%2012.1168%2012.7167%2012.7168C12.1167%2013.3168%2011.4111%2013.7919%2010.6%2014.1422C9.78889%2014.4924%208.92222%2014.6673%208%2014.6668Z'%20fill='%23489B6D'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__vnfYKicM__\"","\n\n","export default \"__VITE_ASSET__D$fvcx4K__\"","\n\n","\n\n","import {createRouter, createWebHistory} from 'vue-router'\nimport PlayPage from '../pages/play/PlayPage.vue'\nimport HomePage from '../pages/home/HomePage.vue'\nimport RankPage from '../pages/rank/RankPage.vue'\nimport DevHomePage from '../event-pages/home/DevHomePage.vue'\n\nconst routes = [\n {\n path: '/',\n component: HomePage,\n },\n {\n path: '/play',\n component: PlayPage,\n },\n {\n path: '/rank',\n component: RankPage,\n },\n {\n path: '/dev',\n component: DevHomePage,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory('/'),\n routes,\n})\n\nexport default router\n","import {createApp} from 'vue'\nimport {createPinia} from 'pinia'\nimport {VueQueryPlugin} from '@tanstack/vue-query'\nimport './style.css'\nimport App from './App.vue'\nimport router from './router'\n\nconst pinia = createPinia()\nconst app = createApp(App)\n\napp.use(pinia)\napp.use(router)\napp.use(VueQueryPlugin)\napp.mount('#app')\n"],"names":["makeMap","str","expectsLowerCase","set","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","key","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","looseToNumber","n","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","activeEffectScope","EffectScope","detached","currentEffectScope","fromParent","l","last","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","activeEffect","ReactiveEffect","trigger","scheduler","pauseTracking","dep","triggerComputed","resetTracking","lastShouldTrack","shouldTrack","lastEffect","preCleanupEffect","postCleanupEffect","computed","effect2","cleanupDepEffect","trackId","pauseScheduleStack","trackStack","pauseScheduling","resetScheduling","queueEffectSchedulers","trackEffect","debuggerEventExtraInfo","oldDep","triggerEffects","dirtyLevel","tracking","createDep","cleanup","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","track","target","type","depsMap","newValue","oldTarget","deps","newLength","key2","getDepFromReactive","object","isNonTrackableKeys","builtInSymbols","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","toRaw","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","readonly","reactive","MutableReactiveHandler","isOldValueReadonly","isReadonly","isShallow","hadKey","result","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","get","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","has","size","add","get2","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","shallow","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","raw","markRaw","ComputedRefImpl","getter","_setter","isSSR","triggerRefValue","self","trackRefValue","getterOrOptions","debugOptions","setter","onlyGetter","ref2","newVal","r","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","useDirectValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","toRef","source","defaultValue","callWithErrorHandling","instance","err","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","cb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","comparator","diff","emit","event","rawArgs","props","modelArg","modifiersKey","number","trim","handlerName","handler","onceHandler","normalizeEmitsOptions","comp","appContext","asMixin","cached","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","options","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","pushScopeId","popScopeId","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","Component","vnode","withProxy","propsOptions","slots","attrs","render","renderCache","data","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","keys","shapeFlag","filterModelListeners","cloneVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","updateHOCHostEl","parent","NULL_DYNAMIC_COMPONENT","isSuspense","queueEffectWithSuspense","suspense","ssrContextKey","useSSRContext","inject","watchPostEffect","doWatch","INITIAL_WATCHER_VALUE","watch","immediate","deep","flush","once","onTrack","onTrigger","_cb","unwatch","currentInstance","reactiveGetter","source2","traverse","forceTrigger","isMultiSource","s","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","queuePostRenderEffect","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","depth","currentDepth","withDirectives","directives","getExposeProxy","bindings","dir","modifiers","invokeDirectiveHook","oldBindings","binding","hook","defineComponent","extraOptions","isAsyncWrapper","isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","hooks","createHook","lifecycle","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","renderList","renderItem","index","renderSlot","fallback","noSlotted","slot","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","Fragment","vnodes","child","isVNode","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","state","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","descriptor","normalizePropsOrEmits","applyOptions","callHook","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","filters","resolveInjections","methodHandler","opt","createWatcher","provides","provide","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","h","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","namespace","lastApp","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","initProps","rawProps","isStateful","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","t","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","children","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","isSameVNodeType","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","nextSibling","next","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","mountChildren","resolveChildrenNamespace","setScopeId","unmountChildren","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","subTree","parentVNode","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","update","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","doRemove","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","isTeleport","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","style","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","getCurrentInstance","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","createSetupContext","resolvedResult","handleSetupResult","e","finishComponentSetup","compile","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","getAttrsProxy","computed$1","propsOrChildren","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","node","selector","before","wrapper","vtcKey","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","isNativeOn","patchProp","shouldSetAsProp","getModelAssigner","assignKey","vModelCheckbox","modelValue","elementValue","getValue","checked","assign","found","filtered","getCheckboxValue","setChecked","rendererOptions","renderer","ensureRenderer","createApp","mount","containerOrSelector","normalizeContainer","resolveRootNamespace","isVue2","activePinia","setActivePinia","pinia","piniaSymbol","o","MutationType","createPinia","_p","toBeInstalled","noop","addSubscription","subscriptions","removeSubscription","idx","triggerSubscriptions","fallbackRunWithContext","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","isComputed","createOptionsStore","hot","actions","getters","initialState","store","localState","computedGetters","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","wrapAction","action","afterCallbackList","onErrorCallbackList","after","onError","error","partialStore","stopWatcher","setupStore","actionValue","extender","defineStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","Subscribable","listener","isServer","functionalUpdate","updater","input","isValidTimeout","timeUntilStale","updatedAt","staleTime","matchQuery","query","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","hasObjectPrototype","prot","sleep","ms","resolve","replaceData","prevData","addToEnd","items","max","newItems","addToStart","skipToken","FocusManager","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","focused","isFocused","focusManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","outerResolve","outerReject","cancel","cancelOptions","reject","cancelRetry","continueRetry","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","retry","retryDelay","delay","shouldRetry","createNotifyManager","transactions","notifyFn","batchNotifyFn","scheduleFn","setScheduler","batch","schedule","batchCalls","originalQueue","notifyManager","Removable","_gcTimeout","newGcTime","Query","_dispatch","_initialState","_revertState","_cache","_retryer","_observers","_defaultOptions","_abortSignalConsumed","getDefaultState","newData","__privateMethod","dispatch_fn","setStateOptions","_b","observer","x","fetchOptions","abortController","queryFnContext","addSignalProperty","fetchFn","_c","_d","reducer","fetchState","hasData","initialDataUpdatedAt","QueryCache","_queries","client","queryHash","queryInMap","defaultedFilters","queries","Mutation","_mutationCache","variables","executeMutation","restored","_f","_e","_h","_g","_j","_i","_l","_k","_n","_m","_o","_r","_q","_t","_s","MutationCache","_mutations","_mutationId","_resuming","__privateWrapper","pausedMutations","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","empty","cancelled","queryFn","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","hasNextPage","hasPreviousPage","QueryClient","_queryCache","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","cachedData","defaultedOptions","queryCache","refetchFilters","defaultedCancelOptions","promises","defaults","queryDefault","QueryObserver","_executeFetch","_updateStaleTimeout","_computeRefetchInterval","_updateRefetchInterval","_updateTimers","_clearStaleTimeout","_clearRefetchInterval","_updateQuery","_notify","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","updateQuery_fn","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","selectError","placeholderData","isFetching","isPending","isError","isLoading","isStale","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","timeout","nextInterval","shouldLoadOnMount","field","optimisticResult","InfiniteQueryObserver","isRefetching","isFetchingNextPage","isFetchingPreviousPage","MutationObserver","_updateResult","_currentMutation","_mutateOptions","updateResult_fn","VUE_QUERY_CLIENT","getClientKey","suffix","updateState","cloneDeep","customize","cloneDeepUnref","prototype","shouldThrowError","throwOnError","params","useQueryClient","queryClient","QC","MC","vueQueryConfig","VueQueryPlugin","clientKey","clientConfig","persisterUnmount","originalUnmount","useBaseQuery","Observer","clonedOptions","defaulted","unsubscribe","isRestoring","refetch","stopWatch","useInfiniteQuery","useMutation","mutationOptions","mutate","mutateOptions","resultRefs","isBrowser","isESModule","applyToParams","newParams","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","location","currentLocation","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","position","toPosition","segment","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","pauseListeners","listen","teardown","beforeUnloadListener","history","destroy","buildState","back","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","score","pattern","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re","subPattern","parse","match","stringify","avoidDuplicatedSlash","compareScoreArray","comparePathParserScore","aScore","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","isRecordChildOf","paramsFromLocation","k","matched","parentMatcher","mergeMetaFields","normalizeRecordProps","propsObject","meta","partialOptions","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","guardToPromiseFn","guard","runWithContext","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","link","elClass","getLinkClass","RouterLink","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","injectedDepth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","currentName","ViewComponent","routePropsOption","routeProps","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","installedApps","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","scrollBehavior","started","reactiveRoute","unmountApp","recordFrom","recordTo","useRouter","_sfc_render","_ctx","_openBlock","_createElementBlock","_hoisted_1","n3","n4","n5","n6","n7","n8","n9","n10","__props","Block","block","gameOver","replay","home","gameOverZzio","f","clsx","falsyToString","cx","cva","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","getCompoundVariantClassNames","param1","cvClass","cvClassName","compoundVariantOptions","rankBanner","coinSm","giftZzio","arrow","eventJoinTag","bind","toString","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","isNumber","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","forEach","allOwnKeys","findKey","_global","isContextDefined","merge","caseless","assignValue","targetKey","stripBOM","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","endsWith","toArray","isTypedArray","TypedArray","forEachEntry","iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","ALPHA","DIGIT","ALPHABET","generateString","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","utils$1","AxiosError","code","request","response","utils","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","deleted","deleteHeader","format","targets","asStrings","first","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","isCancel","CanceledError","settle","validateStatus","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","isXHRAdapterSupported","xhrAdapter","requestData","requestHeaders","responseType","withXSRFToken","onCanceled","username","password","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","protocol","knownAdapters","renderReason","reason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","desc","opts","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","CancelToken$1","spread","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","axios","zaxios","postEvent","usePostEvent","eventTitle","postRank","usePostRank","__emit","filled","onInput","_hoisted_2","_createElementVNode","_hoisted_3","checkboxDefault","checkboxActive","modelValueRef","_hoisted_4","close","__viteBrowserExternal","factory","module","this","CryptoJS","Math","undefined","crypto","global","require","require$$0","cryptoSecureRandomInt","create","F","subtype","C","C_lib","Base","overrides","properties","propertyName","WordArray","words","sigBytes","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","clone","nBytes","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","BufferedBlockAlgorithm","doFlush","processedWords","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","nWordsReady","nBytesReady","cfg","messageUpdate","hasher","C_algo","X32WordArray","C_x64","high","low","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","superInit","subInit","typedArray","typedArrayByteLength","utf16Chars","codePoint","utf16Str","utf16StrLength","swapEndian","word","map","base64Chars","byte1","byte2","byte3","triplet","paddingChar","base64Str","base64StrLength","reverseMap","paddingIndex","parseLoop","bits1","bits2","bitsCombined","urlSafe","Hasher","T","MD5","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","d","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","W","SHA1","K","isPrime","sqrtN","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma0","gamma1x","gamma1","ch","maj","sigma0","sigma1","t1","t2","undef","require$$1","SHA224","X64Word","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","al","bh","bl","cl","dh","dl","eh","fh","fl","gh","gl","hh","hl","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1l","t1h","t2l","t2h","require$$2","SHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","y","newX","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","nBlockSizeLanes","M2i","M2i1","lane","round","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","hr","zl","zr","sl","sr","ar","br","cr","dr","er","f1","f2","f3","f4","f5","rotl","z","hasherBlockSize","hasherBlockSizeBytes","oKey","iKey","oKeyWords","iKeyWords","innerHash","hmac","HMAC","PBKDF2","salt","derivedKey","blockIndex","derivedKeyWords","blockIndexWords","keySize","iterations","blockWords","blockWordsLength","intermediate","intermediateWords","EvpKDF","Base64","Cipher","xformMode","dataUpdate","finalProcessedData","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","ciphertext","finalProcessedBlocks","C_mode","BlockCipherMode","iv","CBC","xorBlock","thisBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","modeCreator","mode","CipherParams","cipherParams","formatter","C_format","OpenSSLFormatter","openSSLStr","ciphertextWords","encryptor","cipherCfg","plaintext","C_kdf","OpenSSLKdf","ivSize","derivedParams","CFB","generateKeystreamAndEncrypt","keystream","CTR","Encryptor","counter","CTRGladman","incWord","b1","b2","b3","incCounter","OFB","ECB","lastBytePos","require$$3","require$$4","BlockCipher","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","x2","x4","x8","RCON","AES","keyWords","nRounds","ksRows","keySchedule","ksRow","invKeySchedule","invKsRow","s0","s3","t0","t3","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","nSubKey","subKey","bitShift","invSubKeys","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key1","key3","StreamCipher","RC4","keySigBytes","S","keyByteIndex","keyByte","generateKeystreamWord","keystreamWord","RC4Drop","C_","G","Rabbit","X","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","gb","RabbitLegacy","N","ORIG_P","ORIG_S","BLOWFISH_CTX","BlowFish_Encrypt","left","right","Xl","Xr","temp","BlowFish_Decrypt","BlowFishInit","keysize","Row","Col","keyIndex","Data1","Data2","Blowfish","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","getGameId","crypto.AES","isSuccess","mutateEvent","rank","userId","activeBanner","topBannerStyle","phoneNumber","isPrivacyPolicyAgreed","isFormFilled","isPrivacyTermOpen","isOpen","toggleBanner","togglePrivacyTerm","onClickSubmit","heightRef","coin","modules","installedModules","__webpack_require__","moduleId","exports","ns","property","Common","argsStart","deepClone","begin","parts","choices","_seededRandom","colorString","warning","haystack","needle","func","graph","visited","neighbors","neighbor","funcs","lastResult","decomp","Bounds","vertices","bounds","velocity","vertex","point","boundsA","boundsB","vector","deltaX","deltaY","Vector","angle","output","cos","sin","magnitude","vectorA","vectorB","vectorC","scalar","negate","Vertices","points","body","pathPattern","area","centre","cross","average","signed","mass","numerator","denominator","verticesLength","translateX","translateY","pointX","pointY","dx","dy","nextVertex","scaleX","scaleY","radius","quality","qualityMin","qualityMax","newVertices","prevVertex","currentRadius","prevNormal","nextNormal","diagonalRadius","radiusVector","midNormal","scaledVertex","precision","alpha","theta","vertexA","vertexB","upper","lower","Body","Sleeping","Axes","_initProperties","isNonColliding","defaultFillStyle","defaultStrokeStyle","defaultLineWidth","settings","isStatic","part","moment","density","inertia","autoHull","hull","hullCentre","relative","updateVelocity","timeScale","speed","translation","rotation","totalArea","totalInertia","deltaTime","deltaTimeSquared","correction","frictionAir","velocityPrevX","velocityPrevY","bodyVelocity","Events","eventNames","names","callbacks","newCallbacks","eventClone","events","Composite","composite","isModified","updateParents","updateChildren","childComposite","objects","compositeA","compositeB","constraint","keepStatic","bodies","constraints","composites","recursive","motionSleepThreshold","angularSpeed","motion","minMotion","maxMotion","pairs","collision","bodyA","bodyB","sleepingBody","movingBody","isSleeping","wasSleeping","Collision","Pair","_supports","_overlapAB","_overlapBA","minOverlap","normal","supports","minAxis","minAxisX","minAxisY","supportsB","supportCount","supportsA","verticesA","verticesB","axes","verticesALength","verticesBLength","verticesAX","verticesAY","verticesBX","verticesBY","axesLength","overlapMin","overlapAxisNumber","overlap","overlapAB","overlapBA","dot","axis","axisX","axisY","minA","minB","maxA","maxB","projection","bodyAPositionX","bodyAPositionY","normalX","normalY","nearestDistance","vertexC","distance","Contact","timestamp","contacts","activeContacts","parentA","parentB","parentAVerticesLength","support","contactId","contact","Constraint","initialPointA","initialPointB","impulse","fixedA","fixedB","pointA","pointB","pointAWorld","pointBWorld","currentLength","difference","isRigid","stiffness","damping","massTotal","inertiaTotal","resistanceTotal","torque","share","normalVelocity","relativeVelocity","zero","gradient","xx","Bodies","width","height","rectangle","chamfer","slope","roof","x1","x3","verticesPath","trapezoid","maxSides","circle","sides","yy","polygon","vertexSets","flagInternal","removeCollinear","minimumArea","removeDuplicatePoints","canDecomp","isConvex","isConcave","concave","decomposed","chunk","chunkVertices","coincident_max_dist","partA","partB","pav","pbv","da","db","Detector","detector","collisions","bodiesLength","canCollide","collides","boundXMax","boundYMax","boundYMin","bodyAStatic","partsALength","partsASingle","partsBLength","partsAStart","partsBStart","filterA","filterB","Mouse","element","mouse","touches","scale","pixelRatio","elementBounds","rootNode","scrollX","scrollY","Plugin","registered","pluginVersion","registeredVersion","dependency","plugins","dependencies","sortedDependencies","tracked","parsedBase","range","major","minor","Engine","Resolver","Pairs","engine","startTime","world","timing","allBodies","allConstraints","positionDamping","engineA","engineB","gravity","gravityScale","activeCount","pairsLength","contactShare","positionImpulse","positionDampen","slopDampen","positionWarming","verticesTranslate","boundsUpdate","positionImpulseX","positionImpulseY","contactsLength","tangent","contactVertex","normalImpulse","tangentImpulse","impulseX","impulseY","timeScaleSquared","timeScaleCubed","restingThresh","restingThreshTangent","frictionNormalMultiplier","frictionMaxStatic","maxFriction","bodyAVelocity","bodyBVelocity","tangentX","tangentY","inverseMassTotal","friction","offsetAX","offsetAY","offsetBX","offsetBY","velocityPointAX","velocityPointAY","velocityPointBX","velocityPointBY","relativeVelocityX","relativeVelocityY","tangentVelocity","normalOverlap","normalForce","frictionLimit","oAcN","oBcN","contactNormalImpulse","contactTangentImpulse","pairsList","pairsListLength","pairsTable","collisionsLength","collisionStart","collisionEnd","collisionActive","pairIndex","removePairIndex","Matter","Composites","deprecated","columns","rows","columnGap","rowGap","lastBody","row","maxHeight","column","bodyHeight","bodyWidth","xOffsetA","yOffsetA","xOffsetB","yOffsetB","bodyAHeight","bodyAWidth","bodyBHeight","bodyBWidth","crossBrace","col","bodyC","actualRows","lastBodyWidth","xOffset","newtonsCradle","separation","wheelSize","group","wheelBase","wheelAOffset","wheelBOffset","wheelYOffset","car","wheelA","wheelB","axelA","axelB","particleRadius","particleOptions","constraintOptions","softBody","Grid","grid","forceUpdate","buckets","bucket","bucketId","gridChanged","newRegion","union","isInsideNewRegion","isInsideOldRegion","regionA","regionB","startCol","endCol","startRow","endRow","gridPairs","pairId","bucketLength","pairKeys","pairKeysLength","MouseConstraint","mouseConstraint","mouseEvents","overlaps","startPoint","endPoint","rayWidth","rayAngle","rayLength","rayX","rayY","ray","outside","Render","_requestAnimationFrame","_cancelAnimationFrame","_createCanvas","loop","time","_updateTiming","canvas","_getPixelRatio","center","viewHeight","viewWidth","outerRatio","innerRatio","boundsWidth","boundsHeight","boundsScaleX","boundsScaleY","background","_applyBackground","sections","section","deltaHistory","elapsedHistory","timestampElapsedHistory","engineDeltaHistory","engineElapsedHistory","lastEngineDelta","deltaMean","_mean","elapsedMean","engineDeltaMean","engineElapsedMean","timestampElapsedMean","rateMean","fps","graphHeight","gap","count","label","indicator","plotY","coils","showInternalEdges","sprite","texture","_getTexture","normalPosX","normalPosY","inspector","selected","historySize","devicePixelRatio","backingStorePixelRatio","imagePath","image","cssBackground","Runner","_frameTimeout","runner","SAT","Svg","sampleLength","il","segmentsQueue","lastSegment","lastPoint","segmentIndex","lx","ly","addPoint","px","py","pathSegType","isRelative","addSegmentPoint","segType","x0","y0","y1","y2","segs","seg","World","b4","b5","b6","b7","b8","b9","b10","lineColor","blocks","Background","ratio","getBlockIndex","RATIO","getDynamicCanvasHeight","setField","bottom","useTimer","limit","interval","usePlayer","groundHeightRef","isSetBlock","totalBlockCount","canvasOffsetX","gameOverRef","nextBlockRef","scoreRef","setNextBlock","addBlock","onDrag","drop","addCollisions","newBlock","removeCollisions","endGame","setLineCollisionTimer","useUserStore","playBackground","userStore","goBack","goRank","zzioGame","title$1","illustration","github","beta","titleRef","textRef","closedRef","onClickPlay","onClickRank","labelLine","medalZzio","medal1","medal2","medal3","medal4","getRank","useGetInfiniteRank","date","pageParam","lastPage","OFFSET","fetchNextPage","totalCountRef","winner","showUpButton","isStarted","onScroll","offsetHeight","scrollTop","scrollHeight","isEnd","scrollUp","title","event$1","remainingTime","remainingDays","formattedTime","hours","minutes","seconds","currentRef","isOpenRef","closeTime","HomePage","PlayPage","RankPage","DevHomePage","App"],"mappings":"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,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,UAAY,WAAY,SAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,WAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UAAc,EACtD,CAAI,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WAC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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,48,49,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,155]} \ No newline at end of file +{"version":3,"file":"index-C1n6Kl5t.js","sources":["../../node_modules/.pnpm/@vue+shared@3.4.21/node_modules/@vue/shared/dist/shared.esm-bundler.js","../../node_modules/.pnpm/@vue+reactivity@3.4.21/node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-core@3.4.21/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","../../node_modules/.pnpm/@vue+runtime-dom@3.4.21/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","../../node_modules/.pnpm/vue-demi@0.14.7_vue@3.4.21/node_modules/vue-demi/lib/index.mjs","../../node_modules/.pnpm/pinia@2.1.7_typescript@5.4.4_vue@3.4.21/node_modules/pinia/dist/pinia.mjs","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/subscribable.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/focusManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/onlineManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/retryer.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/notifyManager.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/removable.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/query.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/mutation.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/queryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/infiniteQueryObserver.js","../../node_modules/.pnpm/@tanstack+query-core@5.29.0/node_modules/@tanstack/query-core/build/modern/mutationObserver.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/utils.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/useQueryClient.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/queryCache.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/mutationCache.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/queryClient.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/vueQueryPlugin.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/useBaseQuery.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/useInfiniteQuery.js","../../node_modules/.pnpm/@tanstack+vue-query@5.29.0_vue@3.4.21/node_modules/@tanstack/vue-query/build/modern/useMutation.js","../../node_modules/.pnpm/vue-router@4.3.0_vue@3.4.21/node_modules/vue-router/dist/vue-router.mjs","../../src/components/Layout.vue","../../src/assets/next/n1.png","../../src/assets/next/n2.png","../../src/assets/next/n3.png","../../src/assets/next/n4.png","../../src/assets/next/n5.png","../../src/assets/next/n6.png","../../src/assets/next/n7.png","../../src/assets/next/n8.png","../../src/assets/next/n9.png","../../src/assets/next/n10.png","../../src/pages/play/_components/NextBlock.vue","../../src/assets/game-over.svg","../../src/assets/replay.svg","../../src/assets/home.svg","../../src/assets/game-over-zzio.svg","../../node_modules/.pnpm/clsx@2.0.0/node_modules/clsx/dist/clsx.mjs","../../node_modules/.pnpm/class-variance-authority@0.7.0/node_modules/class-variance-authority/dist/index.mjs","../../src/components/button/ZRoundButton.vue","../../src/assets/rank-banner.png","../../src/assets/coin-sm.svg","../../src/assets/gift-zzio.svg","../../src/assets/arrow.svg","../../src/assets/event-join-tag.svg","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/bind.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/utils.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/AxiosError.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/null.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/toFormData.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/buildURL.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/InterceptorManager.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/defaults/transitional.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/browser/classes/FormData.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/browser/classes/Blob.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/browser/index.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/common/utils.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/platform/index.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/toURLEncodedForm.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/formDataToJSON.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/defaults/index.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/parseHeaders.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/AxiosHeaders.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/transformData.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/cancel/isCancel.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/cancel/CanceledError.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/settle.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/cookies.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/isAbsoluteURL.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/combineURLs.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/buildFullPath.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/isURLSameOrigin.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/parseProtocol.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/speedometer.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/adapters/xhr.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/adapters/adapters.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/dispatchRequest.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/mergeConfig.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/env/data.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/validator.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/core/Axios.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/cancel/CancelToken.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/spread.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/isAxiosError.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/helpers/HttpStatusCode.js","../../node_modules/.pnpm/axios@1.6.8/node_modules/axios/lib/axios.js","../../src/requests/zaxios.ts","../../src/requests/fetch/postEvent.ts","../../src/requests/use/usePostEvent.ts","../../src/assets/event-title.svg","../../src/requests/fetch/postRank.ts","../../src/requests/use/usePostRank.ts","../../src/components/ZInput.vue","../../src/components/button/_assets/LeftLine.vue","../../src/components/button/_assets/RightLine.vue","../../src/components/button/ZButton.vue","../../src/assets/checkbox-default.svg","../../src/assets/checkbox-active.svg","../../src/components/ZCheckbox.vue","../../src/components/ZHeader.vue","../../src/assets/close.svg","../../__vite-browser-external","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/core.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/x64-core.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/lib-typedarrays.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-utf16.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/enc-base64url.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/md5.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha1.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha256.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha224.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha512.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha384.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/sha3.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/ripemd160.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/hmac.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pbkdf2.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/evpkdf.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/cipher-core.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-cfb.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ctr-gladman.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ofb.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/mode-ecb.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-ansix923.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso10126.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-iso97971.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-zeropadding.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/pad-nopadding.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/format-hex.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/aes.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/tripledes.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rc4.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/rabbit-legacy.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/blowfish.js","../../node_modules/.pnpm/crypto-js@4.2.0/node_modules/crypto-js/index.js","../../src/utils/get-game-id.ts","../../src/pages/play/_components/GameOver.vue","../../src/pages/play/_components/Ground.vue","../../src/assets/coin.svg","../../node_modules/.pnpm/matter-js@0.19.0/node_modules/matter-js/build/matter.js","../../src/assets/block/1.png","../../src/assets/block/2.png","../../src/assets/block/3.png","../../src/assets/block/4.png","../../src/assets/block/5.png","../../src/assets/block/6.png","../../src/assets/block/7.png","../../src/assets/block/8.png","../../src/assets/block/9.png","../../src/assets/block/10.png","../../src/pages/play/setting.ts","../../src/utils/create-block.ts","../../src/utils/get-block-index.ts","../../src/utils/get-dynamic-canvas-size.ts","../../src/utils/set-field.ts","../../src/hooks/use-timer.ts","../../src/hooks/use-player.ts","../../src/assets/back.svg","../../src/stores/user.ts","../../src/assets/play-background.svg","../../src/pages/play/PlayPage.vue","../../src/assets/zzio-game.svg","../../src/assets/title-beta.svg","../../src/assets/illustration.svg","../../src/assets/github-green.svg","../../src/assets/beta.svg","../../src/pages/home/_components/Notice.vue","../../src/utils/check-open.ts","../../src/pages/home/HomePage.vue","../../src/assets/rank.svg","../../src/assets/label-line.svg","../../src/assets/medal-zzio.svg","../../src/assets/medal1.svg","../../src/assets/medal2.svg","../../src/assets/medal3.svg","../../src/assets/medal4.svg","../../src/pages/rank/_components/Rank.vue","../../src/requests/fetch/getRank.ts","../../src/requests/use/useGetInfiniteRank.ts","../../src/assets/error.svg","../../src/components/ZLoading.vue","../../src/pages/rank/RankPage.vue","../../src/assets/title.svg","../../src/assets/info.svg","../../src/assets/event.svg","../../src/event-pages/home/_components/Notice.vue","../../src/assets/event-white.svg","../../src/event-pages/home/_components/Counter.vue","../../src/event-pages/home/DevHomePage.vue","../../src/router/index.ts","../../src/main.ts"],"sourcesContent":["/**\n* @vue/shared v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nfunction makeMap(str, expectsLowerCase) {\n const set = new Set(str.split(\",\"));\n return expectsLowerCase ? (val) => set.has(val.toLowerCase()) : (val) => set.has(val);\n}\n\nconst EMPTY_OBJ = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze({}) : {};\nconst EMPTY_ARR = !!(process.env.NODE_ENV !== \"production\") ? Object.freeze([]) : [];\nconst NOOP = () => {\n};\nconst NO = () => false;\nconst isOn = (key) => key.charCodeAt(0) === 111 && key.charCodeAt(1) === 110 && // uppercase letter\n(key.charCodeAt(2) > 122 || key.charCodeAt(2) < 97);\nconst isModelListener = (key) => key.startsWith(\"onUpdate:\");\nconst extend = Object.assign;\nconst remove = (arr, el) => {\n const i = arr.indexOf(el);\n if (i > -1) {\n arr.splice(i, 1);\n }\n};\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst isArray = Array.isArray;\nconst isMap = (val) => toTypeString(val) === \"[object Map]\";\nconst isSet = (val) => toTypeString(val) === \"[object Set]\";\nconst isDate = (val) => toTypeString(val) === \"[object Date]\";\nconst isRegExp = (val) => toTypeString(val) === \"[object RegExp]\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isString = (val) => typeof val === \"string\";\nconst isSymbol = (val) => typeof val === \"symbol\";\nconst isObject = (val) => val !== null && typeof val === \"object\";\nconst isPromise = (val) => {\n return (isObject(val) || isFunction(val)) && isFunction(val.then) && isFunction(val.catch);\n};\nconst objectToString = Object.prototype.toString;\nconst toTypeString = (value) => objectToString.call(value);\nconst toRawType = (value) => {\n return toTypeString(value).slice(8, -1);\n};\nconst isPlainObject = (val) => toTypeString(val) === \"[object Object]\";\nconst isIntegerKey = (key) => isString(key) && key !== \"NaN\" && key[0] !== \"-\" && \"\" + parseInt(key, 10) === key;\nconst isReservedProp = /* @__PURE__ */ makeMap(\n // the leading comma is intentional so empty string \"\" is also included\n \",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted\"\n);\nconst isBuiltInDirective = /* @__PURE__ */ makeMap(\n \"bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo\"\n);\nconst cacheStringFunction = (fn) => {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n};\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction(\n (str) => str.replace(hyphenateRE, \"-$1\").toLowerCase()\n);\nconst capitalize = cacheStringFunction((str) => {\n return str.charAt(0).toUpperCase() + str.slice(1);\n});\nconst toHandlerKey = cacheStringFunction((str) => {\n const s = str ? `on${capitalize(str)}` : ``;\n return s;\n});\nconst hasChanged = (value, oldValue) => !Object.is(value, oldValue);\nconst invokeArrayFns = (fns, arg) => {\n for (let i = 0; i < fns.length; i++) {\n fns[i](arg);\n }\n};\nconst def = (obj, key, value) => {\n Object.defineProperty(obj, key, {\n configurable: true,\n enumerable: false,\n value\n });\n};\nconst looseToNumber = (val) => {\n const n = parseFloat(val);\n return isNaN(n) ? val : n;\n};\nconst toNumber = (val) => {\n const n = isString(val) ? Number(val) : NaN;\n return isNaN(n) ? val : n;\n};\nlet _globalThis;\nconst getGlobalThis = () => {\n return _globalThis || (_globalThis = typeof globalThis !== \"undefined\" ? globalThis : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : {});\n};\nconst identRE = /^[_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*$/;\nfunction genPropsAccessExp(name) {\n return identRE.test(name) ? `__props.${name}` : `__props[${JSON.stringify(name)}]`;\n}\n\nconst PatchFlags = {\n \"TEXT\": 1,\n \"1\": \"TEXT\",\n \"CLASS\": 2,\n \"2\": \"CLASS\",\n \"STYLE\": 4,\n \"4\": \"STYLE\",\n \"PROPS\": 8,\n \"8\": \"PROPS\",\n \"FULL_PROPS\": 16,\n \"16\": \"FULL_PROPS\",\n \"NEED_HYDRATION\": 32,\n \"32\": \"NEED_HYDRATION\",\n \"STABLE_FRAGMENT\": 64,\n \"64\": \"STABLE_FRAGMENT\",\n \"KEYED_FRAGMENT\": 128,\n \"128\": \"KEYED_FRAGMENT\",\n \"UNKEYED_FRAGMENT\": 256,\n \"256\": \"UNKEYED_FRAGMENT\",\n \"NEED_PATCH\": 512,\n \"512\": \"NEED_PATCH\",\n \"DYNAMIC_SLOTS\": 1024,\n \"1024\": \"DYNAMIC_SLOTS\",\n \"DEV_ROOT_FRAGMENT\": 2048,\n \"2048\": \"DEV_ROOT_FRAGMENT\",\n \"HOISTED\": -1,\n \"-1\": \"HOISTED\",\n \"BAIL\": -2,\n \"-2\": \"BAIL\"\n};\nconst PatchFlagNames = {\n [1]: `TEXT`,\n [2]: `CLASS`,\n [4]: `STYLE`,\n [8]: `PROPS`,\n [16]: `FULL_PROPS`,\n [32]: `NEED_HYDRATION`,\n [64]: `STABLE_FRAGMENT`,\n [128]: `KEYED_FRAGMENT`,\n [256]: `UNKEYED_FRAGMENT`,\n [512]: `NEED_PATCH`,\n [1024]: `DYNAMIC_SLOTS`,\n [2048]: `DEV_ROOT_FRAGMENT`,\n [-1]: `HOISTED`,\n [-2]: `BAIL`\n};\n\nconst ShapeFlags = {\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"FUNCTIONAL_COMPONENT\": 2,\n \"2\": \"FUNCTIONAL_COMPONENT\",\n \"STATEFUL_COMPONENT\": 4,\n \"4\": \"STATEFUL_COMPONENT\",\n \"TEXT_CHILDREN\": 8,\n \"8\": \"TEXT_CHILDREN\",\n \"ARRAY_CHILDREN\": 16,\n \"16\": \"ARRAY_CHILDREN\",\n \"SLOTS_CHILDREN\": 32,\n \"32\": \"SLOTS_CHILDREN\",\n \"TELEPORT\": 64,\n \"64\": \"TELEPORT\",\n \"SUSPENSE\": 128,\n \"128\": \"SUSPENSE\",\n \"COMPONENT_SHOULD_KEEP_ALIVE\": 256,\n \"256\": \"COMPONENT_SHOULD_KEEP_ALIVE\",\n \"COMPONENT_KEPT_ALIVE\": 512,\n \"512\": \"COMPONENT_KEPT_ALIVE\",\n \"COMPONENT\": 6,\n \"6\": \"COMPONENT\"\n};\n\nconst SlotFlags = {\n \"STABLE\": 1,\n \"1\": \"STABLE\",\n \"DYNAMIC\": 2,\n \"2\": \"DYNAMIC\",\n \"FORWARDED\": 3,\n \"3\": \"FORWARDED\"\n};\nconst slotFlagsText = {\n [1]: \"STABLE\",\n [2]: \"DYNAMIC\",\n [3]: \"FORWARDED\"\n};\n\nconst GLOBALS_ALLOWED = \"Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error\";\nconst isGloballyAllowed = /* @__PURE__ */ makeMap(GLOBALS_ALLOWED);\nconst isGloballyWhitelisted = isGloballyAllowed;\n\nconst range = 2;\nfunction generateCodeFrame(source, start = 0, end = source.length) {\n let lines = source.split(/(\\r?\\n)/);\n const newlineSequences = lines.filter((_, idx) => idx % 2 === 1);\n lines = lines.filter((_, idx) => idx % 2 === 0);\n let count = 0;\n const res = [];\n for (let i = 0; i < lines.length; i++) {\n count += lines[i].length + (newlineSequences[i] && newlineSequences[i].length || 0);\n if (count >= start) {\n for (let j = i - range; j <= i + range || end > count; j++) {\n if (j < 0 || j >= lines.length)\n continue;\n const line = j + 1;\n res.push(\n `${line}${\" \".repeat(Math.max(3 - String(line).length, 0))}| ${lines[j]}`\n );\n const lineLength = lines[j].length;\n const newLineSeqLength = newlineSequences[j] && newlineSequences[j].length || 0;\n if (j === i) {\n const pad = start - (count - (lineLength + newLineSeqLength));\n const length = Math.max(\n 1,\n end > count ? lineLength - pad : end - start\n );\n res.push(` | ` + \" \".repeat(pad) + \"^\".repeat(length));\n } else if (j > i) {\n if (end > count) {\n const length = Math.max(Math.min(end - count, lineLength), 1);\n res.push(` | ` + \"^\".repeat(length));\n }\n count += lineLength + newLineSeqLength;\n }\n }\n break;\n }\n }\n return res.join(\"\\n\");\n}\n\nfunction normalizeStyle(value) {\n if (isArray(value)) {\n const res = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const normalized = isString(item) ? parseStringStyle(item) : normalizeStyle(item);\n if (normalized) {\n for (const key in normalized) {\n res[key] = normalized[key];\n }\n }\n }\n return res;\n } else if (isString(value) || isObject(value)) {\n return value;\n }\n}\nconst listDelimiterRE = /;(?![^(]*\\))/g;\nconst propertyDelimiterRE = /:([^]+)/;\nconst styleCommentRE = /\\/\\*[^]*?\\*\\//g;\nfunction parseStringStyle(cssText) {\n const ret = {};\n cssText.replace(styleCommentRE, \"\").split(listDelimiterRE).forEach((item) => {\n if (item) {\n const tmp = item.split(propertyDelimiterRE);\n tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return ret;\n}\nfunction stringifyStyle(styles) {\n let ret = \"\";\n if (!styles || isString(styles)) {\n return ret;\n }\n for (const key in styles) {\n const value = styles[key];\n const normalizedKey = key.startsWith(`--`) ? key : hyphenate(key);\n if (isString(value) || typeof value === \"number\") {\n ret += `${normalizedKey}:${value};`;\n }\n }\n return ret;\n}\nfunction normalizeClass(value) {\n let res = \"\";\n if (isString(value)) {\n res = value;\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const normalized = normalizeClass(value[i]);\n if (normalized) {\n res += normalized + \" \";\n }\n }\n } else if (isObject(value)) {\n for (const name in value) {\n if (value[name]) {\n res += name + \" \";\n }\n }\n }\n return res.trim();\n}\nfunction normalizeProps(props) {\n if (!props)\n return null;\n let { class: klass, style } = props;\n if (klass && !isString(klass)) {\n props.class = normalizeClass(klass);\n }\n if (style) {\n props.style = normalizeStyle(style);\n }\n return props;\n}\n\nconst HTML_TAGS = \"html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot\";\nconst SVG_TAGS = \"svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view\";\nconst MATH_TAGS = \"annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics\";\nconst VOID_TAGS = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nconst isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);\nconst isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);\nconst isMathMLTag = /* @__PURE__ */ makeMap(MATH_TAGS);\nconst isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);\n\nconst specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;\nconst isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);\nconst isBooleanAttr = /* @__PURE__ */ makeMap(\n specialBooleanAttrs + `,async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected`\n);\nfunction includeBooleanAttr(value) {\n return !!value || value === \"\";\n}\nconst unsafeAttrCharRE = /[>/=\"'\\u0009\\u000a\\u000c\\u0020]/;\nconst attrValidationCache = {};\nfunction isSSRSafeAttrName(name) {\n if (attrValidationCache.hasOwnProperty(name)) {\n return attrValidationCache[name];\n }\n const isUnsafe = unsafeAttrCharRE.test(name);\n if (isUnsafe) {\n console.error(`unsafe attribute name: ${name}`);\n }\n return attrValidationCache[name] = !isUnsafe;\n}\nconst propsToAttrMap = {\n acceptCharset: \"accept-charset\",\n className: \"class\",\n htmlFor: \"for\",\n httpEquiv: \"http-equiv\"\n};\nconst isKnownHtmlAttr = /* @__PURE__ */ makeMap(\n `accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap`\n);\nconst isKnownSvgAttr = /* @__PURE__ */ makeMap(\n `xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan`\n);\nfunction isRenderableAttrValue(value) {\n if (value == null) {\n return false;\n }\n const type = typeof value;\n return type === \"string\" || type === \"number\" || type === \"boolean\";\n}\n\nconst escapeRE = /[\"'&<>]/;\nfunction escapeHtml(string) {\n const str = \"\" + string;\n const match = escapeRE.exec(str);\n if (!match) {\n return str;\n }\n let html = \"\";\n let escaped;\n let index;\n let lastIndex = 0;\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34:\n escaped = \""\";\n break;\n case 38:\n escaped = \"&\";\n break;\n case 39:\n escaped = \"'\";\n break;\n case 60:\n escaped = \"<\";\n break;\n case 62:\n escaped = \">\";\n break;\n default:\n continue;\n }\n if (lastIndex !== index) {\n html += str.slice(lastIndex, index);\n }\n lastIndex = index + 1;\n html += escaped;\n }\n return lastIndex !== index ? html + str.slice(lastIndex, index) : html;\n}\nconst commentStripRE = /^-?>||--!>| looseEqual(item, val));\n}\n\nconst toDisplayString = (val) => {\n return isString(val) ? val : val == null ? \"\" : isArray(val) || isObject(val) && (val.toString === objectToString || !isFunction(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);\n};\nconst replacer = (_key, val) => {\n if (val && val.__v_isRef) {\n return replacer(_key, val.value);\n } else if (isMap(val)) {\n return {\n [`Map(${val.size})`]: [...val.entries()].reduce(\n (entries, [key, val2], i) => {\n entries[stringifySymbol(key, i) + \" =>\"] = val2;\n return entries;\n },\n {}\n )\n };\n } else if (isSet(val)) {\n return {\n [`Set(${val.size})`]: [...val.values()].map((v) => stringifySymbol(v))\n };\n } else if (isSymbol(val)) {\n return stringifySymbol(val);\n } else if (isObject(val) && !isArray(val) && !isPlainObject(val)) {\n return String(val);\n }\n return val;\n};\nconst stringifySymbol = (v, i = \"\") => {\n var _a;\n return isSymbol(v) ? `Symbol(${(_a = v.description) != null ? _a : i})` : v;\n};\n\nexport { EMPTY_ARR, EMPTY_OBJ, NO, NOOP, PatchFlagNames, PatchFlags, ShapeFlags, SlotFlags, camelize, capitalize, def, escapeHtml, escapeHtmlComment, extend, genPropsAccessExp, generateCodeFrame, getGlobalThis, hasChanged, hasOwn, hyphenate, includeBooleanAttr, invokeArrayFns, isArray, isBooleanAttr, isBuiltInDirective, isDate, isFunction, isGloballyAllowed, isGloballyWhitelisted, isHTMLTag, isIntegerKey, isKnownHtmlAttr, isKnownSvgAttr, isMap, isMathMLTag, isModelListener, isObject, isOn, isPlainObject, isPromise, isRegExp, isRenderableAttrValue, isReservedProp, isSSRSafeAttrName, isSVGTag, isSet, isSpecialBooleanAttr, isString, isSymbol, isVoidTag, looseEqual, looseIndexOf, looseToNumber, makeMap, normalizeClass, normalizeProps, normalizeStyle, objectToString, parseStringStyle, propsToAttrMap, remove, slotFlagsText, stringifyStyle, toDisplayString, toHandlerKey, toNumber, toRawType, toTypeString };\n","/**\n* @vue/reactivity v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { NOOP, extend, isArray, isSymbol, isMap, isIntegerKey, hasOwn, hasChanged, isObject, makeMap, capitalize, toRawType, def, isFunction } from '@vue/shared';\n\nfunction warn(msg, ...args) {\n console.warn(`[Vue warn] ${msg}`, ...args);\n}\n\nlet activeEffectScope;\nclass EffectScope {\n constructor(detached = false) {\n this.detached = detached;\n /**\n * @internal\n */\n this._active = true;\n /**\n * @internal\n */\n this.effects = [];\n /**\n * @internal\n */\n this.cleanups = [];\n this.parent = activeEffectScope;\n if (!detached && activeEffectScope) {\n this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(\n this\n ) - 1;\n }\n }\n get active() {\n return this._active;\n }\n run(fn) {\n if (this._active) {\n const currentEffectScope = activeEffectScope;\n try {\n activeEffectScope = this;\n return fn();\n } finally {\n activeEffectScope = currentEffectScope;\n }\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`cannot run an inactive effect scope.`);\n }\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n on() {\n activeEffectScope = this;\n }\n /**\n * This should only be called on non-detached scopes\n * @internal\n */\n off() {\n activeEffectScope = this.parent;\n }\n stop(fromParent) {\n if (this._active) {\n let i, l;\n for (i = 0, l = this.effects.length; i < l; i++) {\n this.effects[i].stop();\n }\n for (i = 0, l = this.cleanups.length; i < l; i++) {\n this.cleanups[i]();\n }\n if (this.scopes) {\n for (i = 0, l = this.scopes.length; i < l; i++) {\n this.scopes[i].stop(true);\n }\n }\n if (!this.detached && this.parent && !fromParent) {\n const last = this.parent.scopes.pop();\n if (last && last !== this) {\n this.parent.scopes[this.index] = last;\n last.index = this.index;\n }\n }\n this.parent = void 0;\n this._active = false;\n }\n }\n}\nfunction effectScope(detached) {\n return new EffectScope(detached);\n}\nfunction recordEffectScope(effect, scope = activeEffectScope) {\n if (scope && scope.active) {\n scope.effects.push(effect);\n }\n}\nfunction getCurrentScope() {\n return activeEffectScope;\n}\nfunction onScopeDispose(fn) {\n if (activeEffectScope) {\n activeEffectScope.cleanups.push(fn);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `onScopeDispose() is called when there is no active effect scope to be associated with.`\n );\n }\n}\n\nlet activeEffect;\nclass ReactiveEffect {\n constructor(fn, trigger, scheduler, scope) {\n this.fn = fn;\n this.trigger = trigger;\n this.scheduler = scheduler;\n this.active = true;\n this.deps = [];\n /**\n * @internal\n */\n this._dirtyLevel = 4;\n /**\n * @internal\n */\n this._trackId = 0;\n /**\n * @internal\n */\n this._runnings = 0;\n /**\n * @internal\n */\n this._shouldSchedule = false;\n /**\n * @internal\n */\n this._depsLength = 0;\n recordEffectScope(this, scope);\n }\n get dirty() {\n if (this._dirtyLevel === 2 || this._dirtyLevel === 3) {\n this._dirtyLevel = 1;\n pauseTracking();\n for (let i = 0; i < this._depsLength; i++) {\n const dep = this.deps[i];\n if (dep.computed) {\n triggerComputed(dep.computed);\n if (this._dirtyLevel >= 4) {\n break;\n }\n }\n }\n if (this._dirtyLevel === 1) {\n this._dirtyLevel = 0;\n }\n resetTracking();\n }\n return this._dirtyLevel >= 4;\n }\n set dirty(v) {\n this._dirtyLevel = v ? 4 : 0;\n }\n run() {\n this._dirtyLevel = 0;\n if (!this.active) {\n return this.fn();\n }\n let lastShouldTrack = shouldTrack;\n let lastEffect = activeEffect;\n try {\n shouldTrack = true;\n activeEffect = this;\n this._runnings++;\n preCleanupEffect(this);\n return this.fn();\n } finally {\n postCleanupEffect(this);\n this._runnings--;\n activeEffect = lastEffect;\n shouldTrack = lastShouldTrack;\n }\n }\n stop() {\n var _a;\n if (this.active) {\n preCleanupEffect(this);\n postCleanupEffect(this);\n (_a = this.onStop) == null ? void 0 : _a.call(this);\n this.active = false;\n }\n }\n}\nfunction triggerComputed(computed) {\n return computed.value;\n}\nfunction preCleanupEffect(effect2) {\n effect2._trackId++;\n effect2._depsLength = 0;\n}\nfunction postCleanupEffect(effect2) {\n if (effect2.deps.length > effect2._depsLength) {\n for (let i = effect2._depsLength; i < effect2.deps.length; i++) {\n cleanupDepEffect(effect2.deps[i], effect2);\n }\n effect2.deps.length = effect2._depsLength;\n }\n}\nfunction cleanupDepEffect(dep, effect2) {\n const trackId = dep.get(effect2);\n if (trackId !== void 0 && effect2._trackId !== trackId) {\n dep.delete(effect2);\n if (dep.size === 0) {\n dep.cleanup();\n }\n }\n}\nfunction effect(fn, options) {\n if (fn.effect instanceof ReactiveEffect) {\n fn = fn.effect.fn;\n }\n const _effect = new ReactiveEffect(fn, NOOP, () => {\n if (_effect.dirty) {\n _effect.run();\n }\n });\n if (options) {\n extend(_effect, options);\n if (options.scope)\n recordEffectScope(_effect, options.scope);\n }\n if (!options || !options.lazy) {\n _effect.run();\n }\n const runner = _effect.run.bind(_effect);\n runner.effect = _effect;\n return runner;\n}\nfunction stop(runner) {\n runner.effect.stop();\n}\nlet shouldTrack = true;\nlet pauseScheduleStack = 0;\nconst trackStack = [];\nfunction pauseTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = false;\n}\nfunction enableTracking() {\n trackStack.push(shouldTrack);\n shouldTrack = true;\n}\nfunction resetTracking() {\n const last = trackStack.pop();\n shouldTrack = last === void 0 ? true : last;\n}\nfunction pauseScheduling() {\n pauseScheduleStack++;\n}\nfunction resetScheduling() {\n pauseScheduleStack--;\n while (!pauseScheduleStack && queueEffectSchedulers.length) {\n queueEffectSchedulers.shift()();\n }\n}\nfunction trackEffect(effect2, dep, debuggerEventExtraInfo) {\n var _a;\n if (dep.get(effect2) !== effect2._trackId) {\n dep.set(effect2, effect2._trackId);\n const oldDep = effect2.deps[effect2._depsLength];\n if (oldDep !== dep) {\n if (oldDep) {\n cleanupDepEffect(oldDep, effect2);\n }\n effect2.deps[effect2._depsLength++] = dep;\n } else {\n effect2._depsLength++;\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrack) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n }\n}\nconst queueEffectSchedulers = [];\nfunction triggerEffects(dep, dirtyLevel, debuggerEventExtraInfo) {\n var _a;\n pauseScheduling();\n for (const effect2 of dep.keys()) {\n let tracking;\n if (effect2._dirtyLevel < dirtyLevel && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n effect2._shouldSchedule || (effect2._shouldSchedule = effect2._dirtyLevel === 0);\n effect2._dirtyLevel = dirtyLevel;\n }\n if (effect2._shouldSchedule && (tracking != null ? tracking : tracking = dep.get(effect2) === effect2._trackId)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n (_a = effect2.onTrigger) == null ? void 0 : _a.call(effect2, extend({ effect: effect2 }, debuggerEventExtraInfo));\n }\n effect2.trigger();\n if ((!effect2._runnings || effect2.allowRecurse) && effect2._dirtyLevel !== 2) {\n effect2._shouldSchedule = false;\n if (effect2.scheduler) {\n queueEffectSchedulers.push(effect2.scheduler);\n }\n }\n }\n }\n resetScheduling();\n}\n\nconst createDep = (cleanup, computed) => {\n const dep = /* @__PURE__ */ new Map();\n dep.cleanup = cleanup;\n dep.computed = computed;\n return dep;\n};\n\nconst targetMap = /* @__PURE__ */ new WeakMap();\nconst ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"iterate\" : \"\");\nconst MAP_KEY_ITERATE_KEY = Symbol(!!(process.env.NODE_ENV !== \"production\") ? \"Map key iterate\" : \"\");\nfunction track(target, type, key) {\n if (shouldTrack && activeEffect) {\n let depsMap = targetMap.get(target);\n if (!depsMap) {\n targetMap.set(target, depsMap = /* @__PURE__ */ new Map());\n }\n let dep = depsMap.get(key);\n if (!dep) {\n depsMap.set(key, dep = createDep(() => depsMap.delete(key)));\n }\n trackEffect(\n activeEffect,\n dep,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key\n } : void 0\n );\n }\n}\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\n const depsMap = targetMap.get(target);\n if (!depsMap) {\n return;\n }\n let deps = [];\n if (type === \"clear\") {\n deps = [...depsMap.values()];\n } else if (key === \"length\" && isArray(target)) {\n const newLength = Number(newValue);\n depsMap.forEach((dep, key2) => {\n if (key2 === \"length\" || !isSymbol(key2) && key2 >= newLength) {\n deps.push(dep);\n }\n });\n } else {\n if (key !== void 0) {\n deps.push(depsMap.get(key));\n }\n switch (type) {\n case \"add\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n } else if (isIntegerKey(key)) {\n deps.push(depsMap.get(\"length\"));\n }\n break;\n case \"delete\":\n if (!isArray(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n if (isMap(target)) {\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\n }\n }\n break;\n case \"set\":\n if (isMap(target)) {\n deps.push(depsMap.get(ITERATE_KEY));\n }\n break;\n }\n }\n pauseScheduling();\n for (const dep of deps) {\n if (dep) {\n triggerEffects(\n dep,\n 4,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target,\n type,\n key,\n newValue,\n oldValue,\n oldTarget\n } : void 0\n );\n }\n }\n resetScheduling();\n}\nfunction getDepFromReactive(object, key) {\n var _a;\n return (_a = targetMap.get(object)) == null ? void 0 : _a.get(key);\n}\n\nconst isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);\nconst builtInSymbols = new Set(\n /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== \"arguments\" && key !== \"caller\").map((key) => Symbol[key]).filter(isSymbol)\n);\nconst arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();\nfunction createArrayInstrumentations() {\n const instrumentations = {};\n [\"includes\", \"indexOf\", \"lastIndexOf\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n const arr = toRaw(this);\n for (let i = 0, l = this.length; i < l; i++) {\n track(arr, \"get\", i + \"\");\n }\n const res = arr[key](...args);\n if (res === -1 || res === false) {\n return arr[key](...args.map(toRaw));\n } else {\n return res;\n }\n };\n });\n [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\"].forEach((key) => {\n instrumentations[key] = function(...args) {\n pauseTracking();\n pauseScheduling();\n const res = toRaw(this)[key].apply(this, args);\n resetScheduling();\n resetTracking();\n return res;\n };\n });\n return instrumentations;\n}\nfunction hasOwnProperty(key) {\n const obj = toRaw(this);\n track(obj, \"has\", key);\n return obj.hasOwnProperty(key);\n}\nclass BaseReactiveHandler {\n constructor(_isReadonly = false, _isShallow = false) {\n this._isReadonly = _isReadonly;\n this._isShallow = _isShallow;\n }\n get(target, key, receiver) {\n const isReadonly2 = this._isReadonly, isShallow2 = this._isShallow;\n if (key === \"__v_isReactive\") {\n return !isReadonly2;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly2;\n } else if (key === \"__v_isShallow\") {\n return isShallow2;\n } else if (key === \"__v_raw\") {\n if (receiver === (isReadonly2 ? isShallow2 ? shallowReadonlyMap : readonlyMap : isShallow2 ? shallowReactiveMap : reactiveMap).get(target) || // receiver is not the reactive proxy, but has the same prototype\n // this means the reciever is a user proxy of the reactive proxy\n Object.getPrototypeOf(target) === Object.getPrototypeOf(receiver)) {\n return target;\n }\n return;\n }\n const targetIsArray = isArray(target);\n if (!isReadonly2) {\n if (targetIsArray && hasOwn(arrayInstrumentations, key)) {\n return Reflect.get(arrayInstrumentations, key, receiver);\n }\n if (key === \"hasOwnProperty\") {\n return hasOwnProperty;\n }\n }\n const res = Reflect.get(target, key, receiver);\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\n return res;\n }\n if (!isReadonly2) {\n track(target, \"get\", key);\n }\n if (isShallow2) {\n return res;\n }\n if (isRef(res)) {\n return targetIsArray && isIntegerKey(key) ? res : res.value;\n }\n if (isObject(res)) {\n return isReadonly2 ? readonly(res) : reactive(res);\n }\n return res;\n }\n}\nclass MutableReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(false, isShallow2);\n }\n set(target, key, value, receiver) {\n let oldValue = target[key];\n if (!this._isShallow) {\n const isOldValueReadonly = isReadonly(oldValue);\n if (!isShallow(value) && !isReadonly(value)) {\n oldValue = toRaw(oldValue);\n value = toRaw(value);\n }\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\n if (isOldValueReadonly) {\n return false;\n } else {\n oldValue.value = value;\n return true;\n }\n }\n }\n const hadKey = isArray(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);\n const result = Reflect.set(target, key, value, receiver);\n if (target === toRaw(receiver)) {\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n }\n return result;\n }\n deleteProperty(target, key) {\n const hadKey = hasOwn(target, key);\n const oldValue = target[key];\n const result = Reflect.deleteProperty(target, key);\n if (result && hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n }\n has(target, key) {\n const result = Reflect.has(target, key);\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\n track(target, \"has\", key);\n }\n return result;\n }\n ownKeys(target) {\n track(\n target,\n \"iterate\",\n isArray(target) ? \"length\" : ITERATE_KEY\n );\n return Reflect.ownKeys(target);\n }\n}\nclass ReadonlyReactiveHandler extends BaseReactiveHandler {\n constructor(isShallow2 = false) {\n super(true, isShallow2);\n }\n set(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Set operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n deleteProperty(target, key) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(\n `Delete operation on key \"${String(key)}\" failed: target is readonly.`,\n target\n );\n }\n return true;\n }\n}\nconst mutableHandlers = /* @__PURE__ */ new MutableReactiveHandler();\nconst readonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler();\nconst shallowReactiveHandlers = /* @__PURE__ */ new MutableReactiveHandler(\n true\n);\nconst shallowReadonlyHandlers = /* @__PURE__ */ new ReadonlyReactiveHandler(true);\n\nconst toShallow = (value) => value;\nconst getProto = (v) => Reflect.getPrototypeOf(v);\nfunction get(target, key, isReadonly = false, isShallow = false) {\n target = target[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"get\", key);\n }\n track(rawTarget, \"get\", rawKey);\n }\n const { has: has2 } = getProto(rawTarget);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n if (has2.call(rawTarget, key)) {\n return wrap(target.get(key));\n } else if (has2.call(rawTarget, rawKey)) {\n return wrap(target.get(rawKey));\n } else if (target !== rawTarget) {\n target.get(key);\n }\n}\nfunction has(key, isReadonly = false) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const rawKey = toRaw(key);\n if (!isReadonly) {\n if (hasChanged(key, rawKey)) {\n track(rawTarget, \"has\", key);\n }\n track(rawTarget, \"has\", rawKey);\n }\n return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);\n}\nfunction size(target, isReadonly = false) {\n target = target[\"__v_raw\"];\n !isReadonly && track(toRaw(target), \"iterate\", ITERATE_KEY);\n return Reflect.get(target, \"size\", target);\n}\nfunction add(value) {\n value = toRaw(value);\n const target = toRaw(this);\n const proto = getProto(target);\n const hadKey = proto.has.call(target, value);\n if (!hadKey) {\n target.add(value);\n trigger(target, \"add\", value, value);\n }\n return this;\n}\nfunction set(key, value) {\n value = toRaw(value);\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2.call(target, key);\n target.set(key, value);\n if (!hadKey) {\n trigger(target, \"add\", key, value);\n } else if (hasChanged(value, oldValue)) {\n trigger(target, \"set\", key, value, oldValue);\n }\n return this;\n}\nfunction deleteEntry(key) {\n const target = toRaw(this);\n const { has: has2, get: get2 } = getProto(target);\n let hadKey = has2.call(target, key);\n if (!hadKey) {\n key = toRaw(key);\n hadKey = has2.call(target, key);\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n checkIdentityKeys(target, has2, key);\n }\n const oldValue = get2 ? get2.call(target, key) : void 0;\n const result = target.delete(key);\n if (hadKey) {\n trigger(target, \"delete\", key, void 0, oldValue);\n }\n return result;\n}\nfunction clear() {\n const target = toRaw(this);\n const hadItems = target.size !== 0;\n const oldTarget = !!(process.env.NODE_ENV !== \"production\") ? isMap(target) ? new Map(target) : new Set(target) : void 0;\n const result = target.clear();\n if (hadItems) {\n trigger(target, \"clear\", void 0, void 0, oldTarget);\n }\n return result;\n}\nfunction createForEach(isReadonly, isShallow) {\n return function forEach(callback, thisArg) {\n const observed = this;\n const target = observed[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(rawTarget, \"iterate\", ITERATE_KEY);\n return target.forEach((value, key) => {\n return callback.call(thisArg, wrap(value), wrap(key), observed);\n });\n };\n}\nfunction createIterableMethod(method, isReadonly, isShallow) {\n return function(...args) {\n const target = this[\"__v_raw\"];\n const rawTarget = toRaw(target);\n const targetIsMap = isMap(rawTarget);\n const isPair = method === \"entries\" || method === Symbol.iterator && targetIsMap;\n const isKeyOnly = method === \"keys\" && targetIsMap;\n const innerIterator = target[method](...args);\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\n !isReadonly && track(\n rawTarget,\n \"iterate\",\n isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY\n );\n return {\n // iterator protocol\n next() {\n const { value, done } = innerIterator.next();\n return done ? { value, done } : {\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\n done\n };\n },\n // iterable protocol\n [Symbol.iterator]() {\n return this;\n }\n };\n };\n}\nfunction createReadonlyMethod(type) {\n return function(...args) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\n warn(\n `${capitalize(type)} operation ${key}failed: target is readonly.`,\n toRaw(this)\n );\n }\n return type === \"delete\" ? false : type === \"clear\" ? void 0 : this;\n };\n}\nfunction createInstrumentations() {\n const mutableInstrumentations2 = {\n get(key) {\n return get(this, key);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, false)\n };\n const shallowInstrumentations2 = {\n get(key) {\n return get(this, key, false, true);\n },\n get size() {\n return size(this);\n },\n has,\n add,\n set,\n delete: deleteEntry,\n clear,\n forEach: createForEach(false, true)\n };\n const readonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, false)\n };\n const shallowReadonlyInstrumentations2 = {\n get(key) {\n return get(this, key, true, true);\n },\n get size() {\n return size(this, true);\n },\n has(key) {\n return has.call(this, key, true);\n },\n add: createReadonlyMethod(\"add\"),\n set: createReadonlyMethod(\"set\"),\n delete: createReadonlyMethod(\"delete\"),\n clear: createReadonlyMethod(\"clear\"),\n forEach: createForEach(true, true)\n };\n const iteratorMethods = [\"keys\", \"values\", \"entries\", Symbol.iterator];\n iteratorMethods.forEach((method) => {\n mutableInstrumentations2[method] = createIterableMethod(\n method,\n false,\n false\n );\n readonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n false\n );\n shallowInstrumentations2[method] = createIterableMethod(\n method,\n false,\n true\n );\n shallowReadonlyInstrumentations2[method] = createIterableMethod(\n method,\n true,\n true\n );\n });\n return [\n mutableInstrumentations2,\n readonlyInstrumentations2,\n shallowInstrumentations2,\n shallowReadonlyInstrumentations2\n ];\n}\nconst [\n mutableInstrumentations,\n readonlyInstrumentations,\n shallowInstrumentations,\n shallowReadonlyInstrumentations\n] = /* @__PURE__ */ createInstrumentations();\nfunction createInstrumentationGetter(isReadonly, shallow) {\n const instrumentations = shallow ? isReadonly ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly ? readonlyInstrumentations : mutableInstrumentations;\n return (target, key, receiver) => {\n if (key === \"__v_isReactive\") {\n return !isReadonly;\n } else if (key === \"__v_isReadonly\") {\n return isReadonly;\n } else if (key === \"__v_raw\") {\n return target;\n }\n return Reflect.get(\n hasOwn(instrumentations, key) && key in target ? instrumentations : target,\n key,\n receiver\n );\n };\n}\nconst mutableCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, false)\n};\nconst shallowCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(false, true)\n};\nconst readonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, false)\n};\nconst shallowReadonlyCollectionHandlers = {\n get: /* @__PURE__ */ createInstrumentationGetter(true, true)\n};\nfunction checkIdentityKeys(target, has2, key) {\n const rawKey = toRaw(key);\n if (rawKey !== key && has2.call(target, rawKey)) {\n const type = toRawType(target);\n warn(\n `Reactive ${type} contains both the raw and reactive versions of the same object${type === `Map` ? ` as keys` : ``}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`\n );\n }\n}\n\nconst reactiveMap = /* @__PURE__ */ new WeakMap();\nconst shallowReactiveMap = /* @__PURE__ */ new WeakMap();\nconst readonlyMap = /* @__PURE__ */ new WeakMap();\nconst shallowReadonlyMap = /* @__PURE__ */ new WeakMap();\nfunction targetTypeMap(rawType) {\n switch (rawType) {\n case \"Object\":\n case \"Array\":\n return 1 /* COMMON */;\n case \"Map\":\n case \"Set\":\n case \"WeakMap\":\n case \"WeakSet\":\n return 2 /* COLLECTION */;\n default:\n return 0 /* INVALID */;\n }\n}\nfunction getTargetType(value) {\n return value[\"__v_skip\"] || !Object.isExtensible(value) ? 0 /* INVALID */ : targetTypeMap(toRawType(value));\n}\nfunction reactive(target) {\n if (isReadonly(target)) {\n return target;\n }\n return createReactiveObject(\n target,\n false,\n mutableHandlers,\n mutableCollectionHandlers,\n reactiveMap\n );\n}\nfunction shallowReactive(target) {\n return createReactiveObject(\n target,\n false,\n shallowReactiveHandlers,\n shallowCollectionHandlers,\n shallowReactiveMap\n );\n}\nfunction readonly(target) {\n return createReactiveObject(\n target,\n true,\n readonlyHandlers,\n readonlyCollectionHandlers,\n readonlyMap\n );\n}\nfunction shallowReadonly(target) {\n return createReactiveObject(\n target,\n true,\n shallowReadonlyHandlers,\n shallowReadonlyCollectionHandlers,\n shallowReadonlyMap\n );\n}\nfunction createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {\n if (!isObject(target)) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn(`value cannot be made reactive: ${String(target)}`);\n }\n return target;\n }\n if (target[\"__v_raw\"] && !(isReadonly2 && target[\"__v_isReactive\"])) {\n return target;\n }\n const existingProxy = proxyMap.get(target);\n if (existingProxy) {\n return existingProxy;\n }\n const targetType = getTargetType(target);\n if (targetType === 0 /* INVALID */) {\n return target;\n }\n const proxy = new Proxy(\n target,\n targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers\n );\n proxyMap.set(target, proxy);\n return proxy;\n}\nfunction isReactive(value) {\n if (isReadonly(value)) {\n return isReactive(value[\"__v_raw\"]);\n }\n return !!(value && value[\"__v_isReactive\"]);\n}\nfunction isReadonly(value) {\n return !!(value && value[\"__v_isReadonly\"]);\n}\nfunction isShallow(value) {\n return !!(value && value[\"__v_isShallow\"]);\n}\nfunction isProxy(value) {\n return isReactive(value) || isReadonly(value);\n}\nfunction toRaw(observed) {\n const raw = observed && observed[\"__v_raw\"];\n return raw ? toRaw(raw) : observed;\n}\nfunction markRaw(value) {\n if (Object.isExtensible(value)) {\n def(value, \"__v_skip\", true);\n }\n return value;\n}\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nconst COMPUTED_SIDE_EFFECT_WARN = `Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided. Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free`;\nclass ComputedRefImpl {\n constructor(getter, _setter, isReadonly, isSSR) {\n this.getter = getter;\n this._setter = _setter;\n this.dep = void 0;\n this.__v_isRef = true;\n this[\"__v_isReadonly\"] = false;\n this.effect = new ReactiveEffect(\n () => getter(this._value),\n () => triggerRefValue(\n this,\n this.effect._dirtyLevel === 2 ? 2 : 3\n )\n );\n this.effect.computed = this;\n this.effect.active = this._cacheable = !isSSR;\n this[\"__v_isReadonly\"] = isReadonly;\n }\n get value() {\n const self = toRaw(this);\n if ((!self._cacheable || self.effect.dirty) && hasChanged(self._value, self._value = self.effect.run())) {\n triggerRefValue(self, 4);\n }\n trackRefValue(self);\n if (self.effect._dirtyLevel >= 2) {\n if (!!(process.env.NODE_ENV !== \"production\") && this._warnRecursive) {\n warn(COMPUTED_SIDE_EFFECT_WARN, `\n\ngetter: `, this.getter);\n }\n triggerRefValue(self, 2);\n }\n return self._value;\n }\n set value(newValue) {\n this._setter(newValue);\n }\n // #region polyfill _dirty for backward compatibility third party code for Vue <= 3.3.x\n get _dirty() {\n return this.effect.dirty;\n }\n set _dirty(v) {\n this.effect.dirty = v;\n }\n // #endregion\n}\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\n let getter;\n let setter;\n const onlyGetter = isFunction(getterOrOptions);\n if (onlyGetter) {\n getter = getterOrOptions;\n setter = !!(process.env.NODE_ENV !== \"production\") ? () => {\n warn(\"Write operation failed: computed value is readonly\");\n } : NOOP;\n } else {\n getter = getterOrOptions.get;\n setter = getterOrOptions.set;\n }\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\n if (!!(process.env.NODE_ENV !== \"production\") && debugOptions && !isSSR) {\n cRef.effect.onTrack = debugOptions.onTrack;\n cRef.effect.onTrigger = debugOptions.onTrigger;\n }\n return cRef;\n}\n\nfunction trackRefValue(ref2) {\n var _a;\n if (shouldTrack && activeEffect) {\n ref2 = toRaw(ref2);\n trackEffect(\n activeEffect,\n (_a = ref2.dep) != null ? _a : ref2.dep = createDep(\n () => ref2.dep = void 0,\n ref2 instanceof ComputedRefImpl ? ref2 : void 0\n ),\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"get\",\n key: \"value\"\n } : void 0\n );\n }\n}\nfunction triggerRefValue(ref2, dirtyLevel = 4, newVal) {\n ref2 = toRaw(ref2);\n const dep = ref2.dep;\n if (dep) {\n triggerEffects(\n dep,\n dirtyLevel,\n !!(process.env.NODE_ENV !== \"production\") ? {\n target: ref2,\n type: \"set\",\n key: \"value\",\n newValue: newVal\n } : void 0\n );\n }\n}\nfunction isRef(r) {\n return !!(r && r.__v_isRef === true);\n}\nfunction ref(value) {\n return createRef(value, false);\n}\nfunction shallowRef(value) {\n return createRef(value, true);\n}\nfunction createRef(rawValue, shallow) {\n if (isRef(rawValue)) {\n return rawValue;\n }\n return new RefImpl(rawValue, shallow);\n}\nclass RefImpl {\n constructor(value, __v_isShallow) {\n this.__v_isShallow = __v_isShallow;\n this.dep = void 0;\n this.__v_isRef = true;\n this._rawValue = __v_isShallow ? value : toRaw(value);\n this._value = __v_isShallow ? value : toReactive(value);\n }\n get value() {\n trackRefValue(this);\n return this._value;\n }\n set value(newVal) {\n const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);\n newVal = useDirectValue ? newVal : toRaw(newVal);\n if (hasChanged(newVal, this._rawValue)) {\n this._rawValue = newVal;\n this._value = useDirectValue ? newVal : toReactive(newVal);\n triggerRefValue(this, 4, newVal);\n }\n }\n}\nfunction triggerRef(ref2) {\n triggerRefValue(ref2, 4, !!(process.env.NODE_ENV !== \"production\") ? ref2.value : void 0);\n}\nfunction unref(ref2) {\n return isRef(ref2) ? ref2.value : ref2;\n}\nfunction toValue(source) {\n return isFunction(source) ? source() : unref(source);\n}\nconst shallowUnwrapHandlers = {\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\n set: (target, key, value, receiver) => {\n const oldValue = target[key];\n if (isRef(oldValue) && !isRef(value)) {\n oldValue.value = value;\n return true;\n } else {\n return Reflect.set(target, key, value, receiver);\n }\n }\n};\nfunction proxyRefs(objectWithRefs) {\n return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);\n}\nclass CustomRefImpl {\n constructor(factory) {\n this.dep = void 0;\n this.__v_isRef = true;\n const { get, set } = factory(\n () => trackRefValue(this),\n () => triggerRefValue(this)\n );\n this._get = get;\n this._set = set;\n }\n get value() {\n return this._get();\n }\n set value(newVal) {\n this._set(newVal);\n }\n}\nfunction customRef(factory) {\n return new CustomRefImpl(factory);\n}\nfunction toRefs(object) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isProxy(object)) {\n warn(`toRefs() expects a reactive object but received a plain one.`);\n }\n const ret = isArray(object) ? new Array(object.length) : {};\n for (const key in object) {\n ret[key] = propertyToRef(object, key);\n }\n return ret;\n}\nclass ObjectRefImpl {\n constructor(_object, _key, _defaultValue) {\n this._object = _object;\n this._key = _key;\n this._defaultValue = _defaultValue;\n this.__v_isRef = true;\n }\n get value() {\n const val = this._object[this._key];\n return val === void 0 ? this._defaultValue : val;\n }\n set value(newVal) {\n this._object[this._key] = newVal;\n }\n get dep() {\n return getDepFromReactive(toRaw(this._object), this._key);\n }\n}\nclass GetterRefImpl {\n constructor(_getter) {\n this._getter = _getter;\n this.__v_isRef = true;\n this.__v_isReadonly = true;\n }\n get value() {\n return this._getter();\n }\n}\nfunction toRef(source, key, defaultValue) {\n if (isRef(source)) {\n return source;\n } else if (isFunction(source)) {\n return new GetterRefImpl(source);\n } else if (isObject(source) && arguments.length > 1) {\n return propertyToRef(source, key, defaultValue);\n } else {\n return ref(source);\n }\n}\nfunction propertyToRef(source, key, defaultValue) {\n const val = source[key];\n return isRef(val) ? val : new ObjectRefImpl(source, key, defaultValue);\n}\n\nconst deferredComputed = computed;\n\nconst TrackOpTypes = {\n \"GET\": \"get\",\n \"HAS\": \"has\",\n \"ITERATE\": \"iterate\"\n};\nconst TriggerOpTypes = {\n \"SET\": \"set\",\n \"ADD\": \"add\",\n \"DELETE\": \"delete\",\n \"CLEAR\": \"clear\"\n};\nconst ReactiveFlags = {\n \"SKIP\": \"__v_skip\",\n \"IS_REACTIVE\": \"__v_isReactive\",\n \"IS_READONLY\": \"__v_isReadonly\",\n \"IS_SHALLOW\": \"__v_isShallow\",\n \"RAW\": \"__v_raw\"\n};\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, ReactiveFlags, TrackOpTypes, TriggerOpTypes, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseScheduling, pauseTracking, proxyRefs, reactive, readonly, ref, resetScheduling, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, track, trigger, triggerRef, unref };\n","/**\n* @vue/runtime-core v3.4.21\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { pauseTracking, resetTracking, isRef, toRaw, isShallow, isReactive, ReactiveEffect, getCurrentScope, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, proxyRefs, markRaw, EffectScope, computed as computed$1, customRef, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, TrackOpTypes, TriggerOpTypes, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, toValue, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, looseToNumber, hyphenate, camelize, isObject, isOn, hasOwn, isModelListener, capitalize, toNumber, hasChanged, remove, isSet, isMap, isPlainObject, isBuiltInDirective, invokeArrayFns, isRegExp, isGloballyAllowed, NO, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, normalizeClass, stringifyStyle, normalizeStyle, isKnownSvgAttr, isBooleanAttr, isKnownHtmlAttr, includeBooleanAttr, isRenderableAttrValue } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\nfunction pushWarningContext(vnode) {\n stack.push(vnode);\n}\nfunction popWarningContext() {\n stack.pop();\n}\nfunction warn$1(msg, ...args) {\n pauseTracking();\n const instance = stack.length ? stack[stack.length - 1].component : null;\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\n const trace = getComponentTrace();\n if (appWarnHandler) {\n callWithErrorHandling(\n appWarnHandler,\n instance,\n 11,\n [\n msg + args.map((a) => {\n var _a, _b;\n return (_b = (_a = a.toString) == null ? void 0 : _a.call(a)) != null ? _b : JSON.stringify(a);\n }).join(\"\"),\n instance && instance.proxy,\n trace.map(\n ({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`\n ).join(\"\\n\"),\n trace\n ]\n );\n } else {\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\n if (trace.length && // avoid spamming console during tests\n true) {\n warnArgs.push(`\n`, ...formatTrace(trace));\n }\n console.warn(...warnArgs);\n }\n resetTracking();\n}\nfunction getComponentTrace() {\n let currentVNode = stack[stack.length - 1];\n if (!currentVNode) {\n return [];\n }\n const normalizedStack = [];\n while (currentVNode) {\n const last = normalizedStack[0];\n if (last && last.vnode === currentVNode) {\n last.recurseCount++;\n } else {\n normalizedStack.push({\n vnode: currentVNode,\n recurseCount: 0\n });\n }\n const parentInstance = currentVNode.component && currentVNode.component.parent;\n currentVNode = parentInstance && parentInstance.vnode;\n }\n return normalizedStack;\n}\nfunction formatTrace(trace) {\n const logs = [];\n trace.forEach((entry, i) => {\n logs.push(...i === 0 ? [] : [`\n`], ...formatTraceEntry(entry));\n });\n return logs;\n}\nfunction formatTraceEntry({ vnode, recurseCount }) {\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\n const isRoot = vnode.component ? vnode.component.parent == null : false;\n const open = ` at <${formatComponentName(\n vnode.component,\n vnode.type,\n isRoot\n )}`;\n const close = `>` + postfix;\n return vnode.props ? [open, ...formatProps(vnode.props), close] : [open + close];\n}\nfunction formatProps(props) {\n const res = [];\n const keys = Object.keys(props);\n keys.slice(0, 3).forEach((key) => {\n res.push(...formatProp(key, props[key]));\n });\n if (keys.length > 3) {\n res.push(` ...`);\n }\n return res;\n}\nfunction formatProp(key, value, raw) {\n if (isString(value)) {\n value = JSON.stringify(value);\n return raw ? value : [`${key}=${value}`];\n } else if (typeof value === \"number\" || typeof value === \"boolean\" || value == null) {\n return raw ? value : [`${key}=${value}`];\n } else if (isRef(value)) {\n value = formatProp(key, toRaw(value.value), true);\n return raw ? value : [`${key}=Ref<`, value, `>`];\n } else if (isFunction(value)) {\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\n } else {\n value = toRaw(value);\n return raw ? value : [`${key}=`, value];\n }\n}\nfunction assertNumber(val, type) {\n if (!!!(process.env.NODE_ENV !== \"production\"))\n return;\n if (val === void 0) {\n return;\n } else if (typeof val !== \"number\") {\n warn$1(`${type} is not a valid number - got ${JSON.stringify(val)}.`);\n } else if (isNaN(val)) {\n warn$1(`${type} is NaN - the duration expression might be incorrect.`);\n }\n}\n\nconst ErrorCodes = {\n \"SETUP_FUNCTION\": 0,\n \"0\": \"SETUP_FUNCTION\",\n \"RENDER_FUNCTION\": 1,\n \"1\": \"RENDER_FUNCTION\",\n \"WATCH_GETTER\": 2,\n \"2\": \"WATCH_GETTER\",\n \"WATCH_CALLBACK\": 3,\n \"3\": \"WATCH_CALLBACK\",\n \"WATCH_CLEANUP\": 4,\n \"4\": \"WATCH_CLEANUP\",\n \"NATIVE_EVENT_HANDLER\": 5,\n \"5\": \"NATIVE_EVENT_HANDLER\",\n \"COMPONENT_EVENT_HANDLER\": 6,\n \"6\": \"COMPONENT_EVENT_HANDLER\",\n \"VNODE_HOOK\": 7,\n \"7\": \"VNODE_HOOK\",\n \"DIRECTIVE_HOOK\": 8,\n \"8\": \"DIRECTIVE_HOOK\",\n \"TRANSITION_HOOK\": 9,\n \"9\": \"TRANSITION_HOOK\",\n \"APP_ERROR_HANDLER\": 10,\n \"10\": \"APP_ERROR_HANDLER\",\n \"APP_WARN_HANDLER\": 11,\n \"11\": \"APP_WARN_HANDLER\",\n \"FUNCTION_REF\": 12,\n \"12\": \"FUNCTION_REF\",\n \"ASYNC_COMPONENT_LOADER\": 13,\n \"13\": \"ASYNC_COMPONENT_LOADER\",\n \"SCHEDULER\": 14,\n \"14\": \"SCHEDULER\"\n};\nconst ErrorTypeStrings$1 = {\n [\"sp\"]: \"serverPrefetch hook\",\n [\"bc\"]: \"beforeCreate hook\",\n [\"c\"]: \"created hook\",\n [\"bm\"]: \"beforeMount hook\",\n [\"m\"]: \"mounted hook\",\n [\"bu\"]: \"beforeUpdate hook\",\n [\"u\"]: \"updated\",\n [\"bum\"]: \"beforeUnmount hook\",\n [\"um\"]: \"unmounted hook\",\n [\"a\"]: \"activated hook\",\n [\"da\"]: \"deactivated hook\",\n [\"ec\"]: \"errorCaptured hook\",\n [\"rtc\"]: \"renderTracked hook\",\n [\"rtg\"]: \"renderTriggered hook\",\n [0]: \"setup function\",\n [1]: \"render function\",\n [2]: \"watcher getter\",\n [3]: \"watcher callback\",\n [4]: \"watcher cleanup function\",\n [5]: \"native event handler\",\n [6]: \"component event handler\",\n [7]: \"vnode hook\",\n [8]: \"directive hook\",\n [9]: \"transition hook\",\n [10]: \"app errorHandler\",\n [11]: \"app warnHandler\",\n [12]: \"ref function\",\n [13]: \"async component loader\",\n [14]: \"scheduler flush. This is likely a Vue internals bug. Please open an issue at https://github.com/vuejs/core .\"\n};\nfunction callWithErrorHandling(fn, instance, type, args) {\n try {\n return args ? fn(...args) : fn();\n } catch (err) {\n handleError(err, instance, type);\n }\n}\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\n if (isFunction(fn)) {\n const res = callWithErrorHandling(fn, instance, type, args);\n if (res && isPromise(res)) {\n res.catch((err) => {\n handleError(err, instance, type);\n });\n }\n return res;\n }\n const values = [];\n for (let i = 0; i < fn.length; i++) {\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\n }\n return values;\n}\nfunction handleError(err, instance, type, throwInDev = true) {\n const contextVNode = instance ? instance.vnode : null;\n if (instance) {\n let cur = instance.parent;\n const exposedInstance = instance.proxy;\n const errorInfo = !!(process.env.NODE_ENV !== \"production\") ? ErrorTypeStrings$1[type] : `https://vuejs.org/error-reference/#runtime-${type}`;\n while (cur) {\n const errorCapturedHooks = cur.ec;\n if (errorCapturedHooks) {\n for (let i = 0; i < errorCapturedHooks.length; i++) {\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\n return;\n }\n }\n }\n cur = cur.parent;\n }\n const appErrorHandler = instance.appContext.config.errorHandler;\n if (appErrorHandler) {\n callWithErrorHandling(\n appErrorHandler,\n null,\n 10,\n [err, exposedInstance, errorInfo]\n );\n return;\n }\n }\n logError(err, type, contextVNode, throwInDev);\n}\nfunction logError(err, type, contextVNode, throwInDev = true) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const info = ErrorTypeStrings$1[type];\n if (contextVNode) {\n pushWarningContext(contextVNode);\n }\n warn$1(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\n if (contextVNode) {\n popWarningContext();\n }\n if (throwInDev) {\n throw err;\n } else {\n console.error(err);\n }\n } else {\n console.error(err);\n }\n}\n\nlet isFlushing = false;\nlet isFlushPending = false;\nconst queue = [];\nlet flushIndex = 0;\nconst pendingPostFlushCbs = [];\nlet activePostFlushCbs = null;\nlet postFlushIndex = 0;\nconst resolvedPromise = /* @__PURE__ */ Promise.resolve();\nlet currentFlushPromise = null;\nconst RECURSION_LIMIT = 100;\nfunction nextTick(fn) {\n const p = currentFlushPromise || resolvedPromise;\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\n}\nfunction findInsertionIndex(id) {\n let start = flushIndex + 1;\n let end = queue.length;\n while (start < end) {\n const middle = start + end >>> 1;\n const middleJob = queue[middle];\n const middleJobId = getId(middleJob);\n if (middleJobId < id || middleJobId === id && middleJob.pre) {\n start = middle + 1;\n } else {\n end = middle;\n }\n }\n return start;\n}\nfunction queueJob(job) {\n if (!queue.length || !queue.includes(\n job,\n isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex\n )) {\n if (job.id == null) {\n queue.push(job);\n } else {\n queue.splice(findInsertionIndex(job.id), 0, job);\n }\n queueFlush();\n }\n}\nfunction queueFlush() {\n if (!isFlushing && !isFlushPending) {\n isFlushPending = true;\n currentFlushPromise = resolvedPromise.then(flushJobs);\n }\n}\nfunction invalidateJob(job) {\n const i = queue.indexOf(job);\n if (i > flushIndex) {\n queue.splice(i, 1);\n }\n}\nfunction queuePostFlushCb(cb) {\n if (!isArray(cb)) {\n if (!activePostFlushCbs || !activePostFlushCbs.includes(\n cb,\n cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex\n )) {\n pendingPostFlushCbs.push(cb);\n }\n } else {\n pendingPostFlushCbs.push(...cb);\n }\n queueFlush();\n}\nfunction flushPreFlushCbs(instance, seen, i = isFlushing ? flushIndex + 1 : 0) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (; i < queue.length; i++) {\n const cb = queue[i];\n if (cb && cb.pre) {\n if (instance && cb.id !== instance.uid) {\n continue;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, cb)) {\n continue;\n }\n queue.splice(i, 1);\n i--;\n cb();\n }\n }\n}\nfunction flushPostFlushCbs(seen) {\n if (pendingPostFlushCbs.length) {\n const deduped = [...new Set(pendingPostFlushCbs)].sort(\n (a, b) => getId(a) - getId(b)\n );\n pendingPostFlushCbs.length = 0;\n if (activePostFlushCbs) {\n activePostFlushCbs.push(...deduped);\n return;\n }\n activePostFlushCbs = deduped;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\n if (!!(process.env.NODE_ENV !== \"production\") && checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\n continue;\n }\n activePostFlushCbs[postFlushIndex]();\n }\n activePostFlushCbs = null;\n postFlushIndex = 0;\n }\n}\nconst getId = (job) => job.id == null ? Infinity : job.id;\nconst comparator = (a, b) => {\n const diff = getId(a) - getId(b);\n if (diff === 0) {\n if (a.pre && !b.pre)\n return -1;\n if (b.pre && !a.pre)\n return 1;\n }\n return diff;\n};\nfunction flushJobs(seen) {\n isFlushPending = false;\n isFlushing = true;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n seen = seen || /* @__PURE__ */ new Map();\n }\n queue.sort(comparator);\n const check = !!(process.env.NODE_ENV !== \"production\") ? (job) => checkRecursiveUpdates(seen, job) : NOOP;\n try {\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\n const job = queue[flushIndex];\n if (job && job.active !== false) {\n if (!!(process.env.NODE_ENV !== \"production\") && check(job)) {\n continue;\n }\n callWithErrorHandling(job, null, 14);\n }\n }\n } finally {\n flushIndex = 0;\n queue.length = 0;\n flushPostFlushCbs(seen);\n isFlushing = false;\n currentFlushPromise = null;\n if (queue.length || pendingPostFlushCbs.length) {\n flushJobs(seen);\n }\n }\n}\nfunction checkRecursiveUpdates(seen, fn) {\n if (!seen.has(fn)) {\n seen.set(fn, 1);\n } else {\n const count = seen.get(fn);\n if (count > RECURSION_LIMIT) {\n const instance = fn.ownerInstance;\n const componentName = instance && getComponentName(instance.type);\n handleError(\n `Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,\n null,\n 10\n );\n return true;\n } else {\n seen.set(fn, count + 1);\n }\n }\n}\n\nlet isHmrUpdating = false;\nconst hmrDirtyComponents = /* @__PURE__ */ new Set();\nif (!!(process.env.NODE_ENV !== \"production\")) {\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\n createRecord: tryWrap(createRecord),\n rerender: tryWrap(rerender),\n reload: tryWrap(reload)\n };\n}\nconst map = /* @__PURE__ */ new Map();\nfunction registerHMR(instance) {\n const id = instance.type.__hmrId;\n let record = map.get(id);\n if (!record) {\n createRecord(id, instance.type);\n record = map.get(id);\n }\n record.instances.add(instance);\n}\nfunction unregisterHMR(instance) {\n map.get(instance.type.__hmrId).instances.delete(instance);\n}\nfunction createRecord(id, initialDef) {\n if (map.has(id)) {\n return false;\n }\n map.set(id, {\n initialDef: normalizeClassComponent(initialDef),\n instances: /* @__PURE__ */ new Set()\n });\n return true;\n}\nfunction normalizeClassComponent(component) {\n return isClassComponent(component) ? component.__vccOpts : component;\n}\nfunction rerender(id, newRender) {\n const record = map.get(id);\n if (!record) {\n return;\n }\n record.initialDef.render = newRender;\n [...record.instances].forEach((instance) => {\n if (newRender) {\n instance.render = newRender;\n normalizeClassComponent(instance.type).render = newRender;\n }\n instance.renderCache = [];\n isHmrUpdating = true;\n instance.effect.dirty = true;\n instance.update();\n isHmrUpdating = false;\n });\n}\nfunction reload(id, newComp) {\n const record = map.get(id);\n if (!record)\n return;\n newComp = normalizeClassComponent(newComp);\n updateComponentDef(record.initialDef, newComp);\n const instances = [...record.instances];\n for (const instance of instances) {\n const oldComp = normalizeClassComponent(instance.type);\n if (!hmrDirtyComponents.has(oldComp)) {\n if (oldComp !== record.initialDef) {\n updateComponentDef(oldComp, newComp);\n }\n hmrDirtyComponents.add(oldComp);\n }\n instance.appContext.propsCache.delete(instance.type);\n instance.appContext.emitsCache.delete(instance.type);\n instance.appContext.optionsCache.delete(instance.type);\n if (instance.ceReload) {\n hmrDirtyComponents.add(oldComp);\n instance.ceReload(newComp.styles);\n hmrDirtyComponents.delete(oldComp);\n } else if (instance.parent) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n } else if (instance.appContext.reload) {\n instance.appContext.reload();\n } else if (typeof window !== \"undefined\") {\n window.location.reload();\n } else {\n console.warn(\n \"[HMR] Root or manually mounted instance modified. Full reload required.\"\n );\n }\n }\n queuePostFlushCb(() => {\n for (const instance of instances) {\n hmrDirtyComponents.delete(\n normalizeClassComponent(instance.type)\n );\n }\n });\n}\nfunction updateComponentDef(oldComp, newComp) {\n extend(oldComp, newComp);\n for (const key in oldComp) {\n if (key !== \"__file\" && !(key in newComp)) {\n delete oldComp[key];\n }\n }\n}\nfunction tryWrap(fn) {\n return (id, arg) => {\n try {\n return fn(id, arg);\n } catch (e) {\n console.error(e);\n console.warn(\n `[HMR] Something went wrong during Vue component hot-reload. Full reload required.`\n );\n }\n };\n}\n\nlet devtools$1;\nlet buffer = [];\nlet devtoolsNotInstalled = false;\nfunction emit$1(event, ...args) {\n if (devtools$1) {\n devtools$1.emit(event, ...args);\n } else if (!devtoolsNotInstalled) {\n buffer.push({ event, args });\n }\n}\nfunction setDevtoolsHook$1(hook, target) {\n var _a, _b;\n devtools$1 = hook;\n if (devtools$1) {\n devtools$1.enabled = true;\n buffer.forEach(({ event, args }) => devtools$1.emit(event, ...args));\n buffer = [];\n } else if (\n // handle late devtools injection - only do this if we are in an actual\n // browser environment to avoid the timer handle stalling test runner exit\n // (#4815)\n typeof window !== \"undefined\" && // some envs mock window but not fully\n window.HTMLElement && // also exclude jsdom\n !((_b = (_a = window.navigator) == null ? void 0 : _a.userAgent) == null ? void 0 : _b.includes(\"jsdom\"))\n ) {\n const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];\n replay.push((newHook) => {\n setDevtoolsHook$1(newHook, target);\n });\n setTimeout(() => {\n if (!devtools$1) {\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\n devtoolsNotInstalled = true;\n buffer = [];\n }\n }, 3e3);\n } else {\n devtoolsNotInstalled = true;\n buffer = [];\n }\n}\nfunction devtoolsInitApp(app, version) {\n emit$1(\"app:init\" /* APP_INIT */, app, version, {\n Fragment,\n Text,\n Comment,\n Static\n });\n}\nfunction devtoolsUnmountApp(app) {\n emit$1(\"app:unmount\" /* APP_UNMOUNT */, app);\n}\nconst devtoolsComponentAdded = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:added\" /* COMPONENT_ADDED */\n);\nconst devtoolsComponentUpdated = /* @__PURE__ */ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\nconst _devtoolsComponentRemoved = /* @__PURE__ */ createDevtoolsComponentHook(\n \"component:removed\" /* COMPONENT_REMOVED */\n);\nconst devtoolsComponentRemoved = (component) => {\n if (devtools$1 && typeof devtools$1.cleanupBuffer === \"function\" && // remove the component if it wasn't buffered\n !devtools$1.cleanupBuffer(component)) {\n _devtoolsComponentRemoved(component);\n }\n};\nfunction createDevtoolsComponentHook(hook) {\n return (component) => {\n emit$1(\n hook,\n component.appContext.app,\n component.uid,\n component.parent ? component.parent.uid : void 0,\n component\n );\n };\n}\nconst devtoolsPerfStart = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:start\" /* PERFORMANCE_START */\n);\nconst devtoolsPerfEnd = /* @__PURE__ */ createDevtoolsPerformanceHook(\n \"perf:end\" /* PERFORMANCE_END */\n);\nfunction createDevtoolsPerformanceHook(hook) {\n return (component, type, time) => {\n emit$1(hook, component.appContext.app, component.uid, component, type, time);\n };\n}\nfunction devtoolsComponentEmit(component, event, params) {\n emit$1(\n \"component:emit\" /* COMPONENT_EMIT */,\n component.appContext.app,\n component,\n event,\n params\n );\n}\n\nfunction emit(instance, event, ...rawArgs) {\n if (instance.isUnmounted)\n return;\n const props = instance.vnode.props || EMPTY_OBJ;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const {\n emitsOptions,\n propsOptions: [propsOptions]\n } = instance;\n if (emitsOptions) {\n if (!(event in emitsOptions) && true) {\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\n warn$1(\n `Component emitted event \"${event}\" but it is neither declared in the emits option nor as an \"${toHandlerKey(event)}\" prop.`\n );\n }\n } else {\n const validator = emitsOptions[event];\n if (isFunction(validator)) {\n const isValid = validator(...rawArgs);\n if (!isValid) {\n warn$1(\n `Invalid event arguments: event validation failed for event \"${event}\".`\n );\n }\n }\n }\n }\n }\n let args = rawArgs;\n const isModelListener = event.startsWith(\"update:\");\n const modelArg = isModelListener && event.slice(7);\n if (modelArg && modelArg in props) {\n const modifiersKey = `${modelArg === \"modelValue\" ? \"model\" : modelArg}Modifiers`;\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\n if (trim) {\n args = rawArgs.map((a) => isString(a) ? a.trim() : a);\n }\n if (number) {\n args = rawArgs.map(looseToNumber);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentEmit(instance, event, args);\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\n warn$1(\n `Event \"${lowerCaseEvent}\" is emitted in component ${formatComponentName(\n instance,\n instance.type\n )} but the handler is registered for \"${event}\". Note that HTML attributes are case-insensitive and you cannot use v-on to listen to camelCase events when using in-DOM templates. You should probably use \"${hyphenate(\n event\n )}\" instead of \"${event}\".`\n );\n }\n }\n let handlerName;\n let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)\n props[handlerName = toHandlerKey(camelize(event))];\n if (!handler && isModelListener) {\n handler = props[handlerName = toHandlerKey(hyphenate(event))];\n }\n if (handler) {\n callWithAsyncErrorHandling(\n handler,\n instance,\n 6,\n args\n );\n }\n const onceHandler = props[handlerName + `Once`];\n if (onceHandler) {\n if (!instance.emitted) {\n instance.emitted = {};\n } else if (instance.emitted[handlerName]) {\n return;\n }\n instance.emitted[handlerName] = true;\n callWithAsyncErrorHandling(\n onceHandler,\n instance,\n 6,\n args\n );\n }\n}\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\n const cache = appContext.emitsCache;\n const cached = cache.get(comp);\n if (cached !== void 0) {\n return cached;\n }\n const raw = comp.emits;\n let normalized = {};\n let hasExtends = false;\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\n const extendEmits = (raw2) => {\n const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);\n if (normalizedFromExtend) {\n hasExtends = true;\n extend(normalized, normalizedFromExtend);\n }\n };\n if (!asMixin && appContext.mixins.length) {\n appContext.mixins.forEach(extendEmits);\n }\n if (comp.extends) {\n extendEmits(comp.extends);\n }\n if (comp.mixins) {\n comp.mixins.forEach(extendEmits);\n }\n }\n if (!raw && !hasExtends) {\n if (isObject(comp)) {\n cache.set(comp, null);\n }\n return null;\n }\n if (isArray(raw)) {\n raw.forEach((key) => normalized[key] = null);\n } else {\n extend(normalized, raw);\n }\n if (isObject(comp)) {\n cache.set(comp, normalized);\n }\n return normalized;\n}\nfunction isEmitListener(options, key) {\n if (!options || !isOn(key)) {\n return false;\n }\n key = key.slice(2).replace(/Once$/, \"\");\n return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);\n}\n\nlet currentRenderingInstance = null;\nlet currentScopeId = null;\nfunction setCurrentRenderingInstance(instance) {\n const prev = currentRenderingInstance;\n currentRenderingInstance = instance;\n currentScopeId = instance && instance.type.__scopeId || null;\n return prev;\n}\nfunction pushScopeId(id) {\n currentScopeId = id;\n}\nfunction popScopeId() {\n currentScopeId = null;\n}\nconst withScopeId = (_id) => withCtx;\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {\n if (!ctx)\n return fn;\n if (fn._n) {\n return fn;\n }\n const renderFnWithContext = (...args) => {\n if (renderFnWithContext._d) {\n setBlockTracking(-1);\n }\n const prevInstance = setCurrentRenderingInstance(ctx);\n let res;\n try {\n res = fn(...args);\n } finally {\n setCurrentRenderingInstance(prevInstance);\n if (renderFnWithContext._d) {\n setBlockTracking(1);\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentUpdated(ctx);\n }\n return res;\n };\n renderFnWithContext._n = true;\n renderFnWithContext._c = true;\n renderFnWithContext._d = true;\n return renderFnWithContext;\n}\n\nlet accessedAttrs = false;\nfunction markAttrsAccessed() {\n accessedAttrs = true;\n}\nfunction renderComponentRoot(instance) {\n const {\n type: Component,\n vnode,\n proxy,\n withProxy,\n props,\n propsOptions: [propsOptions],\n slots,\n attrs,\n emit,\n render,\n renderCache,\n data,\n setupState,\n ctx,\n inheritAttrs\n } = instance;\n let result;\n let fallthroughAttrs;\n const prev = setCurrentRenderingInstance(instance);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n accessedAttrs = false;\n }\n try {\n if (vnode.shapeFlag & 4) {\n const proxyToUse = withProxy || proxy;\n const thisProxy = !!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup ? new Proxy(proxyToUse, {\n get(target, key, receiver) {\n warn$1(\n `Property '${String(\n key\n )}' was accessed via 'this'. Avoid using 'this' in templates.`\n );\n return Reflect.get(target, key, receiver);\n }\n }) : proxyToUse;\n result = normalizeVNode(\n render.call(\n thisProxy,\n proxyToUse,\n renderCache,\n props,\n setupState,\n data,\n ctx\n )\n );\n fallthroughAttrs = attrs;\n } else {\n const render2 = Component;\n if (!!(process.env.NODE_ENV !== \"production\") && attrs === props) {\n markAttrsAccessed();\n }\n result = normalizeVNode(\n render2.length > 1 ? render2(\n props,\n !!(process.env.NODE_ENV !== \"production\") ? {\n get attrs() {\n markAttrsAccessed();\n return attrs;\n },\n slots,\n emit\n } : { attrs, slots, emit }\n ) : render2(\n props,\n null\n /* we know it doesn't need it */\n )\n );\n fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);\n }\n } catch (err) {\n blockStack.length = 0;\n handleError(err, instance, 1);\n result = createVNode(Comment);\n }\n let root = result;\n let setRoot = void 0;\n if (!!(process.env.NODE_ENV !== \"production\") && result.patchFlag > 0 && result.patchFlag & 2048) {\n [root, setRoot] = getChildRoot(result);\n }\n if (fallthroughAttrs && inheritAttrs !== false) {\n const keys = Object.keys(fallthroughAttrs);\n const { shapeFlag } = root;\n if (keys.length) {\n if (shapeFlag & (1 | 6)) {\n if (propsOptions && keys.some(isModelListener)) {\n fallthroughAttrs = filterModelListeners(\n fallthroughAttrs,\n propsOptions\n );\n }\n root = cloneVNode(root, fallthroughAttrs);\n } else if (!!(process.env.NODE_ENV !== \"production\") && !accessedAttrs && root.type !== Comment) {\n const allAttrs = Object.keys(attrs);\n const eventAttrs = [];\n const extraAttrs = [];\n for (let i = 0, l = allAttrs.length; i < l; i++) {\n const key = allAttrs[i];\n if (isOn(key)) {\n if (!isModelListener(key)) {\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\n }\n } else {\n extraAttrs.push(key);\n }\n }\n if (extraAttrs.length) {\n warn$1(\n `Extraneous non-props attributes (${extraAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes.`\n );\n }\n if (eventAttrs.length) {\n warn$1(\n `Extraneous non-emits event listeners (${eventAttrs.join(\", \")}) were passed to component but could not be automatically inherited because component renders fragment or text root nodes. If the listener is intended to be a component custom event listener only, declare it using the \"emits\" option.`\n );\n }\n }\n }\n }\n if (vnode.dirs) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Runtime directive used on component with non-element root node. The directives will not function as intended.`\n );\n }\n root = cloneVNode(root);\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\n }\n if (vnode.transition) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isElementRoot(root)) {\n warn$1(\n `Component inside renders non-element root node that cannot be animated.`\n );\n }\n root.transition = vnode.transition;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && setRoot) {\n setRoot(root);\n } else {\n result = root;\n }\n setCurrentRenderingInstance(prev);\n return result;\n}\nconst getChildRoot = (vnode) => {\n const rawChildren = vnode.children;\n const dynamicChildren = vnode.dynamicChildren;\n const childRoot = filterSingleRoot(rawChildren, false);\n if (!childRoot) {\n return [vnode, void 0];\n } else if (!!(process.env.NODE_ENV !== \"production\") && childRoot.patchFlag > 0 && childRoot.patchFlag & 2048) {\n return getChildRoot(childRoot);\n }\n const index = rawChildren.indexOf(childRoot);\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\n const setRoot = (updatedRoot) => {\n rawChildren[index] = updatedRoot;\n if (dynamicChildren) {\n if (dynamicIndex > -1) {\n dynamicChildren[dynamicIndex] = updatedRoot;\n } else if (updatedRoot.patchFlag > 0) {\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\n }\n }\n };\n return [normalizeVNode(childRoot), setRoot];\n};\nfunction filterSingleRoot(children, recurse = true) {\n let singleRoot;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isVNode(child)) {\n if (child.type !== Comment || child.children === \"v-if\") {\n if (singleRoot) {\n return;\n } else {\n singleRoot = child;\n if (!!(process.env.NODE_ENV !== \"production\") && recurse && singleRoot.patchFlag > 0 && singleRoot.patchFlag & 2048) {\n return filterSingleRoot(singleRoot.children);\n }\n }\n }\n } else {\n return;\n }\n }\n return singleRoot;\n}\nconst getFunctionalFallthrough = (attrs) => {\n let res;\n for (const key in attrs) {\n if (key === \"class\" || key === \"style\" || isOn(key)) {\n (res || (res = {}))[key] = attrs[key];\n }\n }\n return res;\n};\nconst filterModelListeners = (attrs, props) => {\n const res = {};\n for (const key in attrs) {\n if (!isModelListener(key) || !(key.slice(9) in props)) {\n res[key] = attrs[key];\n }\n }\n return res;\n};\nconst isElementRoot = (vnode) => {\n return vnode.shapeFlag & (6 | 1) || vnode.type === Comment;\n};\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\n const { props: prevProps, children: prevChildren, component } = prevVNode;\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\n const emits = component.emitsOptions;\n if (!!(process.env.NODE_ENV !== \"production\") && (prevChildren || nextChildren) && isHmrUpdating) {\n return true;\n }\n if (nextVNode.dirs || nextVNode.transition) {\n return true;\n }\n if (optimized && patchFlag >= 0) {\n if (patchFlag & 1024) {\n return true;\n }\n if (patchFlag & 16) {\n if (!prevProps) {\n return !!nextProps;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n } else if (patchFlag & 8) {\n const dynamicProps = nextVNode.dynamicProps;\n for (let i = 0; i < dynamicProps.length; i++) {\n const key = dynamicProps[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {\n return true;\n }\n }\n }\n } else {\n if (prevChildren || nextChildren) {\n if (!nextChildren || !nextChildren.$stable) {\n return true;\n }\n }\n if (prevProps === nextProps) {\n return false;\n }\n if (!prevProps) {\n return !!nextProps;\n }\n if (!nextProps) {\n return true;\n }\n return hasPropsChanged(prevProps, nextProps, emits);\n }\n return false;\n}\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\n const nextKeys = Object.keys(nextProps);\n if (nextKeys.length !== Object.keys(prevProps).length) {\n return true;\n }\n for (let i = 0; i < nextKeys.length; i++) {\n const key = nextKeys[i];\n if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {\n return true;\n }\n }\n return false;\n}\nfunction updateHOCHostEl({ vnode, parent }, el) {\n while (parent) {\n const root = parent.subTree;\n if (root.suspense && root.suspense.activeBranch === vnode) {\n root.el = vnode.el;\n }\n if (root === vnode) {\n (vnode = parent.vnode).el = el;\n parent = parent.parent;\n } else {\n break;\n }\n }\n}\n\nconst COMPONENTS = \"components\";\nconst DIRECTIVES = \"directives\";\nfunction resolveComponent(name, maybeSelfReference) {\n return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;\n}\nconst NULL_DYNAMIC_COMPONENT = Symbol.for(\"v-ndc\");\nfunction resolveDynamicComponent(component) {\n if (isString(component)) {\n return resolveAsset(COMPONENTS, component, false) || component;\n } else {\n return component || NULL_DYNAMIC_COMPONENT;\n }\n}\nfunction resolveDirective(name) {\n return resolveAsset(DIRECTIVES, name);\n}\nfunction resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {\n const instance = currentRenderingInstance || currentInstance;\n if (instance) {\n const Component = instance.type;\n if (type === COMPONENTS) {\n const selfName = getComponentName(\n Component,\n false\n );\n if (selfName && (selfName === name || selfName === camelize(name) || selfName === capitalize(camelize(name)))) {\n return Component;\n }\n }\n const res = (\n // local registration\n // check instance[type] first which is resolved for options API\n resolve(instance[type] || Component[type], name) || // global registration\n resolve(instance.appContext[type], name)\n );\n if (!res && maybeSelfReference) {\n return Component;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && warnMissing && !res) {\n const extra = type === COMPONENTS ? `\nIf this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.` : ``;\n warn$1(`Failed to resolve ${type.slice(0, -1)}: ${name}${extra}`);\n }\n return res;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(\n `resolve${capitalize(type.slice(0, -1))} can only be used in render() or setup().`\n );\n }\n}\nfunction resolve(registry, name) {\n return registry && (registry[name] || registry[camelize(name)] || registry[capitalize(camelize(name))]);\n}\n\nconst isSuspense = (type) => type.__isSuspense;\nlet suspenseId = 0;\nconst SuspenseImpl = {\n name: \"Suspense\",\n // In order to make Suspense tree-shakable, we need to avoid importing it\n // directly in the renderer. The renderer checks for the __isSuspense flag\n // on a vnode's type and calls the `process` method, passing in renderer\n // internals.\n __isSuspense: true,\n process(n1, n2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n if (n1 == null) {\n mountSuspense(\n n2,\n container,\n anchor,\n parentComponent,\n parentSuspense,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n } else {\n if (parentSuspense && parentSuspense.deps > 0 && !n1.suspense.isInFallback) {\n n2.suspense = n1.suspense;\n n2.suspense.vnode = n2;\n n2.el = n1.el;\n return;\n }\n patchSuspense(\n n1,\n n2,\n container,\n anchor,\n parentComponent,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n }\n },\n hydrate: hydrateSuspense,\n create: createSuspenseBoundary,\n normalize: normalizeSuspenseChildren\n};\nconst Suspense = SuspenseImpl ;\nfunction triggerEvent(vnode, name) {\n const eventListener = vnode.props && vnode.props[name];\n if (isFunction(eventListener)) {\n eventListener();\n }\n}\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals) {\n const {\n p: patch,\n o: { createElement }\n } = rendererInternals;\n const hiddenContainer = createElement(\"div\");\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n container,\n hiddenContainer,\n anchor,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals\n );\n patch(\n null,\n suspense.pendingBranch = vnode.ssContent,\n hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds\n );\n if (suspense.deps > 0) {\n triggerEvent(vnode, \"onPending\");\n triggerEvent(vnode, \"onFallback\");\n patch(\n null,\n vnode.ssFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds\n );\n setActiveBranch(suspense, vnode.ssFallback);\n } else {\n suspense.resolve(false, true);\n }\n}\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, namespace, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\n const suspense = n2.suspense = n1.suspense;\n suspense.vnode = n2;\n n2.el = n1.el;\n const newBranch = n2.ssContent;\n const newFallback = n2.ssFallback;\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\n if (pendingBranch) {\n suspense.pendingBranch = newBranch;\n if (isSameVNodeType(newBranch, pendingBranch)) {\n patch(\n pendingBranch,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else if (isInFallback) {\n if (!isHydrating) {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n }\n } else {\n suspense.pendingId = suspenseId++;\n if (isHydrating) {\n suspense.isHydrating = false;\n suspense.activeBranch = pendingBranch;\n } else {\n unmount(pendingBranch, parentComponent, suspense);\n }\n suspense.deps = 0;\n suspense.effects.length = 0;\n suspense.hiddenContainer = createElement(\"div\");\n if (isInFallback) {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n patch(\n activeBranch,\n newFallback,\n container,\n anchor,\n parentComponent,\n null,\n // fallback tree will not have suspense context\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newFallback);\n }\n } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n suspense.resolve(true);\n } else {\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n }\n }\n }\n } else {\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\n patch(\n activeBranch,\n newBranch,\n container,\n anchor,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, newBranch);\n } else {\n triggerEvent(n2, \"onPending\");\n suspense.pendingBranch = newBranch;\n if (newBranch.shapeFlag & 512) {\n suspense.pendingId = newBranch.component.suspenseId;\n } else {\n suspense.pendingId = suspenseId++;\n }\n patch(\n null,\n newBranch,\n suspense.hiddenContainer,\n null,\n parentComponent,\n suspense,\n namespace,\n slotScopeIds,\n optimized\n );\n if (suspense.deps <= 0) {\n suspense.resolve();\n } else {\n const { timeout, pendingId } = suspense;\n if (timeout > 0) {\n setTimeout(() => {\n if (suspense.pendingId === pendingId) {\n suspense.fallback(newFallback);\n }\n }, timeout);\n } else if (timeout === 0) {\n suspense.fallback(newFallback);\n }\n }\n }\n }\n}\nlet hasWarned = false;\nfunction createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, namespace, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\n if (!!(process.env.NODE_ENV !== \"production\") && true && !hasWarned) {\n hasWarned = true;\n console[console.info ? \"info\" : \"log\"](\n ` is an experimental feature and its API will likely change.`\n );\n }\n const {\n p: patch,\n m: move,\n um: unmount,\n n: next,\n o: { parentNode, remove }\n } = rendererInternals;\n let parentSuspenseId;\n const isSuspensible = isVNodeSuspensible(vnode);\n if (isSuspensible) {\n if (parentSuspense == null ? void 0 : parentSuspense.pendingBranch) {\n parentSuspenseId = parentSuspense.pendingId;\n parentSuspense.deps++;\n }\n }\n const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assertNumber(timeout, `Suspense timeout`);\n }\n const initialAnchor = anchor;\n const suspense = {\n vnode,\n parent: parentSuspense,\n parentComponent,\n namespace,\n container,\n hiddenContainer,\n deps: 0,\n pendingId: suspenseId++,\n timeout: typeof timeout === \"number\" ? timeout : -1,\n activeBranch: null,\n pendingBranch: null,\n isInFallback: !isHydrating,\n isHydrating,\n isUnmounted: false,\n effects: [],\n resolve(resume = false, sync = false) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!resume && !suspense.pendingBranch) {\n throw new Error(\n `suspense.resolve() is called without a pending branch.`\n );\n }\n if (suspense.isUnmounted) {\n throw new Error(\n `suspense.resolve() is called on an already unmounted suspense boundary.`\n );\n }\n }\n const {\n vnode: vnode2,\n activeBranch,\n pendingBranch,\n pendingId,\n effects,\n parentComponent: parentComponent2,\n container: container2\n } = suspense;\n let delayEnter = false;\n if (suspense.isHydrating) {\n suspense.isHydrating = false;\n } else if (!resume) {\n delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = () => {\n if (pendingId === suspense.pendingId) {\n move(\n pendingBranch,\n container2,\n anchor === initialAnchor ? next(activeBranch) : anchor,\n 0\n );\n queuePostFlushCb(effects);\n }\n };\n }\n if (activeBranch) {\n if (parentNode(activeBranch.el) !== suspense.hiddenContainer) {\n anchor = next(activeBranch);\n }\n unmount(activeBranch, parentComponent2, suspense, true);\n }\n if (!delayEnter) {\n move(pendingBranch, container2, anchor, 0);\n }\n }\n setActiveBranch(suspense, pendingBranch);\n suspense.pendingBranch = null;\n suspense.isInFallback = false;\n let parent = suspense.parent;\n let hasUnresolvedAncestor = false;\n while (parent) {\n if (parent.pendingBranch) {\n parent.effects.push(...effects);\n hasUnresolvedAncestor = true;\n break;\n }\n parent = parent.parent;\n }\n if (!hasUnresolvedAncestor && !delayEnter) {\n queuePostFlushCb(effects);\n }\n suspense.effects = [];\n if (isSuspensible) {\n if (parentSuspense && parentSuspense.pendingBranch && parentSuspenseId === parentSuspense.pendingId) {\n parentSuspense.deps--;\n if (parentSuspense.deps === 0 && !sync) {\n parentSuspense.resolve();\n }\n }\n }\n triggerEvent(vnode2, \"onResolve\");\n },\n fallback(fallbackVNode) {\n if (!suspense.pendingBranch) {\n return;\n }\n const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, namespace: namespace2 } = suspense;\n triggerEvent(vnode2, \"onFallback\");\n const anchor2 = next(activeBranch);\n const mountFallback = () => {\n if (!suspense.isInFallback) {\n return;\n }\n patch(\n null,\n fallbackVNode,\n container2,\n anchor2,\n parentComponent2,\n null,\n // fallback tree will not have suspense context\n namespace2,\n slotScopeIds,\n optimized\n );\n setActiveBranch(suspense, fallbackVNode);\n };\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === \"out-in\";\n if (delayEnter) {\n activeBranch.transition.afterLeave = mountFallback;\n }\n suspense.isInFallback = true;\n unmount(\n activeBranch,\n parentComponent2,\n null,\n // no suspense so unmount hooks fire now\n true\n // shouldRemove\n );\n if (!delayEnter) {\n mountFallback();\n }\n },\n move(container2, anchor2, type) {\n suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);\n suspense.container = container2;\n },\n next() {\n return suspense.activeBranch && next(suspense.activeBranch);\n },\n registerDep(instance, setupRenderEffect) {\n const isInPendingSuspense = !!suspense.pendingBranch;\n if (isInPendingSuspense) {\n suspense.deps++;\n }\n const hydratedEl = instance.vnode.el;\n instance.asyncDep.catch((err) => {\n handleError(err, instance, 0);\n }).then((asyncSetupResult) => {\n if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {\n return;\n }\n instance.asyncResolved = true;\n const { vnode: vnode2 } = instance;\n if (!!(process.env.NODE_ENV !== \"production\")) {\n pushWarningContext(vnode2);\n }\n handleSetupResult(instance, asyncSetupResult, false);\n if (hydratedEl) {\n vnode2.el = hydratedEl;\n }\n const placeholder = !hydratedEl && instance.subTree.el;\n setupRenderEffect(\n instance,\n vnode2,\n // component may have been moved before resolve.\n // if this is not a hydration, instance.subTree will be the comment\n // placeholder.\n parentNode(hydratedEl || instance.subTree.el),\n // anchor will not be used if this is hydration, so only need to\n // consider the comment placeholder case.\n hydratedEl ? null : next(instance.subTree),\n suspense,\n namespace,\n optimized\n );\n if (placeholder) {\n remove(placeholder);\n }\n updateHOCHostEl(instance, vnode2.el);\n if (!!(process.env.NODE_ENV !== \"production\")) {\n popWarningContext();\n }\n if (isInPendingSuspense && --suspense.deps === 0) {\n suspense.resolve();\n }\n });\n },\n unmount(parentSuspense2, doRemove) {\n suspense.isUnmounted = true;\n if (suspense.activeBranch) {\n unmount(\n suspense.activeBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n if (suspense.pendingBranch) {\n unmount(\n suspense.pendingBranch,\n parentComponent,\n parentSuspense2,\n doRemove\n );\n }\n }\n };\n return suspense;\n}\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, namespace, slotScopeIds, optimized, rendererInternals, hydrateNode) {\n const suspense = vnode.suspense = createSuspenseBoundary(\n vnode,\n parentSuspense,\n parentComponent,\n node.parentNode,\n // eslint-disable-next-line no-restricted-globals\n document.createElement(\"div\"),\n null,\n namespace,\n slotScopeIds,\n optimized,\n rendererInternals,\n true\n );\n const result = hydrateNode(\n node,\n suspense.pendingBranch = vnode.ssContent,\n parentComponent,\n suspense,\n slotScopeIds,\n optimized\n );\n if (suspense.deps === 0) {\n suspense.resolve(false, true);\n }\n return result;\n}\nfunction normalizeSuspenseChildren(vnode) {\n const { shapeFlag, children } = vnode;\n const isSlotChildren = shapeFlag & 32;\n vnode.ssContent = normalizeSuspenseSlot(\n isSlotChildren ? children.default : children\n );\n vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);\n}\nfunction normalizeSuspenseSlot(s) {\n let block;\n if (isFunction(s)) {\n const trackBlock = isBlockTreeEnabled && s._c;\n if (trackBlock) {\n s._d = false;\n openBlock();\n }\n s = s();\n if (trackBlock) {\n s._d = true;\n block = currentBlock;\n closeBlock();\n }\n }\n if (isArray(s)) {\n const singleChild = filterSingleRoot(s);\n if (!!(process.env.NODE_ENV !== \"production\") && !singleChild && s.filter((child) => child !== NULL_DYNAMIC_COMPONENT).length > 0) {\n warn$1(` slots expect a single root node.`);\n }\n s = singleChild;\n }\n s = normalizeVNode(s);\n if (block && !s.dynamicChildren) {\n s.dynamicChildren = block.filter((c) => c !== s);\n }\n return s;\n}\nfunction queueEffectWithSuspense(fn, suspense) {\n if (suspense && suspense.pendingBranch) {\n if (isArray(fn)) {\n suspense.effects.push(...fn);\n } else {\n suspense.effects.push(fn);\n }\n } else {\n queuePostFlushCb(fn);\n }\n}\nfunction setActiveBranch(suspense, branch) {\n suspense.activeBranch = branch;\n const { vnode, parentComponent } = suspense;\n let el = branch.el;\n while (!el && branch.component) {\n branch = branch.component.subTree;\n el = branch.el;\n }\n vnode.el = el;\n if (parentComponent && parentComponent.subTree === vnode) {\n parentComponent.vnode.el = el;\n updateHOCHostEl(parentComponent, el);\n }\n}\nfunction isVNodeSuspensible(vnode) {\n var _a;\n return ((_a = vnode.props) == null ? void 0 : _a.suspensible) != null && vnode.props.suspensible !== false;\n}\n\nconst ssrContextKey = Symbol.for(\"v-scx\");\nconst useSSRContext = () => {\n {\n const ctx = inject(ssrContextKey);\n if (!ctx) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(\n `Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build.`\n );\n }\n return ctx;\n }\n};\n\nfunction watchEffect(effect, options) {\n return doWatch(effect, null, options);\n}\nfunction watchPostEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"post\" }) : { flush: \"post\" }\n );\n}\nfunction watchSyncEffect(effect, options) {\n return doWatch(\n effect,\n null,\n !!(process.env.NODE_ENV !== \"production\") ? extend({}, options, { flush: \"sync\" }) : { flush: \"sync\" }\n );\n}\nconst INITIAL_WATCHER_VALUE = {};\nfunction watch(source, cb, options) {\n if (!!(process.env.NODE_ENV !== \"production\") && !isFunction(cb)) {\n warn$1(\n `\\`watch(fn, options?)\\` signature has been moved to a separate API. Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only supports \\`watch(source, cb, options?) signature.`\n );\n }\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, {\n immediate,\n deep,\n flush,\n once,\n onTrack,\n onTrigger\n} = EMPTY_OBJ) {\n if (cb && once) {\n const _cb = cb;\n cb = (...args) => {\n _cb(...args);\n unwatch();\n };\n }\n if (!!(process.env.NODE_ENV !== \"production\") && deep !== void 0 && typeof deep === \"number\") {\n warn$1(\n `watch() \"deep\" option with number value will be used as watch depth in future versions. Please use a boolean instead to avoid potential breakage.`\n );\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !cb) {\n if (immediate !== void 0) {\n warn$1(\n `watch() \"immediate\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (deep !== void 0) {\n warn$1(\n `watch() \"deep\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n if (once !== void 0) {\n warn$1(\n `watch() \"once\" option is only respected when using the watch(source, callback, options?) signature.`\n );\n }\n }\n const warnInvalidSource = (s) => {\n warn$1(\n `Invalid watch source: `,\n s,\n `A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.`\n );\n };\n const instance = currentInstance;\n const reactiveGetter = (source2) => deep === true ? source2 : (\n // for deep: false, only traverse root-level properties\n traverse(source2, deep === false ? 1 : void 0)\n );\n let getter;\n let forceTrigger = false;\n let isMultiSource = false;\n if (isRef(source)) {\n getter = () => source.value;\n forceTrigger = isShallow(source);\n } else if (isReactive(source)) {\n getter = () => reactiveGetter(source);\n forceTrigger = true;\n } else if (isArray(source)) {\n isMultiSource = true;\n forceTrigger = source.some((s) => isReactive(s) || isShallow(s));\n getter = () => source.map((s) => {\n if (isRef(s)) {\n return s.value;\n } else if (isReactive(s)) {\n return reactiveGetter(s);\n } else if (isFunction(s)) {\n return callWithErrorHandling(s, instance, 2);\n } else {\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(s);\n }\n });\n } else if (isFunction(source)) {\n if (cb) {\n getter = () => callWithErrorHandling(source, instance, 2);\n } else {\n getter = () => {\n if (cleanup) {\n cleanup();\n }\n return callWithAsyncErrorHandling(\n source,\n instance,\n 3,\n [onCleanup]\n );\n };\n }\n } else {\n getter = NOOP;\n !!(process.env.NODE_ENV !== \"production\") && warnInvalidSource(source);\n }\n if (cb && deep) {\n const baseGetter = getter;\n getter = () => traverse(baseGetter());\n }\n let cleanup;\n let onCleanup = (fn) => {\n cleanup = effect.onStop = () => {\n callWithErrorHandling(fn, instance, 4);\n cleanup = effect.onStop = void 0;\n };\n };\n let ssrCleanup;\n if (isInSSRComponentSetup) {\n onCleanup = NOOP;\n if (!cb) {\n getter();\n } else if (immediate) {\n callWithAsyncErrorHandling(cb, instance, 3, [\n getter(),\n isMultiSource ? [] : void 0,\n onCleanup\n ]);\n }\n if (flush === \"sync\") {\n const ctx = useSSRContext();\n ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);\n } else {\n return NOOP;\n }\n }\n let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;\n const job = () => {\n if (!effect.active || !effect.dirty) {\n return;\n }\n if (cb) {\n const newValue = effect.run();\n if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {\n if (cleanup) {\n cleanup();\n }\n callWithAsyncErrorHandling(cb, instance, 3, [\n newValue,\n // pass undefined as the old value when it's changed for the first time\n oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,\n onCleanup\n ]);\n oldValue = newValue;\n }\n } else {\n effect.run();\n }\n };\n job.allowRecurse = !!cb;\n let scheduler;\n if (flush === \"sync\") {\n scheduler = job;\n } else if (flush === \"post\") {\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\n } else {\n job.pre = true;\n if (instance)\n job.id = instance.uid;\n scheduler = () => queueJob(job);\n }\n const effect = new ReactiveEffect(getter, NOOP, scheduler);\n const scope = getCurrentScope();\n const unwatch = () => {\n effect.stop();\n if (scope) {\n remove(scope.effects, effect);\n }\n };\n if (!!(process.env.NODE_ENV !== \"production\")) {\n effect.onTrack = onTrack;\n effect.onTrigger = onTrigger;\n }\n if (cb) {\n if (immediate) {\n job();\n } else {\n oldValue = effect.run();\n }\n } else if (flush === \"post\") {\n queuePostRenderEffect(\n effect.run.bind(effect),\n instance && instance.suspense\n );\n } else {\n effect.run();\n }\n if (ssrCleanup)\n ssrCleanup.push(unwatch);\n return unwatch;\n}\nfunction instanceWatch(source, value, options) {\n const publicThis = this.proxy;\n const getter = isString(source) ? source.includes(\".\") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);\n let cb;\n if (isFunction(value)) {\n cb = value;\n } else {\n cb = value.handler;\n options = value;\n }\n const reset = setCurrentInstance(this);\n const res = doWatch(getter, cb.bind(publicThis), options);\n reset();\n return res;\n}\nfunction createPathGetter(ctx, path) {\n const segments = path.split(\".\");\n return () => {\n let cur = ctx;\n for (let i = 0; i < segments.length && cur; i++) {\n cur = cur[segments[i]];\n }\n return cur;\n };\n}\nfunction traverse(value, depth, currentDepth = 0, seen) {\n if (!isObject(value) || value[\"__v_skip\"]) {\n return value;\n }\n if (depth && depth > 0) {\n if (currentDepth >= depth) {\n return value;\n }\n currentDepth++;\n }\n seen = seen || /* @__PURE__ */ new Set();\n if (seen.has(value)) {\n return value;\n }\n seen.add(value);\n if (isRef(value)) {\n traverse(value.value, depth, currentDepth, seen);\n } else if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n traverse(value[i], depth, currentDepth, seen);\n }\n } else if (isSet(value) || isMap(value)) {\n value.forEach((v) => {\n traverse(v, depth, currentDepth, seen);\n });\n } else if (isPlainObject(value)) {\n for (const key in value) {\n traverse(value[key], depth, currentDepth, seen);\n }\n }\n return value;\n}\n\nfunction validateDirectiveName(name) {\n if (isBuiltInDirective(name)) {\n warn$1(\"Do not use built-in directive ids as custom directive id: \" + name);\n }\n}\nfunction withDirectives(vnode, directives) {\n if (currentRenderingInstance === null) {\n !!(process.env.NODE_ENV !== \"production\") && warn$1(`withDirectives can only be used inside render functions.`);\n return vnode;\n }\n const instance = getExposeProxy(currentRenderingInstance) || currentRenderingInstance.proxy;\n const bindings = vnode.dirs || (vnode.dirs = []);\n for (let i = 0; i < directives.length; i++) {\n let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];\n if (dir) {\n if (isFunction(dir)) {\n dir = {\n mounted: dir,\n updated: dir\n };\n }\n if (dir.deep) {\n traverse(value);\n }\n bindings.push({\n dir,\n instance,\n value,\n oldValue: void 0,\n arg,\n modifiers\n });\n }\n }\n return vnode;\n}\nfunction invokeDirectiveHook(vnode, prevVNode, instance, name) {\n const bindings = vnode.dirs;\n const oldBindings = prevVNode && prevVNode.dirs;\n for (let i = 0; i < bindings.length; i++) {\n const binding = bindings[i];\n if (oldBindings) {\n binding.oldValue = oldBindings[i].value;\n }\n let hook = binding.dir[name];\n if (hook) {\n pauseTracking();\n callWithAsyncErrorHandling(hook, instance, 8, [\n vnode.el,\n binding,\n vnode,\n prevVNode\n ]);\n resetTracking();\n }\n }\n}\n\nconst leaveCbKey = Symbol(\"_leaveCb\");\nconst enterCbKey = Symbol(\"_enterCb\");\nfunction useTransitionState() {\n const state = {\n isMounted: false,\n isLeaving: false,\n isUnmounting: false,\n leavingVNodes: /* @__PURE__ */ new Map()\n };\n onMounted(() => {\n state.isMounted = true;\n });\n onBeforeUnmount(() => {\n state.isUnmounting = true;\n });\n return state;\n}\nconst TransitionHookValidator = [Function, Array];\nconst BaseTransitionPropsValidators = {\n mode: String,\n appear: Boolean,\n persisted: Boolean,\n // enter\n onBeforeEnter: TransitionHookValidator,\n onEnter: TransitionHookValidator,\n onAfterEnter: TransitionHookValidator,\n onEnterCancelled: TransitionHookValidator,\n // leave\n onBeforeLeave: TransitionHookValidator,\n onLeave: TransitionHookValidator,\n onAfterLeave: TransitionHookValidator,\n onLeaveCancelled: TransitionHookValidator,\n // appear\n onBeforeAppear: TransitionHookValidator,\n onAppear: TransitionHookValidator,\n onAfterAppear: TransitionHookValidator,\n onAppearCancelled: TransitionHookValidator\n};\nconst BaseTransitionImpl = {\n name: `BaseTransition`,\n props: BaseTransitionPropsValidators,\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const state = useTransitionState();\n return () => {\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\n if (!children || !children.length) {\n return;\n }\n let child = children[0];\n if (children.length > 1) {\n let hasFound = false;\n for (const c of children) {\n if (c.type !== Comment) {\n if (!!(process.env.NODE_ENV !== \"production\") && hasFound) {\n warn$1(\n \" can only be used on a single element or component. Use for lists.\"\n );\n break;\n }\n child = c;\n hasFound = true;\n if (!!!(process.env.NODE_ENV !== \"production\"))\n break;\n }\n }\n }\n const rawProps = toRaw(props);\n const { mode } = rawProps;\n if (!!(process.env.NODE_ENV !== \"production\") && mode && mode !== \"in-out\" && mode !== \"out-in\" && mode !== \"default\") {\n warn$1(`invalid mode: ${mode}`);\n }\n if (state.isLeaving) {\n return emptyPlaceholder(child);\n }\n const innerChild = getKeepAliveChild(child);\n if (!innerChild) {\n return emptyPlaceholder(child);\n }\n const enterHooks = resolveTransitionHooks(\n innerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(innerChild, enterHooks);\n const oldChild = instance.subTree;\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\n if (oldInnerChild && oldInnerChild.type !== Comment && !isSameVNodeType(innerChild, oldInnerChild)) {\n const leavingHooks = resolveTransitionHooks(\n oldInnerChild,\n rawProps,\n state,\n instance\n );\n setTransitionHooks(oldInnerChild, leavingHooks);\n if (mode === \"out-in\") {\n state.isLeaving = true;\n leavingHooks.afterLeave = () => {\n state.isLeaving = false;\n if (instance.update.active !== false) {\n instance.effect.dirty = true;\n instance.update();\n }\n };\n return emptyPlaceholder(child);\n } else if (mode === \"in-out\" && innerChild.type !== Comment) {\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\n const leavingVNodesCache = getLeavingNodesForType(\n state,\n oldInnerChild\n );\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\n el[leaveCbKey] = () => {\n earlyRemove();\n el[leaveCbKey] = void 0;\n delete enterHooks.delayedLeave;\n };\n enterHooks.delayedLeave = delayedLeave;\n };\n }\n }\n return child;\n };\n }\n};\nconst BaseTransition = BaseTransitionImpl;\nfunction getLeavingNodesForType(state, vnode) {\n const { leavingVNodes } = state;\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\n if (!leavingVNodesCache) {\n leavingVNodesCache = /* @__PURE__ */ Object.create(null);\n leavingVNodes.set(vnode.type, leavingVNodesCache);\n }\n return leavingVNodesCache;\n}\nfunction resolveTransitionHooks(vnode, props, state, instance) {\n const {\n appear,\n mode,\n persisted = false,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onEnterCancelled,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n onLeaveCancelled,\n onBeforeAppear,\n onAppear,\n onAfterAppear,\n onAppearCancelled\n } = props;\n const key = String(vnode.key);\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\n const callHook = (hook, args) => {\n hook && callWithAsyncErrorHandling(\n hook,\n instance,\n 9,\n args\n );\n };\n const callAsyncHook = (hook, args) => {\n const done = args[1];\n callHook(hook, args);\n if (isArray(hook)) {\n if (hook.every((hook2) => hook2.length <= 1))\n done();\n } else if (hook.length <= 1) {\n done();\n }\n };\n const hooks = {\n mode,\n persisted,\n beforeEnter(el) {\n let hook = onBeforeEnter;\n if (!state.isMounted) {\n if (appear) {\n hook = onBeforeAppear || onBeforeEnter;\n } else {\n return;\n }\n }\n if (el[leaveCbKey]) {\n el[leaveCbKey](\n true\n /* cancelled */\n );\n }\n const leavingVNode = leavingVNodesCache[key];\n if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el[leaveCbKey]) {\n leavingVNode.el[leaveCbKey]();\n }\n callHook(hook, [el]);\n },\n enter(el) {\n let hook = onEnter;\n let afterHook = onAfterEnter;\n let cancelHook = onEnterCancelled;\n if (!state.isMounted) {\n if (appear) {\n hook = onAppear || onEnter;\n afterHook = onAfterAppear || onAfterEnter;\n cancelHook = onAppearCancelled || onEnterCancelled;\n } else {\n return;\n }\n }\n let called = false;\n const done = el[enterCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n if (cancelled) {\n callHook(cancelHook, [el]);\n } else {\n callHook(afterHook, [el]);\n }\n if (hooks.delayedLeave) {\n hooks.delayedLeave();\n }\n el[enterCbKey] = void 0;\n };\n if (hook) {\n callAsyncHook(hook, [el, done]);\n } else {\n done();\n }\n },\n leave(el, remove) {\n const key2 = String(vnode.key);\n if (el[enterCbKey]) {\n el[enterCbKey](\n true\n /* cancelled */\n );\n }\n if (state.isUnmounting) {\n return remove();\n }\n callHook(onBeforeLeave, [el]);\n let called = false;\n const done = el[leaveCbKey] = (cancelled) => {\n if (called)\n return;\n called = true;\n remove();\n if (cancelled) {\n callHook(onLeaveCancelled, [el]);\n } else {\n callHook(onAfterLeave, [el]);\n }\n el[leaveCbKey] = void 0;\n if (leavingVNodesCache[key2] === vnode) {\n delete leavingVNodesCache[key2];\n }\n };\n leavingVNodesCache[key2] = vnode;\n if (onLeave) {\n callAsyncHook(onLeave, [el, done]);\n } else {\n done();\n }\n },\n clone(vnode2) {\n return resolveTransitionHooks(vnode2, props, state, instance);\n }\n };\n return hooks;\n}\nfunction emptyPlaceholder(vnode) {\n if (isKeepAlive(vnode)) {\n vnode = cloneVNode(vnode);\n vnode.children = null;\n return vnode;\n }\n}\nfunction getKeepAliveChild(vnode) {\n return isKeepAlive(vnode) ? (\n // #7121 ensure get the child component subtree in case\n // it's been replaced during HMR\n !!(process.env.NODE_ENV !== \"production\") && vnode.component ? vnode.component.subTree : vnode.children ? vnode.children[0] : void 0\n ) : vnode;\n}\nfunction setTransitionHooks(vnode, hooks) {\n if (vnode.shapeFlag & 6 && vnode.component) {\n setTransitionHooks(vnode.component.subTree, hooks);\n } else if (vnode.shapeFlag & 128) {\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\n } else {\n vnode.transition = hooks;\n }\n}\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\n let ret = [];\n let keyedFragmentCount = 0;\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);\n if (child.type === Fragment) {\n if (child.patchFlag & 128)\n keyedFragmentCount++;\n ret = ret.concat(\n getTransitionRawChildren(child.children, keepComment, key)\n );\n } else if (keepComment || child.type !== Comment) {\n ret.push(key != null ? cloneVNode(child, { key }) : child);\n }\n }\n if (keyedFragmentCount > 1) {\n for (let i = 0; i < ret.length; i++) {\n ret[i].patchFlag = -2;\n }\n }\n return ret;\n}\n\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineComponent(options, extraOptions) {\n return isFunction(options) ? (\n // #8326: extend call and options.name access are considered side-effects\n // by Rollup, so we have to wrap it in a pure-annotated IIFE.\n /* @__PURE__ */ (() => extend({ name: options.name }, extraOptions, { setup: options }))()\n ) : options;\n}\n\nconst isAsyncWrapper = (i) => !!i.type.__asyncLoader;\n/*! #__NO_SIDE_EFFECTS__ */\n// @__NO_SIDE_EFFECTS__\nfunction defineAsyncComponent(source) {\n if (isFunction(source)) {\n source = { loader: source };\n }\n const {\n loader,\n loadingComponent,\n errorComponent,\n delay = 200,\n timeout,\n // undefined = never times out\n suspensible = true,\n onError: userOnError\n } = source;\n let pendingRequest = null;\n let resolvedComp;\n let retries = 0;\n const retry = () => {\n retries++;\n pendingRequest = null;\n return load();\n };\n const load = () => {\n let thisRequest;\n return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {\n err = err instanceof Error ? err : new Error(String(err));\n if (userOnError) {\n return new Promise((resolve, reject) => {\n const userRetry = () => resolve(retry());\n const userFail = () => reject(err);\n userOnError(err, userRetry, userFail, retries + 1);\n });\n } else {\n throw err;\n }\n }).then((comp) => {\n if (thisRequest !== pendingRequest && pendingRequest) {\n return pendingRequest;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && !comp) {\n warn$1(\n `Async component loader resolved to undefined. If you are using retry(), make sure to return its return value.`\n );\n }\n if (comp && (comp.__esModule || comp[Symbol.toStringTag] === \"Module\")) {\n comp = comp.default;\n }\n if (!!(process.env.NODE_ENV !== \"production\") && comp && !isObject(comp) && !isFunction(comp)) {\n throw new Error(`Invalid async component load result: ${comp}`);\n }\n resolvedComp = comp;\n return comp;\n }));\n };\n return defineComponent({\n name: \"AsyncComponentWrapper\",\n __asyncLoader: load,\n get __asyncResolved() {\n return resolvedComp;\n },\n setup() {\n const instance = currentInstance;\n if (resolvedComp) {\n return () => createInnerComp(resolvedComp, instance);\n }\n const onError = (err) => {\n pendingRequest = null;\n handleError(\n err,\n instance,\n 13,\n !errorComponent\n );\n };\n if (suspensible && instance.suspense || isInSSRComponentSetup) {\n return load().then((comp) => {\n return () => createInnerComp(comp, instance);\n }).catch((err) => {\n onError(err);\n return () => errorComponent ? createVNode(errorComponent, {\n error: err\n }) : null;\n });\n }\n const loaded = ref(false);\n const error = ref();\n const delayed = ref(!!delay);\n if (delay) {\n setTimeout(() => {\n delayed.value = false;\n }, delay);\n }\n if (timeout != null) {\n setTimeout(() => {\n if (!loaded.value && !error.value) {\n const err = new Error(\n `Async component timed out after ${timeout}ms.`\n );\n onError(err);\n error.value = err;\n }\n }, timeout);\n }\n load().then(() => {\n loaded.value = true;\n if (instance.parent && isKeepAlive(instance.parent.vnode)) {\n instance.parent.effect.dirty = true;\n queueJob(instance.parent.update);\n }\n }).catch((err) => {\n onError(err);\n error.value = err;\n });\n return () => {\n if (loaded.value && resolvedComp) {\n return createInnerComp(resolvedComp, instance);\n } else if (error.value && errorComponent) {\n return createVNode(errorComponent, {\n error: error.value\n });\n } else if (loadingComponent && !delayed.value) {\n return createVNode(loadingComponent);\n }\n };\n }\n });\n}\nfunction createInnerComp(comp, parent) {\n const { ref: ref2, props, children, ce } = parent.vnode;\n const vnode = createVNode(comp, props, children);\n vnode.ref = ref2;\n vnode.ce = ce;\n delete parent.vnode.ce;\n return vnode;\n}\n\nconst isKeepAlive = (vnode) => vnode.type.__isKeepAlive;\nconst KeepAliveImpl = {\n name: `KeepAlive`,\n // Marker for special handling inside the renderer. We are not using a ===\n // check directly on KeepAlive in the renderer, because importing it directly\n // would prevent it from being tree-shaken.\n __isKeepAlive: true,\n props: {\n include: [String, RegExp, Array],\n exclude: [String, RegExp, Array],\n max: [String, Number]\n },\n setup(props, { slots }) {\n const instance = getCurrentInstance();\n const sharedContext = instance.ctx;\n if (!sharedContext.renderer) {\n return () => {\n const children = slots.default && slots.default();\n return children && children.length === 1 ? children[0] : children;\n };\n }\n const cache = /* @__PURE__ */ new Map();\n const keys = /* @__PURE__ */ new Set();\n let current = null;\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n instance.__v_cache = cache;\n }\n const parentSuspense = instance.suspense;\n const {\n renderer: {\n p: patch,\n m: move,\n um: _unmount,\n o: { createElement }\n }\n } = sharedContext;\n const storageContainer = createElement(\"div\");\n sharedContext.activate = (vnode, container, anchor, namespace, optimized) => {\n const instance2 = vnode.component;\n move(vnode, container, anchor, 0, parentSuspense);\n patch(\n instance2.vnode,\n vnode,\n container,\n anchor,\n instance2,\n parentSuspense,\n namespace,\n vnode.slotScopeIds,\n optimized\n );\n queuePostRenderEffect(() => {\n instance2.isDeactivated = false;\n if (instance2.a) {\n invokeArrayFns(instance2.a);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeMounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n sharedContext.deactivate = (vnode) => {\n const instance2 = vnode.component;\n move(vnode, storageContainer, null, 1, parentSuspense);\n queuePostRenderEffect(() => {\n if (instance2.da) {\n invokeArrayFns(instance2.da);\n }\n const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;\n if (vnodeHook) {\n invokeVNodeHook(vnodeHook, instance2.parent, vnode);\n }\n instance2.isDeactivated = true;\n }, parentSuspense);\n if (!!(process.env.NODE_ENV !== \"production\") || __VUE_PROD_DEVTOOLS__) {\n devtoolsComponentAdded(instance2);\n }\n };\n function unmount(vnode) {\n resetShapeFlag(vnode);\n _unmount(vnode, instance, parentSuspense, true);\n }\n function pruneCache(filter) {\n cache.forEach((vnode, key) => {\n const name = getComponentName(vnode.type);\n if (name && (!filter || !filter(name))) {\n pruneCacheEntry(key);\n }\n });\n }\n function pruneCacheEntry(key) {\n const cached = cache.get(key);\n if (!current || !isSameVNodeType(cached, current)) {\n unmount(cached);\n } else if (current) {\n resetShapeFlag(current);\n }\n cache.delete(key);\n keys.delete(key);\n }\n watch(\n () => [props.include, props.exclude],\n ([include, exclude]) => {\n include && pruneCache((name) => matches(include, name));\n exclude && pruneCache((name) => !matches(exclude, name));\n },\n // prune post-render after `current` has been updated\n { flush: \"post\", deep: true }\n );\n let pendingCacheKey = null;\n const cacheSubtree = () => {\n if (pendingCacheKey != null) {\n cache.set(pendingCacheKey, getInnerChild(instance.subTree));\n }\n };\n onMounted(cacheSubtree);\n onUpdated(cacheSubtree);\n onBeforeUnmount(() => {\n cache.forEach((cached) => {\n const { subTree, suspense } = instance;\n const vnode = getInnerChild(subTree);\n if (cached.type === vnode.type && cached.key === vnode.key) {\n resetShapeFlag(vnode);\n const da = vnode.component.da;\n da && queuePostRenderEffect(da, suspense);\n return;\n }\n unmount(cached);\n });\n });\n return () => {\n pendingCacheKey = null;\n if (!slots.default) {\n return null;\n }\n const children = slots.default();\n const rawVNode = children[0];\n if (children.length > 1) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n warn$1(`KeepAlive should contain exactly one component child.`);\n }\n current = null;\n return children;\n } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {\n current = null;\n return rawVNode;\n }\n let vnode = getInnerChild(rawVNode);\n const comp = vnode.type;\n const name = getComponentName(\n isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp\n );\n const { include, exclude, max } = props;\n if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {\n current = vnode;\n return rawVNode;\n }\n const key = vnode.key == null ? comp : vnode.key;\n const cachedVNode = cache.get(key);\n if (vnode.el) {\n vnode = cloneVNode(vnode);\n if (rawVNode.shapeFlag & 128) {\n rawVNode.ssContent = vnode;\n }\n }\n pendingCacheKey = key;\n if (cachedVNode) {\n vnode.el = cachedVNode.el;\n vnode.component = cachedVNode.component;\n if (vnode.transition) {\n setTransitionHooks(vnode, vnode.transition);\n }\n vnode.shapeFlag |= 512;\n keys.delete(key);\n keys.add(key);\n } else {\n keys.add(key);\n if (max && keys.size > parseInt(max, 10)) {\n pruneCacheEntry(keys.values().next().value);\n }\n }\n vnode.shapeFlag |= 256;\n current = vnode;\n return isSuspense(rawVNode.type) ? rawVNode : vnode;\n };\n }\n};\nconst KeepAlive = KeepAliveImpl;\nfunction matches(pattern, name) {\n if (isArray(pattern)) {\n return pattern.some((p) => matches(p, name));\n } else if (isString(pattern)) {\n return pattern.split(\",\").includes(name);\n } else if (isRegExp(pattern)) {\n return pattern.test(name);\n }\n return false;\n}\nfunction onActivated(hook, target) {\n registerKeepAliveHook(hook, \"a\", target);\n}\nfunction onDeactivated(hook, target) {\n registerKeepAliveHook(hook, \"da\", target);\n}\nfunction registerKeepAliveHook(hook, type, target = currentInstance) {\n const wrappedHook = hook.__wdc || (hook.__wdc = () => {\n let current = target;\n while (current) {\n if (current.isDeactivated) {\n return;\n }\n current = current.parent;\n }\n return hook();\n });\n injectHook(type, wrappedHook, target);\n if (target) {\n let current = target.parent;\n while (current && current.parent) {\n if (isKeepAlive(current.parent.vnode)) {\n injectToKeepAliveRoot(wrappedHook, type, target, current);\n }\n current = current.parent;\n }\n }\n}\nfunction injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {\n const injected = injectHook(\n type,\n hook,\n keepAliveRoot,\n true\n /* prepend */\n );\n onUnmounted(() => {\n remove(keepAliveRoot[type], injected);\n }, target);\n}\nfunction resetShapeFlag(vnode) {\n vnode.shapeFlag &= ~256;\n vnode.shapeFlag &= ~512;\n}\nfunction getInnerChild(vnode) {\n return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;\n}\n\nfunction injectHook(type, hook, target = currentInstance, prepend = false) {\n if (target) {\n const hooks = target[type] || (target[type] = []);\n const wrappedHook = hook.__weh || (hook.__weh = (...args) => {\n if (target.isUnmounted) {\n return;\n }\n pauseTracking();\n const reset = setCurrentInstance(target);\n const res = callWithAsyncErrorHandling(hook, target, type, args);\n reset();\n resetTracking();\n return res;\n });\n if (prepend) {\n hooks.unshift(wrappedHook);\n } else {\n hooks.push(wrappedHook);\n }\n return wrappedHook;\n } else if (!!(process.env.NODE_ENV !== \"production\")) {\n const apiName = toHandlerKey(ErrorTypeStrings$1[type].replace(/ hook$/, \"\"));\n warn$1(\n `${apiName} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup().` + (` If you are using async setup(), make sure to register lifecycle hooks before the first await statement.` )\n );\n }\n}\nconst createHook = (lifecycle) => (hook, target = currentInstance) => (\n // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)\n (!isInSSRComponentSetup || lifecycle === \"sp\") && injectHook(lifecycle, (...args) => hook(...args), target)\n);\nconst onBeforeMount = createHook(\"bm\");\nconst onMounted = createHook(\"m\");\nconst onBeforeUpdate = createHook(\"bu\");\nconst onUpdated = createHook(\"u\");\nconst onBeforeUnmount = createHook(\"bum\");\nconst onUnmounted = createHook(\"um\");\nconst onServerPrefetch = createHook(\"sp\");\nconst onRenderTriggered = createHook(\n \"rtg\"\n);\nconst onRenderTracked = createHook(\n \"rtc\"\n);\nfunction onErrorCaptured(hook, target = currentInstance) {\n injectHook(\"ec\", hook, target);\n}\n\nfunction renderList(source, renderItem, cache, index) {\n let ret;\n const cached = cache && cache[index];\n if (isArray(source) || isString(source)) {\n ret = new Array(source.length);\n for (let i = 0, l = source.length; i < l; i++) {\n ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);\n }\n } else if (typeof source === \"number\") {\n if (!!(process.env.NODE_ENV !== \"production\") && !Number.isInteger(source)) {\n warn$1(`The v-for range expect an integer value but got ${source}.`);\n }\n ret = new Array(source);\n for (let i = 0; i < source; i++) {\n ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);\n }\n } else if (isObject(source)) {\n if (source[Symbol.iterator]) {\n ret = Array.from(\n source,\n (item, i) => renderItem(item, i, void 0, cached && cached[i])\n );\n } else {\n const keys = Object.keys(source);\n ret = new Array(keys.length);\n for (let i = 0, l = keys.length; i < l; i++) {\n const key = keys[i];\n ret[i] = renderItem(source[key], key, i, cached && cached[i]);\n }\n }\n } else {\n ret = [];\n }\n if (cache) {\n cache[index] = ret;\n }\n return ret;\n}\n\nfunction createSlots(slots, dynamicSlots) {\n for (let i = 0; i < dynamicSlots.length; i++) {\n const slot = dynamicSlots[i];\n if (isArray(slot)) {\n for (let j = 0; j < slot.length; j++) {\n slots[slot[j].name] = slot[j].fn;\n }\n } else if (slot) {\n slots[slot.name] = slot.key ? (...args) => {\n const res = slot.fn(...args);\n if (res)\n res.key = slot.key;\n return res;\n } : slot.fn;\n }\n }\n return slots;\n}\n\nfunction renderSlot(slots, name, props = {}, fallback, noSlotted) {\n if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {\n if (name !== \"default\")\n props.name = name;\n return createVNode(\"slot\", props, fallback && fallback());\n }\n let slot = slots[name];\n if (!!(process.env.NODE_ENV !== \"production\") && slot && slot.length > 1) {\n warn$1(\n `SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template.`\n );\n slot = () => [];\n }\n if (slot && slot._c) {\n slot._d = false;\n }\n openBlock();\n const validSlotContent = slot && ensureValidVNode(slot(props));\n const rendered = createBlock(\n Fragment,\n {\n key: props.key || // slot content array of a dynamic conditional slot may have a branch\n // key attached in the `createSlots` helper, respect that\n validSlotContent && validSlotContent.key || `_${name}`\n },\n validSlotContent || (fallback ? fallback() : []),\n validSlotContent && slots._ === 1 ? 64 : -2\n );\n if (!noSlotted && rendered.scopeId) {\n rendered.slotScopeIds = [rendered.scopeId + \"-s\"];\n }\n if (slot && slot._c) {\n slot._d = true;\n }\n return rendered;\n}\nfunction ensureValidVNode(vnodes) {\n return vnodes.some((child) => {\n if (!isVNode(child))\n return true;\n if (child.type === Comment)\n return false;\n if (child.type === Fragment && !ensureValidVNode(child.children))\n return false;\n return true;\n }) ? vnodes : null;\n}\n\nfunction toHandlers(obj, preserveCaseIfNecessary) {\n const ret = {};\n if (!!(process.env.NODE_ENV !== \"production\") && !isObject(obj)) {\n warn$1(`v-on with no argument expects an object value.`);\n return ret;\n }\n for (const key in obj) {\n ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];\n }\n return ret;\n}\n\nconst getPublicInstance = (i) => {\n if (!i)\n return null;\n if (isStatefulComponent(i))\n return getExposeProxy(i) || i.proxy;\n return getPublicInstance(i.parent);\n};\nconst publicPropertiesMap = (\n // Move PURE marker to new line to workaround compiler discarding it\n // due to type annotation\n /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {\n $: (i) => i,\n $el: (i) => i.vnode.el,\n $data: (i) => i.data,\n $props: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.props) : i.props,\n $attrs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.attrs) : i.attrs,\n $slots: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.slots) : i.slots,\n $refs: (i) => !!(process.env.NODE_ENV !== \"production\") ? shallowReadonly(i.refs) : i.refs,\n $parent: (i) => getPublicInstance(i.parent),\n $root: (i) => getPublicInstance(i.root),\n $emit: (i) => i.emit,\n $options: (i) => __VUE_OPTIONS_API__ ? resolveMergedOptions(i) : i.type,\n $forceUpdate: (i) => i.f || (i.f = () => {\n i.effect.dirty = true;\n queueJob(i.update);\n }),\n $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),\n $watch: (i) => __VUE_OPTIONS_API__ ? instanceWatch.bind(i) : NOOP\n })\n);\nconst isReservedPrefix = (key) => key === \"_\" || key === \"$\";\nconst hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);\nconst PublicInstanceProxyHandlers = {\n get({ _: instance }, key) {\n const { ctx, setupState, data, props, accessCache, type, appContext } = instance;\n if (!!(process.env.NODE_ENV !== \"production\") && key === \"__isVue\") {\n return true;\n }\n let normalizedProps;\n if (key[0] !== \"$\") {\n const n = accessCache[key];\n if (n !== void 0) {\n switch (n) {\n case 1 /* SETUP */:\n return setupState[key];\n case 2 /* DATA */:\n return data[key];\n case 4 /* CONTEXT */:\n return ctx[key];\n case 3 /* PROPS */:\n return props[key];\n }\n } else if (hasSetupBinding(setupState, key)) {\n accessCache[key] = 1 /* SETUP */;\n return setupState[key];\n } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {\n accessCache[key] = 2 /* DATA */;\n return data[key];\n } else if (\n // only cache other properties when instance has declared (thus stable)\n // props\n (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)\n ) {\n accessCache[key] = 3 /* PROPS */;\n return props[key];\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (!__VUE_OPTIONS_API__ || shouldCacheAccess) {\n accessCache[key] = 0 /* OTHER */;\n }\n }\n const publicGetter = publicPropertiesMap[key];\n let cssModule, globalProperties;\n if (publicGetter) {\n if (key === \"$attrs\") {\n track(instance, \"get\", key);\n !!(process.env.NODE_ENV !== \"production\") && markAttrsAccessed();\n } else if (!!(process.env.NODE_ENV !== \"production\") && key === \"$slots\") {\n track(instance, \"get\", key);\n }\n return publicGetter(instance);\n } else if (\n // css module (injected by vue-loader)\n (cssModule = type.__cssModules) && (cssModule = cssModule[key])\n ) {\n return cssModule;\n } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {\n accessCache[key] = 4 /* CONTEXT */;\n return ctx[key];\n } else if (\n // global properties\n globalProperties = appContext.config.globalProperties, hasOwn(globalProperties, key)\n ) {\n {\n return globalProperties[key];\n }\n } else if (!!(process.env.NODE_ENV !== \"production\") && currentRenderingInstance && (!isString(key) || // #1091 avoid internal isRef/isVNode checks on component instance leading\n // to infinite warning loop\n key.indexOf(\"__v\") !== 0)) {\n if (data !== EMPTY_OBJ && isReservedPrefix(key[0]) && hasOwn(data, key)) {\n warn$1(\n `Property ${JSON.stringify(\n key\n )} must be accessed via $data because it starts with a reserved character (\"$\" or \"_\") and is not proxied on the render context.`\n );\n } else if (instance === currentRenderingInstance) {\n warn$1(\n `Property ${JSON.stringify(key)} was accessed during render but is not defined on instance.`\n );\n }\n }\n },\n set({ _: instance }, key, value) {\n const { data, setupState, ctx } = instance;\n if (hasSetupBinding(setupState, key)) {\n setupState[key] = value;\n return true;\n } else if (!!(process.env.NODE_ENV !== \"production\") && setupState.__isScriptSetup && hasOwn(setupState, key)) {\n warn$1(`Cannot mutate \n","export default \"data:image/svg+xml,%3csvg%20width='185'%20height='37'%20viewBox='0%200%20185%2037'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M23.4694%207.95518C21.997%206.70688%2020.0195%206.41223%2018.1614%206.41223C11.8952%206.41223%207.47036%208.38623%203.72574%2013.6984C3.02871%2014.6872%202.02975%2016.0504%201.73171%2017.27C1.11513%2019.7931%202.03722%2022.9521%202.54617%2025.3562C3.01634%2027.577%203.09501%2031.3632%205.18615%2032.8137C7.4063%2034.3538%209.31842%2034.8524%2011.8984%2034.6424C16.1031%2034.3002%2021.3045%2035.0085%2023.8485%2030.9708C25.3739%2028.5499%2025.2387%2026.156%2025.2387%2023.3846'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M16.1206%2024.5332C18.6681%2024.5332%2022.1089%2024.8539%2024.46%2023.8101C25.5347%2023.3329%2026.8223%2025.5178%2027.0082%2026.2977C27.3172%2027.5941%2028.0047%2028.8553%2028.1085%2030.2027C28.1479%2030.7143%2028.4979%2032.6679%2028.8903%2032.8639'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M45.5195%2018.9062C43.713%2018.9062%2041.8658%2018.7818%2040.0681%2018.9381C36.2347%2019.2714%2033.7237%2023.2894%2033.501%2026.7963C33.281%2030.2618%2033.2558%2031.0222%2036.2426%2031.5941C38.8324%2032.09%2042.1692%2033.9881%2044.2921%2031.8651C46.9026%2029.2547%2046.954%2027.0863%2046.954%2023.6243C46.954%2022.8699%2046.954%2022.1154%2046.954%2021.3609C46.954%2020.2014%2047.8089%2021.7147%2048.1336%2022.0941C51.3013%2025.7954%2054.4514%2029.5097%2057.5698%2033.2519'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M61.6381%2020.0537C61.6381%2021.7372%2062.2023%2023.4454%2062.6423%2025.0587C63.1023%2026.7457%2063.1996%2028.3964%2063.503%2030.0956C63.5397%2030.3013%2063.9334%2032.0179%2063.9334%2030.9564C63.9334%2028.6842%2064.3213%2026.5351%2064.7303%2024.2936C65.0731%2022.4155%2065.0927%2020.4723%2066.7069%2019.2886C68.0889%2018.2751%2068.2489%2018.1957%2069.1137%2019.6552C70.4103%2021.8431%2070.9237%2024.058%2071.409%2026.5252C71.6709%2027.8565%2071.807%2029.3128%2072.1901%2030.6057C72.5145%2031.7008%2072.2413%2030.174%2072.1901%2029.7768C71.7889%2026.6677%2071.4451%2021.4418%2073.529%2018.7626C74.3927%2017.6521%2077.3345%2021.2185%2078.0559%2022.1896C79.2855%2023.8449%2079.7521%2025.9628%2080.6381%2027.8003C80.952%2028.4514%2081.4351%2029.0699%2081.4351%2029.8087'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M84.8779%2024.9314C88.411%2024.9314%2091.9289%2024.6692%2095.4618%2024.6445C97.2723%2024.6318%2099.0792%2024.5265%20100.881%2024.3575C101.722%2024.2787%20100.539%2022.6444%20100.371%2022.3651C98.1466%2018.6573%2093.4209%2016.2697%2089.3091%2018.6193C88.3747%2019.1532%2087.7471%2020.572%2087.7471%2021.6319C87.7471%2022.9352%2087.9762%2024.2014%2088.1774%2025.4893C88.2736%2026.1048%2088.1463%2028.3941%2088.9585%2028.725C91.2752%2029.6689%2093.4985%2030.7979%2096.0675%2030.9406C97.0674%2030.9961%2098.6352%2031.2531%2099.5105%2030.6696'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M128.673%201.97827C125.774%204.39382%20124.402%206.86071%20122.951%2010.4263C120.878%2015.5174%20119.486%2021.4132%20122.058%2026.5572C123.395%2029.2315%20125.527%2031.4883%20128.657%2031.2275C130.832%2031.0462%20134.234%2030.0047%20136.101%2028.8046C139.748%2026.4601%20139.862%2019.3628%20139.862%2015.7501C139.862%2012.1221%20139.322%207.54722%20136.133%205.42123'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M145.314%2017.7585C145.314%2020.0361%20146.94%2022.8141%20147.864%2024.8676C148.314%2025.8674%20148.34%2027.0432%20149.187%2026.3659C149.547%2026.0784%20149.733%2025.3173%20149.968%2024.9314C150.702%2023.7254%20151.478%2022.5438%20152.295%2021.3928C152.999%2020.4007%20153.542%2019.3307%20154.208%2018.3324'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M159.946%2022.6363C162.329%2022.7852%20167.174%2024.139%20168.538%2021.2973C170.36%2017.5004%20164.404%2016.564%20161.955%2016.9139C160.772%2017.0829%20159.925%2018.3952%20159.596%2019.4164C158.844%2021.7461%20161.08%2023.8794%20162.465%2025.5054C163.229%2026.4021%20165.738%2028.7064%20166.896%2027.8644C167.871%2027.1554%20170.837%2027.8943%20171.997%2028.0876'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M177.448%2018.0455C177.559%2019.0398%20178.226%2019.8639%20178.596%2020.7552C179.176%2022.1549%20179.17%2024.1885%20179.17%2025.7284C179.17%2026.1851%20178.941%2027.3717%20179.233%2027.7367C179.632%2028.2343%20178.845%2025.8489%20178.739%2025.3617C178.372%2023.6722%20178.375%2021.8003%20179.313%2020.3408C180.093%2019.1282%20182.021%2017.7585%20183.473%2017.7585'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='20'%20height='24'%20viewBox='0%200%2020%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.82205%207.21589C1.69799%205.97529%201.30287%204.89144%201.62129%203.61774C1.85076%202.69986%204.09944%202.44983%204.55541%202.35143C7.48579%201.71907%2010.5606%201.12752%2013.5662%201.02336C14.8054%200.980419%2015.3672%201.79215%2016.1375%202.6294C17.3154%203.90983%2018.1631%205.05896%2018.3303%206.81438C18.4926%208.51806%2018.4244%209.76023%2017.9751%2011.4318C17.4987%2013.2044%2016.6239%2014.5602%2015.2958%2015.8329C13.9439%2017.1285%2012.4993%2018.5086%2010.6862%2019.1222C8.43473%2019.8843%205.35043%2018.6103%203.90682%2016.8058'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.96465%2014.165C6.0624%2015.0673%205.05937%2015.8567%203.97648%2016.4583C3.5156%2016.7143%204.31379%2018.1121%204.43204%2018.5199C4.67598%2019.361%205.05164%2020.1566%205.26595%2021.0062C5.35625%2021.3641%205.41003%2021.7576%205.57481%2022.0872'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='27'%20height='28'%20viewBox='0%200%2027%2028'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M7.18318%207.00292C8.70656%205.2824%2012.3997%202.9563%2014.2866%202.02173C14.2866%202.02173%2014.8832%202.61948%2015.0474%202.6664C15.4959%202.79455%2016.1389%203.36089%2016.5049%203.65543C17.9568%204.824%2019.5572%205.83512%2020.7173%207.35529C21.52%208.4071%2022.5307%209.34097%2023.2519%2010.4505C23.8801%2011.417%2024.5944%2012.3271%2025.242%2013.2815C25.3369%2013.4213%2026.1835%2014.7508%2025.8026%2014.779C25.4613%2014.8043%2025.066%2014.8224%2024.7295%2014.8871C24.0748%2015.013%2023.3668%2014.8956%2022.7034%2014.9392C22.3182%2014.9645%2021.9585%2015.0673%2021.5702%2015.0673C21.3286%2015.0673%2021.3499%2015.6677%2021.3499%2015.8601C21.3499%2017.4481%2021.1337%2019.0287%2021.1337%2020.6171C21.1337%2021.7162%2020.9575%2022.8015%2020.9215%2023.9005C20.9032%2024.4588%2020.8577%2025.0037%2020.7894%2025.5582C20.7708%2025.7084%2020.7943%2026.1086%2020.6292%2026.1829C20.2391%2026.3585%2019.6908%2026.311%2019.2598%2026.311C17.7708%2026.311%2016.2655%2026.3781%2014.7871%2026.1669C12.6155%2025.8566%2010.35%2025.8786%208.1602%2025.8786C7.6708%2025.8786%207.72775%2025.6701%207.72775%2025.2299C7.72775%2023.4468%207.39509%2021.6983%206.97496%2019.9684C6.71287%2018.8892%206.57455%2017.7665%206.57455%2016.657C6.57455%2016.2185%206.56854%2015.7901%206.6306%2015.3556C6.64647%2015.2446%206.7108%2014.8953%206.6306%2014.795C6.54591%2014.6892%206.2751%2014.7126%206.17813%2014.7069C5.64321%2014.6755%205.10811%2014.6497%204.57246%2014.6349C3.72344%2014.6113%202.86447%2014.6217%202.0178%2014.5468C1.87123%2014.5338%201.63271%2014.5257%201.50526%2014.4347C1.44289%2014.3901%201.95469%2013.7833%201.99377%2013.7379C2.27258%2013.4145%202.48111%2013.0473%202.6905%2012.6768C3.86252%2010.6033%205.61401%208.77515%207.18318%207.00292Z'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__C6q6eZ_S__\"","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;ttypeof value === \"boolean\" ? \"\".concat(value) : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>{\n return (props)=>{\n var ref;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants , defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (ref = config.compoundVariants) === null || ref === void 0 ? void 0 : ref.reduce((acc, param1)=>{\n let { class: cvClass , className: cvClassName , ...compoundVariantOptions } = param1;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n};\n\n\n//# sourceMappingURL=index.mjs.map","\n\n","export default \"__VITE_ASSET__kfgGGJ25__\"","export default \"data:image/svg+xml,%3csvg%20width='19'%20height='19'%20viewBox='0%200%2019%2019'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8.43059%201.02173C8.92229%201.02173%209.53439%201.02275%209.97498%201.27106C10.5034%201.27106%2012.5403%202.22615%2013.0052%202.45905C14.0392%202.97705%2015.371%203.51223%2015.9696%204.57836C16.7893%206.03845%2017.6095%207.16875%2017.9458%208.85366C18.0986%209.61892%2017.8799%2010.3522%2017.8799%2011.1196C17.8799%2012.048%2017.6975%2013.0301%2017.2212%2013.8403C16.362%2015.3016%2015.2688%2016.7749%2013.5029%2016.9496C11.889%2017.1093%2010.0937%2016.9919%208.49647%2016.7149C6.89916%2016.4379%203.35156%2016.2248%202.47261%2014.4636C2.06266%2013.6422%201.62576%2013.0587%201.34543%2012.1536C0.965334%2010.9266%200.934584%209.60991%201.08193%208.34033C1.28432%206.59645%201.69217%205.01032%203.12404%203.8377C4.23262%202.92984%205.51234%202.22705%206.78373%201.57906C7.30733%201.31219%207.83266%201.02173%208.43059%201.02173Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M7%207.12347C7.31959%207.01947%207.73803%207.03886%208.0731%207.03189C8.69347%207.01898%209.31513%207.02927%209.93567%207.02927C10.2532%207.02927%2010.5774%207.01257%2010.8947%207.02927C11.0553%207.03773%2010.9775%207.55206%2010.9591%207.6311C10.8308%208.18224%2010.3287%208.6837%209.88304%209.05456C9.17184%209.64635%208.40718%2010.2032%207.64327%2010.7397C7.46968%2010.8616%207.21317%2011.0028%207.09357%2011.1741C7.01759%2011.2828%206.99859%2011.2601%207.22807%2011.3154C7.72868%2011.436%208.2552%2011.48%208.76608%2011.5509C9.6289%2011.6704%2010.4852%2011.824%2011.348%2011.9434C11.5601%2011.9727%2011.7838%2012.0219%2012%2012.0219'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__DH0XSkXz__\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17%2014L12%209L7%2014'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='57'%20height='21'%20viewBox='0%200%2057%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20y='0.5'%20width='57'%20height='20'%20rx='10'%20fill='black'/%3e%3cpath%20d='M13.3579%2010.82L12.8899%2011.576C11.6659%2011.192%2010.7299%2010.4%2010.2499%209.38C9.78188%2010.508%208.80988%2011.372%207.53788%2011.78L7.05788%2011.012C8.65388%2010.52%209.74588%209.272%209.74588%207.844V7.676H7.35788V6.884H9.74588V5.564H10.7299V6.884H13.1059V7.676H10.7299V7.844C10.7299%209.152%2011.7739%2010.34%2013.3579%2010.82ZM9.61388%2013.28V15.452H14.4379V13.28H9.61388ZM8.65388%2016.244V12.5H15.4099V16.244H8.65388ZM17.0059%208.348V9.164H15.4099V11.996H14.4259V5.624H15.4099V8.348H17.0059ZM23.5329%2011.432H25.9809V8.84H23.4969C23.5929%209.26%2023.6529%209.716%2023.6529%2010.208C23.6529%2010.652%2023.6049%2011.06%2023.5329%2011.432ZM20.9769%2013.088C21.9969%2013.088%2022.7289%2011.96%2022.7289%2010.208C22.7289%208.468%2021.9969%207.34%2020.9769%207.34C19.9449%207.34%2019.2249%208.468%2019.2249%2010.208C19.2249%2011.96%2019.9449%2013.088%2020.9769%2013.088ZM25.9809%205.624H26.9649V16.412H25.9809V12.236H23.2929C22.8489%2013.328%2022.0089%2013.964%2020.9769%2013.964C19.4049%2013.964%2018.2889%2012.5%2018.2889%2010.208C18.2889%207.916%2019.4049%206.452%2020.9769%206.452C21.9729%206.452%2022.7649%207.028%2023.2209%208.036H25.9809V5.624ZM30.66%208.24C30.66%209.068%2031.368%209.608%2032.4%209.608C33.408%209.608%2034.128%209.068%2034.128%208.24C34.128%207.424%2033.408%206.872%2032.4%206.872C31.368%206.872%2030.66%207.424%2030.66%208.24ZM35.832%2011.108L35.892%2011.828C33.648%2012.236%2031.092%2012.272%2029.256%2012.272L29.124%2011.468C29.952%2011.468%2030.912%2011.456%2031.92%2011.42V10.34C30.612%2010.184%2029.748%209.392%2029.748%208.24C29.748%206.98%2030.828%206.128%2032.4%206.128C33.96%206.128%2035.052%206.98%2035.052%208.24C35.052%209.38%2034.188%2010.172%2032.904%2010.328V11.384C33.9%2011.324%2034.896%2011.252%2035.832%2011.108ZM31.656%2013.172V15.332H37.86V16.136H30.672V13.172H31.656ZM37.476%209.272H39.048V10.088H37.476V13.868H36.492V5.636H37.476V9.272ZM43.8711%2012.212V14.252H46.3311V12.212H43.8711ZM47.3031%2014.252H49.9431V15.056H40.1631V14.252H42.8991V12.212H41.3871V8.888H47.7711V7.22H41.3631V6.416H48.7311V9.68H42.3591V11.408H48.9831V12.212H47.3031V14.252Z'%20fill='white'/%3e%3c/svg%3e\"","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.8\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios, {AxiosInstance, CreateAxiosDefaults} from 'axios'\n\nconst config: CreateAxiosDefaults = {\n baseURL: 'https://3.35.245.28.nip.io'\n}\n\nexport const zaxios: AxiosInstance = axios.create(config)\n","import {zaxios} from '../zaxios.ts'\n\nexport interface PostEventParams {\n userId: number,\n phoneNumber: string\n}\n\nexport const postEvent = async (params: PostEventParams) => {\n const response = await zaxios.post('/rank/event', params)\n return response.data\n}\n","import {useMutation} from '@tanstack/vue-query'\nimport {postEvent, PostEventParams} from '../fetch/postEvent.ts'\n\nexport const usePostEvent = () => {\n return useMutation({\n mutationFn: (params: PostEventParams) => postEvent(params),\n })\n}\n","export default \"__VITE_ASSET__CiGzWlA6__\"","import { zaxios } from '../zaxios.ts'\n\nexport interface PostRankParams {\n nickName: string\n score: number\n gameId: string\n}\n\nexport interface PostRankResult {\n userId: number\n rank: number\n count: number\n currentTime: number\n}\n\nexport const postRank = async (params: PostRankParams): Promise => {\n const response = await zaxios.post('/rank', params)\n return response.data\n}\n","import {postRank, PostRankParams} from '../fetch/postRank.ts'\nimport {useMutation} from '@tanstack/vue-query'\n\nexport const usePostRank = () => {\n return useMutation({\n mutationFn: (params: PostRankParams) => postRank(params),\n })\n}\n","\n\n","\n","\n","\n\n","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2021C14.4853%2021%2016.7353%2019.9926%2018.3639%2018.3639C19.9926%2016.7353%2021%2014.4853%2021%2012C21%209.51474%2019.9926%207.26474%2018.3639%205.63604C16.7353%204.00736%2014.4853%203%2012%203C9.51474%203%207.26474%204.00736%205.63604%205.63604C4.00736%207.26474%203%209.51474%203%2012C3%2014.4853%204.00736%2016.7353%205.63604%2018.3639C7.26474%2019.9926%209.51474%2021%2012%2021Z'%20fill='%2366BE8B'/%3e%3cpath%20d='M8.5%2011.8333L10.8333%2014.1667L15.5%209.5'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2021C14.4853%2021%2016.7353%2019.9926%2018.3639%2018.3639C19.9926%2016.7353%2021%2014.4853%2021%2012C21%209.51474%2019.9926%207.26474%2018.3639%205.63604C16.7353%204.00736%2014.4853%203%2012%203C9.51474%203%207.26474%204.00736%205.63604%205.63604C4.00736%207.26474%203%209.51474%203%2012C3%2014.4853%204.00736%2016.7353%205.63604%2018.3639C7.26474%2019.9926%209.51474%2021%2012%2021Z'%20fill='%23FEBE31'/%3e%3cpath%20d='M8.5%2011.8333L10.8333%2014.1667L15.5%209.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","\n\n\n","\n\n","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18%206L6%2018M6%206L18%2018'%20stroke='black'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e\"","export default {}",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/*globals window, global, require*/\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\n\t var crypto;\n\n\t // Native crypto from window (Browser)\n\t if (typeof window !== 'undefined' && window.crypto) {\n\t crypto = window.crypto;\n\t }\n\n\t // Native crypto in web worker (Browser)\n\t if (typeof self !== 'undefined' && self.crypto) {\n\t crypto = self.crypto;\n\t }\n\n\t // Native crypto from worker\n\t if (typeof globalThis !== 'undefined' && globalThis.crypto) {\n\t crypto = globalThis.crypto;\n\t }\n\n\t // Native (experimental IE 11) crypto from window (Browser)\n\t if (!crypto && typeof window !== 'undefined' && window.msCrypto) {\n\t crypto = window.msCrypto;\n\t }\n\n\t // Native crypto from global (NodeJS)\n\t if (!crypto && typeof global !== 'undefined' && global.crypto) {\n\t crypto = global.crypto;\n\t }\n\n\t // Native crypto import via require (NodeJS)\n\t if (!crypto && typeof require === 'function') {\n\t try {\n\t crypto = require('crypto');\n\t } catch (err) {}\n\t }\n\n\t /*\n\t * Cryptographically secure pseudorandom number generator\n\t *\n\t * As Math.random() is cryptographically not safe to use\n\t */\n\t var cryptoSecureRandomInt = function () {\n\t if (crypto) {\n\t // Use getRandomValues method (Browser)\n\t if (typeof crypto.getRandomValues === 'function') {\n\t try {\n\t return crypto.getRandomValues(new Uint32Array(1))[0];\n\t } catch (err) {}\n\t }\n\n\t // Use randomBytes method (NodeJS)\n\t if (typeof crypto.randomBytes === 'function') {\n\t try {\n\t return crypto.randomBytes(4).readInt32LE();\n\t } catch (err) {}\n\t }\n\t }\n\n\t throw new Error('Native crypto module could not be used to get secure random number.');\n\t };\n\n\t /*\n\t * Local polyfill of Object.create\n\n\t */\n\t var create = Object.create || (function () {\n\t function F() {}\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }());\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var j = 0; j < thatSigBytes; j += 4) {\n\t thisWords[(thisSigBytes + j) >>> 2] = thatWords[j >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t for (var i = 0; i < nBytes; i += 4) {\n\t words.push(cryptoSecureRandomInt());\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t var processedWords;\n\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64url encoding strategy.\n\t */\n\t var Base64url = C_enc.Base64url = {\n\t /**\n\t * Converts a word array to a Base64url string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {string} The Base64url string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64url.stringify(wordArray);\n\t */\n\t stringify: function (wordArray, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = urlSafe ? this._safe_map : this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64url string to a word array.\n\t *\n\t * @param {string} base64Str The Base64url string.\n\t *\n\t * @param {boolean} urlSafe Whether to use url safe\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64url.parse(base64String);\n\t */\n\t parse: function (base64Str, urlSafe) {\n\t if (urlSafe === undefined) {\n\t urlSafe = true\n\t }\n\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = urlSafe ? this._safe_map : this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n\t _safe_map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t var bitsCombined = bits1 | bits2;\n\t words[nBytes >>> 2] |= bitsCombined << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64url;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t var Wil;\n\t var Wih;\n\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t Wih = Wi.high = M[offset + i * 2] | 0;\n\t Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t Wil = gamma0l + Wi7l;\n\t Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t Wil = Wil + gamma1l;\n\t Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t Wil = Wil + Wi16l;\n\t Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t var tMsw;\n\t var tLsw;\n\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA256\n\t * @property {number} iterations The number of iterations to perform. Default: 250000\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA256,\n\t iterations: 250000\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t var block;\n\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t var block;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t var modeCreator;\n\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t var finalProcessedBlocks;\n\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t var wordArray;\n\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t var salt;\n\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt, hasher) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t if (!hasher) {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\t } else {\n\t var key = EvpKDF.create({ keySize: keySize + ivSize, hasher: hasher }).compute(password, salt);\n\t }\n\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, cfg.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt, cfg.hasher);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t var keystream;\n\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t for (var i = data.sigBytes - 1; i >= 0; i--) {\n\t if (((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t data.sigBytes = i + 1;\n\t break;\n\t }\n\t }\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t var t;\n\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t // Make sure the key length is valid (64, 128 or >= 192 bit)\n\t if (keyWords.length !== 2 && keyWords.length !== 4 && keyWords.length < 6) {\n\t throw new Error('Invalid key length - 3DES requires the key length to be 64, 128, 192 or >192.');\n\t }\n\n\t // Extend the key according to the keying options defined in 3DES standard\n\t var key1 = keyWords.slice(0, 2);\n\t var key2 = keyWords.length < 4 ? keyWords.slice(0, 2) : keyWords.slice(2, 4);\n\t var key3 = keyWords.length < 6 ? keyWords.slice(0, 2) : keyWords.slice(4, 6);\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(key1));\n\t this._des2 = DES.createEncryptor(WordArray.create(key2));\n\t this._des3 = DES.createEncryptor(WordArray.create(key3));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t const N = 16;\n\n\t //Origin pbox and sbox, derived from PI\n\t const ORIG_P = [\n\t 0x243F6A88, 0x85A308D3, 0x13198A2E, 0x03707344,\n\t 0xA4093822, 0x299F31D0, 0x082EFA98, 0xEC4E6C89,\n\t 0x452821E6, 0x38D01377, 0xBE5466CF, 0x34E90C6C,\n\t 0xC0AC29B7, 0xC97C50DD, 0x3F84D5B5, 0xB5470917,\n\t 0x9216D5D9, 0x8979FB1B\n\t ];\n\n\t const ORIG_S = [\n\t [ 0xD1310BA6, 0x98DFB5AC, 0x2FFD72DB, 0xD01ADFB7,\n\t 0xB8E1AFED, 0x6A267E96, 0xBA7C9045, 0xF12C7F99,\n\t 0x24A19947, 0xB3916CF7, 0x0801F2E2, 0x858EFC16,\n\t 0x636920D8, 0x71574E69, 0xA458FEA3, 0xF4933D7E,\n\t 0x0D95748F, 0x728EB658, 0x718BCD58, 0x82154AEE,\n\t 0x7B54A41D, 0xC25A59B5, 0x9C30D539, 0x2AF26013,\n\t 0xC5D1B023, 0x286085F0, 0xCA417918, 0xB8DB38EF,\n\t 0x8E79DCB0, 0x603A180E, 0x6C9E0E8B, 0xB01E8A3E,\n\t 0xD71577C1, 0xBD314B27, 0x78AF2FDA, 0x55605C60,\n\t 0xE65525F3, 0xAA55AB94, 0x57489862, 0x63E81440,\n\t 0x55CA396A, 0x2AAB10B6, 0xB4CC5C34, 0x1141E8CE,\n\t 0xA15486AF, 0x7C72E993, 0xB3EE1411, 0x636FBC2A,\n\t 0x2BA9C55D, 0x741831F6, 0xCE5C3E16, 0x9B87931E,\n\t 0xAFD6BA33, 0x6C24CF5C, 0x7A325381, 0x28958677,\n\t 0x3B8F4898, 0x6B4BB9AF, 0xC4BFE81B, 0x66282193,\n\t 0x61D809CC, 0xFB21A991, 0x487CAC60, 0x5DEC8032,\n\t 0xEF845D5D, 0xE98575B1, 0xDC262302, 0xEB651B88,\n\t 0x23893E81, 0xD396ACC5, 0x0F6D6FF3, 0x83F44239,\n\t 0x2E0B4482, 0xA4842004, 0x69C8F04A, 0x9E1F9B5E,\n\t 0x21C66842, 0xF6E96C9A, 0x670C9C61, 0xABD388F0,\n\t 0x6A51A0D2, 0xD8542F68, 0x960FA728, 0xAB5133A3,\n\t 0x6EEF0B6C, 0x137A3BE4, 0xBA3BF050, 0x7EFB2A98,\n\t 0xA1F1651D, 0x39AF0176, 0x66CA593E, 0x82430E88,\n\t 0x8CEE8619, 0x456F9FB4, 0x7D84A5C3, 0x3B8B5EBE,\n\t 0xE06F75D8, 0x85C12073, 0x401A449F, 0x56C16AA6,\n\t 0x4ED3AA62, 0x363F7706, 0x1BFEDF72, 0x429B023D,\n\t 0x37D0D724, 0xD00A1248, 0xDB0FEAD3, 0x49F1C09B,\n\t 0x075372C9, 0x80991B7B, 0x25D479D8, 0xF6E8DEF7,\n\t 0xE3FE501A, 0xB6794C3B, 0x976CE0BD, 0x04C006BA,\n\t 0xC1A94FB6, 0x409F60C4, 0x5E5C9EC2, 0x196A2463,\n\t 0x68FB6FAF, 0x3E6C53B5, 0x1339B2EB, 0x3B52EC6F,\n\t 0x6DFC511F, 0x9B30952C, 0xCC814544, 0xAF5EBD09,\n\t 0xBEE3D004, 0xDE334AFD, 0x660F2807, 0x192E4BB3,\n\t 0xC0CBA857, 0x45C8740F, 0xD20B5F39, 0xB9D3FBDB,\n\t 0x5579C0BD, 0x1A60320A, 0xD6A100C6, 0x402C7279,\n\t 0x679F25FE, 0xFB1FA3CC, 0x8EA5E9F8, 0xDB3222F8,\n\t 0x3C7516DF, 0xFD616B15, 0x2F501EC8, 0xAD0552AB,\n\t 0x323DB5FA, 0xFD238760, 0x53317B48, 0x3E00DF82,\n\t 0x9E5C57BB, 0xCA6F8CA0, 0x1A87562E, 0xDF1769DB,\n\t 0xD542A8F6, 0x287EFFC3, 0xAC6732C6, 0x8C4F5573,\n\t 0x695B27B0, 0xBBCA58C8, 0xE1FFA35D, 0xB8F011A0,\n\t 0x10FA3D98, 0xFD2183B8, 0x4AFCB56C, 0x2DD1D35B,\n\t 0x9A53E479, 0xB6F84565, 0xD28E49BC, 0x4BFB9790,\n\t 0xE1DDF2DA, 0xA4CB7E33, 0x62FB1341, 0xCEE4C6E8,\n\t 0xEF20CADA, 0x36774C01, 0xD07E9EFE, 0x2BF11FB4,\n\t 0x95DBDA4D, 0xAE909198, 0xEAAD8E71, 0x6B93D5A0,\n\t 0xD08ED1D0, 0xAFC725E0, 0x8E3C5B2F, 0x8E7594B7,\n\t 0x8FF6E2FB, 0xF2122B64, 0x8888B812, 0x900DF01C,\n\t 0x4FAD5EA0, 0x688FC31C, 0xD1CFF191, 0xB3A8C1AD,\n\t 0x2F2F2218, 0xBE0E1777, 0xEA752DFE, 0x8B021FA1,\n\t 0xE5A0CC0F, 0xB56F74E8, 0x18ACF3D6, 0xCE89E299,\n\t 0xB4A84FE0, 0xFD13E0B7, 0x7CC43B81, 0xD2ADA8D9,\n\t 0x165FA266, 0x80957705, 0x93CC7314, 0x211A1477,\n\t 0xE6AD2065, 0x77B5FA86, 0xC75442F5, 0xFB9D35CF,\n\t 0xEBCDAF0C, 0x7B3E89A0, 0xD6411BD3, 0xAE1E7E49,\n\t 0x00250E2D, 0x2071B35E, 0x226800BB, 0x57B8E0AF,\n\t 0x2464369B, 0xF009B91E, 0x5563911D, 0x59DFA6AA,\n\t 0x78C14389, 0xD95A537F, 0x207D5BA2, 0x02E5B9C5,\n\t 0x83260376, 0x6295CFA9, 0x11C81968, 0x4E734A41,\n\t 0xB3472DCA, 0x7B14A94A, 0x1B510052, 0x9A532915,\n\t 0xD60F573F, 0xBC9BC6E4, 0x2B60A476, 0x81E67400,\n\t 0x08BA6FB5, 0x571BE91F, 0xF296EC6B, 0x2A0DD915,\n\t 0xB6636521, 0xE7B9F9B6, 0xFF34052E, 0xC5855664,\n\t 0x53B02D5D, 0xA99F8FA1, 0x08BA4799, 0x6E85076A ],\n\t [ 0x4B7A70E9, 0xB5B32944, 0xDB75092E, 0xC4192623,\n\t 0xAD6EA6B0, 0x49A7DF7D, 0x9CEE60B8, 0x8FEDB266,\n\t 0xECAA8C71, 0x699A17FF, 0x5664526C, 0xC2B19EE1,\n\t 0x193602A5, 0x75094C29, 0xA0591340, 0xE4183A3E,\n\t 0x3F54989A, 0x5B429D65, 0x6B8FE4D6, 0x99F73FD6,\n\t 0xA1D29C07, 0xEFE830F5, 0x4D2D38E6, 0xF0255DC1,\n\t 0x4CDD2086, 0x8470EB26, 0x6382E9C6, 0x021ECC5E,\n\t 0x09686B3F, 0x3EBAEFC9, 0x3C971814, 0x6B6A70A1,\n\t 0x687F3584, 0x52A0E286, 0xB79C5305, 0xAA500737,\n\t 0x3E07841C, 0x7FDEAE5C, 0x8E7D44EC, 0x5716F2B8,\n\t 0xB03ADA37, 0xF0500C0D, 0xF01C1F04, 0x0200B3FF,\n\t 0xAE0CF51A, 0x3CB574B2, 0x25837A58, 0xDC0921BD,\n\t 0xD19113F9, 0x7CA92FF6, 0x94324773, 0x22F54701,\n\t 0x3AE5E581, 0x37C2DADC, 0xC8B57634, 0x9AF3DDA7,\n\t 0xA9446146, 0x0FD0030E, 0xECC8C73E, 0xA4751E41,\n\t 0xE238CD99, 0x3BEA0E2F, 0x3280BBA1, 0x183EB331,\n\t 0x4E548B38, 0x4F6DB908, 0x6F420D03, 0xF60A04BF,\n\t 0x2CB81290, 0x24977C79, 0x5679B072, 0xBCAF89AF,\n\t 0xDE9A771F, 0xD9930810, 0xB38BAE12, 0xDCCF3F2E,\n\t 0x5512721F, 0x2E6B7124, 0x501ADDE6, 0x9F84CD87,\n\t 0x7A584718, 0x7408DA17, 0xBC9F9ABC, 0xE94B7D8C,\n\t 0xEC7AEC3A, 0xDB851DFA, 0x63094366, 0xC464C3D2,\n\t 0xEF1C1847, 0x3215D908, 0xDD433B37, 0x24C2BA16,\n\t 0x12A14D43, 0x2A65C451, 0x50940002, 0x133AE4DD,\n\t 0x71DFF89E, 0x10314E55, 0x81AC77D6, 0x5F11199B,\n\t 0x043556F1, 0xD7A3C76B, 0x3C11183B, 0x5924A509,\n\t 0xF28FE6ED, 0x97F1FBFA, 0x9EBABF2C, 0x1E153C6E,\n\t 0x86E34570, 0xEAE96FB1, 0x860E5E0A, 0x5A3E2AB3,\n\t 0x771FE71C, 0x4E3D06FA, 0x2965DCB9, 0x99E71D0F,\n\t 0x803E89D6, 0x5266C825, 0x2E4CC978, 0x9C10B36A,\n\t 0xC6150EBA, 0x94E2EA78, 0xA5FC3C53, 0x1E0A2DF4,\n\t 0xF2F74EA7, 0x361D2B3D, 0x1939260F, 0x19C27960,\n\t 0x5223A708, 0xF71312B6, 0xEBADFE6E, 0xEAC31F66,\n\t 0xE3BC4595, 0xA67BC883, 0xB17F37D1, 0x018CFF28,\n\t 0xC332DDEF, 0xBE6C5AA5, 0x65582185, 0x68AB9802,\n\t 0xEECEA50F, 0xDB2F953B, 0x2AEF7DAD, 0x5B6E2F84,\n\t 0x1521B628, 0x29076170, 0xECDD4775, 0x619F1510,\n\t 0x13CCA830, 0xEB61BD96, 0x0334FE1E, 0xAA0363CF,\n\t 0xB5735C90, 0x4C70A239, 0xD59E9E0B, 0xCBAADE14,\n\t 0xEECC86BC, 0x60622CA7, 0x9CAB5CAB, 0xB2F3846E,\n\t 0x648B1EAF, 0x19BDF0CA, 0xA02369B9, 0x655ABB50,\n\t 0x40685A32, 0x3C2AB4B3, 0x319EE9D5, 0xC021B8F7,\n\t 0x9B540B19, 0x875FA099, 0x95F7997E, 0x623D7DA8,\n\t 0xF837889A, 0x97E32D77, 0x11ED935F, 0x16681281,\n\t 0x0E358829, 0xC7E61FD6, 0x96DEDFA1, 0x7858BA99,\n\t 0x57F584A5, 0x1B227263, 0x9B83C3FF, 0x1AC24696,\n\t 0xCDB30AEB, 0x532E3054, 0x8FD948E4, 0x6DBC3128,\n\t 0x58EBF2EF, 0x34C6FFEA, 0xFE28ED61, 0xEE7C3C73,\n\t 0x5D4A14D9, 0xE864B7E3, 0x42105D14, 0x203E13E0,\n\t 0x45EEE2B6, 0xA3AAABEA, 0xDB6C4F15, 0xFACB4FD0,\n\t 0xC742F442, 0xEF6ABBB5, 0x654F3B1D, 0x41CD2105,\n\t 0xD81E799E, 0x86854DC7, 0xE44B476A, 0x3D816250,\n\t 0xCF62A1F2, 0x5B8D2646, 0xFC8883A0, 0xC1C7B6A3,\n\t 0x7F1524C3, 0x69CB7492, 0x47848A0B, 0x5692B285,\n\t 0x095BBF00, 0xAD19489D, 0x1462B174, 0x23820E00,\n\t 0x58428D2A, 0x0C55F5EA, 0x1DADF43E, 0x233F7061,\n\t 0x3372F092, 0x8D937E41, 0xD65FECF1, 0x6C223BDB,\n\t 0x7CDE3759, 0xCBEE7460, 0x4085F2A7, 0xCE77326E,\n\t 0xA6078084, 0x19F8509E, 0xE8EFD855, 0x61D99735,\n\t 0xA969A7AA, 0xC50C06C2, 0x5A04ABFC, 0x800BCADC,\n\t 0x9E447A2E, 0xC3453484, 0xFDD56705, 0x0E1E9EC9,\n\t 0xDB73DBD3, 0x105588CD, 0x675FDA79, 0xE3674340,\n\t 0xC5C43465, 0x713E38D8, 0x3D28F89E, 0xF16DFF20,\n\t 0x153E21E7, 0x8FB03D4A, 0xE6E39F2B, 0xDB83ADF7 ],\n\t [ 0xE93D5A68, 0x948140F7, 0xF64C261C, 0x94692934,\n\t 0x411520F7, 0x7602D4F7, 0xBCF46B2E, 0xD4A20068,\n\t 0xD4082471, 0x3320F46A, 0x43B7D4B7, 0x500061AF,\n\t 0x1E39F62E, 0x97244546, 0x14214F74, 0xBF8B8840,\n\t 0x4D95FC1D, 0x96B591AF, 0x70F4DDD3, 0x66A02F45,\n\t 0xBFBC09EC, 0x03BD9785, 0x7FAC6DD0, 0x31CB8504,\n\t 0x96EB27B3, 0x55FD3941, 0xDA2547E6, 0xABCA0A9A,\n\t 0x28507825, 0x530429F4, 0x0A2C86DA, 0xE9B66DFB,\n\t 0x68DC1462, 0xD7486900, 0x680EC0A4, 0x27A18DEE,\n\t 0x4F3FFEA2, 0xE887AD8C, 0xB58CE006, 0x7AF4D6B6,\n\t 0xAACE1E7C, 0xD3375FEC, 0xCE78A399, 0x406B2A42,\n\t 0x20FE9E35, 0xD9F385B9, 0xEE39D7AB, 0x3B124E8B,\n\t 0x1DC9FAF7, 0x4B6D1856, 0x26A36631, 0xEAE397B2,\n\t 0x3A6EFA74, 0xDD5B4332, 0x6841E7F7, 0xCA7820FB,\n\t 0xFB0AF54E, 0xD8FEB397, 0x454056AC, 0xBA489527,\n\t 0x55533A3A, 0x20838D87, 0xFE6BA9B7, 0xD096954B,\n\t 0x55A867BC, 0xA1159A58, 0xCCA92963, 0x99E1DB33,\n\t 0xA62A4A56, 0x3F3125F9, 0x5EF47E1C, 0x9029317C,\n\t 0xFDF8E802, 0x04272F70, 0x80BB155C, 0x05282CE3,\n\t 0x95C11548, 0xE4C66D22, 0x48C1133F, 0xC70F86DC,\n\t 0x07F9C9EE, 0x41041F0F, 0x404779A4, 0x5D886E17,\n\t 0x325F51EB, 0xD59BC0D1, 0xF2BCC18F, 0x41113564,\n\t 0x257B7834, 0x602A9C60, 0xDFF8E8A3, 0x1F636C1B,\n\t 0x0E12B4C2, 0x02E1329E, 0xAF664FD1, 0xCAD18115,\n\t 0x6B2395E0, 0x333E92E1, 0x3B240B62, 0xEEBEB922,\n\t 0x85B2A20E, 0xE6BA0D99, 0xDE720C8C, 0x2DA2F728,\n\t 0xD0127845, 0x95B794FD, 0x647D0862, 0xE7CCF5F0,\n\t 0x5449A36F, 0x877D48FA, 0xC39DFD27, 0xF33E8D1E,\n\t 0x0A476341, 0x992EFF74, 0x3A6F6EAB, 0xF4F8FD37,\n\t 0xA812DC60, 0xA1EBDDF8, 0x991BE14C, 0xDB6E6B0D,\n\t 0xC67B5510, 0x6D672C37, 0x2765D43B, 0xDCD0E804,\n\t 0xF1290DC7, 0xCC00FFA3, 0xB5390F92, 0x690FED0B,\n\t 0x667B9FFB, 0xCEDB7D9C, 0xA091CF0B, 0xD9155EA3,\n\t 0xBB132F88, 0x515BAD24, 0x7B9479BF, 0x763BD6EB,\n\t 0x37392EB3, 0xCC115979, 0x8026E297, 0xF42E312D,\n\t 0x6842ADA7, 0xC66A2B3B, 0x12754CCC, 0x782EF11C,\n\t 0x6A124237, 0xB79251E7, 0x06A1BBE6, 0x4BFB6350,\n\t 0x1A6B1018, 0x11CAEDFA, 0x3D25BDD8, 0xE2E1C3C9,\n\t 0x44421659, 0x0A121386, 0xD90CEC6E, 0xD5ABEA2A,\n\t 0x64AF674E, 0xDA86A85F, 0xBEBFE988, 0x64E4C3FE,\n\t 0x9DBC8057, 0xF0F7C086, 0x60787BF8, 0x6003604D,\n\t 0xD1FD8346, 0xF6381FB0, 0x7745AE04, 0xD736FCCC,\n\t 0x83426B33, 0xF01EAB71, 0xB0804187, 0x3C005E5F,\n\t 0x77A057BE, 0xBDE8AE24, 0x55464299, 0xBF582E61,\n\t 0x4E58F48F, 0xF2DDFDA2, 0xF474EF38, 0x8789BDC2,\n\t 0x5366F9C3, 0xC8B38E74, 0xB475F255, 0x46FCD9B9,\n\t 0x7AEB2661, 0x8B1DDF84, 0x846A0E79, 0x915F95E2,\n\t 0x466E598E, 0x20B45770, 0x8CD55591, 0xC902DE4C,\n\t 0xB90BACE1, 0xBB8205D0, 0x11A86248, 0x7574A99E,\n\t 0xB77F19B6, 0xE0A9DC09, 0x662D09A1, 0xC4324633,\n\t 0xE85A1F02, 0x09F0BE8C, 0x4A99A025, 0x1D6EFE10,\n\t 0x1AB93D1D, 0x0BA5A4DF, 0xA186F20F, 0x2868F169,\n\t 0xDCB7DA83, 0x573906FE, 0xA1E2CE9B, 0x4FCD7F52,\n\t 0x50115E01, 0xA70683FA, 0xA002B5C4, 0x0DE6D027,\n\t 0x9AF88C27, 0x773F8641, 0xC3604C06, 0x61A806B5,\n\t 0xF0177A28, 0xC0F586E0, 0x006058AA, 0x30DC7D62,\n\t 0x11E69ED7, 0x2338EA63, 0x53C2DD94, 0xC2C21634,\n\t 0xBBCBEE56, 0x90BCB6DE, 0xEBFC7DA1, 0xCE591D76,\n\t 0x6F05E409, 0x4B7C0188, 0x39720A3D, 0x7C927C24,\n\t 0x86E3725F, 0x724D9DB9, 0x1AC15BB4, 0xD39EB8FC,\n\t 0xED545578, 0x08FCA5B5, 0xD83D7CD3, 0x4DAD0FC4,\n\t 0x1E50EF5E, 0xB161E6F8, 0xA28514D9, 0x6C51133C,\n\t 0x6FD5C7E7, 0x56E14EC4, 0x362ABFCE, 0xDDC6C837,\n\t 0xD79A3234, 0x92638212, 0x670EFA8E, 0x406000E0 ],\n\t [ 0x3A39CE37, 0xD3FAF5CF, 0xABC27737, 0x5AC52D1B,\n\t 0x5CB0679E, 0x4FA33742, 0xD3822740, 0x99BC9BBE,\n\t 0xD5118E9D, 0xBF0F7315, 0xD62D1C7E, 0xC700C47B,\n\t 0xB78C1B6B, 0x21A19045, 0xB26EB1BE, 0x6A366EB4,\n\t 0x5748AB2F, 0xBC946E79, 0xC6A376D2, 0x6549C2C8,\n\t 0x530FF8EE, 0x468DDE7D, 0xD5730A1D, 0x4CD04DC6,\n\t 0x2939BBDB, 0xA9BA4650, 0xAC9526E8, 0xBE5EE304,\n\t 0xA1FAD5F0, 0x6A2D519A, 0x63EF8CE2, 0x9A86EE22,\n\t 0xC089C2B8, 0x43242EF6, 0xA51E03AA, 0x9CF2D0A4,\n\t 0x83C061BA, 0x9BE96A4D, 0x8FE51550, 0xBA645BD6,\n\t 0x2826A2F9, 0xA73A3AE1, 0x4BA99586, 0xEF5562E9,\n\t 0xC72FEFD3, 0xF752F7DA, 0x3F046F69, 0x77FA0A59,\n\t 0x80E4A915, 0x87B08601, 0x9B09E6AD, 0x3B3EE593,\n\t 0xE990FD5A, 0x9E34D797, 0x2CF0B7D9, 0x022B8B51,\n\t 0x96D5AC3A, 0x017DA67D, 0xD1CF3ED6, 0x7C7D2D28,\n\t 0x1F9F25CF, 0xADF2B89B, 0x5AD6B472, 0x5A88F54C,\n\t 0xE029AC71, 0xE019A5E6, 0x47B0ACFD, 0xED93FA9B,\n\t 0xE8D3C48D, 0x283B57CC, 0xF8D56629, 0x79132E28,\n\t 0x785F0191, 0xED756055, 0xF7960E44, 0xE3D35E8C,\n\t 0x15056DD4, 0x88F46DBA, 0x03A16125, 0x0564F0BD,\n\t 0xC3EB9E15, 0x3C9057A2, 0x97271AEC, 0xA93A072A,\n\t 0x1B3F6D9B, 0x1E6321F5, 0xF59C66FB, 0x26DCF319,\n\t 0x7533D928, 0xB155FDF5, 0x03563482, 0x8ABA3CBB,\n\t 0x28517711, 0xC20AD9F8, 0xABCC5167, 0xCCAD925F,\n\t 0x4DE81751, 0x3830DC8E, 0x379D5862, 0x9320F991,\n\t 0xEA7A90C2, 0xFB3E7BCE, 0x5121CE64, 0x774FBE32,\n\t 0xA8B6E37E, 0xC3293D46, 0x48DE5369, 0x6413E680,\n\t 0xA2AE0810, 0xDD6DB224, 0x69852DFD, 0x09072166,\n\t 0xB39A460A, 0x6445C0DD, 0x586CDECF, 0x1C20C8AE,\n\t 0x5BBEF7DD, 0x1B588D40, 0xCCD2017F, 0x6BB4E3BB,\n\t 0xDDA26A7E, 0x3A59FF45, 0x3E350A44, 0xBCB4CDD5,\n\t 0x72EACEA8, 0xFA6484BB, 0x8D6612AE, 0xBF3C6F47,\n\t 0xD29BE463, 0x542F5D9E, 0xAEC2771B, 0xF64E6370,\n\t 0x740E0D8D, 0xE75B1357, 0xF8721671, 0xAF537D5D,\n\t 0x4040CB08, 0x4EB4E2CC, 0x34D2466A, 0x0115AF84,\n\t 0xE1B00428, 0x95983A1D, 0x06B89FB4, 0xCE6EA048,\n\t 0x6F3F3B82, 0x3520AB82, 0x011A1D4B, 0x277227F8,\n\t 0x611560B1, 0xE7933FDC, 0xBB3A792B, 0x344525BD,\n\t 0xA08839E1, 0x51CE794B, 0x2F32C9B7, 0xA01FBAC9,\n\t 0xE01CC87E, 0xBCC7D1F6, 0xCF0111C3, 0xA1E8AAC7,\n\t 0x1A908749, 0xD44FBD9A, 0xD0DADECB, 0xD50ADA38,\n\t 0x0339C32A, 0xC6913667, 0x8DF9317C, 0xE0B12B4F,\n\t 0xF79E59B7, 0x43F5BB3A, 0xF2D519FF, 0x27D9459C,\n\t 0xBF97222C, 0x15E6FC2A, 0x0F91FC71, 0x9B941525,\n\t 0xFAE59361, 0xCEB69CEB, 0xC2A86459, 0x12BAA8D1,\n\t 0xB6C1075E, 0xE3056A0C, 0x10D25065, 0xCB03A442,\n\t 0xE0EC6E0E, 0x1698DB3B, 0x4C98A0BE, 0x3278E964,\n\t 0x9F1F9532, 0xE0D392DF, 0xD3A0342B, 0x8971F21E,\n\t 0x1B0A7441, 0x4BA3348C, 0xC5BE7120, 0xC37632D8,\n\t 0xDF359F8D, 0x9B992F2E, 0xE60B6F47, 0x0FE3F11D,\n\t 0xE54CDA54, 0x1EDAD891, 0xCE6279CF, 0xCD3E7E6F,\n\t 0x1618B166, 0xFD2C1D05, 0x848FD2C5, 0xF6FB2299,\n\t 0xF523F357, 0xA6327623, 0x93A83531, 0x56CCCD02,\n\t 0xACF08162, 0x5A75EBB5, 0x6E163697, 0x88D273CC,\n\t 0xDE966292, 0x81B949D0, 0x4C50901B, 0x71C65614,\n\t 0xE6C6C7BD, 0x327A140A, 0x45E1D006, 0xC3F27B9A,\n\t 0xC9AA53FD, 0x62A80F00, 0xBB25BFE2, 0x35BDD2F6,\n\t 0x71126905, 0xB2040222, 0xB6CBCF7C, 0xCD769C2B,\n\t 0x53113EC0, 0x1640E3D3, 0x38ABBD60, 0x2547ADF0,\n\t 0xBA38209C, 0xF746CE76, 0x77AFA1C5, 0x20756060,\n\t 0x85CBFE4E, 0x8AE88DD8, 0x7AAAF9B0, 0x4CF9AA7E,\n\t 0x1948C25C, 0x02FB8A8C, 0x01C36AE4, 0xD6EBE1F9,\n\t 0x90D4F869, 0xA65CDEA0, 0x3F09252D, 0xC208E69F,\n\t 0xB74E6132, 0xCE77E25B, 0x578FDFE3, 0x3AC372E6 ]\n\t ];\n\n\t var BLOWFISH_CTX = {\n\t pbox: [],\n\t sbox: []\n\t }\n\n\t function F(ctx, x){\n\t let a = (x >> 24) & 0xFF;\n\t let b = (x >> 16) & 0xFF;\n\t let c = (x >> 8) & 0xFF;\n\t let d = x & 0xFF;\n\n\t let y = ctx.sbox[0][a] + ctx.sbox[1][b];\n\t y = y ^ ctx.sbox[2][c];\n\t y = y + ctx.sbox[3][d];\n\n\t return y;\n\t }\n\n\t function BlowFish_Encrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = 0; i < N; ++i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[N];\n\t Xl = Xl ^ ctx.pbox[N + 1];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t function BlowFish_Decrypt(ctx, left, right){\n\t let Xl = left;\n\t let Xr = right;\n\t let temp;\n\n\t for(let i = N + 1; i > 1; --i){\n\t Xl = Xl ^ ctx.pbox[i];\n\t Xr = F(ctx, Xl) ^ Xr;\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\t }\n\n\t temp = Xl;\n\t Xl = Xr;\n\t Xr = temp;\n\n\t Xr = Xr ^ ctx.pbox[1];\n\t Xl = Xl ^ ctx.pbox[0];\n\n\t return {left: Xl, right: Xr};\n\t }\n\n\t /**\n\t * Initialization ctx's pbox and sbox.\n\t *\n\t * @param {Object} ctx The object has pbox and sbox.\n\t * @param {Array} key An array of 32-bit words.\n\t * @param {int} keysize The length of the key.\n\t *\n\t * @example\n\t *\n\t * BlowFishInit(BLOWFISH_CTX, key, 128/32);\n\t */\n\t function BlowFishInit(ctx, key, keysize)\n\t {\n\t for(let Row = 0; Row < 4; Row++)\n\t {\n\t ctx.sbox[Row] = [];\n\t for(let Col = 0; Col < 256; Col++)\n\t {\n\t ctx.sbox[Row][Col] = ORIG_S[Row][Col];\n\t }\n\t }\n\n\t let keyIndex = 0;\n\t for(let index = 0; index < N + 2; index++)\n\t {\n\t ctx.pbox[index] = ORIG_P[index] ^ key[keyIndex];\n\t keyIndex++;\n\t if(keyIndex >= keysize)\n\t {\n\t keyIndex = 0;\n\t }\n\t }\n\n\t let Data1 = 0;\n\t let Data2 = 0;\n\t let res = 0;\n\t for(let i = 0; i < N + 2; i += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.pbox[i] = Data1;\n\t ctx.pbox[i + 1] = Data2;\n\t }\n\n\t for(let i = 0; i < 4; i++)\n\t {\n\t for(let j = 0; j < 256; j += 2)\n\t {\n\t res = BlowFish_Encrypt(ctx, Data1, Data2);\n\t Data1 = res.left;\n\t Data2 = res.right;\n\t ctx.sbox[i][j] = Data1;\n\t ctx.sbox[i][j + 1] = Data2;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t /**\n\t * Blowfish block cipher algorithm.\n\t */\n\t var Blowfish = C_algo.Blowfish = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t //Initialization pbox and sbox\n\t BlowFishInit(BLOWFISH_CTX, keyWords, keySize);\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t var res = BlowFish_Encrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t var res = BlowFish_Decrypt(BLOWFISH_CTX, M[offset], M[offset + 1]);\n\t M[offset] = res.left;\n\t M[offset + 1] = res.right;\n\t },\n\n\t blockSize: 64/32,\n\n\t keySize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Blowfish.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Blowfish.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Blowfish = BlockCipher._createHelper(Blowfish);\n\t}());\n\n\n\treturn CryptoJS.Blowfish;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./enc-base64url\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"), require(\"./blowfish\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./enc-base64url\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\", \"./blowfish\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));","import * as crypto from 'crypto-js'\n\nexport const getGameId = () => {\n const current = new Date()\n const text = JSON.stringify(current)\n const encrypted = crypto.AES.encrypt(text, 'zzio-games-watermelon').toString()\n return encrypted\n}\n","\n\n","\n\n\n","export default \"data:image/svg+xml,%3csvg%20width='27'%20height='32'%20viewBox='0%200%2027%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M22.6751%2013.9973C22.0094%2013.0074%2021.4337%2011.9797%2020.7618%2011C18.0659%2011%2013.2394%2012.3628%2010.721%2013.3337C9.5596%2013.7815%208.51678%2014.2514%207.56378%2015.131C6.41118%2016.1949%205.7163%2017.3982%204.85279%2018.6537C4.26802%2019.504%203.6337%2020.8005%203.69252%2021.8502C3.74063%2022.7086%204.29889%2023.4778%204.39537%2024.3387C4.47243%2025.0262%204.94275%2025.7335%205.29904%2026.3075C5.41578%2026.4955%205.53843%2026.678%205.70067%2026.8273C6.11779%2027.2113%206.77047%2027.887%207.35739%2028.0163C7.77046%2028.1073%208.18879%2028.3071%208.56786%2028.4145C8.7991%2028.48%209.58367%2028.6032%209.71696%2028.7684C9.9764%2029.0899%2010.704%2028.9942%2011.0111%2029.2606C11.3322%2029.5391%2011.9475%2029.6032%2012.3499%2029.7362C13.5928%2030.1469%2014.8972%2029.97%2016.1877%2029.9131C17.9245%2029.8366%2019.9897%2029.4132%2021.6097%2028.8292C22.9624%2028.3416%2023.8858%2027.4229%2024.7725%2026.3241C25.3628%2025.5926%2025.1578%2024.8156%2025.4998%2023.9437C25.4998%2022.2917%2024.4865%2017.7774%2024.2705%2017.0279C24.1799%2016.7138%2023.8308%2016.0193%2023.6234%2015.7725C23.2005%2015.2695%2023.0384%2014.5376%2022.6751%2013.9973Z'%20fill='%23FFAF00'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M11.394%204.88757C12.0487%204.88757%2012.8637%204.88894%2013.4503%205.21956C14.1539%205.21956%2016.866%206.49125%2017.4851%206.80135C18.8619%207.49106%2020.6351%208.20366%2021.4321%209.6232C22.5235%2011.5673%2023.6156%2013.0723%2024.0634%2015.3157C24.2668%2016.3346%2023.9757%2017.311%2023.9757%2018.3328C23.9757%2019.569%2023.7328%2020.8766%2023.0986%2021.9553C21.9546%2023.901%2020.499%2025.8627%2018.1478%2026.0954C15.9988%2026.308%2013.6084%2026.1517%2011.4817%2025.7829C9.35491%2025.4141%204.63133%2025.1304%203.46101%2022.7853C2.91517%2021.6915%202.33344%2020.9146%201.96018%2019.7096C1.45409%2018.0758%201.41314%2016.3226%201.60933%2014.6322C1.87882%2012.3103%202.42186%2010.1983%204.32838%208.63702C5.80445%207.4282%207.50838%206.49245%209.20122%205.62965C9.89839%205.27432%2010.5979%204.88757%2011.394%204.88757Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M9.48914%2013.0118C9.91466%2012.8733%2010.4718%2012.8991%2010.918%2012.8898C11.744%2012.8726%2012.5717%2012.8863%2013.398%2012.8863C13.8207%2012.8863%2014.2525%2012.8641%2014.6749%2012.8863C14.8888%2012.8976%2014.7851%2013.5824%2014.7606%2013.6877C14.5898%2014.4215%2013.9213%2015.0892%2013.3279%2015.583C12.3809%2016.371%2011.3628%2017.1124%2010.3456%2017.8267C10.1145%2017.9891%209.77297%2018.1771%209.61372%2018.4051C9.51256%2018.5499%209.48725%2018.5196%209.79281%2018.5932C10.4594%2018.7538%2011.1604%2018.8125%2011.8407%2018.9068C12.9895%2019.066%2014.1296%2019.2704%2015.2784%2019.4294C15.5609%2019.4685%2015.8587%2019.5339%2016.1466%2019.5339'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M14.7046%2026.567C14.7046%2026.8579%2014.7319%2027.3589%2014.9399%2027.5669'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M20.3511%2025.2731C20.4794%2025.6296%2020.6433%2025.9734%2020.7628%2026.3318'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","/*!\n * matter-js 0.19.0 by @liabru\n * http://brm.io/matter-js/\n * License MIT\n * \n * The MIT License (MIT)\n * \n * Copyright (c) Liam Brummitt and contributors.\n * \n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n * \n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Matter\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Matter\"] = factory();\n\telse\n\t\troot[\"Matter\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 20);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Common` module contains utility functions that are common to all modules.\n*\n* @class Common\n*/\n\nvar Common = {};\n\nmodule.exports = Common;\n\n(function() {\n\n Common._baseDelta = 1000 / 60;\n Common._nextId = 0;\n Common._seed = 0;\n Common._nowStartTime = +(new Date());\n Common._warnedOnce = {};\n Common._decomp = null;\n \n /**\n * Extends the object in the first argument using the object in the second argument.\n * @method extend\n * @param {} obj\n * @param {boolean} deep\n * @return {} obj extended\n */\n Common.extend = function(obj, deep) {\n var argsStart,\n args,\n deepClone;\n\n if (typeof deep === 'boolean') {\n argsStart = 2;\n deepClone = deep;\n } else {\n argsStart = 1;\n deepClone = true;\n }\n\n for (var i = argsStart; i < arguments.length; i++) {\n var source = arguments[i];\n\n if (source) {\n for (var prop in source) {\n if (deepClone && source[prop] && source[prop].constructor === Object) {\n if (!obj[prop] || obj[prop].constructor === Object) {\n obj[prop] = obj[prop] || {};\n Common.extend(obj[prop], deepClone, source[prop]);\n } else {\n obj[prop] = source[prop];\n }\n } else {\n obj[prop] = source[prop];\n }\n }\n }\n }\n \n return obj;\n };\n\n /**\n * Creates a new clone of the object, if deep is true references will also be cloned.\n * @method clone\n * @param {} obj\n * @param {bool} deep\n * @return {} obj cloned\n */\n Common.clone = function(obj, deep) {\n return Common.extend({}, deep, obj);\n };\n\n /**\n * Returns the list of keys for the given object.\n * @method keys\n * @param {} obj\n * @return {string[]} keys\n */\n Common.keys = function(obj) {\n if (Object.keys)\n return Object.keys(obj);\n\n // avoid hasOwnProperty for performance\n var keys = [];\n for (var key in obj)\n keys.push(key);\n return keys;\n };\n\n /**\n * Returns the list of values for the given object.\n * @method values\n * @param {} obj\n * @return {array} Array of the objects property values\n */\n Common.values = function(obj) {\n var values = [];\n \n if (Object.keys) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n \n // avoid hasOwnProperty for performance\n for (var key in obj)\n values.push(obj[key]);\n return values;\n };\n\n /**\n * Gets a value from `base` relative to the `path` string.\n * @method get\n * @param {} obj The base object\n * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n * @param {number} [begin] Path slice begin\n * @param {number} [end] Path slice end\n * @return {} The object at the given path\n */\n Common.get = function(obj, path, begin, end) {\n path = path.split('.').slice(begin, end);\n\n for (var i = 0; i < path.length; i += 1) {\n obj = obj[path[i]];\n }\n\n return obj;\n };\n\n /**\n * Sets a value on `base` relative to the given `path` string.\n * @method set\n * @param {} obj The base object\n * @param {string} path The path relative to `base`, e.g. 'Foo.Bar.baz'\n * @param {} val The value to set\n * @param {number} [begin] Path slice begin\n * @param {number} [end] Path slice end\n * @return {} Pass through `val` for chaining\n */\n Common.set = function(obj, path, val, begin, end) {\n var parts = path.split('.').slice(begin, end);\n Common.get(obj, path, 0, -1)[parts[parts.length - 1]] = val;\n return val;\n };\n\n /**\n * Shuffles the given array in-place.\n * The function uses a seeded random generator.\n * @method shuffle\n * @param {array} array\n * @return {array} array shuffled randomly\n */\n Common.shuffle = function(array) {\n for (var i = array.length - 1; i > 0; i--) {\n var j = Math.floor(Common.random() * (i + 1));\n var temp = array[i];\n array[i] = array[j];\n array[j] = temp;\n }\n return array;\n };\n\n /**\n * Randomly chooses a value from a list with equal probability.\n * The function uses a seeded random generator.\n * @method choose\n * @param {array} choices\n * @return {object} A random choice object from the array\n */\n Common.choose = function(choices) {\n return choices[Math.floor(Common.random() * choices.length)];\n };\n\n /**\n * Returns true if the object is a HTMLElement, otherwise false.\n * @method isElement\n * @param {object} obj\n * @return {boolean} True if the object is a HTMLElement, otherwise false\n */\n Common.isElement = function(obj) {\n if (typeof HTMLElement !== 'undefined') {\n return obj instanceof HTMLElement;\n }\n\n return !!(obj && obj.nodeType && obj.nodeName);\n };\n\n /**\n * Returns true if the object is an array.\n * @method isArray\n * @param {object} obj\n * @return {boolean} True if the object is an array, otherwise false\n */\n Common.isArray = function(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n\n /**\n * Returns true if the object is a function.\n * @method isFunction\n * @param {object} obj\n * @return {boolean} True if the object is a function, otherwise false\n */\n Common.isFunction = function(obj) {\n return typeof obj === \"function\";\n };\n\n /**\n * Returns true if the object is a plain object.\n * @method isPlainObject\n * @param {object} obj\n * @return {boolean} True if the object is a plain object, otherwise false\n */\n Common.isPlainObject = function(obj) {\n return typeof obj === 'object' && obj.constructor === Object;\n };\n\n /**\n * Returns true if the object is a string.\n * @method isString\n * @param {object} obj\n * @return {boolean} True if the object is a string, otherwise false\n */\n Common.isString = function(obj) {\n return toString.call(obj) === '[object String]';\n };\n \n /**\n * Returns the given value clamped between a minimum and maximum value.\n * @method clamp\n * @param {number} value\n * @param {number} min\n * @param {number} max\n * @return {number} The value clamped between min and max inclusive\n */\n Common.clamp = function(value, min, max) {\n if (value < min)\n return min;\n if (value > max)\n return max;\n return value;\n };\n \n /**\n * Returns the sign of the given value.\n * @method sign\n * @param {number} value\n * @return {number} -1 if negative, +1 if 0 or positive\n */\n Common.sign = function(value) {\n return value < 0 ? -1 : 1;\n };\n \n /**\n * Returns the current timestamp since the time origin (e.g. from page load).\n * The result is in milliseconds and will use high-resolution timing if available.\n * @method now\n * @return {number} the current timestamp in milliseconds\n */\n Common.now = function() {\n if (typeof window !== 'undefined' && window.performance) {\n if (window.performance.now) {\n return window.performance.now();\n } else if (window.performance.webkitNow) {\n return window.performance.webkitNow();\n }\n }\n\n if (Date.now) {\n return Date.now();\n }\n\n return (new Date()) - Common._nowStartTime;\n };\n \n /**\n * Returns a random value between a minimum and a maximum value inclusive.\n * The function uses a seeded random generator.\n * @method random\n * @param {number} min\n * @param {number} max\n * @return {number} A random number between min and max inclusive\n */\n Common.random = function(min, max) {\n min = (typeof min !== \"undefined\") ? min : 0;\n max = (typeof max !== \"undefined\") ? max : 1;\n return min + _seededRandom() * (max - min);\n };\n\n var _seededRandom = function() {\n // https://en.wikipedia.org/wiki/Linear_congruential_generator\n Common._seed = (Common._seed * 9301 + 49297) % 233280;\n return Common._seed / 233280;\n };\n\n /**\n * Converts a CSS hex colour string into an integer.\n * @method colorToNumber\n * @param {string} colorString\n * @return {number} An integer representing the CSS hex string\n */\n Common.colorToNumber = function(colorString) {\n colorString = colorString.replace('#','');\n\n if (colorString.length == 3) {\n colorString = colorString.charAt(0) + colorString.charAt(0)\n + colorString.charAt(1) + colorString.charAt(1)\n + colorString.charAt(2) + colorString.charAt(2);\n }\n\n return parseInt(colorString, 16);\n };\n\n /**\n * The console logging level to use, where each level includes all levels above and excludes the levels below.\n * The default level is 'debug' which shows all console messages. \n *\n * Possible level values are:\n * - 0 = None\n * - 1 = Debug\n * - 2 = Info\n * - 3 = Warn\n * - 4 = Error\n * @static\n * @property logLevel\n * @type {Number}\n * @default 1\n */\n Common.logLevel = 1;\n\n /**\n * Shows a `console.log` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method log\n * @param ...objs {} The objects to log.\n */\n Common.log = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 3) {\n console.log.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Shows a `console.info` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method info\n * @param ...objs {} The objects to log.\n */\n Common.info = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 2) {\n console.info.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Shows a `console.warn` message only if the current `Common.logLevel` allows it.\n * The message will be prefixed with 'matter-js' to make it easily identifiable.\n * @method warn\n * @param ...objs {} The objects to log.\n */\n Common.warn = function() {\n if (console && Common.logLevel > 0 && Common.logLevel <= 3) {\n console.warn.apply(console, ['matter-js:'].concat(Array.prototype.slice.call(arguments)));\n }\n };\n\n /**\n * Uses `Common.warn` to log the given message one time only.\n * @method warnOnce\n * @param ...objs {} The objects to log.\n */\n Common.warnOnce = function() {\n var message = Array.prototype.slice.call(arguments).join(' ');\n\n if (!Common._warnedOnce[message]) {\n Common.warn(message);\n Common._warnedOnce[message] = true;\n }\n };\n\n /**\n * Shows a deprecated console warning when the function on the given object is called.\n * The target function will be replaced with a new function that first shows the warning\n * and then calls the original function.\n * @method deprecated\n * @param {object} obj The object or module\n * @param {string} name The property name of the function on obj\n * @param {string} warning The one-time message to show if the function is called\n */\n Common.deprecated = function(obj, prop, warning) {\n obj[prop] = Common.chain(function() {\n Common.warnOnce('🔅 deprecated 🔅', warning);\n }, obj[prop]);\n };\n\n /**\n * Returns the next unique sequential ID.\n * @method nextId\n * @return {Number} Unique sequential ID\n */\n Common.nextId = function() {\n return Common._nextId++;\n };\n\n /**\n * A cross browser compatible indexOf implementation.\n * @method indexOf\n * @param {array} haystack\n * @param {object} needle\n * @return {number} The position of needle in haystack, otherwise -1.\n */\n Common.indexOf = function(haystack, needle) {\n if (haystack.indexOf)\n return haystack.indexOf(needle);\n\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle)\n return i;\n }\n\n return -1;\n };\n\n /**\n * A cross browser compatible array map implementation.\n * @method map\n * @param {array} list\n * @param {function} func\n * @return {array} Values from list transformed by func.\n */\n Common.map = function(list, func) {\n if (list.map) {\n return list.map(func);\n }\n\n var mapped = [];\n\n for (var i = 0; i < list.length; i += 1) {\n mapped.push(func(list[i]));\n }\n\n return mapped;\n };\n\n /**\n * Takes a directed graph and returns the partially ordered set of vertices in topological order.\n * Circular dependencies are allowed.\n * @method topologicalSort\n * @param {object} graph\n * @return {array} Partially ordered set of vertices in topological order.\n */\n Common.topologicalSort = function(graph) {\n // https://github.com/mgechev/javascript-algorithms\n // Copyright (c) Minko Gechev (MIT license)\n // Modifications: tidy formatting and naming\n var result = [],\n visited = [],\n temp = [];\n\n for (var node in graph) {\n if (!visited[node] && !temp[node]) {\n Common._topologicalSort(node, visited, temp, graph, result);\n }\n }\n\n return result;\n };\n\n Common._topologicalSort = function(node, visited, temp, graph, result) {\n var neighbors = graph[node] || [];\n temp[node] = true;\n\n for (var i = 0; i < neighbors.length; i += 1) {\n var neighbor = neighbors[i];\n\n if (temp[neighbor]) {\n // skip circular dependencies\n continue;\n }\n\n if (!visited[neighbor]) {\n Common._topologicalSort(neighbor, visited, temp, graph, result);\n }\n }\n\n temp[node] = false;\n visited[node] = true;\n\n result.push(node);\n };\n\n /**\n * Takes _n_ functions as arguments and returns a new function that calls them in order.\n * The arguments applied when calling the new function will also be applied to every function passed.\n * The value of `this` refers to the last value returned in the chain that was not `undefined`.\n * Therefore if a passed function does not return a value, the previously returned value is maintained.\n * After all passed functions have been called the new function returns the last returned value (if any).\n * If any of the passed functions are a chain, then the chain will be flattened.\n * @method chain\n * @param ...funcs {function} The functions to chain.\n * @return {function} A new function that calls the passed functions in order.\n */\n Common.chain = function() {\n var funcs = [];\n\n for (var i = 0; i < arguments.length; i += 1) {\n var func = arguments[i];\n\n if (func._chained) {\n // flatten already chained functions\n funcs.push.apply(funcs, func._chained);\n } else {\n funcs.push(func);\n }\n }\n\n var chain = function() {\n // https://github.com/GoogleChrome/devtools-docs/issues/53#issuecomment-51941358\n var lastResult,\n args = new Array(arguments.length);\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n args[i] = arguments[i];\n }\n\n for (i = 0; i < funcs.length; i += 1) {\n var result = funcs[i].apply(lastResult, args);\n\n if (typeof result !== 'undefined') {\n lastResult = result;\n }\n }\n\n return lastResult;\n };\n\n chain._chained = funcs;\n\n return chain;\n };\n\n /**\n * Chains a function to excute before the original function on the given `path` relative to `base`.\n * See also docs for `Common.chain`.\n * @method chainPathBefore\n * @param {} base The base object\n * @param {string} path The path relative to `base`\n * @param {function} func The function to chain before the original\n * @return {function} The chained function that replaced the original\n */\n Common.chainPathBefore = function(base, path, func) {\n return Common.set(base, path, Common.chain(\n func,\n Common.get(base, path)\n ));\n };\n\n /**\n * Chains a function to excute after the original function on the given `path` relative to `base`.\n * See also docs for `Common.chain`.\n * @method chainPathAfter\n * @param {} base The base object\n * @param {string} path The path relative to `base`\n * @param {function} func The function to chain after the original\n * @return {function} The chained function that replaced the original\n */\n Common.chainPathAfter = function(base, path, func) {\n return Common.set(base, path, Common.chain(\n Common.get(base, path),\n func\n ));\n };\n\n /**\n * Provide the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module to enable\n * concave vertex decomposition support when using `Bodies.fromVertices` e.g. `Common.setDecomp(require('poly-decomp'))`.\n * @method setDecomp\n * @param {} decomp The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module.\n */\n Common.setDecomp = function(decomp) {\n Common._decomp = decomp;\n };\n\n /**\n * Returns the [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module provided through `Common.setDecomp`,\n * otherwise returns the global `decomp` if set.\n * @method getDecomp\n * @return {} The [poly-decomp](https://github.com/schteppe/poly-decomp.js) library module if provided.\n */\n Common.getDecomp = function() {\n // get user provided decomp if set\n var decomp = Common._decomp;\n\n try {\n // otherwise from window global\n if (!decomp && typeof window !== 'undefined') {\n decomp = window.decomp;\n }\n \n // otherwise from node global\n if (!decomp && typeof global !== 'undefined') {\n decomp = global.decomp;\n }\n } catch (e) {\n // decomp not available\n decomp = null;\n }\n\n return decomp;\n };\n})();\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Bounds` module contains methods for creating and manipulating axis-aligned bounding boxes (AABB).\n*\n* @class Bounds\n*/\n\nvar Bounds = {};\n\nmodule.exports = Bounds;\n\n(function() {\n\n /**\n * Creates a new axis-aligned bounding box (AABB) for the given vertices.\n * @method create\n * @param {vertices} vertices\n * @return {bounds} A new bounds object\n */\n Bounds.create = function(vertices) {\n var bounds = { \n min: { x: 0, y: 0 }, \n max: { x: 0, y: 0 }\n };\n\n if (vertices)\n Bounds.update(bounds, vertices);\n \n return bounds;\n };\n\n /**\n * Updates bounds using the given vertices and extends the bounds given a velocity.\n * @method update\n * @param {bounds} bounds\n * @param {vertices} vertices\n * @param {vector} velocity\n */\n Bounds.update = function(bounds, vertices, velocity) {\n bounds.min.x = Infinity;\n bounds.max.x = -Infinity;\n bounds.min.y = Infinity;\n bounds.max.y = -Infinity;\n\n for (var i = 0; i < vertices.length; i++) {\n var vertex = vertices[i];\n if (vertex.x > bounds.max.x) bounds.max.x = vertex.x;\n if (vertex.x < bounds.min.x) bounds.min.x = vertex.x;\n if (vertex.y > bounds.max.y) bounds.max.y = vertex.y;\n if (vertex.y < bounds.min.y) bounds.min.y = vertex.y;\n }\n \n if (velocity) {\n if (velocity.x > 0) {\n bounds.max.x += velocity.x;\n } else {\n bounds.min.x += velocity.x;\n }\n \n if (velocity.y > 0) {\n bounds.max.y += velocity.y;\n } else {\n bounds.min.y += velocity.y;\n }\n }\n };\n\n /**\n * Returns true if the bounds contains the given point.\n * @method contains\n * @param {bounds} bounds\n * @param {vector} point\n * @return {boolean} True if the bounds contain the point, otherwise false\n */\n Bounds.contains = function(bounds, point) {\n return point.x >= bounds.min.x && point.x <= bounds.max.x \n && point.y >= bounds.min.y && point.y <= bounds.max.y;\n };\n\n /**\n * Returns true if the two bounds intersect.\n * @method overlaps\n * @param {bounds} boundsA\n * @param {bounds} boundsB\n * @return {boolean} True if the bounds overlap, otherwise false\n */\n Bounds.overlaps = function(boundsA, boundsB) {\n return (boundsA.min.x <= boundsB.max.x && boundsA.max.x >= boundsB.min.x\n && boundsA.max.y >= boundsB.min.y && boundsA.min.y <= boundsB.max.y);\n };\n\n /**\n * Translates the bounds by the given vector.\n * @method translate\n * @param {bounds} bounds\n * @param {vector} vector\n */\n Bounds.translate = function(bounds, vector) {\n bounds.min.x += vector.x;\n bounds.max.x += vector.x;\n bounds.min.y += vector.y;\n bounds.max.y += vector.y;\n };\n\n /**\n * Shifts the bounds to the given position.\n * @method shift\n * @param {bounds} bounds\n * @param {vector} position\n */\n Bounds.shift = function(bounds, position) {\n var deltaX = bounds.max.x - bounds.min.x,\n deltaY = bounds.max.y - bounds.min.y;\n \n bounds.min.x = position.x;\n bounds.max.x = position.x + deltaX;\n bounds.min.y = position.y;\n bounds.max.y = position.y + deltaY;\n };\n \n})();\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Vector` module contains methods for creating and manipulating vectors.\n* Vectors are the basis of all the geometry related operations in the engine.\n* A `Matter.Vector` object is of the form `{ x: 0, y: 0 }`.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Vector\n*/\n\n// TODO: consider params for reusing vector objects\n\nvar Vector = {};\n\nmodule.exports = Vector;\n\n(function() {\n\n /**\n * Creates a new vector.\n * @method create\n * @param {number} x\n * @param {number} y\n * @return {vector} A new vector\n */\n Vector.create = function(x, y) {\n return { x: x || 0, y: y || 0 };\n };\n\n /**\n * Returns a new vector with `x` and `y` copied from the given `vector`.\n * @method clone\n * @param {vector} vector\n * @return {vector} A new cloned vector\n */\n Vector.clone = function(vector) {\n return { x: vector.x, y: vector.y };\n };\n\n /**\n * Returns the magnitude (length) of a vector.\n * @method magnitude\n * @param {vector} vector\n * @return {number} The magnitude of the vector\n */\n Vector.magnitude = function(vector) {\n return Math.sqrt((vector.x * vector.x) + (vector.y * vector.y));\n };\n\n /**\n * Returns the magnitude (length) of a vector (therefore saving a `sqrt` operation).\n * @method magnitudeSquared\n * @param {vector} vector\n * @return {number} The squared magnitude of the vector\n */\n Vector.magnitudeSquared = function(vector) {\n return (vector.x * vector.x) + (vector.y * vector.y);\n };\n\n /**\n * Rotates the vector about (0, 0) by specified angle.\n * @method rotate\n * @param {vector} vector\n * @param {number} angle\n * @param {vector} [output]\n * @return {vector} The vector rotated about (0, 0)\n */\n Vector.rotate = function(vector, angle, output) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n if (!output) output = {};\n var x = vector.x * cos - vector.y * sin;\n output.y = vector.x * sin + vector.y * cos;\n output.x = x;\n return output;\n };\n\n /**\n * Rotates the vector about a specified point by specified angle.\n * @method rotateAbout\n * @param {vector} vector\n * @param {number} angle\n * @param {vector} point\n * @param {vector} [output]\n * @return {vector} A new vector rotated about the point\n */\n Vector.rotateAbout = function(vector, angle, point, output) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n if (!output) output = {};\n var x = point.x + ((vector.x - point.x) * cos - (vector.y - point.y) * sin);\n output.y = point.y + ((vector.x - point.x) * sin + (vector.y - point.y) * cos);\n output.x = x;\n return output;\n };\n\n /**\n * Normalises a vector (such that its magnitude is `1`).\n * @method normalise\n * @param {vector} vector\n * @return {vector} A new vector normalised\n */\n Vector.normalise = function(vector) {\n var magnitude = Vector.magnitude(vector);\n if (magnitude === 0)\n return { x: 0, y: 0 };\n return { x: vector.x / magnitude, y: vector.y / magnitude };\n };\n\n /**\n * Returns the dot-product of two vectors.\n * @method dot\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The dot product of the two vectors\n */\n Vector.dot = function(vectorA, vectorB) {\n return (vectorA.x * vectorB.x) + (vectorA.y * vectorB.y);\n };\n\n /**\n * Returns the cross-product of two vectors.\n * @method cross\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The cross product of the two vectors\n */\n Vector.cross = function(vectorA, vectorB) {\n return (vectorA.x * vectorB.y) - (vectorA.y * vectorB.x);\n };\n\n /**\n * Returns the cross-product of three vectors.\n * @method cross3\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} vectorC\n * @return {number} The cross product of the three vectors\n */\n Vector.cross3 = function(vectorA, vectorB, vectorC) {\n return (vectorB.x - vectorA.x) * (vectorC.y - vectorA.y) - (vectorB.y - vectorA.y) * (vectorC.x - vectorA.x);\n };\n\n /**\n * Adds the two vectors.\n * @method add\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} [output]\n * @return {vector} A new vector of vectorA and vectorB added\n */\n Vector.add = function(vectorA, vectorB, output) {\n if (!output) output = {};\n output.x = vectorA.x + vectorB.x;\n output.y = vectorA.y + vectorB.y;\n return output;\n };\n\n /**\n * Subtracts the two vectors.\n * @method sub\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @param {vector} [output]\n * @return {vector} A new vector of vectorA and vectorB subtracted\n */\n Vector.sub = function(vectorA, vectorB, output) {\n if (!output) output = {};\n output.x = vectorA.x - vectorB.x;\n output.y = vectorA.y - vectorB.y;\n return output;\n };\n\n /**\n * Multiplies a vector and a scalar.\n * @method mult\n * @param {vector} vector\n * @param {number} scalar\n * @return {vector} A new vector multiplied by scalar\n */\n Vector.mult = function(vector, scalar) {\n return { x: vector.x * scalar, y: vector.y * scalar };\n };\n\n /**\n * Divides a vector and a scalar.\n * @method div\n * @param {vector} vector\n * @param {number} scalar\n * @return {vector} A new vector divided by scalar\n */\n Vector.div = function(vector, scalar) {\n return { x: vector.x / scalar, y: vector.y / scalar };\n };\n\n /**\n * Returns the perpendicular vector. Set `negate` to true for the perpendicular in the opposite direction.\n * @method perp\n * @param {vector} vector\n * @param {bool} [negate=false]\n * @return {vector} The perpendicular vector\n */\n Vector.perp = function(vector, negate) {\n negate = negate === true ? -1 : 1;\n return { x: negate * -vector.y, y: negate * vector.x };\n };\n\n /**\n * Negates both components of a vector such that it points in the opposite direction.\n * @method neg\n * @param {vector} vector\n * @return {vector} The negated vector\n */\n Vector.neg = function(vector) {\n return { x: -vector.x, y: -vector.y };\n };\n\n /**\n * Returns the angle between the vector `vectorB - vectorA` and the x-axis in radians.\n * @method angle\n * @param {vector} vectorA\n * @param {vector} vectorB\n * @return {number} The angle in radians\n */\n Vector.angle = function(vectorA, vectorB) {\n return Math.atan2(vectorB.y - vectorA.y, vectorB.x - vectorA.x);\n };\n\n /**\n * Temporary vector pool (not thread-safe).\n * @property _temp\n * @type {vector[]}\n * @private\n */\n Vector._temp = [\n Vector.create(), Vector.create(), \n Vector.create(), Vector.create(), \n Vector.create(), Vector.create()\n ];\n\n})();\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Vertices` module contains methods for creating and manipulating sets of vertices.\n* A set of vertices is an array of `Matter.Vector` with additional indexing properties inserted by `Vertices.create`.\n* A `Matter.Body` maintains a set of vertices to represent the shape of the object (its convex hull).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Vertices\n*/\n\nvar Vertices = {};\n\nmodule.exports = Vertices;\n\nvar Vector = __webpack_require__(2);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new set of `Matter.Body` compatible vertices.\n * The `points` argument accepts an array of `Matter.Vector` points orientated around the origin `(0, 0)`, for example:\n *\n * [{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]\n *\n * The `Vertices.create` method returns a new array of vertices, which are similar to Matter.Vector objects,\n * but with some additional references required for efficient collision detection routines.\n *\n * Vertices must be specified in clockwise order.\n *\n * Note that the `body` argument is not optional, a `Matter.Body` reference must be provided.\n *\n * @method create\n * @param {vector[]} points\n * @param {body} body\n */\n Vertices.create = function(points, body) {\n var vertices = [];\n\n for (var i = 0; i < points.length; i++) {\n var point = points[i],\n vertex = {\n x: point.x,\n y: point.y,\n index: i,\n body: body,\n isInternal: false\n };\n\n vertices.push(vertex);\n }\n\n return vertices;\n };\n\n /**\n * Parses a string containing ordered x y pairs separated by spaces (and optionally commas), \n * into a `Matter.Vertices` object for the given `Matter.Body`.\n * For parsing SVG paths, see `Svg.pathToVertices`.\n * @method fromPath\n * @param {string} path\n * @param {body} body\n * @return {vertices} vertices\n */\n Vertices.fromPath = function(path, body) {\n var pathPattern = /L?\\s*([-\\d.e]+)[\\s,]*([-\\d.e]+)*/ig,\n points = [];\n\n path.replace(pathPattern, function(match, x, y) {\n points.push({ x: parseFloat(x), y: parseFloat(y) });\n });\n\n return Vertices.create(points, body);\n };\n\n /**\n * Returns the centre (centroid) of the set of vertices.\n * @method centre\n * @param {vertices} vertices\n * @return {vector} The centre point\n */\n Vertices.centre = function(vertices) {\n var area = Vertices.area(vertices, true),\n centre = { x: 0, y: 0 },\n cross,\n temp,\n j;\n\n for (var i = 0; i < vertices.length; i++) {\n j = (i + 1) % vertices.length;\n cross = Vector.cross(vertices[i], vertices[j]);\n temp = Vector.mult(Vector.add(vertices[i], vertices[j]), cross);\n centre = Vector.add(centre, temp);\n }\n\n return Vector.div(centre, 6 * area);\n };\n\n /**\n * Returns the average (mean) of the set of vertices.\n * @method mean\n * @param {vertices} vertices\n * @return {vector} The average point\n */\n Vertices.mean = function(vertices) {\n var average = { x: 0, y: 0 };\n\n for (var i = 0; i < vertices.length; i++) {\n average.x += vertices[i].x;\n average.y += vertices[i].y;\n }\n\n return Vector.div(average, vertices.length);\n };\n\n /**\n * Returns the area of the set of vertices.\n * @method area\n * @param {vertices} vertices\n * @param {bool} signed\n * @return {number} The area\n */\n Vertices.area = function(vertices, signed) {\n var area = 0,\n j = vertices.length - 1;\n\n for (var i = 0; i < vertices.length; i++) {\n area += (vertices[j].x - vertices[i].x) * (vertices[j].y + vertices[i].y);\n j = i;\n }\n\n if (signed)\n return area / 2;\n\n return Math.abs(area) / 2;\n };\n\n /**\n * Returns the moment of inertia (second moment of area) of the set of vertices given the total mass.\n * @method inertia\n * @param {vertices} vertices\n * @param {number} mass\n * @return {number} The polygon's moment of inertia\n */\n Vertices.inertia = function(vertices, mass) {\n var numerator = 0,\n denominator = 0,\n v = vertices,\n cross,\n j;\n\n // find the polygon's moment of inertia, using second moment of area\n // from equations at http://www.physicsforums.com/showthread.php?t=25293\n for (var n = 0; n < v.length; n++) {\n j = (n + 1) % v.length;\n cross = Math.abs(Vector.cross(v[j], v[n]));\n numerator += cross * (Vector.dot(v[j], v[j]) + Vector.dot(v[j], v[n]) + Vector.dot(v[n], v[n]));\n denominator += cross;\n }\n\n return (mass / 6) * (numerator / denominator);\n };\n\n /**\n * Translates the set of vertices in-place.\n * @method translate\n * @param {vertices} vertices\n * @param {vector} vector\n * @param {number} scalar\n */\n Vertices.translate = function(vertices, vector, scalar) {\n scalar = typeof scalar !== 'undefined' ? scalar : 1;\n\n var verticesLength = vertices.length,\n translateX = vector.x * scalar,\n translateY = vector.y * scalar,\n i;\n \n for (i = 0; i < verticesLength; i++) {\n vertices[i].x += translateX;\n vertices[i].y += translateY;\n }\n\n return vertices;\n };\n\n /**\n * Rotates the set of vertices in-place.\n * @method rotate\n * @param {vertices} vertices\n * @param {number} angle\n * @param {vector} point\n */\n Vertices.rotate = function(vertices, angle, point) {\n if (angle === 0)\n return;\n\n var cos = Math.cos(angle),\n sin = Math.sin(angle),\n pointX = point.x,\n pointY = point.y,\n verticesLength = vertices.length,\n vertex,\n dx,\n dy,\n i;\n\n for (i = 0; i < verticesLength; i++) {\n vertex = vertices[i];\n dx = vertex.x - pointX;\n dy = vertex.y - pointY;\n vertex.x = pointX + (dx * cos - dy * sin);\n vertex.y = pointY + (dx * sin + dy * cos);\n }\n\n return vertices;\n };\n\n /**\n * Returns `true` if the `point` is inside the set of `vertices`.\n * @method contains\n * @param {vertices} vertices\n * @param {vector} point\n * @return {boolean} True if the vertices contains point, otherwise false\n */\n Vertices.contains = function(vertices, point) {\n var pointX = point.x,\n pointY = point.y,\n verticesLength = vertices.length,\n vertex = vertices[verticesLength - 1],\n nextVertex;\n\n for (var i = 0; i < verticesLength; i++) {\n nextVertex = vertices[i];\n\n if ((pointX - vertex.x) * (nextVertex.y - vertex.y) \n + (pointY - vertex.y) * (vertex.x - nextVertex.x) > 0) {\n return false;\n }\n\n vertex = nextVertex;\n }\n\n return true;\n };\n\n /**\n * Scales the vertices from a point (default is centre) in-place.\n * @method scale\n * @param {vertices} vertices\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} point\n */\n Vertices.scale = function(vertices, scaleX, scaleY, point) {\n if (scaleX === 1 && scaleY === 1)\n return vertices;\n\n point = point || Vertices.centre(vertices);\n\n var vertex,\n delta;\n\n for (var i = 0; i < vertices.length; i++) {\n vertex = vertices[i];\n delta = Vector.sub(vertex, point);\n vertices[i].x = point.x + delta.x * scaleX;\n vertices[i].y = point.y + delta.y * scaleY;\n }\n\n return vertices;\n };\n\n /**\n * Chamfers a set of vertices by giving them rounded corners, returns a new set of vertices.\n * The radius parameter is a single number or an array to specify the radius for each vertex.\n * @method chamfer\n * @param {vertices} vertices\n * @param {number[]} radius\n * @param {number} quality\n * @param {number} qualityMin\n * @param {number} qualityMax\n */\n Vertices.chamfer = function(vertices, radius, quality, qualityMin, qualityMax) {\n if (typeof radius === 'number') {\n radius = [radius];\n } else {\n radius = radius || [8];\n }\n\n // quality defaults to -1, which is auto\n quality = (typeof quality !== 'undefined') ? quality : -1;\n qualityMin = qualityMin || 2;\n qualityMax = qualityMax || 14;\n\n var newVertices = [];\n\n for (var i = 0; i < vertices.length; i++) {\n var prevVertex = vertices[i - 1 >= 0 ? i - 1 : vertices.length - 1],\n vertex = vertices[i],\n nextVertex = vertices[(i + 1) % vertices.length],\n currentRadius = radius[i < radius.length ? i : radius.length - 1];\n\n if (currentRadius === 0) {\n newVertices.push(vertex);\n continue;\n }\n\n var prevNormal = Vector.normalise({ \n x: vertex.y - prevVertex.y, \n y: prevVertex.x - vertex.x\n });\n\n var nextNormal = Vector.normalise({ \n x: nextVertex.y - vertex.y, \n y: vertex.x - nextVertex.x\n });\n\n var diagonalRadius = Math.sqrt(2 * Math.pow(currentRadius, 2)),\n radiusVector = Vector.mult(Common.clone(prevNormal), currentRadius),\n midNormal = Vector.normalise(Vector.mult(Vector.add(prevNormal, nextNormal), 0.5)),\n scaledVertex = Vector.sub(vertex, Vector.mult(midNormal, diagonalRadius));\n\n var precision = quality;\n\n if (quality === -1) {\n // automatically decide precision\n precision = Math.pow(currentRadius, 0.32) * 1.75;\n }\n\n precision = Common.clamp(precision, qualityMin, qualityMax);\n\n // use an even value for precision, more likely to reduce axes by using symmetry\n if (precision % 2 === 1)\n precision += 1;\n\n var alpha = Math.acos(Vector.dot(prevNormal, nextNormal)),\n theta = alpha / precision;\n\n for (var j = 0; j < precision; j++) {\n newVertices.push(Vector.add(Vector.rotate(radiusVector, theta * j), scaledVertex));\n }\n }\n\n return newVertices;\n };\n\n /**\n * Sorts the input vertices into clockwise order in place.\n * @method clockwiseSort\n * @param {vertices} vertices\n * @return {vertices} vertices\n */\n Vertices.clockwiseSort = function(vertices) {\n var centre = Vertices.mean(vertices);\n\n vertices.sort(function(vertexA, vertexB) {\n return Vector.angle(centre, vertexA) - Vector.angle(centre, vertexB);\n });\n\n return vertices;\n };\n\n /**\n * Returns true if the vertices form a convex shape (vertices must be in clockwise order).\n * @method isConvex\n * @param {vertices} vertices\n * @return {bool} `true` if the `vertices` are convex, `false` if not (or `null` if not computable).\n */\n Vertices.isConvex = function(vertices) {\n // http://paulbourke.net/geometry/polygonmesh/\n // Copyright (c) Paul Bourke (use permitted)\n\n var flag = 0,\n n = vertices.length,\n i,\n j,\n k,\n z;\n\n if (n < 3)\n return null;\n\n for (i = 0; i < n; i++) {\n j = (i + 1) % n;\n k = (i + 2) % n;\n z = (vertices[j].x - vertices[i].x) * (vertices[k].y - vertices[j].y);\n z -= (vertices[j].y - vertices[i].y) * (vertices[k].x - vertices[j].x);\n\n if (z < 0) {\n flag |= 1;\n } else if (z > 0) {\n flag |= 2;\n }\n\n if (flag === 3) {\n return false;\n }\n }\n\n if (flag !== 0){\n return true;\n } else {\n return null;\n }\n };\n\n /**\n * Returns the convex hull of the input vertices as a new array of points.\n * @method hull\n * @param {vertices} vertices\n * @return [vertex] vertices\n */\n Vertices.hull = function(vertices) {\n // http://geomalgorithms.com/a10-_hull-1.html\n\n var upper = [],\n lower = [], \n vertex,\n i;\n\n // sort vertices on x-axis (y-axis for ties)\n vertices = vertices.slice(0);\n vertices.sort(function(vertexA, vertexB) {\n var dx = vertexA.x - vertexB.x;\n return dx !== 0 ? dx : vertexA.y - vertexB.y;\n });\n\n // build lower hull\n for (i = 0; i < vertices.length; i += 1) {\n vertex = vertices[i];\n\n while (lower.length >= 2 \n && Vector.cross3(lower[lower.length - 2], lower[lower.length - 1], vertex) <= 0) {\n lower.pop();\n }\n\n lower.push(vertex);\n }\n\n // build upper hull\n for (i = vertices.length - 1; i >= 0; i -= 1) {\n vertex = vertices[i];\n\n while (upper.length >= 2 \n && Vector.cross3(upper[upper.length - 2], upper[upper.length - 1], vertex) <= 0) {\n upper.pop();\n }\n\n upper.push(vertex);\n }\n\n // concatenation of the lower and upper hulls gives the convex hull\n // omit last points because they are repeated at the beginning of the other list\n upper.pop();\n lower.pop();\n\n return upper.concat(lower);\n };\n\n})();\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Body` module contains methods for creating and manipulating rigid bodies.\n* For creating bodies with common configurations such as rectangles, circles and other polygons see the module `Matter.Bodies`.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n\n* @class Body\n*/\n\nvar Body = {};\n\nmodule.exports = Body;\n\nvar Vertices = __webpack_require__(3);\nvar Vector = __webpack_require__(2);\nvar Sleeping = __webpack_require__(7);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\nvar Axes = __webpack_require__(11);\n\n(function() {\n\n Body._timeCorrection = true;\n Body._inertiaScale = 4;\n Body._nextCollidingGroupId = 1;\n Body._nextNonCollidingGroupId = -1;\n Body._nextCategory = 0x0001;\n Body._baseDelta = 1000 / 60;\n\n /**\n * Creates a new rigid body model. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * Vertices must be specified in clockwise order.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} options\n * @return {body} body\n */\n Body.create = function(options) {\n var defaults = {\n id: Common.nextId(),\n type: 'body',\n label: 'Body',\n parts: [],\n plugin: {},\n angle: 0,\n vertices: Vertices.fromPath('L 0 0 L 40 0 L 40 40 L 0 40'),\n position: { x: 0, y: 0 },\n force: { x: 0, y: 0 },\n torque: 0,\n positionImpulse: { x: 0, y: 0 },\n constraintImpulse: { x: 0, y: 0, angle: 0 },\n totalContacts: 0,\n speed: 0,\n angularSpeed: 0,\n velocity: { x: 0, y: 0 },\n angularVelocity: 0,\n isSensor: false,\n isStatic: false,\n isSleeping: false,\n motion: 0,\n sleepThreshold: 60,\n density: 0.001,\n restitution: 0,\n friction: 0.1,\n frictionStatic: 0.5,\n frictionAir: 0.01,\n collisionFilter: {\n category: 0x0001,\n mask: 0xFFFFFFFF,\n group: 0\n },\n slop: 0.05,\n timeScale: 1,\n render: {\n visible: true,\n opacity: 1,\n strokeStyle: null,\n fillStyle: null,\n lineWidth: null,\n sprite: {\n xScale: 1,\n yScale: 1,\n xOffset: 0,\n yOffset: 0\n }\n },\n events: null,\n bounds: null,\n chamfer: null,\n circleRadius: 0,\n positionPrev: null,\n anglePrev: 0,\n parent: null,\n axes: null,\n area: 0,\n mass: 0,\n inertia: 0,\n deltaTime: 1000 / 60,\n _original: null\n };\n\n var body = Common.extend(defaults, options);\n\n _initProperties(body, options);\n\n return body;\n };\n\n /**\n * Returns the next unique group index for which bodies will collide.\n * If `isNonColliding` is `true`, returns the next unique group index for which bodies will _not_ collide.\n * See `body.collisionFilter` for more information.\n * @method nextGroup\n * @param {bool} [isNonColliding=false]\n * @return {Number} Unique group index\n */\n Body.nextGroup = function(isNonColliding) {\n if (isNonColliding)\n return Body._nextNonCollidingGroupId--;\n\n return Body._nextCollidingGroupId++;\n };\n\n /**\n * Returns the next unique category bitfield (starting after the initial default category `0x0001`).\n * There are 32 available. See `body.collisionFilter` for more information.\n * @method nextCategory\n * @return {Number} Unique category bitfield\n */\n Body.nextCategory = function() {\n Body._nextCategory = Body._nextCategory << 1;\n return Body._nextCategory;\n };\n\n /**\n * Initialises body properties.\n * @method _initProperties\n * @private\n * @param {body} body\n * @param {} [options]\n */\n var _initProperties = function(body, options) {\n options = options || {};\n\n // init required properties (order is important)\n Body.set(body, {\n bounds: body.bounds || Bounds.create(body.vertices),\n positionPrev: body.positionPrev || Vector.clone(body.position),\n anglePrev: body.anglePrev || body.angle,\n vertices: body.vertices,\n parts: body.parts || [body],\n isStatic: body.isStatic,\n isSleeping: body.isSleeping,\n parent: body.parent || body\n });\n\n Vertices.rotate(body.vertices, body.angle, body.position);\n Axes.rotate(body.axes, body.angle);\n Bounds.update(body.bounds, body.vertices, body.velocity);\n\n // allow options to override the automatically calculated properties\n Body.set(body, {\n axes: options.axes || body.axes,\n area: options.area || body.area,\n mass: options.mass || body.mass,\n inertia: options.inertia || body.inertia\n });\n\n // render properties\n var defaultFillStyle = (body.isStatic ? '#14151f' : Common.choose(['#f19648', '#f5d259', '#f55a3c', '#063e7b', '#ececd1'])),\n defaultStrokeStyle = body.isStatic ? '#555' : '#ccc',\n defaultLineWidth = body.isStatic && body.render.fillStyle === null ? 1 : 0;\n body.render.fillStyle = body.render.fillStyle || defaultFillStyle;\n body.render.strokeStyle = body.render.strokeStyle || defaultStrokeStyle;\n body.render.lineWidth = body.render.lineWidth || defaultLineWidth;\n body.render.sprite.xOffset += -(body.bounds.min.x - body.position.x) / (body.bounds.max.x - body.bounds.min.x);\n body.render.sprite.yOffset += -(body.bounds.min.y - body.position.y) / (body.bounds.max.y - body.bounds.min.y);\n };\n\n /**\n * Given a property and a value (or map of), sets the property(s) on the body, using the appropriate setter functions if they exist.\n * Prefer to use the actual setter functions in performance critical situations.\n * @method set\n * @param {body} body\n * @param {} settings A property name (or map of properties and values) to set on the body.\n * @param {} value The value to set if `settings` is a single property name.\n */\n Body.set = function(body, settings, value) {\n var property;\n\n if (typeof settings === 'string') {\n property = settings;\n settings = {};\n settings[property] = value;\n }\n\n for (property in settings) {\n if (!Object.prototype.hasOwnProperty.call(settings, property))\n continue;\n\n value = settings[property];\n switch (property) {\n\n case 'isStatic':\n Body.setStatic(body, value);\n break;\n case 'isSleeping':\n Sleeping.set(body, value);\n break;\n case 'mass':\n Body.setMass(body, value);\n break;\n case 'density':\n Body.setDensity(body, value);\n break;\n case 'inertia':\n Body.setInertia(body, value);\n break;\n case 'vertices':\n Body.setVertices(body, value);\n break;\n case 'position':\n Body.setPosition(body, value);\n break;\n case 'angle':\n Body.setAngle(body, value);\n break;\n case 'velocity':\n Body.setVelocity(body, value);\n break;\n case 'angularVelocity':\n Body.setAngularVelocity(body, value);\n break;\n case 'speed':\n Body.setSpeed(body, value);\n break;\n case 'angularSpeed':\n Body.setAngularSpeed(body, value);\n break;\n case 'parts':\n Body.setParts(body, value);\n break;\n case 'centre':\n Body.setCentre(body, value);\n break;\n default:\n body[property] = value;\n\n }\n }\n };\n\n /**\n * Sets the body as static, including isStatic flag and setting mass and inertia to Infinity.\n * @method setStatic\n * @param {body} body\n * @param {bool} isStatic\n */\n Body.setStatic = function(body, isStatic) {\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.isStatic = isStatic;\n\n if (isStatic) {\n part._original = {\n restitution: part.restitution,\n friction: part.friction,\n mass: part.mass,\n inertia: part.inertia,\n density: part.density,\n inverseMass: part.inverseMass,\n inverseInertia: part.inverseInertia\n };\n\n part.restitution = 0;\n part.friction = 1;\n part.mass = part.inertia = part.density = Infinity;\n part.inverseMass = part.inverseInertia = 0;\n\n part.positionPrev.x = part.position.x;\n part.positionPrev.y = part.position.y;\n part.anglePrev = part.angle;\n part.angularVelocity = 0;\n part.speed = 0;\n part.angularSpeed = 0;\n part.motion = 0;\n } else if (part._original) {\n part.restitution = part._original.restitution;\n part.friction = part._original.friction;\n part.mass = part._original.mass;\n part.inertia = part._original.inertia;\n part.density = part._original.density;\n part.inverseMass = part._original.inverseMass;\n part.inverseInertia = part._original.inverseInertia;\n\n part._original = null;\n }\n }\n };\n\n /**\n * Sets the mass of the body. Inverse mass, density and inertia are automatically updated to reflect the change.\n * @method setMass\n * @param {body} body\n * @param {number} mass\n */\n Body.setMass = function(body, mass) {\n var moment = body.inertia / (body.mass / 6);\n body.inertia = moment * (mass / 6);\n body.inverseInertia = 1 / body.inertia;\n\n body.mass = mass;\n body.inverseMass = 1 / body.mass;\n body.density = body.mass / body.area;\n };\n\n /**\n * Sets the density of the body. Mass and inertia are automatically updated to reflect the change.\n * @method setDensity\n * @param {body} body\n * @param {number} density\n */\n Body.setDensity = function(body, density) {\n Body.setMass(body, density * body.area);\n body.density = density;\n };\n\n /**\n * Sets the moment of inertia of the body. This is the second moment of area in two dimensions.\n * Inverse inertia is automatically updated to reflect the change. Mass is not changed.\n * @method setInertia\n * @param {body} body\n * @param {number} inertia\n */\n Body.setInertia = function(body, inertia) {\n body.inertia = inertia;\n body.inverseInertia = 1 / body.inertia;\n };\n\n /**\n * Sets the body's vertices and updates body properties accordingly, including inertia, area and mass (with respect to `body.density`).\n * Vertices will be automatically transformed to be orientated around their centre of mass as the origin.\n * They are then automatically translated to world space based on `body.position`.\n *\n * The `vertices` argument should be passed as an array of `Matter.Vector` points (or a `Matter.Vertices` array).\n * Vertices must form a convex hull. Concave vertices must be decomposed into convex parts.\n * \n * @method setVertices\n * @param {body} body\n * @param {vector[]} vertices\n */\n Body.setVertices = function(body, vertices) {\n // change vertices\n if (vertices[0].body === body) {\n body.vertices = vertices;\n } else {\n body.vertices = Vertices.create(vertices, body);\n }\n\n // update properties\n body.axes = Axes.fromVertices(body.vertices);\n body.area = Vertices.area(body.vertices);\n Body.setMass(body, body.density * body.area);\n\n // orient vertices around the centre of mass at origin (0, 0)\n var centre = Vertices.centre(body.vertices);\n Vertices.translate(body.vertices, centre, -1);\n\n // update inertia while vertices are at origin (0, 0)\n Body.setInertia(body, Body._inertiaScale * Vertices.inertia(body.vertices, body.mass));\n\n // update geometry\n Vertices.translate(body.vertices, body.position);\n Bounds.update(body.bounds, body.vertices, body.velocity);\n };\n\n /**\n * Sets the parts of the `body` and updates mass, inertia and centroid.\n * Each part will have its parent set to `body`.\n * By default the convex hull will be automatically computed and set on `body`, unless `autoHull` is set to `false.`\n * Note that this method will ensure that the first part in `body.parts` will always be the `body`.\n * @method setParts\n * @param {body} body\n * @param {body[]} parts\n * @param {bool} [autoHull=true]\n */\n Body.setParts = function(body, parts, autoHull) {\n var i;\n\n // add all the parts, ensuring that the first part is always the parent body\n parts = parts.slice(0);\n body.parts.length = 0;\n body.parts.push(body);\n body.parent = body;\n\n for (i = 0; i < parts.length; i++) {\n var part = parts[i];\n if (part !== body) {\n part.parent = body;\n body.parts.push(part);\n }\n }\n\n if (body.parts.length === 1)\n return;\n\n autoHull = typeof autoHull !== 'undefined' ? autoHull : true;\n\n // find the convex hull of all parts to set on the parent body\n if (autoHull) {\n var vertices = [];\n for (i = 0; i < parts.length; i++) {\n vertices = vertices.concat(parts[i].vertices);\n }\n\n Vertices.clockwiseSort(vertices);\n\n var hull = Vertices.hull(vertices),\n hullCentre = Vertices.centre(hull);\n\n Body.setVertices(body, hull);\n Vertices.translate(body.vertices, hullCentre);\n }\n\n // sum the properties of all compound parts of the parent body\n var total = Body._totalProperties(body);\n\n body.area = total.area;\n body.parent = body;\n body.position.x = total.centre.x;\n body.position.y = total.centre.y;\n body.positionPrev.x = total.centre.x;\n body.positionPrev.y = total.centre.y;\n\n Body.setMass(body, total.mass);\n Body.setInertia(body, total.inertia);\n Body.setPosition(body, total.centre);\n };\n\n /**\n * Set the centre of mass of the body. \n * The `centre` is a vector in world-space unless `relative` is set, in which case it is a translation.\n * The centre of mass is the point the body rotates about and can be used to simulate non-uniform density.\n * This is equal to moving `body.position` but not the `body.vertices`.\n * Invalid if the `centre` falls outside the body's convex hull.\n * @method setCentre\n * @param {body} body\n * @param {vector} centre\n * @param {bool} relative\n */\n Body.setCentre = function(body, centre, relative) {\n if (!relative) {\n body.positionPrev.x = centre.x - (body.position.x - body.positionPrev.x);\n body.positionPrev.y = centre.y - (body.position.y - body.positionPrev.y);\n body.position.x = centre.x;\n body.position.y = centre.y;\n } else {\n body.positionPrev.x += centre.x;\n body.positionPrev.y += centre.y;\n body.position.x += centre.x;\n body.position.y += centre.y;\n }\n };\n\n /**\n * Sets the position of the body. By default velocity is unchanged.\n * If `updateVelocity` is `true` then velocity is inferred from the change in position.\n * @method setPosition\n * @param {body} body\n * @param {vector} position\n * @param {boolean} [updateVelocity=false]\n */\n Body.setPosition = function(body, position, updateVelocity) {\n var delta = Vector.sub(position, body.position);\n\n if (updateVelocity) {\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n body.velocity.x = delta.x;\n body.velocity.y = delta.y;\n body.speed = Vector.magnitude(delta);\n } else {\n body.positionPrev.x += delta.x;\n body.positionPrev.y += delta.y;\n }\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.position.x += delta.x;\n part.position.y += delta.y;\n Vertices.translate(part.vertices, delta);\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n };\n\n /**\n * Sets the angle of the body. By default angular velocity is unchanged.\n * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle.\n * @method setAngle\n * @param {body} body\n * @param {number} angle\n * @param {boolean} [updateVelocity=false]\n */\n Body.setAngle = function(body, angle, updateVelocity) {\n var delta = angle - body.angle;\n \n if (updateVelocity) {\n body.anglePrev = body.angle;\n body.angularVelocity = delta;\n body.angularSpeed = Math.abs(delta);\n } else {\n body.anglePrev += delta;\n }\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n part.angle += delta;\n Vertices.rotate(part.vertices, delta, body.position);\n Axes.rotate(part.axes, delta);\n Bounds.update(part.bounds, part.vertices, body.velocity);\n if (i > 0) {\n Vector.rotateAbout(part.position, delta, body.position, part.position);\n }\n }\n };\n\n /**\n * Sets the current linear velocity of the body. \n * Affects body speed.\n * @method setVelocity\n * @param {body} body\n * @param {vector} velocity\n */\n Body.setVelocity = function(body, velocity) {\n var timeScale = body.deltaTime / Body._baseDelta;\n body.positionPrev.x = body.position.x - velocity.x * timeScale;\n body.positionPrev.y = body.position.y - velocity.y * timeScale;\n body.velocity.x = (body.position.x - body.positionPrev.x) / timeScale;\n body.velocity.y = (body.position.y - body.positionPrev.y) / timeScale;\n body.speed = Vector.magnitude(body.velocity);\n };\n\n /**\n * Gets the current linear velocity of the body.\n * @method getVelocity\n * @param {body} body\n * @return {vector} velocity\n */\n Body.getVelocity = function(body) {\n var timeScale = Body._baseDelta / body.deltaTime;\n\n return {\n x: (body.position.x - body.positionPrev.x) * timeScale,\n y: (body.position.y - body.positionPrev.y) * timeScale\n };\n };\n\n /**\n * Gets the current linear speed of the body. \n * Equivalent to the magnitude of its velocity.\n * @method getSpeed\n * @param {body} body\n * @return {number} speed\n */\n Body.getSpeed = function(body) {\n return Vector.magnitude(Body.getVelocity(body));\n };\n\n /**\n * Sets the current linear speed of the body. \n * Direction is maintained. Affects body velocity.\n * @method setSpeed\n * @param {body} body\n * @param {number} speed\n */\n Body.setSpeed = function(body, speed) {\n Body.setVelocity(body, Vector.mult(Vector.normalise(Body.getVelocity(body)), speed));\n };\n\n /**\n * Sets the current rotational velocity of the body. \n * Affects body angular speed.\n * @method setAngularVelocity\n * @param {body} body\n * @param {number} velocity\n */\n Body.setAngularVelocity = function(body, velocity) {\n var timeScale = body.deltaTime / Body._baseDelta;\n body.anglePrev = body.angle - velocity * timeScale;\n body.angularVelocity = (body.angle - body.anglePrev) / timeScale;\n body.angularSpeed = Math.abs(body.angularVelocity);\n };\n\n /**\n * Gets the current rotational velocity of the body.\n * @method getAngularVelocity\n * @param {body} body\n * @return {number} angular velocity\n */\n Body.getAngularVelocity = function(body) {\n return (body.angle - body.anglePrev) * Body._baseDelta / body.deltaTime;\n };\n\n /**\n * Gets the current rotational speed of the body. \n * Equivalent to the magnitude of its angular velocity.\n * @method getAngularSpeed\n * @param {body} body\n * @return {number} angular speed\n */\n Body.getAngularSpeed = function(body) {\n return Math.abs(Body.getAngularVelocity(body));\n };\n\n /**\n * Sets the current rotational speed of the body. \n * Direction is maintained. Affects body angular velocity.\n * @method setAngularSpeed\n * @param {body} body\n * @param {number} speed\n */\n Body.setAngularSpeed = function(body, speed) {\n Body.setAngularVelocity(body, Common.sign(Body.getAngularVelocity(body)) * speed);\n };\n\n /**\n * Moves a body by a given vector relative to its current position. By default velocity is unchanged.\n * If `updateVelocity` is `true` then velocity is inferred from the change in position.\n * @method translate\n * @param {body} body\n * @param {vector} translation\n * @param {boolean} [updateVelocity=false]\n */\n Body.translate = function(body, translation, updateVelocity) {\n Body.setPosition(body, Vector.add(body.position, translation), updateVelocity);\n };\n\n /**\n * Rotates a body by a given angle relative to its current angle. By default angular velocity is unchanged.\n * If `updateVelocity` is `true` then angular velocity is inferred from the change in angle.\n * @method rotate\n * @param {body} body\n * @param {number} rotation\n * @param {vector} [point]\n * @param {boolean} [updateVelocity=false]\n */\n Body.rotate = function(body, rotation, point, updateVelocity) {\n if (!point) {\n Body.setAngle(body, body.angle + rotation, updateVelocity);\n } else {\n var cos = Math.cos(rotation),\n sin = Math.sin(rotation),\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + (dx * cos - dy * sin),\n y: point.y + (dx * sin + dy * cos)\n }, updateVelocity);\n\n Body.setAngle(body, body.angle + rotation, updateVelocity);\n }\n };\n\n /**\n * Scales the body, including updating physical properties (mass, area, axes, inertia), from a world-space point (default is body centre).\n * @method scale\n * @param {body} body\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} [point]\n */\n Body.scale = function(body, scaleX, scaleY, point) {\n var totalArea = 0,\n totalInertia = 0;\n\n point = point || body.position;\n\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n\n // scale vertices\n Vertices.scale(part.vertices, scaleX, scaleY, point);\n\n // update properties\n part.axes = Axes.fromVertices(part.vertices);\n part.area = Vertices.area(part.vertices);\n Body.setMass(part, body.density * part.area);\n\n // update inertia (requires vertices to be at origin)\n Vertices.translate(part.vertices, { x: -part.position.x, y: -part.position.y });\n Body.setInertia(part, Body._inertiaScale * Vertices.inertia(part.vertices, part.mass));\n Vertices.translate(part.vertices, { x: part.position.x, y: part.position.y });\n\n if (i > 0) {\n totalArea += part.area;\n totalInertia += part.inertia;\n }\n\n // scale position\n part.position.x = point.x + (part.position.x - point.x) * scaleX;\n part.position.y = point.y + (part.position.y - point.y) * scaleY;\n\n // update bounds\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n\n // handle parent body\n if (body.parts.length > 1) {\n body.area = totalArea;\n\n if (!body.isStatic) {\n Body.setMass(body, body.density * totalArea);\n Body.setInertia(body, totalInertia);\n }\n }\n\n // handle circles\n if (body.circleRadius) { \n if (scaleX === scaleY) {\n body.circleRadius *= scaleX;\n } else {\n // body is no longer a circle\n body.circleRadius = null;\n }\n }\n };\n\n /**\n * Performs an update by integrating the equations of motion on the `body`.\n * This is applied every update by `Matter.Engine` automatically.\n * @method update\n * @param {body} body\n * @param {number} [deltaTime=16.666]\n */\n Body.update = function(body, deltaTime) {\n deltaTime = (typeof deltaTime !== 'undefined' ? deltaTime : (1000 / 60)) * body.timeScale;\n\n var deltaTimeSquared = deltaTime * deltaTime,\n correction = Body._timeCorrection ? deltaTime / (body.deltaTime || deltaTime) : 1;\n\n // from the previous step\n var frictionAir = 1 - body.frictionAir * (deltaTime / Common._baseDelta),\n velocityPrevX = (body.position.x - body.positionPrev.x) * correction,\n velocityPrevY = (body.position.y - body.positionPrev.y) * correction;\n\n // update velocity with Verlet integration\n body.velocity.x = (velocityPrevX * frictionAir) + (body.force.x / body.mass) * deltaTimeSquared;\n body.velocity.y = (velocityPrevY * frictionAir) + (body.force.y / body.mass) * deltaTimeSquared;\n\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n body.position.x += body.velocity.x;\n body.position.y += body.velocity.y;\n body.deltaTime = deltaTime;\n\n // update angular velocity with Verlet integration\n body.angularVelocity = ((body.angle - body.anglePrev) * frictionAir * correction) + (body.torque / body.inertia) * deltaTimeSquared;\n body.anglePrev = body.angle;\n body.angle += body.angularVelocity;\n\n // transform the body geometry\n for (var i = 0; i < body.parts.length; i++) {\n var part = body.parts[i];\n\n Vertices.translate(part.vertices, body.velocity);\n \n if (i > 0) {\n part.position.x += body.velocity.x;\n part.position.y += body.velocity.y;\n }\n\n if (body.angularVelocity !== 0) {\n Vertices.rotate(part.vertices, body.angularVelocity, body.position);\n Axes.rotate(part.axes, body.angularVelocity);\n if (i > 0) {\n Vector.rotateAbout(part.position, body.angularVelocity, body.position, part.position);\n }\n }\n\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n };\n\n /**\n * Updates properties `body.velocity`, `body.speed`, `body.angularVelocity` and `body.angularSpeed` which are normalised in relation to `Body._baseDelta`.\n * @method updateVelocities\n * @param {body} body\n */\n Body.updateVelocities = function(body) {\n var timeScale = Body._baseDelta / body.deltaTime,\n bodyVelocity = body.velocity;\n\n bodyVelocity.x = (body.position.x - body.positionPrev.x) * timeScale;\n bodyVelocity.y = (body.position.y - body.positionPrev.y) * timeScale;\n body.speed = Math.sqrt((bodyVelocity.x * bodyVelocity.x) + (bodyVelocity.y * bodyVelocity.y));\n\n body.angularVelocity = (body.angle - body.anglePrev) * timeScale;\n body.angularSpeed = Math.abs(body.angularVelocity);\n };\n\n /**\n * Applies the `force` to the `body` from the force origin `position` in world-space, over a single timestep, including applying any resulting angular torque.\n * \n * Forces are useful for effects like gravity, wind or rocket thrust, but can be difficult in practice when precise control is needed. In these cases see `Body.setVelocity` and `Body.setPosition` as an alternative.\n * \n * The force from this function is only applied once for the duration of a single timestep, in other words the duration depends directly on the current engine update `delta` and the rate of calls to this function.\n * \n * Therefore to account for time, you should apply the force constantly over as many engine updates as equivalent to the intended duration.\n * \n * If all or part of the force duration is some fraction of a timestep, first multiply the force by `duration / timestep`.\n * \n * The force origin `position` in world-space must also be specified. Passing `body.position` will result in zero angular effect as the force origin would be at the centre of mass.\n * \n * The `body` will take time to accelerate under a force, the resulting effect depends on duration of the force, the body mass and other forces on the body including friction combined.\n * @method applyForce\n * @param {body} body\n * @param {vector} position The force origin in world-space. Pass `body.position` to avoid angular torque.\n * @param {vector} force\n */\n Body.applyForce = function(body, position, force) {\n var offset = { x: position.x - body.position.x, y: position.y - body.position.y };\n body.force.x += force.x;\n body.force.y += force.y;\n body.torque += offset.x * force.y - offset.y * force.x;\n };\n\n /**\n * Returns the sums of the properties of all compound parts of the parent body.\n * @method _totalProperties\n * @private\n * @param {body} body\n * @return {}\n */\n Body._totalProperties = function(body) {\n // from equations at:\n // https://ecourses.ou.edu/cgi-bin/ebook.cgi?doc=&topic=st&chap_sec=07.2&page=theory\n // http://output.to/sideway/default.asp?qno=121100087\n\n var properties = {\n mass: 0,\n area: 0,\n inertia: 0,\n centre: { x: 0, y: 0 }\n };\n\n // sum the properties of all compound parts of the parent body\n for (var i = body.parts.length === 1 ? 0 : 1; i < body.parts.length; i++) {\n var part = body.parts[i],\n mass = part.mass !== Infinity ? part.mass : 1;\n\n properties.mass += mass;\n properties.area += part.area;\n properties.inertia += part.inertia;\n properties.centre = Vector.add(properties.centre, Vector.mult(part.position, mass));\n }\n\n properties.centre = Vector.div(properties.centre, properties.mass);\n\n return properties;\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when a body starts sleeping (where `this` is the body).\n *\n * @event sleepStart\n * @this {body} The body that has started sleeping\n * @param {} event An event object\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a body ends sleeping (where `this` is the body).\n *\n * @event sleepEnd\n * @this {body} The body that has ended sleeping\n * @param {} event An event object\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Body.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * _Read only_. Set by `Body.create`.\n * \n * A `String` denoting the type of object.\n *\n * @readOnly\n * @property type\n * @type string\n * @default \"body\"\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage bodies.\n *\n * @property label\n * @type string\n * @default \"Body\"\n */\n\n /**\n * _Read only_. Use `Body.setParts` to set. \n * \n * An array of bodies that make up this body. \n * The first body in the array must always be a self reference to the current body instance.\n * All bodies in the `parts` array together form a single rigid compound body.\n * Parts are allowed to overlap, have gaps or holes or even form concave bodies.\n * Parts themselves should never be added to a `World`, only the parent body should be.\n * Use `Body.setParts` when setting parts to ensure correct updates of all properties.\n *\n * @readOnly\n * @property parts\n * @type body[]\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * _Read only_. Updated by `Body.setParts`.\n * \n * A reference to the body that this is a part of. See `body.parts`.\n * This is a self reference if the body is not a part of another body.\n *\n * @readOnly\n * @property parent\n * @type body\n */\n\n /**\n * A `Number` specifying the angle of the body, in radians.\n *\n * @property angle\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setVertices` or `Body.setParts` to set. See also `Bodies.fromVertices`.\n * \n * An array of `Vector` objects that specify the convex hull of the rigid body.\n * These should be provided about the origin `(0, 0)`. E.g.\n *\n * `[{ x: 0, y: 0 }, { x: 25, y: 50 }, { x: 50, y: 0 }]`\n * \n * Vertices must always be convex, in clockwise order and must not contain any duplicate points.\n * \n * Concave vertices should be decomposed into convex `parts`, see `Bodies.fromVertices` and `Body.setParts`.\n *\n * When set the vertices are translated such that `body.position` is at the centre of mass.\n * Many other body properties are automatically calculated from these vertices when set including `density`, `area` and `inertia`.\n * \n * The module `Matter.Vertices` contains useful methods for working with vertices.\n *\n * @readOnly\n * @property vertices\n * @type vector[]\n */\n\n /**\n * _Read only_. Use `Body.setPosition` to set. \n * \n * A `Vector` that specifies the current world-space position of the body.\n * \n * @readOnly\n * @property position\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that accumulates the total force applied to the body for a single update.\n * Force is zeroed after every `Engine.update`, so constant forces should be applied for every update they are needed. See also `Body.applyForce`.\n * \n * @property force\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Number` that accumulates the total torque (turning force) applied to the body for a single update. See also `Body.applyForce`.\n * Torque is zeroed after every `Engine.update`, so constant torques should be applied for every update they are needed.\n *\n * Torques result in angular acceleration on every update, which depends on body inertia and the engine update delta.\n * \n * @property torque\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setSpeed` to set. \n * \n * See `Body.getSpeed` for details.\n * \n * Equivalent to the magnitude of `body.velocity` (always positive).\n * \n * @readOnly\n * @property speed\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setVelocity` to set. \n * \n * See `Body.getVelocity` for details.\n * \n * Equivalent to the magnitude of `body.angularVelocity` (always positive).\n * \n * @readOnly\n * @property velocity\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * _Read only_. Use `Body.setAngularSpeed` to set. \n * \n * See `Body.getAngularSpeed` for details.\n * \n * \n * @readOnly\n * @property angularSpeed\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setAngularVelocity` to set. \n * \n * See `Body.getAngularVelocity` for details.\n * \n *\n * @readOnly\n * @property angularVelocity\n * @type number\n * @default 0\n */\n\n /**\n * _Read only_. Use `Body.setStatic` to set. \n * \n * A flag that indicates whether a body is considered static. A static body can never change position or angle and is completely fixed.\n *\n * @readOnly\n * @property isStatic\n * @type boolean\n * @default false\n */\n\n /**\n * A flag that indicates whether a body is a sensor. Sensor triggers collision events, but doesn't react with colliding body physically.\n *\n * @property isSensor\n * @type boolean\n * @default false\n */\n\n /**\n * _Read only_. Use `Sleeping.set` to set. \n * \n * A flag that indicates whether the body is considered sleeping. A sleeping body acts similar to a static body, except it is only temporary and can be awoken.\n *\n * @readOnly\n * @property isSleeping\n * @type boolean\n * @default false\n */\n\n /**\n * _Read only_. Calculated during engine update only when sleeping is enabled.\n * \n * A `Number` that loosely measures the amount of movement a body currently has.\n *\n * Derived from `body.speed^2 + body.angularSpeed^2`. See `Sleeping.update`.\n * \n * @readOnly\n * @property motion\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the length of time during which this body must have near-zero velocity before it is set as sleeping by the `Matter.Sleeping` module (if sleeping is enabled by the engine).\n * \n * @property sleepThreshold\n * @type number\n * @default 60\n */\n\n /**\n * _Read only_. Use `Body.setDensity` to set. \n * \n * A `Number` that defines the density of the body (mass per unit area).\n * \n * Mass will also be updated when set.\n *\n * @readOnly\n * @property density\n * @type number\n * @default 0.001\n */\n\n /**\n * _Read only_. Use `Body.setMass` to set. \n * \n * A `Number` that defines the mass of the body.\n * \n * Density will also be updated when set.\n * \n * @readOnly\n * @property mass\n * @type number\n */\n\n /**\n * _Read only_. Use `Body.setMass` to set. \n * \n * A `Number` that defines the inverse mass of the body (`1 / mass`).\n *\n * @readOnly\n * @property inverseMass\n * @type number\n */\n\n /**\n * _Read only_. Automatically calculated when vertices, mass or density are set or set through `Body.setInertia`.\n * \n * A `Number` that defines the moment of inertia of the body. This is the second moment of area in two dimensions.\n * \n * Can be manually set to `Infinity` to prevent rotation of the body. See `Body.setInertia`.\n * \n * @readOnly\n * @property inertia\n * @type number\n */\n\n /**\n * _Read only_. Automatically calculated when vertices, mass or density are set or calculated by `Body.setInertia`.\n * \n * A `Number` that defines the inverse moment of inertia of the body (`1 / inertia`).\n * \n * @readOnly\n * @property inverseInertia\n * @type number\n */\n\n /**\n * A `Number` that defines the restitution (elasticity) of the body. The value is always positive and is in the range `(0, 1)`.\n * A value of `0` means collisions may be perfectly inelastic and no bouncing may occur. \n * A value of `0.8` means the body may bounce back with approximately 80% of its kinetic energy.\n * Note that collision response is based on _pairs_ of bodies, and that `restitution` values are _combined_ with the following formula:\n *\n * `Math.max(bodyA.restitution, bodyB.restitution)`\n *\n * @property restitution\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the friction of the body. The value is always positive and is in the range `(0, 1)`.\n * A value of `0` means that the body may slide indefinitely.\n * A value of `1` means the body may come to a stop almost instantly after a force is applied.\n *\n * The effects of the value may be non-linear. \n * High values may be unstable depending on the body.\n * The engine uses a Coulomb friction model including static and kinetic friction.\n * Note that collision response is based on _pairs_ of bodies, and that `friction` values are _combined_ with the following formula:\n *\n * `Math.min(bodyA.friction, bodyB.friction)`\n *\n * @property friction\n * @type number\n * @default 0.1\n */\n\n /**\n * A `Number` that defines the static friction of the body (in the Coulomb friction model). \n * A value of `0` means the body will never 'stick' when it is nearly stationary and only dynamic `friction` is used.\n * The higher the value (e.g. `10`), the more force it will take to initially get the body moving when nearly stationary.\n * This value is multiplied with the `friction` property to make it easier to change `friction` and maintain an appropriate amount of static friction.\n *\n * @property frictionStatic\n * @type number\n * @default 0.5\n */\n\n /**\n * A `Number` that defines the air friction of the body (air resistance). \n * A value of `0` means the body will never slow as it moves through space.\n * The higher the value, the faster a body slows when moving through space.\n * The effects of the value are non-linear. \n *\n * @property frictionAir\n * @type number\n * @default 0.01\n */\n\n /**\n * An `Object` that specifies the collision filtering properties of this body.\n *\n * Collisions between two bodies will obey the following rules:\n * - If the two bodies have the same non-zero value of `collisionFilter.group`,\n * they will always collide if the value is positive, and they will never collide\n * if the value is negative.\n * - If the two bodies have different values of `collisionFilter.group` or if one\n * (or both) of the bodies has a value of 0, then the category/mask rules apply as follows:\n *\n * Each body belongs to a collision category, given by `collisionFilter.category`. This\n * value is used as a bit field and the category should have only one bit set, meaning that\n * the value of this property is a power of two in the range [1, 2^31]. Thus, there are 32\n * different collision categories available.\n *\n * Each body also defines a collision bitmask, given by `collisionFilter.mask` which specifies\n * the categories it collides with (the value is the bitwise AND value of all these categories).\n *\n * Using the category/mask rules, two bodies `A` and `B` collide if each includes the other's\n * category in its mask, i.e. `(categoryA & maskB) !== 0` and `(categoryB & maskA) !== 0`\n * are both true.\n *\n * @property collisionFilter\n * @type object\n */\n\n /**\n * An Integer `Number`, that specifies the collision group this body belongs to.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.group\n * @type object\n * @default 0\n */\n\n /**\n * A bit field that specifies the collision category this body belongs to.\n * The category value should have only one bit set, for example `0x0001`.\n * This means there are up to 32 unique collision categories available.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.category\n * @type object\n * @default 1\n */\n\n /**\n * A bit mask that specifies the collision categories this body may collide with.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter.mask\n * @type object\n * @default -1\n */\n\n /**\n * A `Number` that specifies a thin boundary around the body where it is allowed to slightly sink into other bodies.\n * \n * This is required for proper collision response, including friction and restitution effects.\n * \n * The default should generally suffice in most cases. You may need to decrease this value for very small bodies that are nearing the default value in scale.\n *\n * @property slop\n * @type number\n * @default 0.05\n */\n\n /**\n * A `Number` that specifies per-body time scaling.\n *\n * @property timeScale\n * @type number\n * @default 1\n */\n\n /**\n * _Read only_. Updated during engine update.\n * \n * A `Number` that records the last delta time value used to update this body.\n * Used to calculate speed and velocity.\n *\n * @readOnly\n * @property deltaTime\n * @type number\n * @default 1000 / 60\n */\n\n /**\n * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n *\n * @property render\n * @type object\n */\n\n /**\n * A flag that indicates if the body should be rendered.\n *\n * @property render.visible\n * @type boolean\n * @default true\n */\n\n /**\n * Sets the opacity to use when rendering.\n *\n * @property render.opacity\n * @type number\n * @default 1\n */\n\n /**\n * An `Object` that defines the sprite properties to use when rendering, if any.\n *\n * @property render.sprite\n * @type object\n */\n\n /**\n * An `String` that defines the path to the image to use as the sprite texture, if any.\n *\n * @property render.sprite.texture\n * @type string\n */\n \n /**\n * A `Number` that defines the scaling in the x-axis for the sprite, if any.\n *\n * @property render.sprite.xScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that defines the scaling in the y-axis for the sprite, if any.\n *\n * @property render.sprite.yScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that defines the offset in the x-axis for the sprite (normalised by texture width).\n *\n * @property render.sprite.xOffset\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the offset in the y-axis for the sprite (normalised by texture height).\n *\n * @property render.sprite.yOffset\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that defines the line width to use when rendering the body outline (if a sprite is not defined).\n * A value of `0` means no outline will be rendered.\n *\n * @property render.lineWidth\n * @type number\n * @default 0\n */\n\n /**\n * A `String` that defines the fill style to use when rendering the body (if a sprite is not defined).\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.fillStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * A `String` that defines the stroke style to use when rendering the body outline (if a sprite is not defined).\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.strokeStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * _Read only_. Calculated automatically when vertices are set.\n * \n * An array of unique axis vectors (edge normals) used for collision detection.\n * These are automatically calculated when vertices are set.\n * They are constantly updated by `Body.update` during the simulation.\n *\n * @readOnly\n * @property axes\n * @type vector[]\n */\n \n /**\n * _Read only_. Calculated automatically when vertices are set.\n * \n * A `Number` that measures the area of the body's convex hull.\n * \n * @readOnly\n * @property area\n * @type string\n * @default \n */\n\n /**\n * A `Bounds` object that defines the AABB region for the body.\n * It is automatically calculated when vertices are set and constantly updated by `Body.update` during simulation.\n * \n * @property bounds\n * @type bounds\n */\n\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Events` module contains methods to fire and listen to events on other objects.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Events\n*/\n\nvar Events = {};\n\nmodule.exports = Events;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Subscribes a callback function to the given object's `eventName`.\n * @method on\n * @param {} object\n * @param {string} eventNames\n * @param {function} callback\n */\n Events.on = function(object, eventNames, callback) {\n var names = eventNames.split(' '),\n name;\n\n for (var i = 0; i < names.length; i++) {\n name = names[i];\n object.events = object.events || {};\n object.events[name] = object.events[name] || [];\n object.events[name].push(callback);\n }\n\n return callback;\n };\n\n /**\n * Removes the given event callback. If no callback, clears all callbacks in `eventNames`. If no `eventNames`, clears all events.\n * @method off\n * @param {} object\n * @param {string} eventNames\n * @param {function} callback\n */\n Events.off = function(object, eventNames, callback) {\n if (!eventNames) {\n object.events = {};\n return;\n }\n\n // handle Events.off(object, callback)\n if (typeof eventNames === 'function') {\n callback = eventNames;\n eventNames = Common.keys(object.events).join(' ');\n }\n\n var names = eventNames.split(' ');\n\n for (var i = 0; i < names.length; i++) {\n var callbacks = object.events[names[i]],\n newCallbacks = [];\n\n if (callback && callbacks) {\n for (var j = 0; j < callbacks.length; j++) {\n if (callbacks[j] !== callback)\n newCallbacks.push(callbacks[j]);\n }\n }\n\n object.events[names[i]] = newCallbacks;\n }\n };\n\n /**\n * Fires all the callbacks subscribed to the given object's `eventName`, in the order they subscribed, if any.\n * @method trigger\n * @param {} object\n * @param {string} eventNames\n * @param {} event\n */\n Events.trigger = function(object, eventNames, event) {\n var names,\n name,\n callbacks,\n eventClone;\n\n var events = object.events;\n \n if (events && Common.keys(events).length > 0) {\n if (!event)\n event = {};\n\n names = eventNames.split(' ');\n\n for (var i = 0; i < names.length; i++) {\n name = names[i];\n callbacks = events[name];\n\n if (callbacks) {\n eventClone = Common.clone(event, false);\n eventClone.name = name;\n eventClone.source = object;\n\n for (var j = 0; j < callbacks.length; j++) {\n callbacks[j].apply(object, [eventClone]);\n }\n }\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* A composite is a collection of `Matter.Body`, `Matter.Constraint` and other `Matter.Composite` objects.\n*\n* They are a container that can represent complex objects made of multiple parts, even if they are not physically connected.\n* A composite could contain anything from a single body all the way up to a whole world.\n* \n* When making any changes to composites, use the included functions rather than changing their properties directly.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Composite\n*/\n\nvar Composite = {};\n\nmodule.exports = Composite;\n\nvar Events = __webpack_require__(5);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\nvar Body = __webpack_require__(4);\n\n(function() {\n\n /**\n * Creates a new composite. The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properites section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} [options]\n * @return {composite} A new composite\n */\n Composite.create = function(options) {\n return Common.extend({ \n id: Common.nextId(),\n type: 'composite',\n parent: null,\n isModified: false,\n bodies: [], \n constraints: [], \n composites: [],\n label: 'Composite',\n plugin: {},\n cache: {\n allBodies: null,\n allConstraints: null,\n allComposites: null\n }\n }, options);\n };\n\n /**\n * Sets the composite's `isModified` flag. \n * If `updateParents` is true, all parents will be set (default: false).\n * If `updateChildren` is true, all children will be set (default: false).\n * @private\n * @method setModified\n * @param {composite} composite\n * @param {boolean} isModified\n * @param {boolean} [updateParents=false]\n * @param {boolean} [updateChildren=false]\n */\n Composite.setModified = function(composite, isModified, updateParents, updateChildren) {\n composite.isModified = isModified;\n\n if (isModified && composite.cache) {\n composite.cache.allBodies = null;\n composite.cache.allConstraints = null;\n composite.cache.allComposites = null;\n }\n\n if (updateParents && composite.parent) {\n Composite.setModified(composite.parent, isModified, updateParents, updateChildren);\n }\n\n if (updateChildren) {\n for (var i = 0; i < composite.composites.length; i++) {\n var childComposite = composite.composites[i];\n Composite.setModified(childComposite, isModified, updateParents, updateChildren);\n }\n }\n };\n\n /**\n * Generic single or multi-add function. Adds a single or an array of body(s), constraint(s) or composite(s) to the given composite.\n * Triggers `beforeAdd` and `afterAdd` events on the `composite`.\n * @method add\n * @param {composite} composite\n * @param {object|array} object A single or an array of body(s), constraint(s) or composite(s)\n * @return {composite} The original composite with the objects added\n */\n Composite.add = function(composite, object) {\n var objects = [].concat(object);\n\n Events.trigger(composite, 'beforeAdd', { object: object });\n\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n\n switch (obj.type) {\n\n case 'body':\n // skip adding compound parts\n if (obj.parent !== obj) {\n Common.warn('Composite.add: skipped adding a compound body part (you must add its parent instead)');\n break;\n }\n\n Composite.addBody(composite, obj);\n break;\n case 'constraint':\n Composite.addConstraint(composite, obj);\n break;\n case 'composite':\n Composite.addComposite(composite, obj);\n break;\n case 'mouseConstraint':\n Composite.addConstraint(composite, obj.constraint);\n break;\n\n }\n }\n\n Events.trigger(composite, 'afterAdd', { object: object });\n\n return composite;\n };\n\n /**\n * Generic remove function. Removes one or many body(s), constraint(s) or a composite(s) to the given composite.\n * Optionally searching its children recursively.\n * Triggers `beforeRemove` and `afterRemove` events on the `composite`.\n * @method remove\n * @param {composite} composite\n * @param {object|array} object\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the objects removed\n */\n Composite.remove = function(composite, object, deep) {\n var objects = [].concat(object);\n\n Events.trigger(composite, 'beforeRemove', { object: object });\n\n for (var i = 0; i < objects.length; i++) {\n var obj = objects[i];\n\n switch (obj.type) {\n\n case 'body':\n Composite.removeBody(composite, obj, deep);\n break;\n case 'constraint':\n Composite.removeConstraint(composite, obj, deep);\n break;\n case 'composite':\n Composite.removeComposite(composite, obj, deep);\n break;\n case 'mouseConstraint':\n Composite.removeConstraint(composite, obj.constraint);\n break;\n\n }\n }\n\n Events.trigger(composite, 'afterRemove', { object: object });\n\n return composite;\n };\n\n /**\n * Adds a composite to the given composite.\n * @private\n * @method addComposite\n * @param {composite} compositeA\n * @param {composite} compositeB\n * @return {composite} The original compositeA with the objects from compositeB added\n */\n Composite.addComposite = function(compositeA, compositeB) {\n compositeA.composites.push(compositeB);\n compositeB.parent = compositeA;\n Composite.setModified(compositeA, true, true, false);\n return compositeA;\n };\n\n /**\n * Removes a composite from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeComposite\n * @param {composite} compositeA\n * @param {composite} compositeB\n * @param {boolean} [deep=false]\n * @return {composite} The original compositeA with the composite removed\n */\n Composite.removeComposite = function(compositeA, compositeB, deep) {\n var position = Common.indexOf(compositeA.composites, compositeB);\n if (position !== -1) {\n Composite.removeCompositeAt(compositeA, position);\n }\n\n if (deep) {\n for (var i = 0; i < compositeA.composites.length; i++){\n Composite.removeComposite(compositeA.composites[i], compositeB, true);\n }\n }\n\n return compositeA;\n };\n\n /**\n * Removes a composite from the given composite.\n * @private\n * @method removeCompositeAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the composite removed\n */\n Composite.removeCompositeAt = function(composite, position) {\n composite.composites.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Adds a body to the given composite.\n * @private\n * @method addBody\n * @param {composite} composite\n * @param {body} body\n * @return {composite} The original composite with the body added\n */\n Composite.addBody = function(composite, body) {\n composite.bodies.push(body);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes a body from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeBody\n * @param {composite} composite\n * @param {body} body\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the body removed\n */\n Composite.removeBody = function(composite, body, deep) {\n var position = Common.indexOf(composite.bodies, body);\n if (position !== -1) {\n Composite.removeBodyAt(composite, position);\n }\n\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.removeBody(composite.composites[i], body, true);\n }\n }\n\n return composite;\n };\n\n /**\n * Removes a body from the given composite.\n * @private\n * @method removeBodyAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the body removed\n */\n Composite.removeBodyAt = function(composite, position) {\n composite.bodies.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Adds a constraint to the given composite.\n * @private\n * @method addConstraint\n * @param {composite} composite\n * @param {constraint} constraint\n * @return {composite} The original composite with the constraint added\n */\n Composite.addConstraint = function(composite, constraint) {\n composite.constraints.push(constraint);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes a constraint from the given composite, and optionally searching its children recursively.\n * @private\n * @method removeConstraint\n * @param {composite} composite\n * @param {constraint} constraint\n * @param {boolean} [deep=false]\n * @return {composite} The original composite with the constraint removed\n */\n Composite.removeConstraint = function(composite, constraint, deep) {\n var position = Common.indexOf(composite.constraints, constraint);\n if (position !== -1) {\n Composite.removeConstraintAt(composite, position);\n }\n\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.removeConstraint(composite.composites[i], constraint, true);\n }\n }\n\n return composite;\n };\n\n /**\n * Removes a body from the given composite.\n * @private\n * @method removeConstraintAt\n * @param {composite} composite\n * @param {number} position\n * @return {composite} The original composite with the constraint removed\n */\n Composite.removeConstraintAt = function(composite, position) {\n composite.constraints.splice(position, 1);\n Composite.setModified(composite, true, true, false);\n return composite;\n };\n\n /**\n * Removes all bodies, constraints and composites from the given composite.\n * Optionally clearing its children recursively.\n * @method clear\n * @param {composite} composite\n * @param {boolean} keepStatic\n * @param {boolean} [deep=false]\n */\n Composite.clear = function(composite, keepStatic, deep) {\n if (deep) {\n for (var i = 0; i < composite.composites.length; i++){\n Composite.clear(composite.composites[i], keepStatic, true);\n }\n }\n \n if (keepStatic) {\n composite.bodies = composite.bodies.filter(function(body) { return body.isStatic; });\n } else {\n composite.bodies.length = 0;\n }\n\n composite.constraints.length = 0;\n composite.composites.length = 0;\n\n Composite.setModified(composite, true, true, false);\n\n return composite;\n };\n\n /**\n * Returns all bodies in the given composite, including all bodies in its children, recursively.\n * @method allBodies\n * @param {composite} composite\n * @return {body[]} All the bodies\n */\n Composite.allBodies = function(composite) {\n if (composite.cache && composite.cache.allBodies) {\n return composite.cache.allBodies;\n }\n\n var bodies = [].concat(composite.bodies);\n\n for (var i = 0; i < composite.composites.length; i++)\n bodies = bodies.concat(Composite.allBodies(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allBodies = bodies;\n }\n\n return bodies;\n };\n\n /**\n * Returns all constraints in the given composite, including all constraints in its children, recursively.\n * @method allConstraints\n * @param {composite} composite\n * @return {constraint[]} All the constraints\n */\n Composite.allConstraints = function(composite) {\n if (composite.cache && composite.cache.allConstraints) {\n return composite.cache.allConstraints;\n }\n\n var constraints = [].concat(composite.constraints);\n\n for (var i = 0; i < composite.composites.length; i++)\n constraints = constraints.concat(Composite.allConstraints(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allConstraints = constraints;\n }\n\n return constraints;\n };\n\n /**\n * Returns all composites in the given composite, including all composites in its children, recursively.\n * @method allComposites\n * @param {composite} composite\n * @return {composite[]} All the composites\n */\n Composite.allComposites = function(composite) {\n if (composite.cache && composite.cache.allComposites) {\n return composite.cache.allComposites;\n }\n\n var composites = [].concat(composite.composites);\n\n for (var i = 0; i < composite.composites.length; i++)\n composites = composites.concat(Composite.allComposites(composite.composites[i]));\n\n if (composite.cache) {\n composite.cache.allComposites = composites;\n }\n\n return composites;\n };\n\n /**\n * Searches the composite recursively for an object matching the type and id supplied, null if not found.\n * @method get\n * @param {composite} composite\n * @param {number} id\n * @param {string} type\n * @return {object} The requested object, if found\n */\n Composite.get = function(composite, id, type) {\n var objects,\n object;\n\n switch (type) {\n case 'body':\n objects = Composite.allBodies(composite);\n break;\n case 'constraint':\n objects = Composite.allConstraints(composite);\n break;\n case 'composite':\n objects = Composite.allComposites(composite).concat(composite);\n break;\n }\n\n if (!objects)\n return null;\n\n object = objects.filter(function(object) { \n return object.id.toString() === id.toString(); \n });\n\n return object.length === 0 ? null : object[0];\n };\n\n /**\n * Moves the given object(s) from compositeA to compositeB (equal to a remove followed by an add).\n * @method move\n * @param {compositeA} compositeA\n * @param {object[]} objects\n * @param {compositeB} compositeB\n * @return {composite} Returns compositeA\n */\n Composite.move = function(compositeA, objects, compositeB) {\n Composite.remove(compositeA, objects);\n Composite.add(compositeB, objects);\n return compositeA;\n };\n\n /**\n * Assigns new ids for all objects in the composite, recursively.\n * @method rebase\n * @param {composite} composite\n * @return {composite} Returns composite\n */\n Composite.rebase = function(composite) {\n var objects = Composite.allBodies(composite)\n .concat(Composite.allConstraints(composite))\n .concat(Composite.allComposites(composite));\n\n for (var i = 0; i < objects.length; i++) {\n objects[i].id = Common.nextId();\n }\n\n return composite;\n };\n\n /**\n * Translates all children in the composite by a given vector relative to their current positions, \n * without imparting any velocity.\n * @method translate\n * @param {composite} composite\n * @param {vector} translation\n * @param {bool} [recursive=true]\n */\n Composite.translate = function(composite, translation, recursive) {\n var bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n Body.translate(bodies[i], translation);\n }\n\n return composite;\n };\n\n /**\n * Rotates all children in the composite by a given angle about the given point, without imparting any angular velocity.\n * @method rotate\n * @param {composite} composite\n * @param {number} rotation\n * @param {vector} point\n * @param {bool} [recursive=true]\n */\n Composite.rotate = function(composite, rotation, point, recursive) {\n var cos = Math.cos(rotation),\n sin = Math.sin(rotation),\n bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + (dx * cos - dy * sin),\n y: point.y + (dx * sin + dy * cos)\n });\n\n Body.rotate(body, rotation);\n }\n\n return composite;\n };\n\n /**\n * Scales all children in the composite, including updating physical properties (mass, area, axes, inertia), from a world-space point.\n * @method scale\n * @param {composite} composite\n * @param {number} scaleX\n * @param {number} scaleY\n * @param {vector} point\n * @param {bool} [recursive=true]\n */\n Composite.scale = function(composite, scaleX, scaleY, point, recursive) {\n var bodies = recursive ? Composite.allBodies(composite) : composite.bodies;\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n dx = body.position.x - point.x,\n dy = body.position.y - point.y;\n \n Body.setPosition(body, {\n x: point.x + dx * scaleX,\n y: point.y + dy * scaleY\n });\n\n Body.scale(body, scaleX, scaleY);\n }\n\n return composite;\n };\n\n /**\n * Returns the union of the bounds of all of the composite's bodies.\n * @method bounds\n * @param {composite} composite The composite.\n * @returns {bounds} The composite bounds.\n */\n Composite.bounds = function(composite) {\n var bodies = Composite.allBodies(composite),\n vertices = [];\n\n for (var i = 0; i < bodies.length; i += 1) {\n var body = bodies[i];\n vertices.push(body.bounds.min, body.bounds.max);\n }\n\n return Bounds.create(vertices);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when a call to `Composite.add` is made, before objects have been added.\n *\n * @event beforeAdd\n * @param {} event An event object\n * @param {} event.object The object(s) to be added (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.add` is made, after objects have been added.\n *\n * @event afterAdd\n * @param {} event An event object\n * @param {} event.object The object(s) that have been added (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.remove` is made, before objects have been removed.\n *\n * @event beforeRemove\n * @param {} event An event object\n * @param {} event.object The object(s) to be removed (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when a call to `Composite.remove` is made, after objects have been removed.\n *\n * @event afterRemove\n * @param {} event An event object\n * @param {} event.object The object(s) that have been removed (may be a single body, constraint, composite or a mixed array of these)\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"composite\"\n * @readOnly\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage composites.\n *\n * @property label\n * @type string\n * @default \"Composite\"\n */\n\n /**\n * A flag that specifies whether the composite has been modified during the current step.\n * This is automatically managed when bodies, constraints or composites are added or removed.\n *\n * @property isModified\n * @type boolean\n * @default false\n */\n\n /**\n * The `Composite` that is the parent of this composite. It is automatically managed by the `Matter.Composite` methods.\n *\n * @property parent\n * @type composite\n * @default null\n */\n\n /**\n * An array of `Body` that are _direct_ children of this composite.\n * To add or remove bodies you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allBodies` method.\n *\n * @property bodies\n * @type body[]\n * @default []\n */\n\n /**\n * An array of `Constraint` that are _direct_ children of this composite.\n * To add or remove constraints you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allConstraints` method.\n *\n * @property constraints\n * @type constraint[]\n * @default []\n */\n\n /**\n * An array of `Composite` that are _direct_ children of this composite.\n * To add or remove composites you should use `Composite.add` and `Composite.remove` methods rather than directly modifying this property.\n * If you wish to recursively find all descendants, you should use the `Composite.allComposites` method.\n *\n * @property composites\n * @type composite[]\n * @default []\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * An object used for storing cached results for performance reasons.\n * This is used internally only and is automatically managed.\n *\n * @private\n * @property cache\n * @type {}\n */\n\n})();\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Sleeping` module contains methods to manage the sleeping state of bodies.\n*\n* @class Sleeping\n*/\n\nvar Sleeping = {};\n\nmodule.exports = Sleeping;\n\nvar Body = __webpack_require__(4);\nvar Events = __webpack_require__(5);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Sleeping._motionWakeThreshold = 0.18;\n Sleeping._motionSleepThreshold = 0.08;\n Sleeping._minBias = 0.9;\n\n /**\n * Puts bodies to sleep or wakes them up depending on their motion.\n * @method update\n * @param {body[]} bodies\n * @param {number} delta\n */\n Sleeping.update = function(bodies, delta) {\n var timeScale = delta / Common._baseDelta,\n motionSleepThreshold = Sleeping._motionSleepThreshold;\n \n // update bodies sleeping status\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n speed = Body.getSpeed(body),\n angularSpeed = Body.getAngularSpeed(body),\n motion = speed * speed + angularSpeed * angularSpeed;\n\n // wake up bodies if they have a force applied\n if (body.force.x !== 0 || body.force.y !== 0) {\n Sleeping.set(body, false);\n continue;\n }\n\n var minMotion = Math.min(body.motion, motion),\n maxMotion = Math.max(body.motion, motion);\n \n // biased average motion estimation between frames\n body.motion = Sleeping._minBias * minMotion + (1 - Sleeping._minBias) * maxMotion;\n\n if (body.sleepThreshold > 0 && body.motion < motionSleepThreshold) {\n body.sleepCounter += 1;\n \n if (body.sleepCounter >= body.sleepThreshold / timeScale) {\n Sleeping.set(body, true);\n }\n } else if (body.sleepCounter > 0) {\n body.sleepCounter -= 1;\n }\n }\n };\n\n /**\n * Given a set of colliding pairs, wakes the sleeping bodies involved.\n * @method afterCollisions\n * @param {pair[]} pairs\n */\n Sleeping.afterCollisions = function(pairs) {\n var motionSleepThreshold = Sleeping._motionSleepThreshold;\n\n // wake up bodies involved in collisions\n for (var i = 0; i < pairs.length; i++) {\n var pair = pairs[i];\n \n // don't wake inactive pairs\n if (!pair.isActive)\n continue;\n\n var collision = pair.collision,\n bodyA = collision.bodyA.parent, \n bodyB = collision.bodyB.parent;\n \n // don't wake if at least one body is static\n if ((bodyA.isSleeping && bodyB.isSleeping) || bodyA.isStatic || bodyB.isStatic)\n continue;\n \n if (bodyA.isSleeping || bodyB.isSleeping) {\n var sleepingBody = (bodyA.isSleeping && !bodyA.isStatic) ? bodyA : bodyB,\n movingBody = sleepingBody === bodyA ? bodyB : bodyA;\n\n if (!sleepingBody.isStatic && movingBody.motion > motionSleepThreshold) {\n Sleeping.set(sleepingBody, false);\n }\n }\n }\n };\n \n /**\n * Set a body as sleeping or awake.\n * @method set\n * @param {body} body\n * @param {boolean} isSleeping\n */\n Sleeping.set = function(body, isSleeping) {\n var wasSleeping = body.isSleeping;\n\n if (isSleeping) {\n body.isSleeping = true;\n body.sleepCounter = body.sleepThreshold;\n\n body.positionImpulse.x = 0;\n body.positionImpulse.y = 0;\n\n body.positionPrev.x = body.position.x;\n body.positionPrev.y = body.position.y;\n\n body.anglePrev = body.angle;\n body.speed = 0;\n body.angularSpeed = 0;\n body.motion = 0;\n\n if (!wasSleeping) {\n Events.trigger(body, 'sleepStart');\n }\n } else {\n body.isSleeping = false;\n body.sleepCounter = 0;\n\n if (wasSleeping) {\n Events.trigger(body, 'sleepEnd');\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Collision` module contains methods for detecting collisions between a given pair of bodies.\n*\n* For efficient detection between a list of bodies, see `Matter.Detector` and `Matter.Query`.\n*\n* See `Matter.Engine` for collision events.\n*\n* @class Collision\n*/\n\nvar Collision = {};\n\nmodule.exports = Collision;\n\nvar Vertices = __webpack_require__(3);\nvar Pair = __webpack_require__(9);\n\n(function() {\n var _supports = [];\n\n var _overlapAB = {\n overlap: 0,\n axis: null\n };\n\n var _overlapBA = {\n overlap: 0,\n axis: null\n };\n\n /**\n * Creates a new collision record.\n * @method create\n * @param {body} bodyA The first body part represented by the collision record\n * @param {body} bodyB The second body part represented by the collision record\n * @return {collision} A new collision record\n */\n Collision.create = function(bodyA, bodyB) {\n return { \n pair: null,\n collided: false,\n bodyA: bodyA,\n bodyB: bodyB,\n parentA: bodyA.parent,\n parentB: bodyB.parent,\n depth: 0,\n normal: { x: 0, y: 0 },\n tangent: { x: 0, y: 0 },\n penetration: { x: 0, y: 0 },\n supports: []\n };\n };\n\n /**\n * Detect collision between two bodies.\n * @method collides\n * @param {body} bodyA\n * @param {body} bodyB\n * @param {pairs} [pairs] Optionally reuse collision records from existing pairs.\n * @return {collision|null} A collision record if detected, otherwise null\n */\n Collision.collides = function(bodyA, bodyB, pairs) {\n Collision._overlapAxes(_overlapAB, bodyA.vertices, bodyB.vertices, bodyA.axes);\n\n if (_overlapAB.overlap <= 0) {\n return null;\n }\n\n Collision._overlapAxes(_overlapBA, bodyB.vertices, bodyA.vertices, bodyB.axes);\n\n if (_overlapBA.overlap <= 0) {\n return null;\n }\n\n // reuse collision records for gc efficiency\n var pair = pairs && pairs.table[Pair.id(bodyA, bodyB)],\n collision;\n\n if (!pair) {\n collision = Collision.create(bodyA, bodyB);\n collision.collided = true;\n collision.bodyA = bodyA.id < bodyB.id ? bodyA : bodyB;\n collision.bodyB = bodyA.id < bodyB.id ? bodyB : bodyA;\n collision.parentA = collision.bodyA.parent;\n collision.parentB = collision.bodyB.parent;\n } else {\n collision = pair.collision;\n }\n\n bodyA = collision.bodyA;\n bodyB = collision.bodyB;\n\n var minOverlap;\n\n if (_overlapAB.overlap < _overlapBA.overlap) {\n minOverlap = _overlapAB;\n } else {\n minOverlap = _overlapBA;\n }\n\n var normal = collision.normal,\n supports = collision.supports,\n minAxis = minOverlap.axis,\n minAxisX = minAxis.x,\n minAxisY = minAxis.y;\n\n // ensure normal is facing away from bodyA\n if (minAxisX * (bodyB.position.x - bodyA.position.x) + minAxisY * (bodyB.position.y - bodyA.position.y) < 0) {\n normal.x = minAxisX;\n normal.y = minAxisY;\n } else {\n normal.x = -minAxisX;\n normal.y = -minAxisY;\n }\n \n collision.tangent.x = -normal.y;\n collision.tangent.y = normal.x;\n\n collision.depth = minOverlap.overlap;\n\n collision.penetration.x = normal.x * collision.depth;\n collision.penetration.y = normal.y * collision.depth;\n\n // find support points, there is always either exactly one or two\n var supportsB = Collision._findSupports(bodyA, bodyB, normal, 1),\n supportCount = 0;\n\n // find the supports from bodyB that are inside bodyA\n if (Vertices.contains(bodyA.vertices, supportsB[0])) {\n supports[supportCount++] = supportsB[0];\n }\n\n if (Vertices.contains(bodyA.vertices, supportsB[1])) {\n supports[supportCount++] = supportsB[1];\n }\n\n // find the supports from bodyA that are inside bodyB\n if (supportCount < 2) {\n var supportsA = Collision._findSupports(bodyB, bodyA, normal, -1);\n\n if (Vertices.contains(bodyB.vertices, supportsA[0])) {\n supports[supportCount++] = supportsA[0];\n }\n\n if (supportCount < 2 && Vertices.contains(bodyB.vertices, supportsA[1])) {\n supports[supportCount++] = supportsA[1];\n }\n }\n\n // account for the edge case of overlapping but no vertex containment\n if (supportCount === 0) {\n supports[supportCount++] = supportsB[0];\n }\n\n // update supports array size\n supports.length = supportCount;\n\n return collision;\n };\n\n /**\n * Find the overlap between two sets of vertices.\n * @method _overlapAxes\n * @private\n * @param {object} result\n * @param {vertices} verticesA\n * @param {vertices} verticesB\n * @param {axes} axes\n */\n Collision._overlapAxes = function(result, verticesA, verticesB, axes) {\n var verticesALength = verticesA.length,\n verticesBLength = verticesB.length,\n verticesAX = verticesA[0].x,\n verticesAY = verticesA[0].y,\n verticesBX = verticesB[0].x,\n verticesBY = verticesB[0].y,\n axesLength = axes.length,\n overlapMin = Number.MAX_VALUE,\n overlapAxisNumber = 0,\n overlap,\n overlapAB,\n overlapBA,\n dot,\n i,\n j;\n\n for (i = 0; i < axesLength; i++) {\n var axis = axes[i],\n axisX = axis.x,\n axisY = axis.y,\n minA = verticesAX * axisX + verticesAY * axisY,\n minB = verticesBX * axisX + verticesBY * axisY,\n maxA = minA,\n maxB = minB;\n \n for (j = 1; j < verticesALength; j += 1) {\n dot = verticesA[j].x * axisX + verticesA[j].y * axisY;\n\n if (dot > maxA) { \n maxA = dot;\n } else if (dot < minA) { \n minA = dot;\n }\n }\n\n for (j = 1; j < verticesBLength; j += 1) {\n dot = verticesB[j].x * axisX + verticesB[j].y * axisY;\n\n if (dot > maxB) { \n maxB = dot;\n } else if (dot < minB) { \n minB = dot;\n }\n }\n\n overlapAB = maxA - minB;\n overlapBA = maxB - minA;\n overlap = overlapAB < overlapBA ? overlapAB : overlapBA;\n\n if (overlap < overlapMin) {\n overlapMin = overlap;\n overlapAxisNumber = i;\n\n if (overlap <= 0) {\n // can not be intersecting\n break;\n }\n } \n }\n\n result.axis = axes[overlapAxisNumber];\n result.overlap = overlapMin;\n };\n\n /**\n * Projects vertices on an axis and returns an interval.\n * @method _projectToAxis\n * @private\n * @param {} projection\n * @param {} vertices\n * @param {} axis\n */\n Collision._projectToAxis = function(projection, vertices, axis) {\n var min = vertices[0].x * axis.x + vertices[0].y * axis.y,\n max = min;\n\n for (var i = 1; i < vertices.length; i += 1) {\n var dot = vertices[i].x * axis.x + vertices[i].y * axis.y;\n\n if (dot > max) { \n max = dot; \n } else if (dot < min) { \n min = dot; \n }\n }\n\n projection.min = min;\n projection.max = max;\n };\n\n /**\n * Finds supporting vertices given two bodies along a given direction using hill-climbing.\n * @method _findSupports\n * @private\n * @param {body} bodyA\n * @param {body} bodyB\n * @param {vector} normal\n * @param {number} direction\n * @return [vector]\n */\n Collision._findSupports = function(bodyA, bodyB, normal, direction) {\n var vertices = bodyB.vertices,\n verticesLength = vertices.length,\n bodyAPositionX = bodyA.position.x,\n bodyAPositionY = bodyA.position.y,\n normalX = normal.x * direction,\n normalY = normal.y * direction,\n nearestDistance = Number.MAX_VALUE,\n vertexA,\n vertexB,\n vertexC,\n distance,\n j;\n\n // find deepest vertex relative to the axis\n for (j = 0; j < verticesLength; j += 1) {\n vertexB = vertices[j];\n distance = normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y);\n\n // convex hill-climbing\n if (distance < nearestDistance) {\n nearestDistance = distance;\n vertexA = vertexB;\n }\n }\n\n // measure next vertex\n vertexC = vertices[(verticesLength + vertexA.index - 1) % verticesLength];\n nearestDistance = normalX * (bodyAPositionX - vertexC.x) + normalY * (bodyAPositionY - vertexC.y);\n\n // compare with previous vertex\n vertexB = vertices[(vertexA.index + 1) % verticesLength];\n if (normalX * (bodyAPositionX - vertexB.x) + normalY * (bodyAPositionY - vertexB.y) < nearestDistance) {\n _supports[0] = vertexA;\n _supports[1] = vertexB;\n\n return _supports;\n }\n\n _supports[0] = vertexA;\n _supports[1] = vertexC;\n\n return _supports;\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A reference to the pair using this collision record, if there is one.\n *\n * @property pair\n * @type {pair|null}\n * @default null\n */\n\n /**\n * A flag that indicates if the bodies were colliding when the collision was last updated.\n * \n * @property collided\n * @type boolean\n * @default false\n */\n\n /**\n * The first body part represented by the collision (see also `collision.parentA`).\n * \n * @property bodyA\n * @type body\n */\n\n /**\n * The second body part represented by the collision (see also `collision.parentB`).\n * \n * @property bodyB\n * @type body\n */\n\n /**\n * The first body represented by the collision (i.e. `collision.bodyA.parent`).\n * \n * @property parentA\n * @type body\n */\n\n /**\n * The second body represented by the collision (i.e. `collision.bodyB.parent`).\n * \n * @property parentB\n * @type body\n */\n\n /**\n * A `Number` that represents the minimum separating distance between the bodies along the collision normal.\n *\n * @readOnly\n * @property depth\n * @type number\n * @default 0\n */\n\n /**\n * A normalised `Vector` that represents the direction between the bodies that provides the minimum separating distance.\n *\n * @property normal\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A normalised `Vector` that is the tangent direction to the collision normal.\n *\n * @property tangent\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that represents the direction and depth of the collision.\n *\n * @property penetration\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * An array of body vertices that represent the support points in the collision.\n * These are the deepest vertices (along the collision normal) of each body that are contained by the other body's vertices.\n *\n * @property supports\n * @type vector[]\n * @default []\n */\n\n})();\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Pair` module contains methods for creating and manipulating collision pairs.\n*\n* @class Pair\n*/\n\nvar Pair = {};\n\nmodule.exports = Pair;\n\nvar Contact = __webpack_require__(16);\n\n(function() {\n \n /**\n * Creates a pair.\n * @method create\n * @param {collision} collision\n * @param {number} timestamp\n * @return {pair} A new pair\n */\n Pair.create = function(collision, timestamp) {\n var bodyA = collision.bodyA,\n bodyB = collision.bodyB;\n\n var pair = {\n id: Pair.id(bodyA, bodyB),\n bodyA: bodyA,\n bodyB: bodyB,\n collision: collision,\n contacts: [],\n activeContacts: [],\n separation: 0,\n isActive: true,\n confirmedActive: true,\n isSensor: bodyA.isSensor || bodyB.isSensor,\n timeCreated: timestamp,\n timeUpdated: timestamp,\n inverseMass: 0,\n friction: 0,\n frictionStatic: 0,\n restitution: 0,\n slop: 0\n };\n\n Pair.update(pair, collision, timestamp);\n\n return pair;\n };\n\n /**\n * Updates a pair given a collision.\n * @method update\n * @param {pair} pair\n * @param {collision} collision\n * @param {number} timestamp\n */\n Pair.update = function(pair, collision, timestamp) {\n var contacts = pair.contacts,\n supports = collision.supports,\n activeContacts = pair.activeContacts,\n parentA = collision.parentA,\n parentB = collision.parentB,\n parentAVerticesLength = parentA.vertices.length;\n \n pair.isActive = true;\n pair.timeUpdated = timestamp;\n pair.collision = collision;\n pair.separation = collision.depth;\n pair.inverseMass = parentA.inverseMass + parentB.inverseMass;\n pair.friction = parentA.friction < parentB.friction ? parentA.friction : parentB.friction;\n pair.frictionStatic = parentA.frictionStatic > parentB.frictionStatic ? parentA.frictionStatic : parentB.frictionStatic;\n pair.restitution = parentA.restitution > parentB.restitution ? parentA.restitution : parentB.restitution;\n pair.slop = parentA.slop > parentB.slop ? parentA.slop : parentB.slop;\n\n collision.pair = pair;\n activeContacts.length = 0;\n \n for (var i = 0; i < supports.length; i++) {\n var support = supports[i],\n contactId = support.body === parentA ? support.index : parentAVerticesLength + support.index,\n contact = contacts[contactId];\n\n if (contact) {\n activeContacts.push(contact);\n } else {\n activeContacts.push(contacts[contactId] = Contact.create(support));\n }\n }\n };\n \n /**\n * Set a pair as active or inactive.\n * @method setActive\n * @param {pair} pair\n * @param {bool} isActive\n * @param {number} timestamp\n */\n Pair.setActive = function(pair, isActive, timestamp) {\n if (isActive) {\n pair.isActive = true;\n pair.timeUpdated = timestamp;\n } else {\n pair.isActive = false;\n pair.activeContacts.length = 0;\n }\n };\n\n /**\n * Get the id for the given pair.\n * @method id\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {string} Unique pairId\n */\n Pair.id = function(bodyA, bodyB) {\n if (bodyA.id < bodyB.id) {\n return 'A' + bodyA.id + 'B' + bodyB.id;\n } else {\n return 'A' + bodyB.id + 'B' + bodyA.id;\n }\n };\n\n})();\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Constraint` module contains methods for creating and manipulating constraints.\n* Constraints are used for specifying that a fixed distance must be maintained between two bodies (or a body and a fixed world-space position).\n* The stiffness of constraints can be modified to create springs or elastic.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Constraint\n*/\n\nvar Constraint = {};\n\nmodule.exports = Constraint;\n\nvar Vertices = __webpack_require__(3);\nvar Vector = __webpack_require__(2);\nvar Sleeping = __webpack_require__(7);\nvar Bounds = __webpack_require__(1);\nvar Axes = __webpack_require__(11);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Constraint._warming = 0.4;\n Constraint._torqueDampen = 1;\n Constraint._minLength = 0.000001;\n\n /**\n * Creates a new constraint.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * To simulate a revolute constraint (or pin joint) set `length: 0` and a high `stiffness` value (e.g. `0.7` or above).\n * If the constraint is unstable, try lowering the `stiffness` value and / or increasing `engine.constraintIterations`.\n * For compound bodies, constraints must be applied to the parent body (not one of its parts).\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {} options\n * @return {constraint} constraint\n */\n Constraint.create = function(options) {\n var constraint = options;\n\n // if bodies defined but no points, use body centre\n if (constraint.bodyA && !constraint.pointA)\n constraint.pointA = { x: 0, y: 0 };\n if (constraint.bodyB && !constraint.pointB)\n constraint.pointB = { x: 0, y: 0 };\n\n // calculate static length using initial world space points\n var initialPointA = constraint.bodyA ? Vector.add(constraint.bodyA.position, constraint.pointA) : constraint.pointA,\n initialPointB = constraint.bodyB ? Vector.add(constraint.bodyB.position, constraint.pointB) : constraint.pointB,\n length = Vector.magnitude(Vector.sub(initialPointA, initialPointB));\n \n constraint.length = typeof constraint.length !== 'undefined' ? constraint.length : length;\n\n // option defaults\n constraint.id = constraint.id || Common.nextId();\n constraint.label = constraint.label || 'Constraint';\n constraint.type = 'constraint';\n constraint.stiffness = constraint.stiffness || (constraint.length > 0 ? 1 : 0.7);\n constraint.damping = constraint.damping || 0;\n constraint.angularStiffness = constraint.angularStiffness || 0;\n constraint.angleA = constraint.bodyA ? constraint.bodyA.angle : constraint.angleA;\n constraint.angleB = constraint.bodyB ? constraint.bodyB.angle : constraint.angleB;\n constraint.plugin = {};\n\n // render\n var render = {\n visible: true,\n lineWidth: 2,\n strokeStyle: '#ffffff',\n type: 'line',\n anchors: true\n };\n\n if (constraint.length === 0 && constraint.stiffness > 0.1) {\n render.type = 'pin';\n render.anchors = false;\n } else if (constraint.stiffness < 0.9) {\n render.type = 'spring';\n }\n\n constraint.render = Common.extend(render, constraint.render);\n\n return constraint;\n };\n\n /**\n * Prepares for solving by constraint warming.\n * @private\n * @method preSolveAll\n * @param {body[]} bodies\n */\n Constraint.preSolveAll = function(bodies) {\n for (var i = 0; i < bodies.length; i += 1) {\n var body = bodies[i],\n impulse = body.constraintImpulse;\n\n if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) {\n continue;\n }\n\n body.position.x += impulse.x;\n body.position.y += impulse.y;\n body.angle += impulse.angle;\n }\n };\n\n /**\n * Solves all constraints in a list of collisions.\n * @private\n * @method solveAll\n * @param {constraint[]} constraints\n * @param {number} delta\n */\n Constraint.solveAll = function(constraints, delta) {\n var timeScale = Common.clamp(delta / Common._baseDelta, 0, 1);\n\n // Solve fixed constraints first.\n for (var i = 0; i < constraints.length; i += 1) {\n var constraint = constraints[i],\n fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic),\n fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic);\n\n if (fixedA || fixedB) {\n Constraint.solve(constraints[i], timeScale);\n }\n }\n\n // Solve free constraints last.\n for (i = 0; i < constraints.length; i += 1) {\n constraint = constraints[i];\n fixedA = !constraint.bodyA || (constraint.bodyA && constraint.bodyA.isStatic);\n fixedB = !constraint.bodyB || (constraint.bodyB && constraint.bodyB.isStatic);\n\n if (!fixedA && !fixedB) {\n Constraint.solve(constraints[i], timeScale);\n }\n }\n };\n\n /**\n * Solves a distance constraint with Gauss-Siedel method.\n * @private\n * @method solve\n * @param {constraint} constraint\n * @param {number} timeScale\n */\n Constraint.solve = function(constraint, timeScale) {\n var bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n pointA = constraint.pointA,\n pointB = constraint.pointB;\n\n if (!bodyA && !bodyB)\n return;\n\n // update reference angle\n if (bodyA && !bodyA.isStatic) {\n Vector.rotate(pointA, bodyA.angle - constraint.angleA, pointA);\n constraint.angleA = bodyA.angle;\n }\n \n // update reference angle\n if (bodyB && !bodyB.isStatic) {\n Vector.rotate(pointB, bodyB.angle - constraint.angleB, pointB);\n constraint.angleB = bodyB.angle;\n }\n\n var pointAWorld = pointA,\n pointBWorld = pointB;\n\n if (bodyA) pointAWorld = Vector.add(bodyA.position, pointA);\n if (bodyB) pointBWorld = Vector.add(bodyB.position, pointB);\n\n if (!pointAWorld || !pointBWorld)\n return;\n\n var delta = Vector.sub(pointAWorld, pointBWorld),\n currentLength = Vector.magnitude(delta);\n\n // prevent singularity\n if (currentLength < Constraint._minLength) {\n currentLength = Constraint._minLength;\n }\n\n // solve distance constraint with Gauss-Siedel method\n var difference = (currentLength - constraint.length) / currentLength,\n isRigid = constraint.stiffness >= 1 || constraint.length === 0,\n stiffness = isRigid ? constraint.stiffness * timeScale \n : constraint.stiffness * timeScale * timeScale,\n damping = constraint.damping * timeScale,\n force = Vector.mult(delta, difference * stiffness),\n massTotal = (bodyA ? bodyA.inverseMass : 0) + (bodyB ? bodyB.inverseMass : 0),\n inertiaTotal = (bodyA ? bodyA.inverseInertia : 0) + (bodyB ? bodyB.inverseInertia : 0),\n resistanceTotal = massTotal + inertiaTotal,\n torque,\n share,\n normal,\n normalVelocity,\n relativeVelocity;\n \n if (damping > 0) {\n var zero = Vector.create();\n normal = Vector.div(delta, currentLength);\n\n relativeVelocity = Vector.sub(\n bodyB && Vector.sub(bodyB.position, bodyB.positionPrev) || zero,\n bodyA && Vector.sub(bodyA.position, bodyA.positionPrev) || zero\n );\n\n normalVelocity = Vector.dot(normal, relativeVelocity);\n }\n\n if (bodyA && !bodyA.isStatic) {\n share = bodyA.inverseMass / massTotal;\n\n // keep track of applied impulses for post solving\n bodyA.constraintImpulse.x -= force.x * share;\n bodyA.constraintImpulse.y -= force.y * share;\n\n // apply forces\n bodyA.position.x -= force.x * share;\n bodyA.position.y -= force.y * share;\n\n // apply damping\n if (damping > 0) {\n bodyA.positionPrev.x -= damping * normal.x * normalVelocity * share;\n bodyA.positionPrev.y -= damping * normal.y * normalVelocity * share;\n }\n\n // apply torque\n torque = (Vector.cross(pointA, force) / resistanceTotal) * Constraint._torqueDampen * bodyA.inverseInertia * (1 - constraint.angularStiffness);\n bodyA.constraintImpulse.angle -= torque;\n bodyA.angle -= torque;\n }\n\n if (bodyB && !bodyB.isStatic) {\n share = bodyB.inverseMass / massTotal;\n\n // keep track of applied impulses for post solving\n bodyB.constraintImpulse.x += force.x * share;\n bodyB.constraintImpulse.y += force.y * share;\n \n // apply forces\n bodyB.position.x += force.x * share;\n bodyB.position.y += force.y * share;\n\n // apply damping\n if (damping > 0) {\n bodyB.positionPrev.x += damping * normal.x * normalVelocity * share;\n bodyB.positionPrev.y += damping * normal.y * normalVelocity * share;\n }\n\n // apply torque\n torque = (Vector.cross(pointB, force) / resistanceTotal) * Constraint._torqueDampen * bodyB.inverseInertia * (1 - constraint.angularStiffness);\n bodyB.constraintImpulse.angle += torque;\n bodyB.angle += torque;\n }\n\n };\n\n /**\n * Performs body updates required after solving constraints.\n * @private\n * @method postSolveAll\n * @param {body[]} bodies\n */\n Constraint.postSolveAll = function(bodies) {\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n impulse = body.constraintImpulse;\n\n if (body.isStatic || (impulse.x === 0 && impulse.y === 0 && impulse.angle === 0)) {\n continue;\n }\n\n Sleeping.set(body, false);\n\n // update geometry and reset\n for (var j = 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n \n Vertices.translate(part.vertices, impulse);\n\n if (j > 0) {\n part.position.x += impulse.x;\n part.position.y += impulse.y;\n }\n\n if (impulse.angle !== 0) {\n Vertices.rotate(part.vertices, impulse.angle, body.position);\n Axes.rotate(part.axes, impulse.angle);\n if (j > 0) {\n Vector.rotateAbout(part.position, impulse.angle, body.position, part.position);\n }\n }\n\n Bounds.update(part.bounds, part.vertices, body.velocity);\n }\n\n // dampen the cached impulse for warming next step\n impulse.angle *= Constraint._warming;\n impulse.x *= Constraint._warming;\n impulse.y *= Constraint._warming;\n }\n };\n\n /**\n * Returns the world-space position of `constraint.pointA`, accounting for `constraint.bodyA`.\n * @method pointAWorld\n * @param {constraint} constraint\n * @returns {vector} the world-space position\n */\n Constraint.pointAWorld = function(constraint) {\n return {\n x: (constraint.bodyA ? constraint.bodyA.position.x : 0) \n + (constraint.pointA ? constraint.pointA.x : 0),\n y: (constraint.bodyA ? constraint.bodyA.position.y : 0) \n + (constraint.pointA ? constraint.pointA.y : 0)\n };\n };\n\n /**\n * Returns the world-space position of `constraint.pointB`, accounting for `constraint.bodyB`.\n * @method pointBWorld\n * @param {constraint} constraint\n * @returns {vector} the world-space position\n */\n Constraint.pointBWorld = function(constraint) {\n return {\n x: (constraint.bodyB ? constraint.bodyB.position.x : 0) \n + (constraint.pointB ? constraint.pointB.x : 0),\n y: (constraint.bodyB ? constraint.bodyB.position.y : 0) \n + (constraint.pointB ? constraint.pointB.y : 0)\n };\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` uniquely identifying number generated in `Composite.create` by `Common.nextId`.\n *\n * @property id\n * @type number\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"constraint\"\n * @readOnly\n */\n\n /**\n * An arbitrary `String` name to help the user identify and manage bodies.\n *\n * @property label\n * @type string\n * @default \"Constraint\"\n */\n\n /**\n * An `Object` that defines the rendering properties to be consumed by the module `Matter.Render`.\n *\n * @property render\n * @type object\n */\n\n /**\n * A flag that indicates if the constraint should be rendered.\n *\n * @property render.visible\n * @type boolean\n * @default true\n */\n\n /**\n * A `Number` that defines the line width to use when rendering the constraint outline.\n * A value of `0` means no outline will be rendered.\n *\n * @property render.lineWidth\n * @type number\n * @default 2\n */\n\n /**\n * A `String` that defines the stroke style to use when rendering the constraint outline.\n * It is the same as when using a canvas, so it accepts CSS style property values.\n *\n * @property render.strokeStyle\n * @type string\n * @default a random colour\n */\n\n /**\n * A `String` that defines the constraint rendering type. \n * The possible values are 'line', 'pin', 'spring'.\n * An appropriate render type will be automatically chosen unless one is given in options.\n *\n * @property render.type\n * @type string\n * @default 'line'\n */\n\n /**\n * A `Boolean` that defines if the constraint's anchor points should be rendered.\n *\n * @property render.anchors\n * @type boolean\n * @default true\n */\n\n /**\n * The first possible `Body` that this constraint is attached to.\n *\n * @property bodyA\n * @type body\n * @default null\n */\n\n /**\n * The second possible `Body` that this constraint is attached to.\n *\n * @property bodyB\n * @type body\n * @default null\n */\n\n /**\n * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyA` if defined, otherwise a world-space position.\n *\n * @property pointA\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Vector` that specifies the offset of the constraint from center of the `constraint.bodyB` if defined, otherwise a world-space position.\n *\n * @property pointB\n * @type vector\n * @default { x: 0, y: 0 }\n */\n\n /**\n * A `Number` that specifies the stiffness of the constraint, i.e. the rate at which it returns to its resting `constraint.length`.\n * A value of `1` means the constraint should be very stiff.\n * A value of `0.2` means the constraint acts like a soft spring.\n *\n * @property stiffness\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that specifies the damping of the constraint, \n * i.e. the amount of resistance applied to each body based on their velocities to limit the amount of oscillation.\n * Damping will only be apparent when the constraint also has a very low `stiffness`.\n * A value of `0.1` means the constraint will apply heavy damping, resulting in little to no oscillation.\n * A value of `0` means the constraint will apply no damping.\n *\n * @property damping\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that specifies the target resting length of the constraint. \n * It is calculated automatically in `Constraint.create` from initial positions of the `constraint.bodyA` and `constraint.bodyB`.\n *\n * @property length\n * @type number\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n})();\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Axes` module contains methods for creating and manipulating sets of axes.\n*\n* @class Axes\n*/\n\nvar Axes = {};\n\nmodule.exports = Axes;\n\nvar Vector = __webpack_require__(2);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new set of axes from the given vertices.\n * @method fromVertices\n * @param {vertices} vertices\n * @return {axes} A new axes from the given vertices\n */\n Axes.fromVertices = function(vertices) {\n var axes = {};\n\n // find the unique axes, using edge normal gradients\n for (var i = 0; i < vertices.length; i++) {\n var j = (i + 1) % vertices.length, \n normal = Vector.normalise({ \n x: vertices[j].y - vertices[i].y, \n y: vertices[i].x - vertices[j].x\n }),\n gradient = (normal.y === 0) ? Infinity : (normal.x / normal.y);\n \n // limit precision\n gradient = gradient.toFixed(3).toString();\n axes[gradient] = normal;\n }\n\n return Common.values(axes);\n };\n\n /**\n * Rotates a set of axes by the given angle.\n * @method rotate\n * @param {axes} axes\n * @param {number} angle\n */\n Axes.rotate = function(axes, angle) {\n if (angle === 0)\n return;\n \n var cos = Math.cos(angle),\n sin = Math.sin(angle);\n\n for (var i = 0; i < axes.length; i++) {\n var axis = axes[i],\n xx;\n xx = axis.x * cos - axis.y * sin;\n axis.y = axis.x * sin + axis.y * cos;\n axis.x = xx;\n }\n };\n\n})();\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Bodies` module contains factory methods for creating rigid body models \n* with commonly used body configurations (such as rectangles, circles and other polygons).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Bodies\n*/\n\n// TODO: true circle bodies\n\nvar Bodies = {};\n\nmodule.exports = Bodies;\n\nvar Vertices = __webpack_require__(3);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\nvar Bounds = __webpack_require__(1);\nvar Vector = __webpack_require__(2);\n\n(function() {\n\n /**\n * Creates a new rigid body model with a rectangle hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method rectangle\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {object} [options]\n * @return {body} A new rectangle body\n */\n Bodies.rectangle = function(x, y, width, height, options) {\n options = options || {};\n\n var rectangle = { \n label: 'Rectangle Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath('L 0 0 L ' + width + ' 0 L ' + width + ' ' + height + ' L 0 ' + height)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n rectangle.vertices = Vertices.chamfer(rectangle.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, rectangle, options));\n };\n \n /**\n * Creates a new rigid body model with a trapezoid hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method trapezoid\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {number} slope\n * @param {object} [options]\n * @return {body} A new trapezoid body\n */\n Bodies.trapezoid = function(x, y, width, height, slope, options) {\n options = options || {};\n\n slope *= 0.5;\n var roof = (1 - (slope * 2)) * width;\n \n var x1 = width * slope,\n x2 = x1 + roof,\n x3 = x2 + x1,\n verticesPath;\n\n if (slope < 0.5) {\n verticesPath = 'L 0 0 L ' + x1 + ' ' + (-height) + ' L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0';\n } else {\n verticesPath = 'L 0 0 L ' + x2 + ' ' + (-height) + ' L ' + x3 + ' 0';\n }\n\n var trapezoid = { \n label: 'Trapezoid Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath(verticesPath)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n trapezoid.vertices = Vertices.chamfer(trapezoid.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, trapezoid, options));\n };\n\n /**\n * Creates a new rigid body model with a circle hull. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method circle\n * @param {number} x\n * @param {number} y\n * @param {number} radius\n * @param {object} [options]\n * @param {number} [maxSides]\n * @return {body} A new circle body\n */\n Bodies.circle = function(x, y, radius, options, maxSides) {\n options = options || {};\n\n var circle = {\n label: 'Circle Body',\n circleRadius: radius\n };\n \n // approximate circles with polygons until true circles implemented in SAT\n maxSides = maxSides || 25;\n var sides = Math.ceil(Math.max(10, Math.min(maxSides, radius)));\n\n // optimisation: always use even number of sides (half the number of unique axes)\n if (sides % 2 === 1)\n sides += 1;\n\n return Bodies.polygon(x, y, sides, radius, Common.extend({}, circle, options));\n };\n\n /**\n * Creates a new rigid body model with a regular polygon hull with the given number of sides. \n * The options parameter is an object that specifies any properties you wish to override the defaults.\n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method polygon\n * @param {number} x\n * @param {number} y\n * @param {number} sides\n * @param {number} radius\n * @param {object} [options]\n * @return {body} A new regular polygon body\n */\n Bodies.polygon = function(x, y, sides, radius, options) {\n options = options || {};\n\n if (sides < 3)\n return Bodies.circle(x, y, radius, options);\n\n var theta = 2 * Math.PI / sides,\n path = '',\n offset = theta * 0.5;\n\n for (var i = 0; i < sides; i += 1) {\n var angle = offset + (i * theta),\n xx = Math.cos(angle) * radius,\n yy = Math.sin(angle) * radius;\n\n path += 'L ' + xx.toFixed(3) + ' ' + yy.toFixed(3) + ' ';\n }\n\n var polygon = { \n label: 'Polygon Body',\n position: { x: x, y: y },\n vertices: Vertices.fromPath(path)\n };\n\n if (options.chamfer) {\n var chamfer = options.chamfer;\n polygon.vertices = Vertices.chamfer(polygon.vertices, chamfer.radius, \n chamfer.quality, chamfer.qualityMin, chamfer.qualityMax);\n delete options.chamfer;\n }\n\n return Body.create(Common.extend({}, polygon, options));\n };\n\n /**\n * Utility to create a compound body based on set(s) of vertices.\n * \n * _Note:_ To optionally enable automatic concave vertices decomposition the [poly-decomp](https://github.com/schteppe/poly-decomp.js) \n * package must be first installed and provided see `Common.setDecomp`, otherwise the convex hull of each vertex set will be used.\n * \n * The resulting vertices are reorientated about their centre of mass,\n * and offset such that `body.position` corresponds to this point.\n * \n * The resulting offset may be found if needed by subtracting `body.bounds` from the original input bounds.\n * To later move the centre of mass see `Body.setCentre`.\n * \n * Note that automatic conconcave decomposition results are not always optimal. \n * For best results, simplify the input vertices as much as possible first.\n * By default this function applies some addtional simplification to help.\n * \n * Some outputs may also require further manual processing afterwards to be robust.\n * In particular some parts may need to be overlapped to avoid collision gaps.\n * Thin parts and sharp points should be avoided or removed where possible.\n *\n * The options parameter object specifies any `Matter.Body` properties you wish to override the defaults.\n * \n * See the properties section of the `Matter.Body` module for detailed information on what you can pass via the `options` object.\n * @method fromVertices\n * @param {number} x\n * @param {number} y\n * @param {array} vertexSets One or more arrays of vertex points e.g. `[[{ x: 0, y: 0 }...], ...]`.\n * @param {object} [options] The body options.\n * @param {bool} [flagInternal=false] Optionally marks internal edges with `isInternal`.\n * @param {number} [removeCollinear=0.01] Threshold when simplifying vertices along the same edge.\n * @param {number} [minimumArea=10] Threshold when removing small parts.\n * @param {number} [removeDuplicatePoints=0.01] Threshold when simplifying nearby vertices.\n * @return {body}\n */\n Bodies.fromVertices = function(x, y, vertexSets, options, flagInternal, removeCollinear, minimumArea, removeDuplicatePoints) {\n var decomp = Common.getDecomp(),\n canDecomp,\n body,\n parts,\n isConvex,\n isConcave,\n vertices,\n i,\n j,\n k,\n v,\n z;\n\n // check decomp is as expected\n canDecomp = Boolean(decomp && decomp.quickDecomp);\n\n options = options || {};\n parts = [];\n\n flagInternal = typeof flagInternal !== 'undefined' ? flagInternal : false;\n removeCollinear = typeof removeCollinear !== 'undefined' ? removeCollinear : 0.01;\n minimumArea = typeof minimumArea !== 'undefined' ? minimumArea : 10;\n removeDuplicatePoints = typeof removeDuplicatePoints !== 'undefined' ? removeDuplicatePoints : 0.01;\n\n // ensure vertexSets is an array of arrays\n if (!Common.isArray(vertexSets[0])) {\n vertexSets = [vertexSets];\n }\n\n for (v = 0; v < vertexSets.length; v += 1) {\n vertices = vertexSets[v];\n isConvex = Vertices.isConvex(vertices);\n isConcave = !isConvex;\n\n if (isConcave && !canDecomp) {\n Common.warnOnce(\n 'Bodies.fromVertices: Install the \\'poly-decomp\\' library and use Common.setDecomp or provide \\'decomp\\' as a global to decompose concave vertices.'\n );\n }\n\n if (isConvex || !canDecomp) {\n if (isConvex) {\n vertices = Vertices.clockwiseSort(vertices);\n } else {\n // fallback to convex hull when decomposition is not possible\n vertices = Vertices.hull(vertices);\n }\n\n parts.push({\n position: { x: x, y: y },\n vertices: vertices\n });\n } else {\n // initialise a decomposition\n var concave = vertices.map(function(vertex) {\n return [vertex.x, vertex.y];\n });\n\n // vertices are concave and simple, we can decompose into parts\n decomp.makeCCW(concave);\n if (removeCollinear !== false)\n decomp.removeCollinearPoints(concave, removeCollinear);\n if (removeDuplicatePoints !== false && decomp.removeDuplicatePoints)\n decomp.removeDuplicatePoints(concave, removeDuplicatePoints);\n\n // use the quick decomposition algorithm (Bayazit)\n var decomposed = decomp.quickDecomp(concave);\n\n // for each decomposed chunk\n for (i = 0; i < decomposed.length; i++) {\n var chunk = decomposed[i];\n\n // convert vertices into the correct structure\n var chunkVertices = chunk.map(function(vertices) {\n return {\n x: vertices[0],\n y: vertices[1]\n };\n });\n\n // skip small chunks\n if (minimumArea > 0 && Vertices.area(chunkVertices) < minimumArea)\n continue;\n\n // create a compound part\n parts.push({\n position: Vertices.centre(chunkVertices),\n vertices: chunkVertices\n });\n }\n }\n }\n\n // create body parts\n for (i = 0; i < parts.length; i++) {\n parts[i] = Body.create(Common.extend(parts[i], options));\n }\n\n // flag internal edges (coincident part edges)\n if (flagInternal) {\n var coincident_max_dist = 5;\n\n for (i = 0; i < parts.length; i++) {\n var partA = parts[i];\n\n for (j = i + 1; j < parts.length; j++) {\n var partB = parts[j];\n\n if (Bounds.overlaps(partA.bounds, partB.bounds)) {\n var pav = partA.vertices,\n pbv = partB.vertices;\n\n // iterate vertices of both parts\n for (k = 0; k < partA.vertices.length; k++) {\n for (z = 0; z < partB.vertices.length; z++) {\n // find distances between the vertices\n var da = Vector.magnitudeSquared(Vector.sub(pav[(k + 1) % pav.length], pbv[z])),\n db = Vector.magnitudeSquared(Vector.sub(pav[k], pbv[(z + 1) % pbv.length]));\n\n // if both vertices are very close, consider the edge concident (internal)\n if (da < coincident_max_dist && db < coincident_max_dist) {\n pav[k].isInternal = true;\n pbv[z].isInternal = true;\n }\n }\n }\n\n }\n }\n }\n }\n\n if (parts.length > 1) {\n // create the parent body to be returned, that contains generated compound parts\n body = Body.create(Common.extend({ parts: parts.slice(0) }, options));\n\n // offset such that body.position is at the centre off mass\n Body.setPosition(body, { x: x, y: y });\n\n return body;\n } else {\n return parts[0];\n }\n };\n\n})();\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Detector` module contains methods for efficiently detecting collisions between a list of bodies using a broadphase algorithm.\n*\n* @class Detector\n*/\n\nvar Detector = {};\n\nmodule.exports = Detector;\n\nvar Common = __webpack_require__(0);\nvar Collision = __webpack_require__(8);\n\n(function() {\n\n /**\n * Creates a new collision detector.\n * @method create\n * @param {} options\n * @return {detector} A new collision detector\n */\n Detector.create = function(options) {\n var defaults = {\n bodies: [],\n pairs: null\n };\n\n return Common.extend(defaults, options);\n };\n\n /**\n * Sets the list of bodies in the detector.\n * @method setBodies\n * @param {detector} detector\n * @param {body[]} bodies\n */\n Detector.setBodies = function(detector, bodies) {\n detector.bodies = bodies.slice(0);\n };\n\n /**\n * Clears the detector including its list of bodies.\n * @method clear\n * @param {detector} detector\n */\n Detector.clear = function(detector) {\n detector.bodies = [];\n };\n\n /**\n * Efficiently finds all collisions among all the bodies in `detector.bodies` using a broadphase algorithm.\n * \n * _Note:_ The specific ordering of collisions returned is not guaranteed between releases and may change for performance reasons.\n * If a specific ordering is required then apply a sort to the resulting array.\n * @method collisions\n * @param {detector} detector\n * @return {collision[]} collisions\n */\n Detector.collisions = function(detector) {\n var collisions = [],\n pairs = detector.pairs,\n bodies = detector.bodies,\n bodiesLength = bodies.length,\n canCollide = Detector.canCollide,\n collides = Collision.collides,\n i,\n j;\n\n bodies.sort(Detector._compareBoundsX);\n\n for (i = 0; i < bodiesLength; i++) {\n var bodyA = bodies[i],\n boundsA = bodyA.bounds,\n boundXMax = bodyA.bounds.max.x,\n boundYMax = bodyA.bounds.max.y,\n boundYMin = bodyA.bounds.min.y,\n bodyAStatic = bodyA.isStatic || bodyA.isSleeping,\n partsALength = bodyA.parts.length,\n partsASingle = partsALength === 1;\n\n for (j = i + 1; j < bodiesLength; j++) {\n var bodyB = bodies[j],\n boundsB = bodyB.bounds;\n\n if (boundsB.min.x > boundXMax) {\n break;\n }\n\n if (boundYMax < boundsB.min.y || boundYMin > boundsB.max.y) {\n continue;\n }\n\n if (bodyAStatic && (bodyB.isStatic || bodyB.isSleeping)) {\n continue;\n }\n\n if (!canCollide(bodyA.collisionFilter, bodyB.collisionFilter)) {\n continue;\n }\n\n var partsBLength = bodyB.parts.length;\n\n if (partsASingle && partsBLength === 1) {\n var collision = collides(bodyA, bodyB, pairs);\n\n if (collision) {\n collisions.push(collision);\n }\n } else {\n var partsAStart = partsALength > 1 ? 1 : 0,\n partsBStart = partsBLength > 1 ? 1 : 0;\n \n for (var k = partsAStart; k < partsALength; k++) {\n var partA = bodyA.parts[k],\n boundsA = partA.bounds;\n\n for (var z = partsBStart; z < partsBLength; z++) {\n var partB = bodyB.parts[z],\n boundsB = partB.bounds;\n\n if (boundsA.min.x > boundsB.max.x || boundsA.max.x < boundsB.min.x\n || boundsA.max.y < boundsB.min.y || boundsA.min.y > boundsB.max.y) {\n continue;\n }\n\n var collision = collides(partA, partB, pairs);\n\n if (collision) {\n collisions.push(collision);\n }\n }\n }\n }\n }\n }\n\n return collisions;\n };\n\n /**\n * Returns `true` if both supplied collision filters will allow a collision to occur.\n * See `body.collisionFilter` for more information.\n * @method canCollide\n * @param {} filterA\n * @param {} filterB\n * @return {bool} `true` if collision can occur\n */\n Detector.canCollide = function(filterA, filterB) {\n if (filterA.group === filterB.group && filterA.group !== 0)\n return filterA.group > 0;\n\n return (filterA.mask & filterB.category) !== 0 && (filterB.mask & filterA.category) !== 0;\n };\n\n /**\n * The comparison function used in the broadphase algorithm.\n * Returns the signed delta of the bodies bounds on the x-axis.\n * @private\n * @method _sortCompare\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {number} The signed delta used for sorting\n */\n Detector._compareBoundsX = function(bodyA, bodyB) {\n return bodyA.bounds.min.x - bodyB.bounds.min.x;\n };\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * The array of `Matter.Body` between which the detector finds collisions.\n * \n * _Note:_ The order of bodies in this array _is not fixed_ and will be continually managed by the detector.\n * @property bodies\n * @type body[]\n * @default []\n */\n\n /**\n * Optional. A `Matter.Pairs` object from which previous collision objects may be reused. Intended for internal `Matter.Engine` usage.\n * @property pairs\n * @type {pairs|null}\n * @default null\n */\n\n})();\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Mouse` module contains methods for creating and manipulating mouse inputs.\n*\n* @class Mouse\n*/\n\nvar Mouse = {};\n\nmodule.exports = Mouse;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a mouse input.\n * @method create\n * @param {HTMLElement} element\n * @return {mouse} A new mouse\n */\n Mouse.create = function(element) {\n var mouse = {};\n\n if (!element) {\n Common.log('Mouse.create: element was undefined, defaulting to document.body', 'warn');\n }\n \n mouse.element = element || document.body;\n mouse.absolute = { x: 0, y: 0 };\n mouse.position = { x: 0, y: 0 };\n mouse.mousedownPosition = { x: 0, y: 0 };\n mouse.mouseupPosition = { x: 0, y: 0 };\n mouse.offset = { x: 0, y: 0 };\n mouse.scale = { x: 1, y: 1 };\n mouse.wheelDelta = 0;\n mouse.button = -1;\n mouse.pixelRatio = parseInt(mouse.element.getAttribute('data-pixel-ratio'), 10) || 1;\n\n mouse.sourceEvents = {\n mousemove: null,\n mousedown: null,\n mouseup: null,\n mousewheel: null\n };\n \n mouse.mousemove = function(event) { \n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n mouse.button = 0;\n event.preventDefault();\n }\n\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.sourceEvents.mousemove = event;\n };\n \n mouse.mousedown = function(event) {\n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n mouse.button = 0;\n event.preventDefault();\n } else {\n mouse.button = event.button;\n }\n\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.mousedownPosition.x = mouse.position.x;\n mouse.mousedownPosition.y = mouse.position.y;\n mouse.sourceEvents.mousedown = event;\n };\n \n mouse.mouseup = function(event) {\n var position = Mouse._getRelativeMousePosition(event, mouse.element, mouse.pixelRatio),\n touches = event.changedTouches;\n\n if (touches) {\n event.preventDefault();\n }\n \n mouse.button = -1;\n mouse.absolute.x = position.x;\n mouse.absolute.y = position.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n mouse.mouseupPosition.x = mouse.position.x;\n mouse.mouseupPosition.y = mouse.position.y;\n mouse.sourceEvents.mouseup = event;\n };\n\n mouse.mousewheel = function(event) {\n mouse.wheelDelta = Math.max(-1, Math.min(1, event.wheelDelta || -event.detail));\n event.preventDefault();\n };\n\n Mouse.setElement(mouse, mouse.element);\n\n return mouse;\n };\n\n /**\n * Sets the element the mouse is bound to (and relative to).\n * @method setElement\n * @param {mouse} mouse\n * @param {HTMLElement} element\n */\n Mouse.setElement = function(mouse, element) {\n mouse.element = element;\n\n element.addEventListener('mousemove', mouse.mousemove);\n element.addEventListener('mousedown', mouse.mousedown);\n element.addEventListener('mouseup', mouse.mouseup);\n \n element.addEventListener('mousewheel', mouse.mousewheel);\n element.addEventListener('DOMMouseScroll', mouse.mousewheel);\n\n element.addEventListener('touchmove', mouse.mousemove);\n element.addEventListener('touchstart', mouse.mousedown);\n element.addEventListener('touchend', mouse.mouseup);\n };\n\n /**\n * Clears all captured source events.\n * @method clearSourceEvents\n * @param {mouse} mouse\n */\n Mouse.clearSourceEvents = function(mouse) {\n mouse.sourceEvents.mousemove = null;\n mouse.sourceEvents.mousedown = null;\n mouse.sourceEvents.mouseup = null;\n mouse.sourceEvents.mousewheel = null;\n mouse.wheelDelta = 0;\n };\n\n /**\n * Sets the mouse position offset.\n * @method setOffset\n * @param {mouse} mouse\n * @param {vector} offset\n */\n Mouse.setOffset = function(mouse, offset) {\n mouse.offset.x = offset.x;\n mouse.offset.y = offset.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n };\n\n /**\n * Sets the mouse position scale.\n * @method setScale\n * @param {mouse} mouse\n * @param {vector} scale\n */\n Mouse.setScale = function(mouse, scale) {\n mouse.scale.x = scale.x;\n mouse.scale.y = scale.y;\n mouse.position.x = mouse.absolute.x * mouse.scale.x + mouse.offset.x;\n mouse.position.y = mouse.absolute.y * mouse.scale.y + mouse.offset.y;\n };\n \n /**\n * Gets the mouse position relative to an element given a screen pixel ratio.\n * @method _getRelativeMousePosition\n * @private\n * @param {} event\n * @param {} element\n * @param {number} pixelRatio\n * @return {}\n */\n Mouse._getRelativeMousePosition = function(event, element, pixelRatio) {\n var elementBounds = element.getBoundingClientRect(),\n rootNode = (document.documentElement || document.body.parentNode || document.body),\n scrollX = (window.pageXOffset !== undefined) ? window.pageXOffset : rootNode.scrollLeft,\n scrollY = (window.pageYOffset !== undefined) ? window.pageYOffset : rootNode.scrollTop,\n touches = event.changedTouches,\n x, y;\n \n if (touches) {\n x = touches[0].pageX - elementBounds.left - scrollX;\n y = touches[0].pageY - elementBounds.top - scrollY;\n } else {\n x = event.pageX - elementBounds.left - scrollX;\n y = event.pageY - elementBounds.top - scrollY;\n }\n\n return { \n x: x / (element.clientWidth / (element.width || element.clientWidth) * pixelRatio),\n y: y / (element.clientHeight / (element.height || element.clientHeight) * pixelRatio)\n };\n };\n\n})();\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Plugin` module contains functions for registering and installing plugins on modules.\n*\n* @class Plugin\n*/\n\nvar Plugin = {};\n\nmodule.exports = Plugin;\n\nvar Common = __webpack_require__(0);\n\n(function() {\n\n Plugin._registry = {};\n\n /**\n * Registers a plugin object so it can be resolved later by name.\n * @method register\n * @param plugin {} The plugin to register.\n * @return {object} The plugin.\n */\n Plugin.register = function(plugin) {\n if (!Plugin.isPlugin(plugin)) {\n Common.warn('Plugin.register:', Plugin.toString(plugin), 'does not implement all required fields.');\n }\n\n if (plugin.name in Plugin._registry) {\n var registered = Plugin._registry[plugin.name],\n pluginVersion = Plugin.versionParse(plugin.version).number,\n registeredVersion = Plugin.versionParse(registered.version).number;\n\n if (pluginVersion > registeredVersion) {\n Common.warn('Plugin.register:', Plugin.toString(registered), 'was upgraded to', Plugin.toString(plugin));\n Plugin._registry[plugin.name] = plugin;\n } else if (pluginVersion < registeredVersion) {\n Common.warn('Plugin.register:', Plugin.toString(registered), 'can not be downgraded to', Plugin.toString(plugin));\n } else if (plugin !== registered) {\n Common.warn('Plugin.register:', Plugin.toString(plugin), 'is already registered to different plugin object');\n }\n } else {\n Plugin._registry[plugin.name] = plugin;\n }\n\n return plugin;\n };\n\n /**\n * Resolves a dependency to a plugin object from the registry if it exists. \n * The `dependency` may contain a version, but only the name matters when resolving.\n * @method resolve\n * @param dependency {string} The dependency.\n * @return {object} The plugin if resolved, otherwise `undefined`.\n */\n Plugin.resolve = function(dependency) {\n return Plugin._registry[Plugin.dependencyParse(dependency).name];\n };\n\n /**\n * Returns a pretty printed plugin name and version.\n * @method toString\n * @param plugin {} The plugin.\n * @return {string} Pretty printed plugin name and version.\n */\n Plugin.toString = function(plugin) {\n return typeof plugin === 'string' ? plugin : (plugin.name || 'anonymous') + '@' + (plugin.version || plugin.range || '0.0.0');\n };\n\n /**\n * Returns `true` if the object meets the minimum standard to be considered a plugin.\n * This means it must define the following properties:\n * - `name`\n * - `version`\n * - `install`\n * @method isPlugin\n * @param obj {} The obj to test.\n * @return {boolean} `true` if the object can be considered a plugin otherwise `false`.\n */\n Plugin.isPlugin = function(obj) {\n return obj && obj.name && obj.version && obj.install;\n };\n\n /**\n * Returns `true` if a plugin with the given `name` been installed on `module`.\n * @method isUsed\n * @param module {} The module.\n * @param name {string} The plugin name.\n * @return {boolean} `true` if a plugin with the given `name` been installed on `module`, otherwise `false`.\n */\n Plugin.isUsed = function(module, name) {\n return module.used.indexOf(name) > -1;\n };\n\n /**\n * Returns `true` if `plugin.for` is applicable to `module` by comparing against `module.name` and `module.version`.\n * If `plugin.for` is not specified then it is assumed to be applicable.\n * The value of `plugin.for` is a string of the format `'module-name'` or `'module-name@version'`.\n * @method isFor\n * @param plugin {} The plugin.\n * @param module {} The module.\n * @return {boolean} `true` if `plugin.for` is applicable to `module`, otherwise `false`.\n */\n Plugin.isFor = function(plugin, module) {\n var parsed = plugin.for && Plugin.dependencyParse(plugin.for);\n return !plugin.for || (module.name === parsed.name && Plugin.versionSatisfies(module.version, parsed.range));\n };\n\n /**\n * Installs the plugins by calling `plugin.install` on each plugin specified in `plugins` if passed, otherwise `module.uses`.\n * For installing plugins on `Matter` see the convenience function `Matter.use`.\n * Plugins may be specified either by their name or a reference to the plugin object.\n * Plugins themselves may specify further dependencies, but each plugin is installed only once.\n * Order is important, a topological sort is performed to find the best resulting order of installation.\n * This sorting attempts to satisfy every dependency's requested ordering, but may not be exact in all cases.\n * This function logs the resulting status of each dependency in the console, along with any warnings.\n * - A green tick ✅ indicates a dependency was resolved and installed.\n * - An orange diamond 🔶 indicates a dependency was resolved but a warning was thrown for it or one if its dependencies.\n * - A red cross ❌ indicates a dependency could not be resolved.\n * Avoid calling this function multiple times on the same module unless you intend to manually control installation order.\n * @method use\n * @param module {} The module install plugins on.\n * @param [plugins=module.uses] {} The plugins to install on module (optional, defaults to `module.uses`).\n */\n Plugin.use = function(module, plugins) {\n module.uses = (module.uses || []).concat(plugins || []);\n\n if (module.uses.length === 0) {\n Common.warn('Plugin.use:', Plugin.toString(module), 'does not specify any dependencies to install.');\n return;\n }\n\n var dependencies = Plugin.dependencies(module),\n sortedDependencies = Common.topologicalSort(dependencies),\n status = [];\n\n for (var i = 0; i < sortedDependencies.length; i += 1) {\n if (sortedDependencies[i] === module.name) {\n continue;\n }\n\n var plugin = Plugin.resolve(sortedDependencies[i]);\n\n if (!plugin) {\n status.push('❌ ' + sortedDependencies[i]);\n continue;\n }\n\n if (Plugin.isUsed(module, plugin.name)) {\n continue;\n }\n\n if (!Plugin.isFor(plugin, module)) {\n Common.warn('Plugin.use:', Plugin.toString(plugin), 'is for', plugin.for, 'but installed on', Plugin.toString(module) + '.');\n plugin._warned = true;\n }\n\n if (plugin.install) {\n plugin.install(module);\n } else {\n Common.warn('Plugin.use:', Plugin.toString(plugin), 'does not specify an install function.');\n plugin._warned = true;\n }\n\n if (plugin._warned) {\n status.push('🔶 ' + Plugin.toString(plugin));\n delete plugin._warned;\n } else {\n status.push('✅ ' + Plugin.toString(plugin));\n }\n\n module.used.push(plugin.name);\n }\n\n if (status.length > 0) {\n Common.info(status.join(' '));\n }\n };\n\n /**\n * Recursively finds all of a module's dependencies and returns a flat dependency graph.\n * @method dependencies\n * @param module {} The module.\n * @return {object} A dependency graph.\n */\n Plugin.dependencies = function(module, tracked) {\n var parsedBase = Plugin.dependencyParse(module),\n name = parsedBase.name;\n\n tracked = tracked || {};\n\n if (name in tracked) {\n return;\n }\n\n module = Plugin.resolve(module) || module;\n\n tracked[name] = Common.map(module.uses || [], function(dependency) {\n if (Plugin.isPlugin(dependency)) {\n Plugin.register(dependency);\n }\n\n var parsed = Plugin.dependencyParse(dependency),\n resolved = Plugin.resolve(dependency);\n\n if (resolved && !Plugin.versionSatisfies(resolved.version, parsed.range)) {\n Common.warn(\n 'Plugin.dependencies:', Plugin.toString(resolved), 'does not satisfy',\n Plugin.toString(parsed), 'used by', Plugin.toString(parsedBase) + '.'\n );\n\n resolved._warned = true;\n module._warned = true;\n } else if (!resolved) {\n Common.warn(\n 'Plugin.dependencies:', Plugin.toString(dependency), 'used by',\n Plugin.toString(parsedBase), 'could not be resolved.'\n );\n\n module._warned = true;\n }\n\n return parsed.name;\n });\n\n for (var i = 0; i < tracked[name].length; i += 1) {\n Plugin.dependencies(tracked[name][i], tracked);\n }\n\n return tracked;\n };\n\n /**\n * Parses a dependency string into its components.\n * The `dependency` is a string of the format `'module-name'` or `'module-name@version'`.\n * See documentation for `Plugin.versionParse` for a description of the format.\n * This function can also handle dependencies that are already resolved (e.g. a module object).\n * @method dependencyParse\n * @param dependency {string} The dependency of the format `'module-name'` or `'module-name@version'`.\n * @return {object} The dependency parsed into its components.\n */\n Plugin.dependencyParse = function(dependency) {\n if (Common.isString(dependency)) {\n var pattern = /^[\\w-]+(@(\\*|[\\^~]?\\d+\\.\\d+\\.\\d+(-[0-9A-Za-z-+]+)?))?$/;\n\n if (!pattern.test(dependency)) {\n Common.warn('Plugin.dependencyParse:', dependency, 'is not a valid dependency string.');\n }\n\n return {\n name: dependency.split('@')[0],\n range: dependency.split('@')[1] || '*'\n };\n }\n\n return {\n name: dependency.name,\n range: dependency.range || dependency.version\n };\n };\n\n /**\n * Parses a version string into its components. \n * Versions are strictly of the format `x.y.z` (as in [semver](http://semver.org/)).\n * Versions may optionally have a prerelease tag in the format `x.y.z-alpha`.\n * Ranges are a strict subset of [npm ranges](https://docs.npmjs.com/misc/semver#advanced-range-syntax).\n * Only the following range types are supported:\n * - Tilde ranges e.g. `~1.2.3`\n * - Caret ranges e.g. `^1.2.3`\n * - Greater than ranges e.g. `>1.2.3`\n * - Greater than or equal ranges e.g. `>=1.2.3`\n * - Exact version e.g. `1.2.3`\n * - Any version `*`\n * @method versionParse\n * @param range {string} The version string.\n * @return {object} The version range parsed into its components.\n */\n Plugin.versionParse = function(range) {\n var pattern = /^(\\*)|(\\^|~|>=|>)?\\s*((\\d+)\\.(\\d+)\\.(\\d+))(-[0-9A-Za-z-+]+)?$/;\n\n if (!pattern.test(range)) {\n Common.warn('Plugin.versionParse:', range, 'is not a valid version or range.');\n }\n\n var parts = pattern.exec(range);\n var major = Number(parts[4]);\n var minor = Number(parts[5]);\n var patch = Number(parts[6]);\n\n return {\n isRange: Boolean(parts[1] || parts[2]),\n version: parts[3],\n range: range,\n operator: parts[1] || parts[2] || '',\n major: major,\n minor: minor,\n patch: patch,\n parts: [major, minor, patch],\n prerelease: parts[7],\n number: major * 1e8 + minor * 1e4 + patch\n };\n };\n\n /**\n * Returns `true` if `version` satisfies the given `range`.\n * See documentation for `Plugin.versionParse` for a description of the format.\n * If a version or range is not specified, then any version (`*`) is assumed to satisfy.\n * @method versionSatisfies\n * @param version {string} The version string.\n * @param range {string} The range string.\n * @return {boolean} `true` if `version` satisfies `range`, otherwise `false`.\n */\n Plugin.versionSatisfies = function(version, range) {\n range = range || '*';\n\n var r = Plugin.versionParse(range),\n v = Plugin.versionParse(version);\n\n if (r.isRange) {\n if (r.operator === '*' || version === '*') {\n return true;\n }\n\n if (r.operator === '>') {\n return v.number > r.number;\n }\n\n if (r.operator === '>=') {\n return v.number >= r.number;\n }\n\n if (r.operator === '~') {\n return v.major === r.major && v.minor === r.minor && v.patch >= r.patch;\n }\n\n if (r.operator === '^') {\n if (r.major > 0) {\n return v.major === r.major && v.number >= r.number;\n }\n\n if (r.minor > 0) {\n return v.minor === r.minor && v.patch >= r.patch;\n }\n\n return v.patch === r.patch;\n }\n }\n\n return version === range || version === '*';\n };\n\n})();\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n/**\n* The `Matter.Contact` module contains methods for creating and manipulating collision contacts.\n*\n* @class Contact\n*/\n\nvar Contact = {};\n\nmodule.exports = Contact;\n\n(function() {\n\n /**\n * Creates a new contact.\n * @method create\n * @param {vertex} vertex\n * @return {contact} A new contact\n */\n Contact.create = function(vertex) {\n return {\n vertex: vertex,\n normalImpulse: 0,\n tangentImpulse: 0\n };\n };\n\n})();\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Engine` module contains methods for creating and manipulating engines.\n* An engine is a controller that manages updating the simulation of the world.\n* See `Matter.Runner` for an optional game loop utility.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Engine\n*/\n\nvar Engine = {};\n\nmodule.exports = Engine;\n\nvar Sleeping = __webpack_require__(7);\nvar Resolver = __webpack_require__(18);\nvar Detector = __webpack_require__(13);\nvar Pairs = __webpack_require__(19);\nvar Events = __webpack_require__(5);\nvar Composite = __webpack_require__(6);\nvar Constraint = __webpack_require__(10);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\n\n(function() {\n\n /**\n * Creates a new engine. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {object} [options]\n * @return {engine} engine\n */\n Engine.create = function(options) {\n options = options || {};\n\n var defaults = {\n positionIterations: 6,\n velocityIterations: 4,\n constraintIterations: 2,\n enableSleeping: false,\n events: [],\n plugin: {},\n gravity: {\n x: 0,\n y: 1,\n scale: 0.001\n },\n timing: {\n timestamp: 0,\n timeScale: 1,\n lastDelta: 0,\n lastElapsed: 0\n }\n };\n\n var engine = Common.extend(defaults, options);\n\n engine.world = options.world || Composite.create({ label: 'World' });\n engine.pairs = options.pairs || Pairs.create();\n engine.detector = options.detector || Detector.create();\n\n // for temporary back compatibility only\n engine.grid = { buckets: [] };\n engine.world.gravity = engine.gravity;\n engine.broadphase = engine.grid;\n engine.metrics = {};\n \n return engine;\n };\n\n /**\n * Moves the simulation forward in time by `delta` milliseconds.\n * Triggers `beforeUpdate` and `afterUpdate` events.\n * Triggers `collisionStart`, `collisionActive` and `collisionEnd` events.\n * @method update\n * @param {engine} engine\n * @param {number} [delta=16.666]\n */\n Engine.update = function(engine, delta) {\n var startTime = Common.now();\n\n var world = engine.world,\n detector = engine.detector,\n pairs = engine.pairs,\n timing = engine.timing,\n timestamp = timing.timestamp,\n i;\n\n delta = typeof delta !== 'undefined' ? delta : Common._baseDelta;\n delta *= timing.timeScale;\n\n // increment timestamp\n timing.timestamp += delta;\n timing.lastDelta = delta;\n\n // create an event object\n var event = {\n timestamp: timing.timestamp,\n delta: delta\n };\n\n Events.trigger(engine, 'beforeUpdate', event);\n\n // get all bodies and all constraints in the world\n var allBodies = Composite.allBodies(world),\n allConstraints = Composite.allConstraints(world);\n\n // if the world has changed\n if (world.isModified) {\n // update the detector bodies\n Detector.setBodies(detector, allBodies);\n\n // reset all composite modified flags\n Composite.setModified(world, false, false, true);\n }\n\n // update sleeping if enabled\n if (engine.enableSleeping)\n Sleeping.update(allBodies, delta);\n\n // apply gravity to all bodies\n Engine._bodiesApplyGravity(allBodies, engine.gravity);\n\n // update all body position and rotation by integration\n if (delta > 0) {\n Engine._bodiesUpdate(allBodies, delta);\n }\n\n // update all constraints (first pass)\n Constraint.preSolveAll(allBodies);\n for (i = 0; i < engine.constraintIterations; i++) {\n Constraint.solveAll(allConstraints, delta);\n }\n Constraint.postSolveAll(allBodies);\n\n // find all collisions\n detector.pairs = engine.pairs;\n var collisions = Detector.collisions(detector);\n\n // update collision pairs\n Pairs.update(pairs, collisions, timestamp);\n\n // wake up bodies involved in collisions\n if (engine.enableSleeping)\n Sleeping.afterCollisions(pairs.list);\n\n // trigger collision events\n if (pairs.collisionStart.length > 0)\n Events.trigger(engine, 'collisionStart', { pairs: pairs.collisionStart });\n\n // iteratively resolve position between collisions\n var positionDamping = Common.clamp(20 / engine.positionIterations, 0, 1);\n \n Resolver.preSolvePosition(pairs.list);\n for (i = 0; i < engine.positionIterations; i++) {\n Resolver.solvePosition(pairs.list, delta, positionDamping);\n }\n Resolver.postSolvePosition(allBodies);\n\n // update all constraints (second pass)\n Constraint.preSolveAll(allBodies);\n for (i = 0; i < engine.constraintIterations; i++) {\n Constraint.solveAll(allConstraints, delta);\n }\n Constraint.postSolveAll(allBodies);\n\n // iteratively resolve velocity between collisions\n Resolver.preSolveVelocity(pairs.list);\n for (i = 0; i < engine.velocityIterations; i++) {\n Resolver.solveVelocity(pairs.list, delta);\n }\n\n // update body speed and velocity properties\n Engine._bodiesUpdateVelocities(allBodies);\n\n // trigger collision events\n if (pairs.collisionActive.length > 0)\n Events.trigger(engine, 'collisionActive', { pairs: pairs.collisionActive });\n\n if (pairs.collisionEnd.length > 0)\n Events.trigger(engine, 'collisionEnd', { pairs: pairs.collisionEnd });\n\n // clear force buffers\n Engine._bodiesClearForces(allBodies);\n\n Events.trigger(engine, 'afterUpdate', event);\n\n // log the time elapsed computing this update\n engine.timing.lastElapsed = Common.now() - startTime;\n\n return engine;\n };\n \n /**\n * Merges two engines by keeping the configuration of `engineA` but replacing the world with the one from `engineB`.\n * @method merge\n * @param {engine} engineA\n * @param {engine} engineB\n */\n Engine.merge = function(engineA, engineB) {\n Common.extend(engineA, engineB);\n \n if (engineB.world) {\n engineA.world = engineB.world;\n\n Engine.clear(engineA);\n\n var bodies = Composite.allBodies(engineA.world);\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n Sleeping.set(body, false);\n body.id = Common.nextId();\n }\n }\n };\n\n /**\n * Clears the engine pairs and detector.\n * @method clear\n * @param {engine} engine\n */\n Engine.clear = function(engine) {\n Pairs.clear(engine.pairs);\n Detector.clear(engine.detector);\n };\n\n /**\n * Zeroes the `body.force` and `body.torque` force buffers.\n * @method _bodiesClearForces\n * @private\n * @param {body[]} bodies\n */\n Engine._bodiesClearForces = function(bodies) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n // reset force buffers\n body.force.x = 0;\n body.force.y = 0;\n body.torque = 0;\n }\n };\n\n /**\n * Applies gravitational acceleration to all `bodies`.\n * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet.\n * \n * @method _bodiesApplyGravity\n * @private\n * @param {body[]} bodies\n * @param {vector} gravity\n */\n Engine._bodiesApplyGravity = function(bodies, gravity) {\n var gravityScale = typeof gravity.scale !== 'undefined' ? gravity.scale : 0.001,\n bodiesLength = bodies.length;\n\n if ((gravity.x === 0 && gravity.y === 0) || gravityScale === 0) {\n return;\n }\n \n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n if (body.isStatic || body.isSleeping)\n continue;\n\n // add the resultant force of gravity\n body.force.y += body.mass * gravity.y * gravityScale;\n body.force.x += body.mass * gravity.x * gravityScale;\n }\n };\n\n /**\n * Applies `Body.update` to all given `bodies`.\n * @method _bodiesUpdate\n * @private\n * @param {body[]} bodies\n * @param {number} delta The amount of time elapsed between updates\n */\n Engine._bodiesUpdate = function(bodies, delta) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i];\n\n if (body.isStatic || body.isSleeping)\n continue;\n\n Body.update(body, delta);\n }\n };\n\n /**\n * Applies `Body.updateVelocities` to all given `bodies`.\n * @method _bodiesUpdateVelocities\n * @private\n * @param {body[]} bodies\n */\n Engine._bodiesUpdateVelocities = function(bodies) {\n var bodiesLength = bodies.length;\n\n for (var i = 0; i < bodiesLength; i++) {\n Body.updateVelocities(bodies[i]);\n }\n };\n\n /**\n * A deprecated alias for `Runner.run`, use `Matter.Runner.run(engine)` instead and see `Matter.Runner` for more information.\n * @deprecated use Matter.Runner.run(engine) instead\n * @method run\n * @param {engine} engine\n */\n\n /**\n * Fired just before an update\n *\n * @event beforeUpdate\n * @param {object} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update and all collision events\n *\n * @event afterUpdate\n * @param {object} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that have started to collide in the current tick (if any)\n *\n * @event collisionStart\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that are colliding in the current tick (if any)\n *\n * @event collisionActive\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /**\n * Fired after engine update, provides a list of all pairs that have ended collision in the current tick (if any)\n *\n * @event collisionEnd\n * @param {object} event An event object\n * @param {pair[]} event.pairs List of affected pairs\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {number} event.delta The delta time in milliseconds value used in the update\n * @param {engine} event.source The source object of the event\n * @param {string} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * An integer `Number` that specifies the number of position iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n *\n * @property positionIterations\n * @type number\n * @default 6\n */\n\n /**\n * An integer `Number` that specifies the number of velocity iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n *\n * @property velocityIterations\n * @type number\n * @default 4\n */\n\n /**\n * An integer `Number` that specifies the number of constraint iterations to perform each update.\n * The higher the value, the higher quality the simulation will be at the expense of performance.\n * The default value of `2` is usually very adequate.\n *\n * @property constraintIterations\n * @type number\n * @default 2\n */\n\n /**\n * A flag that specifies whether the engine should allow sleeping via the `Matter.Sleeping` module.\n * Sleeping can improve stability and performance, but often at the expense of accuracy.\n *\n * @property enableSleeping\n * @type boolean\n * @default false\n */\n\n /**\n * An `Object` containing properties regarding the timing systems of the engine. \n *\n * @property timing\n * @type object\n */\n\n /**\n * A `Number` that specifies the global scaling factor of time for all bodies.\n * A value of `0` freezes the simulation.\n * A value of `0.1` gives a slow-motion effect.\n * A value of `1.2` gives a speed-up effect.\n *\n * @property timing.timeScale\n * @type number\n * @default 1\n */\n\n /**\n * A `Number` that specifies the current simulation-time in milliseconds starting from `0`. \n * It is incremented on every `Engine.update` by the given `delta` argument. \n * \n * @property timing.timestamp\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that represents the total execution time elapsed during the last `Engine.update` in milliseconds.\n * It is updated by timing from the start of the last `Engine.update` call until it ends.\n *\n * This value will also include the total execution time of all event handlers directly or indirectly triggered by the engine update.\n * \n * @property timing.lastElapsed\n * @type number\n * @default 0\n */\n\n /**\n * A `Number` that represents the `delta` value used in the last engine update.\n * \n * @property timing.lastDelta\n * @type number\n * @default 0\n */\n\n /**\n * A `Matter.Detector` instance.\n *\n * @property detector\n * @type detector\n * @default a Matter.Detector instance\n */\n\n /**\n * A `Matter.Grid` instance.\n *\n * @deprecated replaced by `engine.detector`\n * @property grid\n * @type grid\n * @default a Matter.Grid instance\n */\n\n /**\n * Replaced by and now alias for `engine.grid`.\n *\n * @deprecated replaced by `engine.detector`\n * @property broadphase\n * @type grid\n * @default a Matter.Grid instance\n */\n\n /**\n * The root `Matter.Composite` instance that will contain all bodies, constraints and other composites to be simulated by this engine.\n *\n * @property world\n * @type composite\n * @default a Matter.Composite instance\n */\n\n /**\n * An object reserved for storing plugin-specific properties.\n *\n * @property plugin\n * @type {}\n */\n\n /**\n * An optional gravitational acceleration applied to all bodies in `engine.world` on every update.\n * \n * This models a [uniform gravitational field](https://en.wikipedia.org/wiki/Gravity_of_Earth), similar to near the surface of a planet. For gravity in other contexts, disable this and apply forces as needed.\n * \n * To disable set the `scale` component to `0`.\n * \n * This is split into three components for ease of use: \n * a normalised direction (`x` and `y`) and magnitude (`scale`).\n *\n * @property gravity\n * @type object\n */\n\n /**\n * The gravitational direction normal `x` component, to be multiplied by `gravity.scale`.\n * \n * @property gravity.x\n * @type object\n * @default 0\n */\n\n /**\n * The gravitational direction normal `y` component, to be multiplied by `gravity.scale`.\n *\n * @property gravity.y\n * @type object\n * @default 1\n */\n\n /**\n * The magnitude of the gravitational acceleration.\n * \n * @property gravity.scale\n * @type object\n * @default 0.001\n */\n\n})();\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Resolver` module contains methods for resolving collision pairs.\n*\n* @class Resolver\n*/\n\nvar Resolver = {};\n\nmodule.exports = Resolver;\n\nvar Vertices = __webpack_require__(3);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\n\n(function() {\n\n Resolver._restingThresh = 2;\n Resolver._restingThreshTangent = Math.sqrt(6);\n Resolver._positionDampen = 0.9;\n Resolver._positionWarming = 0.8;\n Resolver._frictionNormalMultiplier = 5;\n Resolver._frictionMaxStatic = Number.MAX_VALUE;\n\n /**\n * Prepare pairs for position solving.\n * @method preSolvePosition\n * @param {pair[]} pairs\n */\n Resolver.preSolvePosition = function(pairs) {\n var i,\n pair,\n activeCount,\n pairsLength = pairs.length;\n\n // find total contacts on each body\n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n \n if (!pair.isActive)\n continue;\n \n activeCount = pair.activeContacts.length;\n pair.collision.parentA.totalContacts += activeCount;\n pair.collision.parentB.totalContacts += activeCount;\n }\n };\n\n /**\n * Find a solution for pair positions.\n * @method solvePosition\n * @param {pair[]} pairs\n * @param {number} delta\n * @param {number} [damping=1]\n */\n Resolver.solvePosition = function(pairs, delta, damping) {\n var i,\n pair,\n collision,\n bodyA,\n bodyB,\n normal,\n contactShare,\n positionImpulse,\n positionDampen = Resolver._positionDampen * (damping || 1),\n slopDampen = Common.clamp(delta / Common._baseDelta, 0, 1),\n pairsLength = pairs.length;\n\n // find impulses required to resolve penetration\n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n\n collision = pair.collision;\n bodyA = collision.parentA;\n bodyB = collision.parentB;\n normal = collision.normal;\n\n // get current separation between body edges involved in collision\n pair.separation = \n normal.x * (bodyB.positionImpulse.x + collision.penetration.x - bodyA.positionImpulse.x)\n + normal.y * (bodyB.positionImpulse.y + collision.penetration.y - bodyA.positionImpulse.y);\n }\n \n for (i = 0; i < pairsLength; i++) {\n pair = pairs[i];\n\n if (!pair.isActive || pair.isSensor)\n continue;\n \n collision = pair.collision;\n bodyA = collision.parentA;\n bodyB = collision.parentB;\n normal = collision.normal;\n positionImpulse = pair.separation - pair.slop * slopDampen;\n\n if (bodyA.isStatic || bodyB.isStatic)\n positionImpulse *= 2;\n \n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n contactShare = positionDampen / bodyA.totalContacts;\n bodyA.positionImpulse.x += normal.x * positionImpulse * contactShare;\n bodyA.positionImpulse.y += normal.y * positionImpulse * contactShare;\n }\n\n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n contactShare = positionDampen / bodyB.totalContacts;\n bodyB.positionImpulse.x -= normal.x * positionImpulse * contactShare;\n bodyB.positionImpulse.y -= normal.y * positionImpulse * contactShare;\n }\n }\n };\n\n /**\n * Apply position resolution.\n * @method postSolvePosition\n * @param {body[]} bodies\n */\n Resolver.postSolvePosition = function(bodies) {\n var positionWarming = Resolver._positionWarming,\n bodiesLength = bodies.length,\n verticesTranslate = Vertices.translate,\n boundsUpdate = Bounds.update;\n\n for (var i = 0; i < bodiesLength; i++) {\n var body = bodies[i],\n positionImpulse = body.positionImpulse,\n positionImpulseX = positionImpulse.x,\n positionImpulseY = positionImpulse.y,\n velocity = body.velocity;\n\n // reset contact count\n body.totalContacts = 0;\n\n if (positionImpulseX !== 0 || positionImpulseY !== 0) {\n // update body geometry\n for (var j = 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n verticesTranslate(part.vertices, positionImpulse);\n boundsUpdate(part.bounds, part.vertices, velocity);\n part.position.x += positionImpulseX;\n part.position.y += positionImpulseY;\n }\n\n // move the body without changing velocity\n body.positionPrev.x += positionImpulseX;\n body.positionPrev.y += positionImpulseY;\n\n if (positionImpulseX * velocity.x + positionImpulseY * velocity.y < 0) {\n // reset cached impulse if the body has velocity along it\n positionImpulse.x = 0;\n positionImpulse.y = 0;\n } else {\n // warm the next iteration\n positionImpulse.x *= positionWarming;\n positionImpulse.y *= positionWarming;\n }\n }\n }\n };\n\n /**\n * Prepare pairs for velocity solving.\n * @method preSolveVelocity\n * @param {pair[]} pairs\n */\n Resolver.preSolveVelocity = function(pairs) {\n var pairsLength = pairs.length,\n i,\n j;\n \n for (i = 0; i < pairsLength; i++) {\n var pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n \n var contacts = pair.activeContacts,\n contactsLength = contacts.length,\n collision = pair.collision,\n bodyA = collision.parentA,\n bodyB = collision.parentB,\n normal = collision.normal,\n tangent = collision.tangent;\n \n // resolve each contact\n for (j = 0; j < contactsLength; j++) {\n var contact = contacts[j],\n contactVertex = contact.vertex,\n normalImpulse = contact.normalImpulse,\n tangentImpulse = contact.tangentImpulse;\n \n if (normalImpulse !== 0 || tangentImpulse !== 0) {\n // total impulse from contact\n var impulseX = normal.x * normalImpulse + tangent.x * tangentImpulse,\n impulseY = normal.y * normalImpulse + tangent.y * tangentImpulse;\n \n // apply impulse from contact\n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n bodyA.positionPrev.x += impulseX * bodyA.inverseMass;\n bodyA.positionPrev.y += impulseY * bodyA.inverseMass;\n bodyA.anglePrev += bodyA.inverseInertia * (\n (contactVertex.x - bodyA.position.x) * impulseY\n - (contactVertex.y - bodyA.position.y) * impulseX\n );\n }\n \n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n bodyB.positionPrev.x -= impulseX * bodyB.inverseMass;\n bodyB.positionPrev.y -= impulseY * bodyB.inverseMass;\n bodyB.anglePrev -= bodyB.inverseInertia * (\n (contactVertex.x - bodyB.position.x) * impulseY \n - (contactVertex.y - bodyB.position.y) * impulseX\n );\n }\n }\n }\n }\n };\n\n /**\n * Find a solution for pair velocities.\n * @method solveVelocity\n * @param {pair[]} pairs\n * @param {number} delta\n */\n Resolver.solveVelocity = function(pairs, delta) {\n var timeScale = delta / Common._baseDelta,\n timeScaleSquared = timeScale * timeScale,\n timeScaleCubed = timeScaleSquared * timeScale,\n restingThresh = -Resolver._restingThresh * timeScale,\n restingThreshTangent = Resolver._restingThreshTangent,\n frictionNormalMultiplier = Resolver._frictionNormalMultiplier * timeScale,\n frictionMaxStatic = Resolver._frictionMaxStatic,\n pairsLength = pairs.length,\n tangentImpulse,\n maxFriction,\n i,\n j;\n\n for (i = 0; i < pairsLength; i++) {\n var pair = pairs[i];\n \n if (!pair.isActive || pair.isSensor)\n continue;\n \n var collision = pair.collision,\n bodyA = collision.parentA,\n bodyB = collision.parentB,\n bodyAVelocity = bodyA.velocity,\n bodyBVelocity = bodyB.velocity,\n normalX = collision.normal.x,\n normalY = collision.normal.y,\n tangentX = collision.tangent.x,\n tangentY = collision.tangent.y,\n contacts = pair.activeContacts,\n contactsLength = contacts.length,\n contactShare = 1 / contactsLength,\n inverseMassTotal = bodyA.inverseMass + bodyB.inverseMass,\n friction = pair.friction * pair.frictionStatic * frictionNormalMultiplier;\n\n // update body velocities\n bodyAVelocity.x = bodyA.position.x - bodyA.positionPrev.x;\n bodyAVelocity.y = bodyA.position.y - bodyA.positionPrev.y;\n bodyBVelocity.x = bodyB.position.x - bodyB.positionPrev.x;\n bodyBVelocity.y = bodyB.position.y - bodyB.positionPrev.y;\n bodyA.angularVelocity = bodyA.angle - bodyA.anglePrev;\n bodyB.angularVelocity = bodyB.angle - bodyB.anglePrev;\n\n // resolve each contact\n for (j = 0; j < contactsLength; j++) {\n var contact = contacts[j],\n contactVertex = contact.vertex;\n\n var offsetAX = contactVertex.x - bodyA.position.x,\n offsetAY = contactVertex.y - bodyA.position.y,\n offsetBX = contactVertex.x - bodyB.position.x,\n offsetBY = contactVertex.y - bodyB.position.y;\n \n var velocityPointAX = bodyAVelocity.x - offsetAY * bodyA.angularVelocity,\n velocityPointAY = bodyAVelocity.y + offsetAX * bodyA.angularVelocity,\n velocityPointBX = bodyBVelocity.x - offsetBY * bodyB.angularVelocity,\n velocityPointBY = bodyBVelocity.y + offsetBX * bodyB.angularVelocity;\n\n var relativeVelocityX = velocityPointAX - velocityPointBX,\n relativeVelocityY = velocityPointAY - velocityPointBY;\n\n var normalVelocity = normalX * relativeVelocityX + normalY * relativeVelocityY,\n tangentVelocity = tangentX * relativeVelocityX + tangentY * relativeVelocityY;\n\n // coulomb friction\n var normalOverlap = pair.separation + normalVelocity;\n var normalForce = Math.min(normalOverlap, 1);\n normalForce = normalOverlap < 0 ? 0 : normalForce;\n\n var frictionLimit = normalForce * friction;\n\n if (tangentVelocity < -frictionLimit || tangentVelocity > frictionLimit) {\n maxFriction = (tangentVelocity > 0 ? tangentVelocity : -tangentVelocity);\n tangentImpulse = pair.friction * (tangentVelocity > 0 ? 1 : -1) * timeScaleCubed;\n \n if (tangentImpulse < -maxFriction) {\n tangentImpulse = -maxFriction;\n } else if (tangentImpulse > maxFriction) {\n tangentImpulse = maxFriction;\n }\n } else {\n tangentImpulse = tangentVelocity;\n maxFriction = frictionMaxStatic;\n }\n\n // account for mass, inertia and contact offset\n var oAcN = offsetAX * normalY - offsetAY * normalX,\n oBcN = offsetBX * normalY - offsetBY * normalX,\n share = contactShare / (inverseMassTotal + bodyA.inverseInertia * oAcN * oAcN + bodyB.inverseInertia * oBcN * oBcN);\n\n // raw impulses\n var normalImpulse = (1 + pair.restitution) * normalVelocity * share;\n tangentImpulse *= share;\n\n // handle high velocity and resting collisions separately\n if (normalVelocity < restingThresh) {\n // high normal velocity so clear cached contact normal impulse\n contact.normalImpulse = 0;\n } else {\n // solve resting collision constraints using Erin Catto's method (GDC08)\n // impulse constraint tends to 0\n var contactNormalImpulse = contact.normalImpulse;\n contact.normalImpulse += normalImpulse;\n if (contact.normalImpulse > 0) contact.normalImpulse = 0;\n normalImpulse = contact.normalImpulse - contactNormalImpulse;\n }\n\n // handle high velocity and resting collisions separately\n if (tangentVelocity < -restingThreshTangent || tangentVelocity > restingThreshTangent) {\n // high tangent velocity so clear cached contact tangent impulse\n contact.tangentImpulse = 0;\n } else {\n // solve resting collision constraints using Erin Catto's method (GDC08)\n // tangent impulse tends to -tangentSpeed or +tangentSpeed\n var contactTangentImpulse = contact.tangentImpulse;\n contact.tangentImpulse += tangentImpulse;\n if (contact.tangentImpulse < -maxFriction) contact.tangentImpulse = -maxFriction;\n if (contact.tangentImpulse > maxFriction) contact.tangentImpulse = maxFriction;\n tangentImpulse = contact.tangentImpulse - contactTangentImpulse;\n }\n\n // total impulse from contact\n var impulseX = normalX * normalImpulse + tangentX * tangentImpulse,\n impulseY = normalY * normalImpulse + tangentY * tangentImpulse;\n \n // apply impulse from contact\n if (!(bodyA.isStatic || bodyA.isSleeping)) {\n bodyA.positionPrev.x += impulseX * bodyA.inverseMass;\n bodyA.positionPrev.y += impulseY * bodyA.inverseMass;\n bodyA.anglePrev += (offsetAX * impulseY - offsetAY * impulseX) * bodyA.inverseInertia;\n }\n\n if (!(bodyB.isStatic || bodyB.isSleeping)) {\n bodyB.positionPrev.x -= impulseX * bodyB.inverseMass;\n bodyB.positionPrev.y -= impulseY * bodyB.inverseMass;\n bodyB.anglePrev -= (offsetBX * impulseY - offsetBY * impulseX) * bodyB.inverseInertia;\n }\n }\n }\n };\n\n})();\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Pairs` module contains methods for creating and manipulating collision pair sets.\n*\n* @class Pairs\n*/\n\nvar Pairs = {};\n\nmodule.exports = Pairs;\n\nvar Pair = __webpack_require__(9);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Creates a new pairs structure.\n * @method create\n * @param {object} options\n * @return {pairs} A new pairs structure\n */\n Pairs.create = function(options) {\n return Common.extend({ \n table: {},\n list: [],\n collisionStart: [],\n collisionActive: [],\n collisionEnd: []\n }, options);\n };\n\n /**\n * Updates pairs given a list of collisions.\n * @method update\n * @param {object} pairs\n * @param {collision[]} collisions\n * @param {number} timestamp\n */\n Pairs.update = function(pairs, collisions, timestamp) {\n var pairsList = pairs.list,\n pairsListLength = pairsList.length,\n pairsTable = pairs.table,\n collisionsLength = collisions.length,\n collisionStart = pairs.collisionStart,\n collisionEnd = pairs.collisionEnd,\n collisionActive = pairs.collisionActive,\n collision,\n pairIndex,\n pair,\n i;\n\n // clear collision state arrays, but maintain old reference\n collisionStart.length = 0;\n collisionEnd.length = 0;\n collisionActive.length = 0;\n\n for (i = 0; i < pairsListLength; i++) {\n pairsList[i].confirmedActive = false;\n }\n\n for (i = 0; i < collisionsLength; i++) {\n collision = collisions[i];\n pair = collision.pair;\n\n if (pair) {\n // pair already exists (but may or may not be active)\n if (pair.isActive) {\n // pair exists and is active\n collisionActive.push(pair);\n } else {\n // pair exists but was inactive, so a collision has just started again\n collisionStart.push(pair);\n }\n\n // update the pair\n Pair.update(pair, collision, timestamp);\n pair.confirmedActive = true;\n } else {\n // pair did not exist, create a new pair\n pair = Pair.create(collision, timestamp);\n pairsTable[pair.id] = pair;\n\n // push the new pair\n collisionStart.push(pair);\n pairsList.push(pair);\n }\n }\n\n // find pairs that are no longer active\n var removePairIndex = [];\n pairsListLength = pairsList.length;\n\n for (i = 0; i < pairsListLength; i++) {\n pair = pairsList[i];\n \n if (!pair.confirmedActive) {\n Pair.setActive(pair, false, timestamp);\n collisionEnd.push(pair);\n\n if (!pair.collision.bodyA.isSleeping && !pair.collision.bodyB.isSleeping) {\n removePairIndex.push(i);\n }\n }\n }\n\n // remove inactive pairs\n for (i = 0; i < removePairIndex.length; i++) {\n pairIndex = removePairIndex[i] - i;\n pair = pairsList[pairIndex];\n pairsList.splice(pairIndex, 1);\n delete pairsTable[pair.id];\n }\n };\n\n /**\n * Clears the given pairs structure.\n * @method clear\n * @param {pairs} pairs\n * @return {pairs} pairs\n */\n Pairs.clear = function(pairs) {\n pairs.table = {};\n pairs.list.length = 0;\n pairs.collisionStart.length = 0;\n pairs.collisionActive.length = 0;\n pairs.collisionEnd.length = 0;\n return pairs;\n };\n\n})();\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar Matter = module.exports = __webpack_require__(21);\r\n\r\nMatter.Axes = __webpack_require__(11);\r\nMatter.Bodies = __webpack_require__(12);\r\nMatter.Body = __webpack_require__(4);\r\nMatter.Bounds = __webpack_require__(1);\r\nMatter.Collision = __webpack_require__(8);\r\nMatter.Common = __webpack_require__(0);\r\nMatter.Composite = __webpack_require__(6);\r\nMatter.Composites = __webpack_require__(22);\r\nMatter.Constraint = __webpack_require__(10);\r\nMatter.Contact = __webpack_require__(16);\r\nMatter.Detector = __webpack_require__(13);\r\nMatter.Engine = __webpack_require__(17);\r\nMatter.Events = __webpack_require__(5);\r\nMatter.Grid = __webpack_require__(23);\r\nMatter.Mouse = __webpack_require__(14);\r\nMatter.MouseConstraint = __webpack_require__(24);\r\nMatter.Pair = __webpack_require__(9);\r\nMatter.Pairs = __webpack_require__(19);\r\nMatter.Plugin = __webpack_require__(15);\r\nMatter.Query = __webpack_require__(25);\r\nMatter.Render = __webpack_require__(26);\r\nMatter.Resolver = __webpack_require__(18);\r\nMatter.Runner = __webpack_require__(27);\r\nMatter.SAT = __webpack_require__(28);\r\nMatter.Sleeping = __webpack_require__(7);\r\nMatter.Svg = __webpack_require__(29);\r\nMatter.Vector = __webpack_require__(2);\r\nMatter.Vertices = __webpack_require__(3);\r\nMatter.World = __webpack_require__(30);\r\n\r\n// temporary back compatibility\r\nMatter.Engine.run = Matter.Runner.run;\r\nMatter.Common.deprecated(Matter.Engine, 'run', 'Engine.run ➤ use Matter.Runner.run(engine) instead');\r\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\r\n* The `Matter` module is the top level namespace. It also includes a function for installing plugins on top of the library.\r\n*\r\n* @class Matter\r\n*/\r\n\r\nvar Matter = {};\r\n\r\nmodule.exports = Matter;\r\n\r\nvar Plugin = __webpack_require__(15);\r\nvar Common = __webpack_require__(0);\r\n\r\n(function() {\r\n\r\n /**\r\n * The library name.\r\n * @property name\r\n * @readOnly\r\n * @type {String}\r\n */\r\n Matter.name = 'matter-js';\r\n\r\n /**\r\n * The library version.\r\n * @property version\r\n * @readOnly\r\n * @type {String}\r\n */\r\n Matter.version = true ? \"0.19.0\" : undefined;\r\n\r\n /**\r\n * A list of plugin dependencies to be installed. These are normally set and installed through `Matter.use`.\r\n * Alternatively you may set `Matter.uses` manually and install them by calling `Plugin.use(Matter)`.\r\n * @property uses\r\n * @type {Array}\r\n */\r\n Matter.uses = [];\r\n\r\n /**\r\n * The plugins that have been installed through `Matter.Plugin.install`. Read only.\r\n * @property used\r\n * @readOnly\r\n * @type {Array}\r\n */\r\n Matter.used = [];\r\n\r\n /**\r\n * Installs the given plugins on the `Matter` namespace.\r\n * This is a short-hand for `Plugin.use`, see it for more information.\r\n * Call this function once at the start of your code, with all of the plugins you wish to install as arguments.\r\n * Avoid calling this function multiple times unless you intend to manually control installation order.\r\n * @method use\r\n * @param ...plugin {Function} The plugin(s) to install on `base` (multi-argument).\r\n */\r\n Matter.use = function() {\r\n Plugin.use(Matter, Array.prototype.slice.call(arguments));\r\n };\r\n\r\n /**\r\n * Chains a function to excute before the original function on the given `path` relative to `Matter`.\r\n * See also docs for `Common.chain`.\r\n * @method before\r\n * @param {string} path The path relative to `Matter`\r\n * @param {function} func The function to chain before the original\r\n * @return {function} The chained function that replaced the original\r\n */\r\n Matter.before = function(path, func) {\r\n path = path.replace(/^Matter./, '');\r\n return Common.chainPathBefore(Matter, path, func);\r\n };\r\n\r\n /**\r\n * Chains a function to excute after the original function on the given `path` relative to `Matter`.\r\n * See also docs for `Common.chain`.\r\n * @method after\r\n * @param {string} path The path relative to `Matter`\r\n * @param {function} func The function to chain after the original\r\n * @return {function} The chained function that replaced the original\r\n */\r\n Matter.after = function(path, func) {\r\n path = path.replace(/^Matter./, '');\r\n return Common.chainPathAfter(Matter, path, func);\r\n };\r\n\r\n})();\r\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Composites` module contains factory methods for creating composite bodies\n* with commonly used configurations (such as stacks and chains).\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Composites\n*/\n\nvar Composites = {};\n\nmodule.exports = Composites;\n\nvar Composite = __webpack_require__(6);\nvar Constraint = __webpack_require__(10);\nvar Common = __webpack_require__(0);\nvar Body = __webpack_require__(4);\nvar Bodies = __webpack_require__(12);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Create a new composite containing bodies created in the callback in a grid arrangement.\n * This function uses the body's bounds to prevent overlaps.\n * @method stack\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {function} callback\n * @return {composite} A new composite containing objects created in the callback\n */\n Composites.stack = function(xx, yy, columns, rows, columnGap, rowGap, callback) {\n var stack = Composite.create({ label: 'Stack' }),\n x = xx,\n y = yy,\n lastBody,\n i = 0;\n\n for (var row = 0; row < rows; row++) {\n var maxHeight = 0;\n \n for (var column = 0; column < columns; column++) {\n var body = callback(x, y, column, row, lastBody, i);\n \n if (body) {\n var bodyHeight = body.bounds.max.y - body.bounds.min.y,\n bodyWidth = body.bounds.max.x - body.bounds.min.x; \n\n if (bodyHeight > maxHeight)\n maxHeight = bodyHeight;\n \n Body.translate(body, { x: bodyWidth * 0.5, y: bodyHeight * 0.5 });\n\n x = body.bounds.max.x + columnGap;\n\n Composite.addBody(stack, body);\n \n lastBody = body;\n i += 1;\n } else {\n x += columnGap;\n }\n }\n \n y += maxHeight + rowGap;\n x = xx;\n }\n\n return stack;\n };\n \n /**\n * Chains all bodies in the given composite together using constraints.\n * @method chain\n * @param {composite} composite\n * @param {number} xOffsetA\n * @param {number} yOffsetA\n * @param {number} xOffsetB\n * @param {number} yOffsetB\n * @param {object} options\n * @return {composite} A new composite containing objects chained together with constraints\n */\n Composites.chain = function(composite, xOffsetA, yOffsetA, xOffsetB, yOffsetB, options) {\n var bodies = composite.bodies;\n \n for (var i = 1; i < bodies.length; i++) {\n var bodyA = bodies[i - 1],\n bodyB = bodies[i],\n bodyAHeight = bodyA.bounds.max.y - bodyA.bounds.min.y,\n bodyAWidth = bodyA.bounds.max.x - bodyA.bounds.min.x, \n bodyBHeight = bodyB.bounds.max.y - bodyB.bounds.min.y,\n bodyBWidth = bodyB.bounds.max.x - bodyB.bounds.min.x;\n \n var defaults = {\n bodyA: bodyA,\n pointA: { x: bodyAWidth * xOffsetA, y: bodyAHeight * yOffsetA },\n bodyB: bodyB,\n pointB: { x: bodyBWidth * xOffsetB, y: bodyBHeight * yOffsetB }\n };\n \n var constraint = Common.extend(defaults, options);\n \n Composite.addConstraint(composite, Constraint.create(constraint));\n }\n\n composite.label += ' Chain';\n \n return composite;\n };\n\n /**\n * Connects bodies in the composite with constraints in a grid pattern, with optional cross braces.\n * @method mesh\n * @param {composite} composite\n * @param {number} columns\n * @param {number} rows\n * @param {boolean} crossBrace\n * @param {object} options\n * @return {composite} The composite containing objects meshed together with constraints\n */\n Composites.mesh = function(composite, columns, rows, crossBrace, options) {\n var bodies = composite.bodies,\n row,\n col,\n bodyA,\n bodyB,\n bodyC;\n \n for (row = 0; row < rows; row++) {\n for (col = 1; col < columns; col++) {\n bodyA = bodies[(col - 1) + (row * columns)];\n bodyB = bodies[col + (row * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options)));\n }\n\n if (row > 0) {\n for (col = 0; col < columns; col++) {\n bodyA = bodies[col + ((row - 1) * columns)];\n bodyB = bodies[col + (row * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyA, bodyB: bodyB }, options)));\n\n if (crossBrace && col > 0) {\n bodyC = bodies[(col - 1) + ((row - 1) * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options)));\n }\n\n if (crossBrace && col < columns - 1) {\n bodyC = bodies[(col + 1) + ((row - 1) * columns)];\n Composite.addConstraint(composite, Constraint.create(Common.extend({ bodyA: bodyC, bodyB: bodyB }, options)));\n }\n }\n }\n }\n\n composite.label += ' Mesh';\n \n return composite;\n };\n \n /**\n * Create a new composite containing bodies created in the callback in a pyramid arrangement.\n * This function uses the body's bounds to prevent overlaps.\n * @method pyramid\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {function} callback\n * @return {composite} A new composite containing objects created in the callback\n */\n Composites.pyramid = function(xx, yy, columns, rows, columnGap, rowGap, callback) {\n return Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y, column, row, lastBody, i) {\n var actualRows = Math.min(rows, Math.ceil(columns / 2)),\n lastBodyWidth = lastBody ? lastBody.bounds.max.x - lastBody.bounds.min.x : 0;\n \n if (row > actualRows)\n return;\n \n // reverse row order\n row = actualRows - row;\n \n var start = row,\n end = columns - 1 - row;\n\n if (column < start || column > end)\n return;\n \n // retroactively fix the first body's position, since width was unknown\n if (i === 1) {\n Body.translate(lastBody, { x: (column + (columns % 2 === 1 ? 1 : -1)) * lastBodyWidth, y: 0 });\n }\n\n var xOffset = lastBody ? column * lastBodyWidth : 0;\n \n return callback(xx + xOffset + column * columnGap, y, column, row, lastBody, i);\n });\n };\n\n /**\n * This has now moved to the [newtonsCradle example](https://github.com/liabru/matter-js/blob/master/examples/newtonsCradle.js), follow that instead as this function is deprecated here.\n * @deprecated moved to newtonsCradle example\n * @method newtonsCradle\n * @param {number} xx\n * @param {number} yy\n * @param {number} number\n * @param {number} size\n * @param {number} length\n * @return {composite} A new composite newtonsCradle body\n */\n Composites.newtonsCradle = function(xx, yy, number, size, length) {\n var newtonsCradle = Composite.create({ label: 'Newtons Cradle' });\n\n for (var i = 0; i < number; i++) {\n var separation = 1.9,\n circle = Bodies.circle(xx + i * (size * separation), yy + length, size, \n { inertia: Infinity, restitution: 1, friction: 0, frictionAir: 0.0001, slop: 1 }),\n constraint = Constraint.create({ pointA: { x: xx + i * (size * separation), y: yy }, bodyB: circle });\n\n Composite.addBody(newtonsCradle, circle);\n Composite.addConstraint(newtonsCradle, constraint);\n }\n\n return newtonsCradle;\n };\n\n deprecated(Composites, 'newtonsCradle', 'Composites.newtonsCradle ➤ moved to newtonsCradle example');\n \n /**\n * This has now moved to the [car example](https://github.com/liabru/matter-js/blob/master/examples/car.js), follow that instead as this function is deprecated here.\n * @deprecated moved to car example\n * @method car\n * @param {number} xx\n * @param {number} yy\n * @param {number} width\n * @param {number} height\n * @param {number} wheelSize\n * @return {composite} A new composite car body\n */\n Composites.car = function(xx, yy, width, height, wheelSize) {\n var group = Body.nextGroup(true),\n wheelBase = 20,\n wheelAOffset = -width * 0.5 + wheelBase,\n wheelBOffset = width * 0.5 - wheelBase,\n wheelYOffset = 0;\n \n var car = Composite.create({ label: 'Car' }),\n body = Bodies.rectangle(xx, yy, width, height, { \n collisionFilter: {\n group: group\n },\n chamfer: {\n radius: height * 0.5\n },\n density: 0.0002\n });\n \n var wheelA = Bodies.circle(xx + wheelAOffset, yy + wheelYOffset, wheelSize, { \n collisionFilter: {\n group: group\n },\n friction: 0.8\n });\n \n var wheelB = Bodies.circle(xx + wheelBOffset, yy + wheelYOffset, wheelSize, { \n collisionFilter: {\n group: group\n },\n friction: 0.8\n });\n \n var axelA = Constraint.create({\n bodyB: body,\n pointB: { x: wheelAOffset, y: wheelYOffset },\n bodyA: wheelA,\n stiffness: 1,\n length: 0\n });\n \n var axelB = Constraint.create({\n bodyB: body,\n pointB: { x: wheelBOffset, y: wheelYOffset },\n bodyA: wheelB,\n stiffness: 1,\n length: 0\n });\n \n Composite.addBody(car, body);\n Composite.addBody(car, wheelA);\n Composite.addBody(car, wheelB);\n Composite.addConstraint(car, axelA);\n Composite.addConstraint(car, axelB);\n\n return car;\n };\n\n deprecated(Composites, 'car', 'Composites.car ➤ moved to car example');\n\n /**\n * This has now moved to the [softBody example](https://github.com/liabru/matter-js/blob/master/examples/softBody.js)\n * and the [cloth example](https://github.com/liabru/matter-js/blob/master/examples/cloth.js), follow those instead as this function is deprecated here.\n * @deprecated moved to softBody and cloth examples\n * @method softBody\n * @param {number} xx\n * @param {number} yy\n * @param {number} columns\n * @param {number} rows\n * @param {number} columnGap\n * @param {number} rowGap\n * @param {boolean} crossBrace\n * @param {number} particleRadius\n * @param {} particleOptions\n * @param {} constraintOptions\n * @return {composite} A new composite softBody\n */\n Composites.softBody = function(xx, yy, columns, rows, columnGap, rowGap, crossBrace, particleRadius, particleOptions, constraintOptions) {\n particleOptions = Common.extend({ inertia: Infinity }, particleOptions);\n constraintOptions = Common.extend({ stiffness: 0.2, render: { type: 'line', anchors: false } }, constraintOptions);\n\n var softBody = Composites.stack(xx, yy, columns, rows, columnGap, rowGap, function(x, y) {\n return Bodies.circle(x, y, particleRadius, particleOptions);\n });\n\n Composites.mesh(softBody, columns, rows, crossBrace, constraintOptions);\n\n softBody.label = 'Soft Body';\n\n return softBody;\n };\n\n deprecated(Composites, 'softBody', 'Composites.softBody ➤ moved to softBody and cloth examples');\n})();\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Detector`.\n*\n* All usage should be migrated to `Matter.Detector` or another alternative.\n* For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n*\n* The `Matter.Grid` module contains methods for creating and manipulating collision broadphase grid structures.\n*\n* @class Grid\n* @deprecated\n*/\n\nvar Grid = {};\n\nmodule.exports = Grid;\n\nvar Pair = __webpack_require__(9);\nvar Common = __webpack_require__(0);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Creates a new grid.\n * @deprecated replaced by Matter.Detector\n * @method create\n * @param {} options\n * @return {grid} A new grid\n */\n Grid.create = function(options) {\n var defaults = {\n buckets: {},\n pairs: {},\n pairsList: [],\n bucketWidth: 48,\n bucketHeight: 48\n };\n\n return Common.extend(defaults, options);\n };\n\n /**\n * The width of a single grid bucket.\n *\n * @property bucketWidth\n * @type number\n * @default 48\n */\n\n /**\n * The height of a single grid bucket.\n *\n * @property bucketHeight\n * @type number\n * @default 48\n */\n\n /**\n * Updates the grid.\n * @deprecated replaced by Matter.Detector\n * @method update\n * @param {grid} grid\n * @param {body[]} bodies\n * @param {engine} engine\n * @param {boolean} forceUpdate\n */\n Grid.update = function(grid, bodies, engine, forceUpdate) {\n var i, col, row,\n world = engine.world,\n buckets = grid.buckets,\n bucket,\n bucketId,\n gridChanged = false;\n\n for (i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (body.isSleeping && !forceUpdate)\n continue;\n\n // temporary back compatibility bounds check\n if (world.bounds && (body.bounds.max.x < world.bounds.min.x || body.bounds.min.x > world.bounds.max.x\n || body.bounds.max.y < world.bounds.min.y || body.bounds.min.y > world.bounds.max.y))\n continue;\n\n var newRegion = Grid._getRegion(grid, body);\n\n // if the body has changed grid region\n if (!body.region || newRegion.id !== body.region.id || forceUpdate) {\n\n if (!body.region || forceUpdate)\n body.region = newRegion;\n\n var union = Grid._regionUnion(newRegion, body.region);\n\n // update grid buckets affected by region change\n // iterate over the union of both regions\n for (col = union.startCol; col <= union.endCol; col++) {\n for (row = union.startRow; row <= union.endRow; row++) {\n bucketId = Grid._getBucketId(col, row);\n bucket = buckets[bucketId];\n\n var isInsideNewRegion = (col >= newRegion.startCol && col <= newRegion.endCol\n && row >= newRegion.startRow && row <= newRegion.endRow);\n\n var isInsideOldRegion = (col >= body.region.startCol && col <= body.region.endCol\n && row >= body.region.startRow && row <= body.region.endRow);\n\n // remove from old region buckets\n if (!isInsideNewRegion && isInsideOldRegion) {\n if (isInsideOldRegion) {\n if (bucket)\n Grid._bucketRemoveBody(grid, bucket, body);\n }\n }\n\n // add to new region buckets\n if (body.region === newRegion || (isInsideNewRegion && !isInsideOldRegion) || forceUpdate) {\n if (!bucket)\n bucket = Grid._createBucket(buckets, bucketId);\n Grid._bucketAddBody(grid, bucket, body);\n }\n }\n }\n\n // set the new region\n body.region = newRegion;\n\n // flag changes so we can update pairs\n gridChanged = true;\n }\n }\n\n // update pairs list only if pairs changed (i.e. a body changed region)\n if (gridChanged)\n grid.pairsList = Grid._createActivePairsList(grid);\n };\n\n deprecated(Grid, 'update', 'Grid.update ➤ replaced by Matter.Detector');\n\n /**\n * Clears the grid.\n * @deprecated replaced by Matter.Detector\n * @method clear\n * @param {grid} grid\n */\n Grid.clear = function(grid) {\n grid.buckets = {};\n grid.pairs = {};\n grid.pairsList = [];\n };\n\n deprecated(Grid, 'clear', 'Grid.clear ➤ replaced by Matter.Detector');\n\n /**\n * Finds the union of two regions.\n * @method _regionUnion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} regionA\n * @param {} regionB\n * @return {} region\n */\n Grid._regionUnion = function(regionA, regionB) {\n var startCol = Math.min(regionA.startCol, regionB.startCol),\n endCol = Math.max(regionA.endCol, regionB.endCol),\n startRow = Math.min(regionA.startRow, regionB.startRow),\n endRow = Math.max(regionA.endRow, regionB.endRow);\n\n return Grid._createRegion(startCol, endCol, startRow, endRow);\n };\n\n /**\n * Gets the region a given body falls in for a given grid.\n * @method _getRegion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} body\n * @return {} region\n */\n Grid._getRegion = function(grid, body) {\n var bounds = body.bounds,\n startCol = Math.floor(bounds.min.x / grid.bucketWidth),\n endCol = Math.floor(bounds.max.x / grid.bucketWidth),\n startRow = Math.floor(bounds.min.y / grid.bucketHeight),\n endRow = Math.floor(bounds.max.y / grid.bucketHeight);\n\n return Grid._createRegion(startCol, endCol, startRow, endRow);\n };\n\n /**\n * Creates a region.\n * @method _createRegion\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} startCol\n * @param {} endCol\n * @param {} startRow\n * @param {} endRow\n * @return {} region\n */\n Grid._createRegion = function(startCol, endCol, startRow, endRow) {\n return { \n id: startCol + ',' + endCol + ',' + startRow + ',' + endRow,\n startCol: startCol, \n endCol: endCol, \n startRow: startRow, \n endRow: endRow \n };\n };\n\n /**\n * Gets the bucket id at the given position.\n * @method _getBucketId\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} column\n * @param {} row\n * @return {string} bucket id\n */\n Grid._getBucketId = function(column, row) {\n return 'C' + column + 'R' + row;\n };\n\n /**\n * Creates a bucket.\n * @method _createBucket\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} buckets\n * @param {} bucketId\n * @return {} bucket\n */\n Grid._createBucket = function(buckets, bucketId) {\n var bucket = buckets[bucketId] = [];\n return bucket;\n };\n\n /**\n * Adds a body to a bucket.\n * @method _bucketAddBody\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} bucket\n * @param {} body\n */\n Grid._bucketAddBody = function(grid, bucket, body) {\n var gridPairs = grid.pairs,\n pairId = Pair.id,\n bucketLength = bucket.length,\n i;\n\n // add new pairs\n for (i = 0; i < bucketLength; i++) {\n var bodyB = bucket[i];\n\n if (body.id === bodyB.id || (body.isStatic && bodyB.isStatic))\n continue;\n\n // keep track of the number of buckets the pair exists in\n // important for Grid.update to work\n var id = pairId(body, bodyB),\n pair = gridPairs[id];\n\n if (pair) {\n pair[2] += 1;\n } else {\n gridPairs[id] = [body, bodyB, 1];\n }\n }\n\n // add to bodies (after pairs, otherwise pairs with self)\n bucket.push(body);\n };\n\n /**\n * Removes a body from a bucket.\n * @method _bucketRemoveBody\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @param {} bucket\n * @param {} body\n */\n Grid._bucketRemoveBody = function(grid, bucket, body) {\n var gridPairs = grid.pairs,\n pairId = Pair.id,\n i;\n\n // remove from bucket\n bucket.splice(Common.indexOf(bucket, body), 1);\n\n var bucketLength = bucket.length;\n\n // update pair counts\n for (i = 0; i < bucketLength; i++) {\n // keep track of the number of buckets the pair exists in\n // important for _createActivePairsList to work\n var pair = gridPairs[pairId(body, bucket[i])];\n\n if (pair)\n pair[2] -= 1;\n }\n };\n\n /**\n * Generates a list of the active pairs in the grid.\n * @method _createActivePairsList\n * @deprecated replaced by Matter.Detector\n * @private\n * @param {} grid\n * @return [] pairs\n */\n Grid._createActivePairsList = function(grid) {\n var pair,\n gridPairs = grid.pairs,\n pairKeys = Common.keys(gridPairs),\n pairKeysLength = pairKeys.length,\n pairs = [],\n k;\n\n // iterate over grid.pairs\n for (k = 0; k < pairKeysLength; k++) {\n pair = gridPairs[pairKeys[k]];\n\n // if pair exists in at least one bucket\n // it is a pair that needs further collision testing so push it\n if (pair[2] > 0) {\n pairs.push(pair);\n } else {\n delete gridPairs[pairKeys[k]];\n }\n }\n\n return pairs;\n };\n \n})();\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.MouseConstraint` module contains methods for creating mouse constraints.\n* Mouse constraints are used for allowing user interaction, providing the ability to move bodies via the mouse or touch.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class MouseConstraint\n*/\n\nvar MouseConstraint = {};\n\nmodule.exports = MouseConstraint;\n\nvar Vertices = __webpack_require__(3);\nvar Sleeping = __webpack_require__(7);\nvar Mouse = __webpack_require__(14);\nvar Events = __webpack_require__(5);\nvar Detector = __webpack_require__(13);\nvar Constraint = __webpack_require__(10);\nvar Composite = __webpack_require__(6);\nvar Common = __webpack_require__(0);\nvar Bounds = __webpack_require__(1);\n\n(function() {\n\n /**\n * Creates a new mouse constraint.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {engine} engine\n * @param {} options\n * @return {MouseConstraint} A new MouseConstraint\n */\n MouseConstraint.create = function(engine, options) {\n var mouse = (engine ? engine.mouse : null) || (options ? options.mouse : null);\n\n if (!mouse) {\n if (engine && engine.render && engine.render.canvas) {\n mouse = Mouse.create(engine.render.canvas);\n } else if (options && options.element) {\n mouse = Mouse.create(options.element);\n } else {\n mouse = Mouse.create();\n Common.warn('MouseConstraint.create: options.mouse was undefined, options.element was undefined, may not function as expected');\n }\n }\n\n var constraint = Constraint.create({ \n label: 'Mouse Constraint',\n pointA: mouse.position,\n pointB: { x: 0, y: 0 },\n length: 0.01, \n stiffness: 0.1,\n angularStiffness: 1,\n render: {\n strokeStyle: '#90EE90',\n lineWidth: 3\n }\n });\n\n var defaults = {\n type: 'mouseConstraint',\n mouse: mouse,\n element: null,\n body: null,\n constraint: constraint,\n collisionFilter: {\n category: 0x0001,\n mask: 0xFFFFFFFF,\n group: 0\n }\n };\n\n var mouseConstraint = Common.extend(defaults, options);\n\n Events.on(engine, 'beforeUpdate', function() {\n var allBodies = Composite.allBodies(engine.world);\n MouseConstraint.update(mouseConstraint, allBodies);\n MouseConstraint._triggerEvents(mouseConstraint);\n });\n\n return mouseConstraint;\n };\n\n /**\n * Updates the given mouse constraint.\n * @private\n * @method update\n * @param {MouseConstraint} mouseConstraint\n * @param {body[]} bodies\n */\n MouseConstraint.update = function(mouseConstraint, bodies) {\n var mouse = mouseConstraint.mouse,\n constraint = mouseConstraint.constraint,\n body = mouseConstraint.body;\n\n if (mouse.button === 0) {\n if (!constraint.bodyB) {\n for (var i = 0; i < bodies.length; i++) {\n body = bodies[i];\n if (Bounds.contains(body.bounds, mouse.position) \n && Detector.canCollide(body.collisionFilter, mouseConstraint.collisionFilter)) {\n for (var j = body.parts.length > 1 ? 1 : 0; j < body.parts.length; j++) {\n var part = body.parts[j];\n if (Vertices.contains(part.vertices, mouse.position)) {\n constraint.pointA = mouse.position;\n constraint.bodyB = mouseConstraint.body = body;\n constraint.pointB = { x: mouse.position.x - body.position.x, y: mouse.position.y - body.position.y };\n constraint.angleB = body.angle;\n\n Sleeping.set(body, false);\n Events.trigger(mouseConstraint, 'startdrag', { mouse: mouse, body: body });\n\n break;\n }\n }\n }\n }\n } else {\n Sleeping.set(constraint.bodyB, false);\n constraint.pointA = mouse.position;\n }\n } else {\n constraint.bodyB = mouseConstraint.body = null;\n constraint.pointB = null;\n\n if (body)\n Events.trigger(mouseConstraint, 'enddrag', { mouse: mouse, body: body });\n }\n };\n\n /**\n * Triggers mouse constraint events.\n * @method _triggerEvents\n * @private\n * @param {mouse} mouseConstraint\n */\n MouseConstraint._triggerEvents = function(mouseConstraint) {\n var mouse = mouseConstraint.mouse,\n mouseEvents = mouse.sourceEvents;\n\n if (mouseEvents.mousemove)\n Events.trigger(mouseConstraint, 'mousemove', { mouse: mouse });\n\n if (mouseEvents.mousedown)\n Events.trigger(mouseConstraint, 'mousedown', { mouse: mouse });\n\n if (mouseEvents.mouseup)\n Events.trigger(mouseConstraint, 'mouseup', { mouse: mouse });\n\n // reset the mouse state ready for the next step\n Mouse.clearSourceEvents(mouse);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired when the mouse has moved (or a touch moves) during the last step\n *\n * @event mousemove\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the mouse is down (or a touch has started) during the last step\n *\n * @event mousedown\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the mouse is up (or a touch has ended) during the last step\n *\n * @event mouseup\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the user starts dragging a body\n *\n * @event startdrag\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {body} event.body The body being dragged\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired when the user ends dragging a body\n *\n * @event enddrag\n * @param {} event An event object\n * @param {mouse} event.mouse The engine's mouse instance\n * @param {body} event.body The body that has stopped being dragged\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A `String` denoting the type of object.\n *\n * @property type\n * @type string\n * @default \"constraint\"\n * @readOnly\n */\n\n /**\n * The `Mouse` instance in use. If not supplied in `MouseConstraint.create`, one will be created.\n *\n * @property mouse\n * @type mouse\n * @default mouse\n */\n\n /**\n * The `Body` that is currently being moved by the user, or `null` if no body.\n *\n * @property body\n * @type body\n * @default null\n */\n\n /**\n * The `Constraint` object that is used to move the body during interaction.\n *\n * @property constraint\n * @type constraint\n */\n\n /**\n * An `Object` that specifies the collision filter properties.\n * The collision filter allows the user to define which types of body this mouse constraint can interact with.\n * See `body.collisionFilter` for more information.\n *\n * @property collisionFilter\n * @type object\n */\n\n})();\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Query` module contains methods for performing collision queries.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Query\n*/\n\nvar Query = {};\n\nmodule.exports = Query;\n\nvar Vector = __webpack_require__(2);\nvar Collision = __webpack_require__(8);\nvar Bounds = __webpack_require__(1);\nvar Bodies = __webpack_require__(12);\nvar Vertices = __webpack_require__(3);\n\n(function() {\n\n /**\n * Returns a list of collisions between `body` and `bodies`.\n * @method collides\n * @param {body} body\n * @param {body[]} bodies\n * @return {collision[]} Collisions\n */\n Query.collides = function(body, bodies) {\n var collisions = [],\n bodiesLength = bodies.length,\n bounds = body.bounds,\n collides = Collision.collides,\n overlaps = Bounds.overlaps;\n\n for (var i = 0; i < bodiesLength; i++) {\n var bodyA = bodies[i],\n partsALength = bodyA.parts.length,\n partsAStart = partsALength === 1 ? 0 : 1;\n \n if (overlaps(bodyA.bounds, bounds)) {\n for (var j = partsAStart; j < partsALength; j++) {\n var part = bodyA.parts[j];\n\n if (overlaps(part.bounds, bounds)) {\n var collision = collides(part, body);\n\n if (collision) {\n collisions.push(collision);\n break;\n }\n }\n }\n }\n }\n\n return collisions;\n };\n\n /**\n * Casts a ray segment against a set of bodies and returns all collisions, ray width is optional. Intersection points are not provided.\n * @method ray\n * @param {body[]} bodies\n * @param {vector} startPoint\n * @param {vector} endPoint\n * @param {number} [rayWidth]\n * @return {collision[]} Collisions\n */\n Query.ray = function(bodies, startPoint, endPoint, rayWidth) {\n rayWidth = rayWidth || 1e-100;\n\n var rayAngle = Vector.angle(startPoint, endPoint),\n rayLength = Vector.magnitude(Vector.sub(startPoint, endPoint)),\n rayX = (endPoint.x + startPoint.x) * 0.5,\n rayY = (endPoint.y + startPoint.y) * 0.5,\n ray = Bodies.rectangle(rayX, rayY, rayLength, rayWidth, { angle: rayAngle }),\n collisions = Query.collides(ray, bodies);\n\n for (var i = 0; i < collisions.length; i += 1) {\n var collision = collisions[i];\n collision.body = collision.bodyB = collision.bodyA; \n }\n\n return collisions;\n };\n\n /**\n * Returns all bodies whose bounds are inside (or outside if set) the given set of bounds, from the given set of bodies.\n * @method region\n * @param {body[]} bodies\n * @param {bounds} bounds\n * @param {bool} [outside=false]\n * @return {body[]} The bodies matching the query\n */\n Query.region = function(bodies, bounds, outside) {\n var result = [];\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n overlaps = Bounds.overlaps(body.bounds, bounds);\n if ((overlaps && !outside) || (!overlaps && outside))\n result.push(body);\n }\n\n return result;\n };\n\n /**\n * Returns all bodies whose vertices contain the given point, from the given set of bodies.\n * @method point\n * @param {body[]} bodies\n * @param {vector} point\n * @return {body[]} The bodies matching the query\n */\n Query.point = function(bodies, point) {\n var result = [];\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n \n if (Bounds.contains(body.bounds, point)) {\n for (var j = body.parts.length === 1 ? 0 : 1; j < body.parts.length; j++) {\n var part = body.parts[j];\n\n if (Bounds.contains(part.bounds, point)\n && Vertices.contains(part.vertices, point)) {\n result.push(body);\n break;\n }\n }\n }\n }\n\n return result;\n };\n\n})();\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Render` module is a simple canvas based renderer for visualising instances of `Matter.Engine`.\n* It is intended for development and debugging purposes, but may also be suitable for simple games.\n* It includes a number of drawing options including wireframe, vector with support for sprites and viewports.\n*\n* @class Render\n*/\n\nvar Render = {};\n\nmodule.exports = Render;\n\nvar Body = __webpack_require__(4);\nvar Common = __webpack_require__(0);\nvar Composite = __webpack_require__(6);\nvar Bounds = __webpack_require__(1);\nvar Events = __webpack_require__(5);\nvar Vector = __webpack_require__(2);\nvar Mouse = __webpack_require__(14);\n\n(function() {\n\n var _requestAnimationFrame,\n _cancelAnimationFrame;\n\n if (typeof window !== 'undefined') {\n _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame\n || window.mozRequestAnimationFrame || window.msRequestAnimationFrame\n || function(callback){ window.setTimeout(function() { callback(Common.now()); }, 1000 / 60); };\n\n _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame\n || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;\n }\n\n Render._goodFps = 30;\n Render._goodDelta = 1000 / 60;\n\n /**\n * Creates a new renderer. The options parameter is an object that specifies any properties you wish to override the defaults.\n * All properties have default values, and many are pre-calculated automatically based on other properties.\n * See the properties section below for detailed information on what you can pass via the `options` object.\n * @method create\n * @param {object} [options]\n * @return {render} A new renderer\n */\n Render.create = function(options) {\n var defaults = {\n engine: null,\n element: null,\n canvas: null,\n mouse: null,\n frameRequestId: null,\n timing: {\n historySize: 60,\n delta: 0,\n deltaHistory: [],\n lastTime: 0,\n lastTimestamp: 0,\n lastElapsed: 0,\n timestampElapsed: 0,\n timestampElapsedHistory: [],\n engineDeltaHistory: [],\n engineElapsedHistory: [],\n elapsedHistory: []\n },\n options: {\n width: 800,\n height: 600,\n pixelRatio: 1,\n background: '#14151f',\n wireframeBackground: '#14151f',\n hasBounds: !!options.bounds,\n enabled: true,\n wireframes: true,\n showSleeping: true,\n showDebug: false,\n showStats: false,\n showPerformance: false,\n showBounds: false,\n showVelocity: false,\n showCollisions: false,\n showSeparations: false,\n showAxes: false,\n showPositions: false,\n showAngleIndicator: false,\n showIds: false,\n showVertexNumbers: false,\n showConvexHulls: false,\n showInternalEdges: false,\n showMousePosition: false\n }\n };\n\n var render = Common.extend(defaults, options);\n\n if (render.canvas) {\n render.canvas.width = render.options.width || render.canvas.width;\n render.canvas.height = render.options.height || render.canvas.height;\n }\n\n render.mouse = options.mouse;\n render.engine = options.engine;\n render.canvas = render.canvas || _createCanvas(render.options.width, render.options.height);\n render.context = render.canvas.getContext('2d');\n render.textures = {};\n\n render.bounds = render.bounds || {\n min: {\n x: 0,\n y: 0\n },\n max: {\n x: render.canvas.width,\n y: render.canvas.height\n }\n };\n\n // for temporary back compatibility only\n render.controller = Render;\n render.options.showBroadphase = false;\n\n if (render.options.pixelRatio !== 1) {\n Render.setPixelRatio(render, render.options.pixelRatio);\n }\n\n if (Common.isElement(render.element)) {\n render.element.appendChild(render.canvas);\n }\n\n return render;\n };\n\n /**\n * Continuously updates the render canvas on the `requestAnimationFrame` event.\n * @method run\n * @param {render} render\n */\n Render.run = function(render) {\n (function loop(time){\n render.frameRequestId = _requestAnimationFrame(loop);\n \n _updateTiming(render, time);\n\n Render.world(render, time);\n\n if (render.options.showStats || render.options.showDebug) {\n Render.stats(render, render.context, time);\n }\n\n if (render.options.showPerformance || render.options.showDebug) {\n Render.performance(render, render.context, time);\n }\n })();\n };\n\n /**\n * Ends execution of `Render.run` on the given `render`, by canceling the animation frame request event loop.\n * @method stop\n * @param {render} render\n */\n Render.stop = function(render) {\n _cancelAnimationFrame(render.frameRequestId);\n };\n\n /**\n * Sets the pixel ratio of the renderer and updates the canvas.\n * To automatically detect the correct ratio, pass the string `'auto'` for `pixelRatio`.\n * @method setPixelRatio\n * @param {render} render\n * @param {number} pixelRatio\n */\n Render.setPixelRatio = function(render, pixelRatio) {\n var options = render.options,\n canvas = render.canvas;\n\n if (pixelRatio === 'auto') {\n pixelRatio = _getPixelRatio(canvas);\n }\n\n options.pixelRatio = pixelRatio;\n canvas.setAttribute('data-pixel-ratio', pixelRatio);\n canvas.width = options.width * pixelRatio;\n canvas.height = options.height * pixelRatio;\n canvas.style.width = options.width + 'px';\n canvas.style.height = options.height + 'px';\n };\n\n /**\n * Positions and sizes the viewport around the given object bounds.\n * Objects must have at least one of the following properties:\n * - `object.bounds`\n * - `object.position`\n * - `object.min` and `object.max`\n * - `object.x` and `object.y`\n * @method lookAt\n * @param {render} render\n * @param {object[]} objects\n * @param {vector} [padding]\n * @param {bool} [center=true]\n */\n Render.lookAt = function(render, objects, padding, center) {\n center = typeof center !== 'undefined' ? center : true;\n objects = Common.isArray(objects) ? objects : [objects];\n padding = padding || {\n x: 0,\n y: 0\n };\n\n // find bounds of all objects\n var bounds = {\n min: { x: Infinity, y: Infinity },\n max: { x: -Infinity, y: -Infinity }\n };\n\n for (var i = 0; i < objects.length; i += 1) {\n var object = objects[i],\n min = object.bounds ? object.bounds.min : (object.min || object.position || object),\n max = object.bounds ? object.bounds.max : (object.max || object.position || object);\n\n if (min && max) {\n if (min.x < bounds.min.x)\n bounds.min.x = min.x;\n\n if (max.x > bounds.max.x)\n bounds.max.x = max.x;\n\n if (min.y < bounds.min.y)\n bounds.min.y = min.y;\n\n if (max.y > bounds.max.y)\n bounds.max.y = max.y;\n }\n }\n\n // find ratios\n var width = (bounds.max.x - bounds.min.x) + 2 * padding.x,\n height = (bounds.max.y - bounds.min.y) + 2 * padding.y,\n viewHeight = render.canvas.height,\n viewWidth = render.canvas.width,\n outerRatio = viewWidth / viewHeight,\n innerRatio = width / height,\n scaleX = 1,\n scaleY = 1;\n\n // find scale factor\n if (innerRatio > outerRatio) {\n scaleY = innerRatio / outerRatio;\n } else {\n scaleX = outerRatio / innerRatio;\n }\n\n // enable bounds\n render.options.hasBounds = true;\n\n // position and size\n render.bounds.min.x = bounds.min.x;\n render.bounds.max.x = bounds.min.x + width * scaleX;\n render.bounds.min.y = bounds.min.y;\n render.bounds.max.y = bounds.min.y + height * scaleY;\n\n // center\n if (center) {\n render.bounds.min.x += width * 0.5 - (width * scaleX) * 0.5;\n render.bounds.max.x += width * 0.5 - (width * scaleX) * 0.5;\n render.bounds.min.y += height * 0.5 - (height * scaleY) * 0.5;\n render.bounds.max.y += height * 0.5 - (height * scaleY) * 0.5;\n }\n\n // padding\n render.bounds.min.x -= padding.x;\n render.bounds.max.x -= padding.x;\n render.bounds.min.y -= padding.y;\n render.bounds.max.y -= padding.y;\n\n // update mouse\n if (render.mouse) {\n Mouse.setScale(render.mouse, {\n x: (render.bounds.max.x - render.bounds.min.x) / render.canvas.width,\n y: (render.bounds.max.y - render.bounds.min.y) / render.canvas.height\n });\n\n Mouse.setOffset(render.mouse, render.bounds.min);\n }\n };\n\n /**\n * Applies viewport transforms based on `render.bounds` to a render context.\n * @method startViewTransform\n * @param {render} render\n */\n Render.startViewTransform = function(render) {\n var boundsWidth = render.bounds.max.x - render.bounds.min.x,\n boundsHeight = render.bounds.max.y - render.bounds.min.y,\n boundsScaleX = boundsWidth / render.options.width,\n boundsScaleY = boundsHeight / render.options.height;\n\n render.context.setTransform(\n render.options.pixelRatio / boundsScaleX, 0, 0, \n render.options.pixelRatio / boundsScaleY, 0, 0\n );\n \n render.context.translate(-render.bounds.min.x, -render.bounds.min.y);\n };\n\n /**\n * Resets all transforms on the render context.\n * @method endViewTransform\n * @param {render} render\n */\n Render.endViewTransform = function(render) {\n render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0);\n };\n\n /**\n * Renders the given `engine`'s `Matter.World` object.\n * This is the entry point for all rendering and should be called every time the scene changes.\n * @method world\n * @param {render} render\n */\n Render.world = function(render, time) {\n var startTime = Common.now(),\n engine = render.engine,\n world = engine.world,\n canvas = render.canvas,\n context = render.context,\n options = render.options,\n timing = render.timing;\n\n var allBodies = Composite.allBodies(world),\n allConstraints = Composite.allConstraints(world),\n background = options.wireframes ? options.wireframeBackground : options.background,\n bodies = [],\n constraints = [],\n i;\n\n var event = {\n timestamp: engine.timing.timestamp\n };\n\n Events.trigger(render, 'beforeRender', event);\n\n // apply background if it has changed\n if (render.currentBackground !== background)\n _applyBackground(render, background);\n\n // clear the canvas with a transparent fill, to allow the canvas background to show\n context.globalCompositeOperation = 'source-in';\n context.fillStyle = \"transparent\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n context.globalCompositeOperation = 'source-over';\n\n // handle bounds\n if (options.hasBounds) {\n // filter out bodies that are not in view\n for (i = 0; i < allBodies.length; i++) {\n var body = allBodies[i];\n if (Bounds.overlaps(body.bounds, render.bounds))\n bodies.push(body);\n }\n\n // filter out constraints that are not in view\n for (i = 0; i < allConstraints.length; i++) {\n var constraint = allConstraints[i],\n bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n pointAWorld = constraint.pointA,\n pointBWorld = constraint.pointB;\n\n if (bodyA) pointAWorld = Vector.add(bodyA.position, constraint.pointA);\n if (bodyB) pointBWorld = Vector.add(bodyB.position, constraint.pointB);\n\n if (!pointAWorld || !pointBWorld)\n continue;\n\n if (Bounds.contains(render.bounds, pointAWorld) || Bounds.contains(render.bounds, pointBWorld))\n constraints.push(constraint);\n }\n\n // transform the view\n Render.startViewTransform(render);\n\n // update mouse\n if (render.mouse) {\n Mouse.setScale(render.mouse, {\n x: (render.bounds.max.x - render.bounds.min.x) / render.options.width,\n y: (render.bounds.max.y - render.bounds.min.y) / render.options.height\n });\n\n Mouse.setOffset(render.mouse, render.bounds.min);\n }\n } else {\n constraints = allConstraints;\n bodies = allBodies;\n\n if (render.options.pixelRatio !== 1) {\n render.context.setTransform(render.options.pixelRatio, 0, 0, render.options.pixelRatio, 0, 0);\n }\n }\n\n if (!options.wireframes || (engine.enableSleeping && options.showSleeping)) {\n // fully featured rendering of bodies\n Render.bodies(render, bodies, context);\n } else {\n if (options.showConvexHulls)\n Render.bodyConvexHulls(render, bodies, context);\n\n // optimised method for wireframes only\n Render.bodyWireframes(render, bodies, context);\n }\n\n if (options.showBounds)\n Render.bodyBounds(render, bodies, context);\n\n if (options.showAxes || options.showAngleIndicator)\n Render.bodyAxes(render, bodies, context);\n\n if (options.showPositions)\n Render.bodyPositions(render, bodies, context);\n\n if (options.showVelocity)\n Render.bodyVelocity(render, bodies, context);\n\n if (options.showIds)\n Render.bodyIds(render, bodies, context);\n\n if (options.showSeparations)\n Render.separations(render, engine.pairs.list, context);\n\n if (options.showCollisions)\n Render.collisions(render, engine.pairs.list, context);\n\n if (options.showVertexNumbers)\n Render.vertexNumbers(render, bodies, context);\n\n if (options.showMousePosition)\n Render.mousePosition(render, render.mouse, context);\n\n Render.constraints(constraints, context);\n\n if (options.hasBounds) {\n // revert view transforms\n Render.endViewTransform(render);\n }\n\n Events.trigger(render, 'afterRender', event);\n\n // log the time elapsed computing this update\n timing.lastElapsed = Common.now() - startTime;\n };\n\n /**\n * Renders statistics about the engine and world useful for debugging.\n * @private\n * @method stats\n * @param {render} render\n * @param {RenderingContext} context\n * @param {Number} time\n */\n Render.stats = function(render, context, time) {\n var engine = render.engine,\n world = engine.world,\n bodies = Composite.allBodies(world),\n parts = 0,\n width = 55,\n height = 44,\n x = 0,\n y = 0;\n \n // count parts\n for (var i = 0; i < bodies.length; i += 1) {\n parts += bodies[i].parts.length;\n }\n\n // sections\n var sections = {\n 'Part': parts,\n 'Body': bodies.length,\n 'Cons': Composite.allConstraints(world).length,\n 'Comp': Composite.allComposites(world).length,\n 'Pair': engine.pairs.list.length\n };\n\n // background\n context.fillStyle = '#0e0f19';\n context.fillRect(x, y, width * 5.5, height);\n\n context.font = '12px Arial';\n context.textBaseline = 'top';\n context.textAlign = 'right';\n\n // sections\n for (var key in sections) {\n var section = sections[key];\n // label\n context.fillStyle = '#aaa';\n context.fillText(key, x + width, y + 8);\n\n // value\n context.fillStyle = '#eee';\n context.fillText(section, x + width, y + 26);\n\n x += width;\n }\n };\n\n /**\n * Renders engine and render performance information.\n * @private\n * @method performance\n * @param {render} render\n * @param {RenderingContext} context\n */\n Render.performance = function(render, context) {\n var engine = render.engine,\n timing = render.timing,\n deltaHistory = timing.deltaHistory,\n elapsedHistory = timing.elapsedHistory,\n timestampElapsedHistory = timing.timestampElapsedHistory,\n engineDeltaHistory = timing.engineDeltaHistory,\n engineElapsedHistory = timing.engineElapsedHistory,\n lastEngineDelta = engine.timing.lastDelta;\n \n var deltaMean = _mean(deltaHistory),\n elapsedMean = _mean(elapsedHistory),\n engineDeltaMean = _mean(engineDeltaHistory),\n engineElapsedMean = _mean(engineElapsedHistory),\n timestampElapsedMean = _mean(timestampElapsedHistory),\n rateMean = (timestampElapsedMean / deltaMean) || 0,\n fps = (1000 / deltaMean) || 0;\n\n var graphHeight = 4,\n gap = 12,\n width = 60,\n height = 34,\n x = 10,\n y = 69;\n\n // background\n context.fillStyle = '#0e0f19';\n context.fillRect(0, 50, gap * 4 + width * 5 + 22, height);\n\n // show FPS\n Render.status(\n context, x, y, width, graphHeight, deltaHistory.length, \n Math.round(fps) + ' fps', \n fps / Render._goodFps,\n function(i) { return (deltaHistory[i] / deltaMean) - 1; }\n );\n\n // show engine delta\n Render.status(\n context, x + gap + width, y, width, graphHeight, engineDeltaHistory.length,\n lastEngineDelta.toFixed(2) + ' dt', \n Render._goodDelta / lastEngineDelta,\n function(i) { return (engineDeltaHistory[i] / engineDeltaMean) - 1; }\n );\n\n // show engine update time\n Render.status(\n context, x + (gap + width) * 2, y, width, graphHeight, engineElapsedHistory.length,\n engineElapsedMean.toFixed(2) + ' ut', \n 1 - (engineElapsedMean / Render._goodFps),\n function(i) { return (engineElapsedHistory[i] / engineElapsedMean) - 1; }\n );\n\n // show render time\n Render.status(\n context, x + (gap + width) * 3, y, width, graphHeight, elapsedHistory.length,\n elapsedMean.toFixed(2) + ' rt', \n 1 - (elapsedMean / Render._goodFps),\n function(i) { return (elapsedHistory[i] / elapsedMean) - 1; }\n );\n\n // show effective speed\n Render.status(\n context, x + (gap + width) * 4, y, width, graphHeight, timestampElapsedHistory.length, \n rateMean.toFixed(2) + ' x', \n rateMean * rateMean * rateMean,\n function(i) { return (((timestampElapsedHistory[i] / deltaHistory[i]) / rateMean) || 0) - 1; }\n );\n };\n\n /**\n * Renders a label, indicator and a chart.\n * @private\n * @method status\n * @param {RenderingContext} context\n * @param {number} x\n * @param {number} y\n * @param {number} width\n * @param {number} height\n * @param {number} count\n * @param {string} label\n * @param {string} indicator\n * @param {function} plotY\n */\n Render.status = function(context, x, y, width, height, count, label, indicator, plotY) {\n // background\n context.strokeStyle = '#888';\n context.fillStyle = '#444';\n context.lineWidth = 1;\n context.fillRect(x, y + 7, width, 1);\n\n // chart\n context.beginPath();\n context.moveTo(x, y + 7 - height * Common.clamp(0.4 * plotY(0), -2, 2));\n for (var i = 0; i < width; i += 1) {\n context.lineTo(x + i, y + 7 - (i < count ? height * Common.clamp(0.4 * plotY(i), -2, 2) : 0));\n }\n context.stroke();\n\n // indicator\n context.fillStyle = 'hsl(' + Common.clamp(25 + 95 * indicator, 0, 120) + ',100%,60%)';\n context.fillRect(x, y - 7, 4, 4);\n\n // label\n context.font = '12px Arial';\n context.textBaseline = 'middle';\n context.textAlign = 'right';\n context.fillStyle = '#eee';\n context.fillText(label, x + width, y - 5);\n };\n\n /**\n * Description\n * @private\n * @method constraints\n * @param {constraint[]} constraints\n * @param {RenderingContext} context\n */\n Render.constraints = function(constraints, context) {\n var c = context;\n\n for (var i = 0; i < constraints.length; i++) {\n var constraint = constraints[i];\n\n if (!constraint.render.visible || !constraint.pointA || !constraint.pointB)\n continue;\n\n var bodyA = constraint.bodyA,\n bodyB = constraint.bodyB,\n start,\n end;\n\n if (bodyA) {\n start = Vector.add(bodyA.position, constraint.pointA);\n } else {\n start = constraint.pointA;\n }\n\n if (constraint.render.type === 'pin') {\n c.beginPath();\n c.arc(start.x, start.y, 3, 0, 2 * Math.PI);\n c.closePath();\n } else {\n if (bodyB) {\n end = Vector.add(bodyB.position, constraint.pointB);\n } else {\n end = constraint.pointB;\n }\n\n c.beginPath();\n c.moveTo(start.x, start.y);\n\n if (constraint.render.type === 'spring') {\n var delta = Vector.sub(end, start),\n normal = Vector.perp(Vector.normalise(delta)),\n coils = Math.ceil(Common.clamp(constraint.length / 5, 12, 20)),\n offset;\n\n for (var j = 1; j < coils; j += 1) {\n offset = j % 2 === 0 ? 1 : -1;\n\n c.lineTo(\n start.x + delta.x * (j / coils) + normal.x * offset * 4,\n start.y + delta.y * (j / coils) + normal.y * offset * 4\n );\n }\n }\n\n c.lineTo(end.x, end.y);\n }\n\n if (constraint.render.lineWidth) {\n c.lineWidth = constraint.render.lineWidth;\n c.strokeStyle = constraint.render.strokeStyle;\n c.stroke();\n }\n\n if (constraint.render.anchors) {\n c.fillStyle = constraint.render.strokeStyle;\n c.beginPath();\n c.arc(start.x, start.y, 3, 0, 2 * Math.PI);\n c.arc(end.x, end.y, 3, 0, 2 * Math.PI);\n c.closePath();\n c.fill();\n }\n }\n };\n\n /**\n * Description\n * @private\n * @method bodies\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodies = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n showInternalEdges = options.showInternalEdges || !options.wireframes,\n body,\n part,\n i,\n k;\n\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {\n part = body.parts[k];\n\n if (!part.render.visible)\n continue;\n\n if (options.showSleeping && body.isSleeping) {\n c.globalAlpha = 0.5 * part.render.opacity;\n } else if (part.render.opacity !== 1) {\n c.globalAlpha = part.render.opacity;\n }\n\n if (part.render.sprite && part.render.sprite.texture && !options.wireframes) {\n // part sprite\n var sprite = part.render.sprite,\n texture = _getTexture(render, sprite.texture);\n\n c.translate(part.position.x, part.position.y);\n c.rotate(part.angle);\n\n c.drawImage(\n texture,\n texture.width * -sprite.xOffset * sprite.xScale,\n texture.height * -sprite.yOffset * sprite.yScale,\n texture.width * sprite.xScale,\n texture.height * sprite.yScale\n );\n\n // revert translation, hopefully faster than save / restore\n c.rotate(-part.angle);\n c.translate(-part.position.x, -part.position.y);\n } else {\n // part polygon\n if (part.circleRadius) {\n c.beginPath();\n c.arc(part.position.x, part.position.y, part.circleRadius, 0, 2 * Math.PI);\n } else {\n c.beginPath();\n c.moveTo(part.vertices[0].x, part.vertices[0].y);\n\n for (var j = 1; j < part.vertices.length; j++) {\n if (!part.vertices[j - 1].isInternal || showInternalEdges) {\n c.lineTo(part.vertices[j].x, part.vertices[j].y);\n } else {\n c.moveTo(part.vertices[j].x, part.vertices[j].y);\n }\n\n if (part.vertices[j].isInternal && !showInternalEdges) {\n c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y);\n }\n }\n\n c.lineTo(part.vertices[0].x, part.vertices[0].y);\n c.closePath();\n }\n\n if (!options.wireframes) {\n c.fillStyle = part.render.fillStyle;\n\n if (part.render.lineWidth) {\n c.lineWidth = part.render.lineWidth;\n c.strokeStyle = part.render.strokeStyle;\n c.stroke();\n }\n\n c.fill();\n } else {\n c.lineWidth = 1;\n c.strokeStyle = '#bbb';\n c.stroke();\n }\n }\n\n c.globalAlpha = 1;\n }\n }\n };\n\n /**\n * Optimised method for drawing body wireframes in one pass\n * @private\n * @method bodyWireframes\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyWireframes = function(render, bodies, context) {\n var c = context,\n showInternalEdges = render.options.showInternalEdges,\n body,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n // render all bodies\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = body.parts.length > 1 ? 1 : 0; k < body.parts.length; k++) {\n part = body.parts[k];\n\n c.moveTo(part.vertices[0].x, part.vertices[0].y);\n\n for (j = 1; j < part.vertices.length; j++) {\n if (!part.vertices[j - 1].isInternal || showInternalEdges) {\n c.lineTo(part.vertices[j].x, part.vertices[j].y);\n } else {\n c.moveTo(part.vertices[j].x, part.vertices[j].y);\n }\n\n if (part.vertices[j].isInternal && !showInternalEdges) {\n c.moveTo(part.vertices[(j + 1) % part.vertices.length].x, part.vertices[(j + 1) % part.vertices.length].y);\n }\n }\n\n c.lineTo(part.vertices[0].x, part.vertices[0].y);\n }\n }\n\n c.lineWidth = 1;\n c.strokeStyle = '#bbb';\n c.stroke();\n };\n\n /**\n * Optimised method for drawing body convex hull wireframes in one pass\n * @private\n * @method bodyConvexHulls\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyConvexHulls = function(render, bodies, context) {\n var c = context,\n body,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n // render convex hulls\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible || body.parts.length === 1)\n continue;\n\n c.moveTo(body.vertices[0].x, body.vertices[0].y);\n\n for (j = 1; j < body.vertices.length; j++) {\n c.lineTo(body.vertices[j].x, body.vertices[j].y);\n }\n\n c.lineTo(body.vertices[0].x, body.vertices[0].y);\n }\n\n c.lineWidth = 1;\n c.strokeStyle = 'rgba(255,255,255,0.2)';\n c.stroke();\n };\n\n /**\n * Renders body vertex numbers.\n * @private\n * @method vertexNumbers\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.vertexNumbers = function(render, bodies, context) {\n var c = context,\n i,\n j,\n k;\n\n for (i = 0; i < bodies.length; i++) {\n var parts = bodies[i].parts;\n for (k = parts.length > 1 ? 1 : 0; k < parts.length; k++) {\n var part = parts[k];\n for (j = 0; j < part.vertices.length; j++) {\n c.fillStyle = 'rgba(255,255,255,0.2)';\n c.fillText(i + '_' + j, part.position.x + (part.vertices[j].x - part.position.x) * 0.8, part.position.y + (part.vertices[j].y - part.position.y) * 0.8);\n }\n }\n }\n };\n\n /**\n * Renders mouse position.\n * @private\n * @method mousePosition\n * @param {render} render\n * @param {mouse} mouse\n * @param {RenderingContext} context\n */\n Render.mousePosition = function(render, mouse, context) {\n var c = context;\n c.fillStyle = 'rgba(255,255,255,0.8)';\n c.fillText(mouse.position.x + ' ' + mouse.position.y, mouse.position.x + 5, mouse.position.y - 5);\n };\n\n /**\n * Draws body bounds\n * @private\n * @method bodyBounds\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyBounds = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options;\n\n c.beginPath();\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (body.render.visible) {\n var parts = bodies[i].parts;\n for (var j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n var part = parts[j];\n c.rect(part.bounds.min.x, part.bounds.min.y, part.bounds.max.x - part.bounds.min.x, part.bounds.max.y - part.bounds.min.y);\n }\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,255,255,0.08)';\n } else {\n c.strokeStyle = 'rgba(0,0,0,0.1)';\n }\n\n c.lineWidth = 1;\n c.stroke();\n };\n\n /**\n * Draws body angle indicators and axes\n * @private\n * @method bodyAxes\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyAxes = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n part,\n i,\n j,\n k;\n\n c.beginPath();\n\n for (i = 0; i < bodies.length; i++) {\n var body = bodies[i],\n parts = body.parts;\n\n if (!body.render.visible)\n continue;\n\n if (options.showAxes) {\n // render all axes\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n part = parts[j];\n for (k = 0; k < part.axes.length; k++) {\n var axis = part.axes[k];\n c.moveTo(part.position.x, part.position.y);\n c.lineTo(part.position.x + axis.x * 20, part.position.y + axis.y * 20);\n }\n }\n } else {\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n part = parts[j];\n for (k = 0; k < part.axes.length; k++) {\n // render a single axis indicator\n c.moveTo(part.position.x, part.position.y);\n c.lineTo((part.vertices[0].x + part.vertices[part.vertices.length-1].x) / 2,\n (part.vertices[0].y + part.vertices[part.vertices.length-1].y) / 2);\n }\n }\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'indianred';\n c.lineWidth = 1;\n } else {\n c.strokeStyle = 'rgba(255, 255, 255, 0.4)';\n c.globalCompositeOperation = 'overlay';\n c.lineWidth = 2;\n }\n\n c.stroke();\n c.globalCompositeOperation = 'source-over';\n };\n\n /**\n * Draws body positions\n * @private\n * @method bodyPositions\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyPositions = function(render, bodies, context) {\n var c = context,\n engine = render.engine,\n options = render.options,\n body,\n part,\n i,\n k;\n\n c.beginPath();\n\n // render current positions\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n // handle compound parts\n for (k = 0; k < body.parts.length; k++) {\n part = body.parts[k];\n c.arc(part.position.x, part.position.y, 3, 0, 2 * Math.PI, false);\n c.closePath();\n }\n }\n\n if (options.wireframes) {\n c.fillStyle = 'indianred';\n } else {\n c.fillStyle = 'rgba(0,0,0,0.5)';\n }\n c.fill();\n\n c.beginPath();\n\n // render previous positions\n for (i = 0; i < bodies.length; i++) {\n body = bodies[i];\n if (body.render.visible) {\n c.arc(body.positionPrev.x, body.positionPrev.y, 2, 0, 2 * Math.PI, false);\n c.closePath();\n }\n }\n\n c.fillStyle = 'rgba(255,165,0,0.8)';\n c.fill();\n };\n\n /**\n * Draws body velocity\n * @private\n * @method bodyVelocity\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyVelocity = function(render, bodies, context) {\n var c = context;\n\n c.beginPath();\n\n for (var i = 0; i < bodies.length; i++) {\n var body = bodies[i];\n\n if (!body.render.visible)\n continue;\n\n var velocity = Body.getVelocity(body);\n\n c.moveTo(body.position.x, body.position.y);\n c.lineTo(body.position.x + velocity.x, body.position.y + velocity.y);\n }\n\n c.lineWidth = 3;\n c.strokeStyle = 'cornflowerblue';\n c.stroke();\n };\n\n /**\n * Draws body ids\n * @private\n * @method bodyIds\n * @param {render} render\n * @param {body[]} bodies\n * @param {RenderingContext} context\n */\n Render.bodyIds = function(render, bodies, context) {\n var c = context,\n i,\n j;\n\n for (i = 0; i < bodies.length; i++) {\n if (!bodies[i].render.visible)\n continue;\n\n var parts = bodies[i].parts;\n for (j = parts.length > 1 ? 1 : 0; j < parts.length; j++) {\n var part = parts[j];\n c.font = \"12px Arial\";\n c.fillStyle = 'rgba(255,255,255,0.5)';\n c.fillText(part.id, part.position.x + 10, part.position.y - 10);\n }\n }\n };\n\n /**\n * Description\n * @private\n * @method collisions\n * @param {render} render\n * @param {pair[]} pairs\n * @param {RenderingContext} context\n */\n Render.collisions = function(render, pairs, context) {\n var c = context,\n options = render.options,\n pair,\n collision,\n corrected,\n bodyA,\n bodyB,\n i,\n j;\n\n c.beginPath();\n\n // render collision positions\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n for (j = 0; j < pair.activeContacts.length; j++) {\n var contact = pair.activeContacts[j],\n vertex = contact.vertex;\n c.rect(vertex.x - 1.5, vertex.y - 1.5, 3.5, 3.5);\n }\n }\n\n if (options.wireframes) {\n c.fillStyle = 'rgba(255,255,255,0.7)';\n } else {\n c.fillStyle = 'orange';\n }\n c.fill();\n\n c.beginPath();\n\n // render collision normals\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n\n if (pair.activeContacts.length > 0) {\n var normalPosX = pair.activeContacts[0].vertex.x,\n normalPosY = pair.activeContacts[0].vertex.y;\n\n if (pair.activeContacts.length === 2) {\n normalPosX = (pair.activeContacts[0].vertex.x + pair.activeContacts[1].vertex.x) / 2;\n normalPosY = (pair.activeContacts[0].vertex.y + pair.activeContacts[1].vertex.y) / 2;\n }\n\n if (collision.bodyB === collision.supports[0].body || collision.bodyA.isStatic === true) {\n c.moveTo(normalPosX - collision.normal.x * 8, normalPosY - collision.normal.y * 8);\n } else {\n c.moveTo(normalPosX + collision.normal.x * 8, normalPosY + collision.normal.y * 8);\n }\n\n c.lineTo(normalPosX, normalPosY);\n }\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,165,0,0.7)';\n } else {\n c.strokeStyle = 'orange';\n }\n\n c.lineWidth = 1;\n c.stroke();\n };\n\n /**\n * Description\n * @private\n * @method separations\n * @param {render} render\n * @param {pair[]} pairs\n * @param {RenderingContext} context\n */\n Render.separations = function(render, pairs, context) {\n var c = context,\n options = render.options,\n pair,\n collision,\n corrected,\n bodyA,\n bodyB,\n i,\n j;\n\n c.beginPath();\n\n // render separations\n for (i = 0; i < pairs.length; i++) {\n pair = pairs[i];\n\n if (!pair.isActive)\n continue;\n\n collision = pair.collision;\n bodyA = collision.bodyA;\n bodyB = collision.bodyB;\n\n var k = 1;\n\n if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5;\n if (bodyB.isStatic) k = 0;\n\n c.moveTo(bodyB.position.x, bodyB.position.y);\n c.lineTo(bodyB.position.x - collision.penetration.x * k, bodyB.position.y - collision.penetration.y * k);\n\n k = 1;\n\n if (!bodyB.isStatic && !bodyA.isStatic) k = 0.5;\n if (bodyA.isStatic) k = 0;\n\n c.moveTo(bodyA.position.x, bodyA.position.y);\n c.lineTo(bodyA.position.x + collision.penetration.x * k, bodyA.position.y + collision.penetration.y * k);\n }\n\n if (options.wireframes) {\n c.strokeStyle = 'rgba(255,165,0,0.5)';\n } else {\n c.strokeStyle = 'orange';\n }\n c.stroke();\n };\n\n /**\n * Description\n * @private\n * @method inspector\n * @param {inspector} inspector\n * @param {RenderingContext} context\n */\n Render.inspector = function(inspector, context) {\n var engine = inspector.engine,\n selected = inspector.selected,\n render = inspector.render,\n options = render.options,\n bounds;\n\n if (options.hasBounds) {\n var boundsWidth = render.bounds.max.x - render.bounds.min.x,\n boundsHeight = render.bounds.max.y - render.bounds.min.y,\n boundsScaleX = boundsWidth / render.options.width,\n boundsScaleY = boundsHeight / render.options.height;\n\n context.scale(1 / boundsScaleX, 1 / boundsScaleY);\n context.translate(-render.bounds.min.x, -render.bounds.min.y);\n }\n\n for (var i = 0; i < selected.length; i++) {\n var item = selected[i].data;\n\n context.translate(0.5, 0.5);\n context.lineWidth = 1;\n context.strokeStyle = 'rgba(255,165,0,0.9)';\n context.setLineDash([1,2]);\n\n switch (item.type) {\n\n case 'body':\n\n // render body selections\n bounds = item.bounds;\n context.beginPath();\n context.rect(Math.floor(bounds.min.x - 3), Math.floor(bounds.min.y - 3),\n Math.floor(bounds.max.x - bounds.min.x + 6), Math.floor(bounds.max.y - bounds.min.y + 6));\n context.closePath();\n context.stroke();\n\n break;\n\n case 'constraint':\n\n // render constraint selections\n var point = item.pointA;\n if (item.bodyA)\n point = item.pointB;\n context.beginPath();\n context.arc(point.x, point.y, 10, 0, 2 * Math.PI);\n context.closePath();\n context.stroke();\n\n break;\n\n }\n\n context.setLineDash([]);\n context.translate(-0.5, -0.5);\n }\n\n // render selection region\n if (inspector.selectStart !== null) {\n context.translate(0.5, 0.5);\n context.lineWidth = 1;\n context.strokeStyle = 'rgba(255,165,0,0.6)';\n context.fillStyle = 'rgba(255,165,0,0.1)';\n bounds = inspector.selectBounds;\n context.beginPath();\n context.rect(Math.floor(bounds.min.x), Math.floor(bounds.min.y),\n Math.floor(bounds.max.x - bounds.min.x), Math.floor(bounds.max.y - bounds.min.y));\n context.closePath();\n context.stroke();\n context.fill();\n context.translate(-0.5, -0.5);\n }\n\n if (options.hasBounds)\n context.setTransform(1, 0, 0, 1, 0, 0);\n };\n\n /**\n * Updates render timing.\n * @method _updateTiming\n * @private\n * @param {render} render\n * @param {number} time\n */\n var _updateTiming = function(render, time) {\n var engine = render.engine,\n timing = render.timing,\n historySize = timing.historySize,\n timestamp = engine.timing.timestamp;\n\n timing.delta = time - timing.lastTime || Render._goodDelta;\n timing.lastTime = time;\n\n timing.timestampElapsed = timestamp - timing.lastTimestamp || 0;\n timing.lastTimestamp = timestamp;\n\n timing.deltaHistory.unshift(timing.delta);\n timing.deltaHistory.length = Math.min(timing.deltaHistory.length, historySize);\n\n timing.engineDeltaHistory.unshift(engine.timing.lastDelta);\n timing.engineDeltaHistory.length = Math.min(timing.engineDeltaHistory.length, historySize);\n\n timing.timestampElapsedHistory.unshift(timing.timestampElapsed);\n timing.timestampElapsedHistory.length = Math.min(timing.timestampElapsedHistory.length, historySize);\n\n timing.engineElapsedHistory.unshift(engine.timing.lastElapsed);\n timing.engineElapsedHistory.length = Math.min(timing.engineElapsedHistory.length, historySize);\n\n timing.elapsedHistory.unshift(timing.lastElapsed);\n timing.elapsedHistory.length = Math.min(timing.elapsedHistory.length, historySize);\n };\n\n /**\n * Returns the mean value of the given numbers.\n * @method _mean\n * @private\n * @param {Number[]} values\n * @return {Number} the mean of given values\n */\n var _mean = function(values) {\n var result = 0;\n for (var i = 0; i < values.length; i += 1) {\n result += values[i];\n }\n return (result / values.length) || 0;\n };\n\n /**\n * @method _createCanvas\n * @private\n * @param {} width\n * @param {} height\n * @return canvas\n */\n var _createCanvas = function(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n canvas.oncontextmenu = function() { return false; };\n canvas.onselectstart = function() { return false; };\n return canvas;\n };\n\n /**\n * Gets the pixel ratio of the canvas.\n * @method _getPixelRatio\n * @private\n * @param {HTMLElement} canvas\n * @return {Number} pixel ratio\n */\n var _getPixelRatio = function(canvas) {\n var context = canvas.getContext('2d'),\n devicePixelRatio = window.devicePixelRatio || 1,\n backingStorePixelRatio = context.webkitBackingStorePixelRatio || context.mozBackingStorePixelRatio\n || context.msBackingStorePixelRatio || context.oBackingStorePixelRatio\n || context.backingStorePixelRatio || 1;\n\n return devicePixelRatio / backingStorePixelRatio;\n };\n\n /**\n * Gets the requested texture (an Image) via its path\n * @method _getTexture\n * @private\n * @param {render} render\n * @param {string} imagePath\n * @return {Image} texture\n */\n var _getTexture = function(render, imagePath) {\n var image = render.textures[imagePath];\n\n if (image)\n return image;\n\n image = render.textures[imagePath] = new Image();\n image.src = imagePath;\n\n return image;\n };\n\n /**\n * Applies the background to the canvas using CSS.\n * @method applyBackground\n * @private\n * @param {render} render\n * @param {string} background\n */\n var _applyBackground = function(render, background) {\n var cssBackground = background;\n\n if (/(jpg|gif|png)$/.test(background))\n cssBackground = 'url(' + background + ')';\n\n render.canvas.style.background = cssBackground;\n render.canvas.style.backgroundSize = \"contain\";\n render.currentBackground = background;\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired before rendering\n *\n * @event beforeRender\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after rendering\n *\n * @event afterRender\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A back-reference to the `Matter.Render` module.\n *\n * @deprecated\n * @property controller\n * @type render\n */\n\n /**\n * A reference to the `Matter.Engine` instance to be used.\n *\n * @property engine\n * @type engine\n */\n\n /**\n * A reference to the element where the canvas is to be inserted (if `render.canvas` has not been specified)\n *\n * @property element\n * @type HTMLElement\n * @default null\n */\n\n /**\n * The canvas element to render to. If not specified, one will be created if `render.element` has been specified.\n *\n * @property canvas\n * @type HTMLCanvasElement\n * @default null\n */\n\n /**\n * A `Bounds` object that specifies the drawing view region.\n * Rendering will be automatically transformed and scaled to fit within the canvas size (`render.options.width` and `render.options.height`).\n * This allows for creating views that can pan or zoom around the scene.\n * You must also set `render.options.hasBounds` to `true` to enable bounded rendering.\n *\n * @property bounds\n * @type bounds\n */\n\n /**\n * The 2d rendering context from the `render.canvas` element.\n *\n * @property context\n * @type CanvasRenderingContext2D\n */\n\n /**\n * The sprite texture cache.\n *\n * @property textures\n * @type {}\n */\n\n /**\n * The mouse to render if `render.options.showMousePosition` is enabled.\n *\n * @property mouse\n * @type mouse\n * @default null\n */\n\n /**\n * The configuration options of the renderer.\n *\n * @property options\n * @type {}\n */\n\n /**\n * The target width in pixels of the `render.canvas` to be created.\n * See also the `options.pixelRatio` property to change render quality.\n *\n * @property options.width\n * @type number\n * @default 800\n */\n\n /**\n * The target height in pixels of the `render.canvas` to be created.\n * See also the `options.pixelRatio` property to change render quality.\n *\n * @property options.height\n * @type number\n * @default 600\n */\n\n /**\n * The [pixel ratio](https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio) to use when rendering.\n *\n * @property options.pixelRatio\n * @type number\n * @default 1\n */\n\n /**\n * A CSS background color string to use when `render.options.wireframes` is disabled.\n * This may be also set to `'transparent'` or equivalent.\n *\n * @property options.background\n * @type string\n * @default '#14151f'\n */\n\n /**\n * A CSS background color string to use when `render.options.wireframes` is enabled.\n * This may be also set to `'transparent'` or equivalent.\n *\n * @property options.wireframeBackground\n * @type string\n * @default '#14151f'\n */\n\n /**\n * A flag that specifies if `render.bounds` should be used when rendering.\n *\n * @property options.hasBounds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable all debug information overlays together. \n * This includes and has priority over the values of:\n *\n * - `render.options.showStats`\n * - `render.options.showPerformance`\n *\n * @property options.showDebug\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the engine stats info overlay. \n * From left to right, the values shown are:\n *\n * - body parts total\n * - body total\n * - constraints total\n * - composites total\n * - collision pairs total\n *\n * @property options.showStats\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable performance charts. \n * From left to right, the values shown are:\n *\n * - average render frequency (e.g. 60 fps)\n * - exact engine delta time used for last update (e.g. 16.66ms)\n * - average engine execution duration (e.g. 5.00ms)\n * - average render execution duration (e.g. 0.40ms)\n * - average effective play speed (e.g. '1.00x' is 'real-time')\n *\n * Each value is recorded over a fixed sample of past frames (60 frames).\n *\n * A chart shown below each value indicates the variance from the average over the sample.\n * The more stable or fixed the value is the flatter the chart will appear.\n *\n * @property options.showPerformance\n * @type boolean\n * @default false\n */\n \n /**\n * A flag to enable or disable rendering entirely.\n *\n * @property options.enabled\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to toggle wireframe rendering otherwise solid fill rendering is used.\n *\n * @property options.wireframes\n * @type boolean\n * @default true\n */\n\n /**\n * A flag to enable or disable sleeping bodies indicators.\n *\n * @property options.showSleeping\n * @type boolean\n * @default true\n */\n\n /**\n * A flag to enable or disable the debug information overlay.\n *\n * @property options.showDebug\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the collision broadphase debug overlay.\n *\n * @deprecated no longer implemented\n * @property options.showBroadphase\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body bounds debug overlay.\n *\n * @property options.showBounds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body velocity debug overlay.\n *\n * @property options.showVelocity\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body collisions debug overlay.\n *\n * @property options.showCollisions\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the collision resolver separations debug overlay.\n *\n * @property options.showSeparations\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body axes debug overlay.\n *\n * @property options.showAxes\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body positions debug overlay.\n *\n * @property options.showPositions\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body angle debug overlay.\n *\n * @property options.showAngleIndicator\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body and part ids debug overlay.\n *\n * @property options.showIds\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body vertex numbers debug overlay.\n *\n * @property options.showVertexNumbers\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body convex hulls debug overlay.\n *\n * @property options.showConvexHulls\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the body internal edges debug overlay.\n *\n * @property options.showInternalEdges\n * @type boolean\n * @default false\n */\n\n /**\n * A flag to enable or disable the mouse position debug overlay.\n *\n * @property options.showMousePosition\n * @type boolean\n * @default false\n */\n\n})();\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Runner` module is an optional utility which provides a game loop, \n* that handles continuously updating a `Matter.Engine` for you within a browser.\n* It is intended for development and debugging purposes, but may also be suitable for simple games.\n* If you are using your own game loop instead, then you do not need the `Matter.Runner` module.\n* Instead just call `Engine.update(engine, delta)` in your own loop.\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Runner\n*/\n\nvar Runner = {};\n\nmodule.exports = Runner;\n\nvar Events = __webpack_require__(5);\nvar Engine = __webpack_require__(17);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n var _requestAnimationFrame,\n _cancelAnimationFrame;\n\n if (typeof window !== 'undefined') {\n _requestAnimationFrame = window.requestAnimationFrame || window.webkitRequestAnimationFrame\n || window.mozRequestAnimationFrame || window.msRequestAnimationFrame;\n \n _cancelAnimationFrame = window.cancelAnimationFrame || window.mozCancelAnimationFrame \n || window.webkitCancelAnimationFrame || window.msCancelAnimationFrame;\n }\n\n if (!_requestAnimationFrame) {\n var _frameTimeout;\n\n _requestAnimationFrame = function(callback){ \n _frameTimeout = setTimeout(function() { \n callback(Common.now()); \n }, 1000 / 60);\n };\n\n _cancelAnimationFrame = function() {\n clearTimeout(_frameTimeout);\n };\n }\n\n /**\n * Creates a new Runner. The options parameter is an object that specifies any properties you wish to override the defaults.\n * @method create\n * @param {} options\n */\n Runner.create = function(options) {\n var defaults = {\n fps: 60,\n deltaSampleSize: 60,\n counterTimestamp: 0,\n frameCounter: 0,\n deltaHistory: [],\n timePrev: null,\n frameRequestId: null,\n isFixed: false,\n enabled: true\n };\n\n var runner = Common.extend(defaults, options);\n\n runner.delta = runner.delta || 1000 / runner.fps;\n runner.deltaMin = runner.deltaMin || 1000 / runner.fps;\n runner.deltaMax = runner.deltaMax || 1000 / (runner.fps * 0.5);\n runner.fps = 1000 / runner.delta;\n\n return runner;\n };\n\n /**\n * Continuously ticks a `Matter.Engine` by calling `Runner.tick` on the `requestAnimationFrame` event.\n * @method run\n * @param {engine} engine\n */\n Runner.run = function(runner, engine) {\n // create runner if engine is first argument\n if (typeof runner.positionIterations !== 'undefined') {\n engine = runner;\n runner = Runner.create();\n }\n\n (function run(time){\n runner.frameRequestId = _requestAnimationFrame(run);\n\n if (time && runner.enabled) {\n Runner.tick(runner, engine, time);\n }\n })();\n\n return runner;\n };\n\n /**\n * A game loop utility that updates the engine and renderer by one step (a 'tick').\n * Features delta smoothing, time correction and fixed or dynamic timing.\n * Consider just `Engine.update(engine, delta)` if you're using your own loop.\n * @method tick\n * @param {runner} runner\n * @param {engine} engine\n * @param {number} time\n */\n Runner.tick = function(runner, engine, time) {\n var timing = engine.timing,\n delta;\n\n if (runner.isFixed) {\n // fixed timestep\n delta = runner.delta;\n } else {\n // dynamic timestep based on wall clock between calls\n delta = (time - runner.timePrev) || runner.delta;\n runner.timePrev = time;\n\n // optimistically filter delta over a few frames, to improve stability\n runner.deltaHistory.push(delta);\n runner.deltaHistory = runner.deltaHistory.slice(-runner.deltaSampleSize);\n delta = Math.min.apply(null, runner.deltaHistory);\n\n // limit delta\n delta = delta < runner.deltaMin ? runner.deltaMin : delta;\n delta = delta > runner.deltaMax ? runner.deltaMax : delta;\n\n // update engine timing object\n runner.delta = delta;\n }\n\n // create an event object\n var event = {\n timestamp: timing.timestamp\n };\n\n Events.trigger(runner, 'beforeTick', event);\n\n // fps counter\n runner.frameCounter += 1;\n if (time - runner.counterTimestamp >= 1000) {\n runner.fps = runner.frameCounter * ((time - runner.counterTimestamp) / 1000);\n runner.counterTimestamp = time;\n runner.frameCounter = 0;\n }\n\n Events.trigger(runner, 'tick', event);\n\n // update\n Events.trigger(runner, 'beforeUpdate', event);\n\n Engine.update(engine, delta);\n\n Events.trigger(runner, 'afterUpdate', event);\n\n Events.trigger(runner, 'afterTick', event);\n };\n\n /**\n * Ends execution of `Runner.run` on the given `runner`, by canceling the animation frame request event loop.\n * If you wish to only temporarily pause the engine, see `engine.enabled` instead.\n * @method stop\n * @param {runner} runner\n */\n Runner.stop = function(runner) {\n _cancelAnimationFrame(runner.frameRequestId);\n };\n\n /**\n * Alias for `Runner.run`.\n * @method start\n * @param {runner} runner\n * @param {engine} engine\n */\n Runner.start = function(runner, engine) {\n Runner.run(runner, engine);\n };\n\n /*\n *\n * Events Documentation\n *\n */\n\n /**\n * Fired at the start of a tick, before any updates to the engine or timing\n *\n * @event beforeTick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after engine timing updated, but just before update\n *\n * @event tick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired at the end of a tick, after engine update and after rendering\n *\n * @event afterTick\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired before update\n *\n * @event beforeUpdate\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /**\n * Fired after update\n *\n * @event afterUpdate\n * @param {} event An event object\n * @param {number} event.timestamp The engine.timing.timestamp of the event\n * @param {} event.source The source object of the event\n * @param {} event.name The name of the event\n */\n\n /*\n *\n * Properties Documentation\n *\n */\n\n /**\n * A flag that specifies whether the runner is running or not.\n *\n * @property enabled\n * @type boolean\n * @default true\n */\n\n /**\n * A `Boolean` that specifies if the runner should use a fixed timestep (otherwise it is variable).\n * If timing is fixed, then the apparent simulation speed will change depending on the frame rate (but behaviour will be deterministic).\n * If the timing is variable, then the apparent simulation speed will be constant (approximately, but at the cost of determininism).\n *\n * @property isFixed\n * @type boolean\n * @default false\n */\n\n /**\n * A `Number` that specifies the time step between updates in milliseconds.\n * If `engine.timing.isFixed` is set to `true`, then `delta` is fixed.\n * If it is `false`, then `delta` can dynamically change to maintain the correct apparent simulation speed.\n *\n * @property delta\n * @type number\n * @default 1000 / 60\n */\n\n})();\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Collision`.\n*\n* All usage should be migrated to `Matter.Collision`.\n* For back-compatibility purposes this module will remain for a short term and then later removed in a future release.\n*\n* The `Matter.SAT` module contains methods for detecting collisions using the Separating Axis Theorem.\n*\n* @class SAT\n* @deprecated\n*/\n\nvar SAT = {};\n\nmodule.exports = SAT;\n\nvar Collision = __webpack_require__(8);\nvar Common = __webpack_require__(0);\nvar deprecated = Common.deprecated;\n\n(function() {\n\n /**\n * Detect collision between two bodies using the Separating Axis Theorem.\n * @deprecated replaced by Collision.collides\n * @method collides\n * @param {body} bodyA\n * @param {body} bodyB\n * @return {collision} collision\n */\n SAT.collides = function(bodyA, bodyB) {\n return Collision.collides(bodyA, bodyB);\n };\n\n deprecated(SAT, 'collides', 'SAT.collides ➤ replaced by Collision.collides');\n\n})();\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* The `Matter.Svg` module contains methods for converting SVG images into an array of vector points.\n*\n* To use this module you also need the SVGPathSeg polyfill: https://github.com/progers/pathseg\n*\n* See the included usage [examples](https://github.com/liabru/matter-js/tree/master/examples).\n*\n* @class Svg\n*/\n\nvar Svg = {};\n\nmodule.exports = Svg;\n\nvar Bounds = __webpack_require__(1);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * Converts an SVG path into an array of vector points.\n * If the input path forms a concave shape, you must decompose the result into convex parts before use.\n * See `Bodies.fromVertices` which provides support for this.\n * Note that this function is not guaranteed to support complex paths (such as those with holes).\n * You must load the `pathseg.js` polyfill on newer browsers.\n * @method pathToVertices\n * @param {SVGPathElement} path\n * @param {Number} [sampleLength=15]\n * @return {Vector[]} points\n */\n Svg.pathToVertices = function(path, sampleLength) {\n if (typeof window !== 'undefined' && !('SVGPathSeg' in window)) {\n Common.warn('Svg.pathToVertices: SVGPathSeg not defined, a polyfill is required.');\n }\n\n // https://github.com/wout/svg.topoly.js/blob/master/svg.topoly.js\n var i, il, total, point, segment, segments, \n segmentsQueue, lastSegment, \n lastPoint, segmentIndex, points = [],\n lx, ly, length = 0, x = 0, y = 0;\n\n sampleLength = sampleLength || 15;\n\n var addPoint = function(px, py, pathSegType) {\n // all odd-numbered path types are relative except PATHSEG_CLOSEPATH (1)\n var isRelative = pathSegType % 2 === 1 && pathSegType > 1;\n\n // when the last point doesn't equal the current point add the current point\n if (!lastPoint || px != lastPoint.x || py != lastPoint.y) {\n if (lastPoint && isRelative) {\n lx = lastPoint.x;\n ly = lastPoint.y;\n } else {\n lx = 0;\n ly = 0;\n }\n\n var point = {\n x: lx + px,\n y: ly + py\n };\n\n // set last point\n if (isRelative || !lastPoint) {\n lastPoint = point;\n }\n\n points.push(point);\n\n x = lx + px;\n y = ly + py;\n }\n };\n\n var addSegmentPoint = function(segment) {\n var segType = segment.pathSegTypeAsLetter.toUpperCase();\n\n // skip path ends\n if (segType === 'Z') \n return;\n\n // map segment to x and y\n switch (segType) {\n\n case 'M':\n case 'L':\n case 'T':\n case 'C':\n case 'S':\n case 'Q':\n x = segment.x;\n y = segment.y;\n break;\n case 'H':\n x = segment.x;\n break;\n case 'V':\n y = segment.y;\n break;\n }\n\n addPoint(x, y, segment.pathSegType);\n };\n\n // ensure path is absolute\n Svg._svgPathToAbsolute(path);\n\n // get total length\n total = path.getTotalLength();\n\n // queue segments\n segments = [];\n for (i = 0; i < path.pathSegList.numberOfItems; i += 1)\n segments.push(path.pathSegList.getItem(i));\n\n segmentsQueue = segments.concat();\n\n // sample through path\n while (length < total) {\n // get segment at position\n segmentIndex = path.getPathSegAtLength(length);\n segment = segments[segmentIndex];\n\n // new segment\n if (segment != lastSegment) {\n while (segmentsQueue.length && segmentsQueue[0] != segment)\n addSegmentPoint(segmentsQueue.shift());\n\n lastSegment = segment;\n }\n\n // add points in between when curving\n // TODO: adaptive sampling\n switch (segment.pathSegTypeAsLetter.toUpperCase()) {\n\n case 'C':\n case 'T':\n case 'S':\n case 'Q':\n case 'A':\n point = path.getPointAtLength(length);\n addPoint(point.x, point.y, 0);\n break;\n\n }\n\n // increment by sample value\n length += sampleLength;\n }\n\n // add remaining segments not passed by sampling\n for (i = 0, il = segmentsQueue.length; i < il; ++i)\n addSegmentPoint(segmentsQueue[i]);\n\n return points;\n };\n\n Svg._svgPathToAbsolute = function(path) {\n // http://phrogz.net/convert-svg-path-to-all-absolute-commands\n // Copyright (c) Gavin Kistner\n // http://phrogz.net/js/_ReuseLicense.txt\n // Modifications: tidy formatting and naming\n var x0, y0, x1, y1, x2, y2, segs = path.pathSegList,\n x = 0, y = 0, len = segs.numberOfItems;\n\n for (var i = 0; i < len; ++i) {\n var seg = segs.getItem(i),\n segType = seg.pathSegTypeAsLetter;\n\n if (/[MLHVCSQTA]/.test(segType)) {\n if ('x' in seg) x = seg.x;\n if ('y' in seg) y = seg.y;\n } else {\n if ('x1' in seg) x1 = x + seg.x1;\n if ('x2' in seg) x2 = x + seg.x2;\n if ('y1' in seg) y1 = y + seg.y1;\n if ('y2' in seg) y2 = y + seg.y2;\n if ('x' in seg) x += seg.x;\n if ('y' in seg) y += seg.y;\n\n switch (segType) {\n\n case 'm':\n segs.replaceItem(path.createSVGPathSegMovetoAbs(x, y), i);\n break;\n case 'l':\n segs.replaceItem(path.createSVGPathSegLinetoAbs(x, y), i);\n break;\n case 'h':\n segs.replaceItem(path.createSVGPathSegLinetoHorizontalAbs(x), i);\n break;\n case 'v':\n segs.replaceItem(path.createSVGPathSegLinetoVerticalAbs(y), i);\n break;\n case 'c':\n segs.replaceItem(path.createSVGPathSegCurvetoCubicAbs(x, y, x1, y1, x2, y2), i);\n break;\n case 's':\n segs.replaceItem(path.createSVGPathSegCurvetoCubicSmoothAbs(x, y, x2, y2), i);\n break;\n case 'q':\n segs.replaceItem(path.createSVGPathSegCurvetoQuadraticAbs(x, y, x1, y1), i);\n break;\n case 't':\n segs.replaceItem(path.createSVGPathSegCurvetoQuadraticSmoothAbs(x, y), i);\n break;\n case 'a':\n segs.replaceItem(path.createSVGPathSegArcAbs(x, y, seg.r1, seg.r2, seg.angle, seg.largeArcFlag, seg.sweepFlag), i);\n break;\n case 'z':\n case 'Z':\n x = x0;\n y = y0;\n break;\n\n }\n }\n\n if (segType == 'M' || segType == 'm') {\n x0 = x;\n y0 = y;\n }\n }\n };\n\n})();\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/**\n* This module has now been replaced by `Matter.Composite`.\n*\n* All usage should be migrated to the equivalent functions found on `Matter.Composite`.\n* For example `World.add(world, body)` now becomes `Composite.add(world, body)`.\n*\n* The property `world.gravity` has been moved to `engine.gravity`.\n*\n* For back-compatibility purposes this module will remain as a direct alias to `Matter.Composite` in the short term during migration.\n* Eventually this alias module will be marked as deprecated and then later removed in a future release.\n*\n* @class World\n*/\n\nvar World = {};\n\nmodule.exports = World;\n\nvar Composite = __webpack_require__(6);\nvar Common = __webpack_require__(0);\n\n(function() {\n\n /**\n * See above, aliases for back compatibility only\n */\n World.create = Composite.create;\n World.add = Composite.add;\n World.remove = Composite.remove;\n World.clear = Composite.clear;\n World.addComposite = Composite.addComposite;\n World.addBody = Composite.addBody;\n World.addConstraint = Composite.addConstraint;\n\n})();\n\n\n/***/ })\n/******/ ]);\n});","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAxYSURBVHgB7Z1/bFPXFcdPnGgBWmIHqkCBhHQijGpQooG2DNRhoFIJYy0//mgq8SOb1DKtrMAYaIA2gqqOrq0oQUQaYVoBFRGkDYqKoKtWYmBAO5Uu/Ji6NWgkBDqGBosTFhokw8735T7PP+59frbftR3HH+nxnv2ubfL18bnnnXvveXmUYZSXl1cGAoHKvLy8yfzQw1ul2JtbKJ3YuG0b9g8ePDjPW0t+fn4b00IZRB6lGRbWe//+/RkslpdFMkV1BH5PH4R3uVyHWXgfpZG0CC3EfZYPa8lBYWPQxpuPRd+TDtFTJjSL62FxV/LhKkqduCra2NI3s4vxwcdQCtAudIYJLGM3W/lm3YJrE7ofCBzJNha8XpfgWoQuKyuDwHWUgMCDhhZR6ZRvkvvR0VQyfoKxxwaKRo0Oa9vb3U3+f14T++t08/O/8faZsf+yu4sSwHApHR0du8lhHBWarbic/6Nv8+aN53VlLGzFjNm8PRUlZqKYgl86coiunvtzXK9FtMLb9520bseEjteKTXEnzltIhUOHkk5g7R0sdpyiI0bffPXq1W3kAEkLLXzxJurzxTGp8D5FU2uWGu4hHcDSP9m/1xDdJttY7NWUJEkJDVfBIuN/XBmrLQSetXo9uR1yDckCKz/duMOu4G3cUc5MxpUkLLQQuRmHVu3gIqa/sCJtFhwLCN70w6Xk/+J6rKZJiZ2Q0MhHCEsuV7VB9DDthZdo6vPLqD8A6z69a0esZhB7QSJ5lLiFFiLDkpWdHsKxml/vzRg3YReb1t0pLDsusfPjaSzcxTE+HKlqM3HeAlr4ZgM99Mgj1N/Ar3ASR0GB3nv0xaXzymYcvs4pLi4+3MmQTWwLbccnwxfPXrOBCgoLqb+C//tj0540jjs+VYaCHhZ7fjxi2xa6qKjoL2Qh8qyfrKeq2hcpW0AnPojj+ytn/6RqArG9LPYB1vrLGG9nT2i+GHmLd3NU5+du2kKVi2oo2xg1qdLoZ1pPfKhqMpLFHuT3+/8Q461iCx1yxScFlpyNIpuUjH88lmVXud1u1tr/kdX7WAotchdNfDhIdh4+OZvchQpYNrDw2VXChSj9taXQ/E0hVp4gOze1ZhnN+PEaSgZfYwOd2vsb+k/HVRpaMoKGuPVlU3u6OunTQ7+jy2dOJfRZ8NldIkMoAYZYyVa9R/V6ZRxdWlpayxmst2XnECfX7ns3qWRQ/YI51HrmZPDx8NKx9LPjZ2lwkfNi3+pop+38edibLN6+k6qeW0LxgHTs7sXzreLs1aoklEv2JFwGi7yJFOBiJBmRLxx7L0xkABGadzaQDo698cswkcHvf76O4gV/M/52xNsKNiHJJjshFVqMjJTLzsEvJ3vFd+2vF6TP37rWTjqI/FLBXb8/Snw74Nc8nVMLCpDJlGYxo4SGNZMi5Wl8yIsrKFkqxAVBJOMVzyfLsLKx0ueHuN2UCFM4f1OmTpKtlFl1lNAitywFPxsnqJj2HZoZ8YVVPbeYvhWnz7TL3J9ukDy3Man+AL9sBVKrDusMxWX2FdmrkcPAhYmT4CfdylEALBzi6wRu4tibr1IPu4zJ1fMc+VIPrV1Brb4/yk4h8fQYJ56C4V6Y0FaRxvLDH6YtG4fQ7PLpU3Sbw0AcmwwfM9ZwC6MnTqIhRfpCQxXI9u18ZrbqNIbB6swHBaFnVJEGrDmVIkPMi0eP0OdnTxoC2+m0IPRg9rnDOEysqoEbWky6QZ+FkSOFVYddUQctWkzTapa9onbfIeNSVDcQ2MchHi5kQi03ERCXv3zofWOvEwz67ucctgyRt/YZx+aTLLJ0KAS9aypEhtX+ata36Sj8aJIim+/32uwquqbOKzsChuhUEQhrOt88Do06vLLGcBupYFdtTUJxrRWIlesXztEuNqZNKAgaryE03AYpLlBKv6F/UPXjA+9oEwNi6/gSQ8HcFAUeoW1fZxhq4qHgJ5GKTvDoG6/GbFM+spC8lQ/T2BFfMR533glQ+7/uUduNe9RyucfytRD5nZeX00r22TrApTm0kk3OYW29vPMZQmN2PadDoxqlwm3AmlXWtuzp4fTsdLchsOdh69Q5BD982k+rG65JzyNmv8u+f7CmMBDuQyY0azvD2OMfTu4/kL1YR7QB63UiqjCpHDeYfrturLEHu9+/TT94Xf7FLdneqC3ss4ipOzmeLnZh+oDsbCFnqJwWGRkzp6IKk5bLd3mUp9WwaFA7ZxitXFQibauzU0RMrcjqwU9XugKBQLns7IjxE8hpmhtjTlBJCPhruA2TycK6I+np8pNOVGEeFj+52IdILbqkQn/s7CQQ26RY4c8RgeikaKQ8cIDGLrHMLIqSrzlv0U9Uf490sezpYcFjX8sdaZvhpWWkEwvN3Iijpd2wOcveSZbUNxp5CCdBNHLwla9y+NcX9vVFH/I+YMzEJ0gnKs1g0QUc1pXLTuqYHI6kz2IWG5sJfs6/mPq4EXpFgrDu+NYKsgtEDu0YIxmnORWrWq3AGnsKWG2PLIZ2PzqGUgHEn7n8JelFC1zAsGcuGNYKy0Un53moIHjRYnL+Hz10nqMPRCChvjqUMV+frD3BZIEHFi11HbqXO4Qyk0crMDArs2oIBwGByvfa+ozlPyLdWLhbj4syAFj1d9dtIF1g2ErXMJldMkJo4MWsJw1iQOS5azdSuimgDAKTWmDdTlzYYMSleu2GqEHgdIHOsFPmpzEbJx1jhIteeZ3DsEn00YF9dP3ihbgv1yHwuOlPGu+T6s4PM5kUdKIzxF+SUUuI4U9Nn4rM3m3eEAZij0k2PRFXeJifgYFahG+6Y2UrsIpXQSdch9RkMKEvE9agwCrTGJbFhcqiUbgFnaE0pYW0X474UGnGXsMPoaUWffPv0umpOSyw0KzFhVI4sjP+GzmLjpebrZ9Jn3e5XC2u/Px8qdDxVgTIQapJ6qDNhYWJCPEiz/R2d9lZtptDgMX8qhoh0Ni8MpRadesJ6VSnHBJU1ozaH9gbQrOfPiFrdFm97CtHBKoqCajFh70hNDtrn6wR/LTF1U4OAcI6VZ/G2r5r7PEPJuLJ/DS4eOQg5bCmQyEyLlSiJjmyiUuXbuXcR2ws3IbPPA4KbZp4JPhJdORCPSWINizcRtB4g0JbuY9PmpxZu5KNnNsv1ybUbYCwxD+ber3sRZjRnoupo0EneFHhNljozaGPw4RmU9+msurjbzm7UCgbOGM9QOELfRAmNFYRWVl1zlf/HytrZnZHFrmKGjO0smobxZ0GDE2KdSsARWUjn4uapIZqKm63G7MEvZHn8C0WFg2lUROl0/UGDDC4Vp8y7K1vb29vinxSOgpuadWNDQO6YzQLE8owRlJYO9k5qdDCV2+WnUNWDz+bgXhpjr/ZymUg0lAVIFSuV0DpGo/H4yXJIqLeO93Uc+vfxmLGgcTJhq105ewp6Tlk6dhlKGuYWi4MKS4uRlavliSlfoy0YB5ZrfLPKuCXP96zS3oObpa36oRL/eCF3DH2kqJCGMK9gdA5nmvaQyd2bLVqsp6t2XLJV8wqYXAhLHYxH1bJzqN6FqYlpGJ1bTpAwuiDLXVWTepDF9ersFX3jl0ISo3BqqWlMlEXLhstG5ZsJTKiDBa5mmxgS2jE1iw2iuhh4ad0VpNRFy6LfDZ8spW7gMi8zXS8ZCbeELU4yUJs+GxEJLDs/lqfFCHcB6/VKbNywBQ5nlrSCZU15hi7WTWBHWRzWWMRYegtawzYsG8INwKfLRUbVn0OOex+5Ergj9/buIb+y9cHKoQlV6ekULeJKKfZrFpsZJLp1g13B38ca8JQIu4i7PWUBHbFBpPmLaBpDtTMcwq4ieNbt6jK9ITBAmOS0YK03EwhlLKyMiRSVtppC8GnPL80bXE3LBhDc3YEFtRzoqgutOJXIjh5w5tVKH5l1UmGtWffjTIVKLyi28oRSVw6ctCI9+3OKRQrITLnhjehJHMLJ4iOe2M5ZeldHDlgSls84ppk9C2cQkH9PP65bbLjuyMZZJSv6BPcvCkZ1jxigWnk2scuEYbB35o3JTNv15TITcmctuKw9yZNiKqQq8im704nQmD44m3J+mLlZ5BmhOB1FFIxK1NIhcDBz6IUAcEDgYA3UZfiJKkUOPiZlAZE1UjUQZ2RKtGFuHsw9S2rb+6rQog+X1Qq85JDiMHlFsz9xrTktoF4u2orRDEt+PXgTdhh9aLcRViMLqy0U+yRf/CLG7C3tGXYDdj/BxKq6bwOzJCbAAAAAElFTkSuQmCC\"","export default \"__VITE_ASSET__CPFU07EA__\"","export default \"__VITE_ASSET__DqiIF01J__\"","export default \"__VITE_ASSET__BOvaN_Iw__\"","export default \"__VITE_ASSET__Dk8IVEH0__\"","export default \"__VITE_ASSET__C8JjYMqj__\"","export default \"__VITE_ASSET__CnCLtfhY__\"","export default \"__VITE_ASSET__Uej79w95__\"","export default \"__VITE_ASSET__D3o19kcX__\"","export default \"__VITE_ASSET__DTYQsqWc__\"","import b1 from '../../assets/block/1.png'\nimport b2 from '../../assets/block/2.png'\nimport b3 from '../../assets/block/3.png'\nimport b4 from '../../assets/block/4.png'\nimport b5 from '../../assets/block/5.png'\nimport b6 from '../../assets/block/6.png'\nimport b7 from '../../assets/block/7.png'\nimport b8 from '../../assets/block/8.png'\nimport b9 from '../../assets/block/9.png'\nimport b10 from '../../assets/block/10.png'\n\ntype Block = {\n size: number;\n color: string;\n score: number;\n};\n\nconst lineColor = '#1E1E1E'\n\nconst blocks: { [key: number]: Block } = {\n 1: {size: 30, color: '#94E9F6', score: 2},\n 2: {size: 40, color: '#97FFC6', score: 4},\n 3: {size: 55, color: '#FFB7E7', score: 6},\n 4: {size: 70, color: '#FFC8B7', score: 8},\n 5: {size: 90, color: '#FFDB98', score: 16},\n 6: {size: 110, color: '#60C7FF', score: 32},\n 7: {size: 125, color: '#43F091', score: 64},\n 8: {size: 140, color: '#FF8FDA', score: 128},\n 9: {size: 150, color: '#FF9A7A', score: 256},\n 10: {size: 160, color: '#FFC964', score: 512},\n}\n\n// const blocks: { [key: number]: Block } = {\n// 1: { size: 26, color: '#FFB7E7', score: 2},\n// 2: { size: 40, color: '#FFC8B7', score: 4},\n// 3: { size: 54, color: '#FFDB98', score: 6},\n// 4: { size: 90, color: '#97FFC6', score: 8},\n// 5: { size: 100, color: '#94E9F6', score: 16},\n// 6: { size: 120, color: '#FF8FDA', score: 32},\n// 7: { size: 140, color: '#FF9A7A', score: 64},\n// 8: { size: 160, color: '#FFC964', score: 128},\n// 9: { size: 160, color: '#43F091', score: 256},\n// 10: { size: 200, color: '#60C7FF', score: 512},\n// };\n\nexport {lineColor, blocks}\n\nexport const Background: { [key: number]: string } = {\n 1: b1,\n 2: b2,\n 3: b3,\n 4: b4,\n 5: b5,\n 6: b6,\n 7: b7,\n 8: b8,\n 9: b9,\n 10: b10\n}\n","import {Bodies} from 'matter-js'\nimport {Background, blocks, lineColor} from '../pages/play/setting.ts'\n\nexport const createBlock = (index: number, x: number, y: number, ratio: number, isStatic: boolean = false) => {\n const block = blocks[index]\n const background = Background[index]\n const circle = Bodies.circle(x, y, block.size * ratio / 2, {\n isStatic,\n label: String(index),\n render: {\n fillStyle: block.color,\n lineWidth: 8,\n strokeStyle: lineColor,\n sprite: {\n texture: background,\n xScale: 1 / 3 * ratio,\n yScale: 1 / 3 * ratio,\n }\n }\n })\n return circle\n}\n","/*\n * @param count 몇 번째 블럭인지\n */\nexport const getBlockIndex = (count: number) => {\n // const _count = count > 6 ? 6 : count\n console.log(count)\n // return Math.floor(Math.random() * (_count - 1)) + 1 // 1 ~ count\n return 9\n}\n","const RATIO = 560 / 360\n\nexport const getDynamicCanvasHeight = (width: number) => {\n return width * RATIO\n}\n","import {Bodies, Composite, World} from 'matter-js'\n\nexport const setField = (world: World, width: number, height: number) => {\n const bottom = Bodies.rectangle(width / 2, height, width, 30, {\n isStatic: true,\n restitution: 1,\n render: {fillStyle: '#81685A'}\n })\n const left = Bodies.rectangle(0, height / 2, 1, height, {\n isStatic: true,\n render: {fillStyle: '#FFFFFF'}\n })\n const right = Bodies.rectangle(width, height / 2, 1, height, {\n isStatic: true,\n render: {fillStyle: '#FFFFFF'}\n })\n const line = Bodies.rectangle(width / 2, 120, width, 2, {\n isStatic: true,\n isSensor: true,\n label: 'line',\n render: {fillStyle: '#FF6C6C'}\n })\n Composite.add(world, [line, bottom, left, right])\n}\n","import {ref} from 'vue'\n\nexport const useTimer = (limit: number, callback: () => void) => {\n const count = ref(undefined)\n let interval: undefined | number = undefined\n\n const clear = () => {\n if (interval) {\n clearInterval(interval)\n interval = undefined\n }\n }\n\n const start = () => {\n count.value = limit\n if (interval) {\n return\n }\n interval = setInterval(() => {\n if (count.value) {\n count.value = count.value - 1\n }\n if (count.value === 0) {\n clear()\n callback()\n }\n }, 1000)\n }\n\n const reset = () => {\n count.value = undefined\n clear()\n }\n\n return {count, reset, start}\n}\n","import {Body, Engine, Events, Render, Runner, World} from 'matter-js'\nimport {blocks} from '../pages/play/setting.ts'\nimport {createBlock, getBlockIndex, getDynamicCanvasHeight, setField} from '../utils'\nimport {onMounted, Ref, ref} from 'vue'\nimport {useTimer} from './use-timer.ts'\n\nexport const usePlayer = (\n element: Ref,\n) => {\n const engine = Engine.create(\n {\n gravity: {x: 0, y: 0.4},\n timing: {timeScale: 1.5}\n })\n const runner = Runner.create()\n\n const collisions = new Set()\n\n let width = 0\n let height = 0\n let ratio = 1\n const groundHeightRef = ref(0)\n\n let isSetBlock: boolean = false\n let currentBlock: Body | undefined = undefined\n let totalBlockCount = 0\n let canvasOffsetX = 0\n\n const gameOverRef = ref(false)\n const nextBlockRef = ref(0)\n const scoreRef = ref(0)\n\n onMounted(() => {\n if (!element.value) {\n return\n }\n width = element.value.clientWidth\n height = getDynamicCanvasHeight(width)\n ratio = width / 380\n canvasOffsetX = element.value?.getBoundingClientRect().x\n groundHeightRef.value = element.value?.clientHeight - height\n setNextBlock()\n addBlock()\n\n const render = Render.create({\n canvas: element.value,\n engine,\n options: {\n wireframes: false,\n background: 'transparent',\n width,\n height,\n pixelRatio: window.devicePixelRatio\n }\n })\n\n setField(engine.world, width, height)\n Render.run(render)\n Runner.run(runner, engine)\n\n element.value.addEventListener('mousemove', (event: MouseEvent) => {\n onDrag(event.offsetX)\n })\n\n element.value.addEventListener('mouseup', () => {\n drop()\n })\n\n element.value.addEventListener('touchmove', (event: TouchEvent) => {\n const x = event.touches[0].clientX - canvasOffsetX\n if (element?.value?.clientWidth && x > 0 && x < element.value.clientWidth) {\n onDrag(x)\n }\n }, {passive: true})\n\n element.value.addEventListener('touchend', () => {\n drop()\n })\n })\n\n Events.on(engine, 'collisionStart', (event) => {\n event.pairs.forEach((collision) => {\n if (collision.bodyA.label === 'line' || collision.bodyB.label === 'line') {\n const circle = collision.bodyA.label === 'line' ? collision.bodyB.id : collision.bodyA.id\n addCollisions(circle)\n }\n\n if (collision.bodyA.label !== collision.bodyB.label) {\n return\n }\n\n if (collision.bodyA.label === 'removed' || collision.bodyB.label === 'removed') {\n return\n }\n\n const index = Number(collision.bodyA.label)\n if (index === 10) {\n return\n }\n\n collision.bodyA.label = 'removed'\n collision.bodyB.label = 'removed'\n\n scoreRef.value = scoreRef.value + (blocks[index].score)\n\n const newBlock = createBlock(index + 1, collision.collision.supports[0].x, collision.collision.supports[0].y, ratio)\n World.remove(engine.world, [collision.bodyA, collision.bodyB])\n World.add(engine.world, newBlock)\n }\n )\n })\n\n Events.on(engine, 'collisionEnd', (event) => {\n event.pairs.forEach((collision) => {\n if (collision.bodyA.label === 'line' || collision.bodyB.label === 'line') {\n const circle = collision.bodyA.label === 'line' ? collision.bodyB.id : collision.bodyA.id\n removeCollisions(circle)\n }\n })\n })\n\n const {start, reset} = useTimer(3, () => {\n endGame()\n })\n\n const setLineCollisionTimer = () => {\n if (collisions.size > 0) {\n start()\n return\n }\n reset()\n }\n\n const addCollisions = (id: number) => {\n collisions.add(id)\n setLineCollisionTimer()\n }\n\n const removeCollisions = (id: number) => {\n collisions.delete(id)\n setLineCollisionTimer()\n }\n\n const addBlock = () => {\n // currentBlockRef.value = createBlock(4, widthRef.value / 2, 60, ratioRef.value, true)\n currentBlock = createBlock(nextBlockRef.value, width / 2, 60, ratio, true)\n isSetBlock = false\n World.add(engine.world, currentBlock)\n setNextBlock()\n }\n\n const setNextBlock = () => {\n totalBlockCount += 1\n nextBlockRef.value = getBlockIndex(totalBlockCount)\n }\n\n const drop = () => {\n if (gameOverRef.value) {\n return\n }\n if (!currentBlock || isSetBlock) {\n return\n }\n isSetBlock = true\n Body.setStatic(currentBlock, false)\n setTimeout(() => {\n addBlock()\n }, 1000)\n }\n\n const onDrag = (x: number) => {\n if (gameOverRef.value) {\n return\n }\n if (!currentBlock || isSetBlock) {\n return\n }\n Body.setPosition(currentBlock, {x, y: 60})\n }\n\n const endGame = () => {\n gameOverRef.value = true\n }\n\n const replay = () => {\n scoreRef.value = 0\n\n collisions.clear()\n reset()\n\n gameOverRef.value = false\n\n totalBlockCount = 0\n\n World.clear(engine.world, false)\n setField(engine.world, width, height)\n\n setNextBlock()\n addBlock()\n }\n\n return {replay, nextBlockRef, groundHeightRef, gameOverRef, scoreRef}\n}\n","export default \"data:image/svg+xml,%3csvg%20width='38'%20height='32'%20viewBox='0%200%2038%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='white'%20stroke-width='8'%20stroke-linecap='round'/%3e%3cpath%20d='M14.9416%206.94592C12.047%2010.4626%208.42716%2013.1847%205.17204%2016.241C4.0279%2017.3153%206.42048%2018.7749%207.07496%2019.4372C9.04801%2021.4335%2011.3674%2022.9068%2013.6942%2024.289C14.0641%2024.5088%2014.7505%2024.6141%2014.9416%2025.054'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3cpath%20d='M5.27222%2016.1886C14.558%2016.1886%2023.8624%2016.3772%2033.1332%2016.3772'%20stroke='black'%20stroke-width='3'%20stroke-linecap='round'/%3e%3c/svg%3e\"","import {defineStore} from 'pinia'\nimport {ref} from 'vue'\n\nexport const useUserStore = defineStore('user', () => {\n const nickName = ref('')\n return {nickName}\n})\n","export default \"__VITE_ASSET__s2B8m4p$__\"","\n\n","export default \"__VITE_ASSET__B92Jurwa__\"","export default \"__VITE_ASSET__DRocghOK__\"","export default \"__VITE_ASSET__zi8jWbkq__\"","export default \"data:image/svg+xml,%3csvg%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%20style='fill:%20%23489B6D'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='inherit'%20d='M12%202C10.6868%202%209.38642%202.25866%208.17317%202.7612C6.95991%203.26375%205.85752%204.00035%204.92893%204.92893C3.05357%206.8043%202%209.34784%202%2012C2%2016.42%204.87%2020.17%208.84%2021.5C9.34%2021.58%209.5%2021.27%209.5%2021V19.31C6.73%2019.91%206.14%2017.97%206.14%2017.97C5.68%2016.81%205.03%2016.5%205.03%2016.5C4.12%2015.88%205.1%2015.9%205.1%2015.9C6.1%2015.97%206.63%2016.93%206.63%2016.93C7.5%2018.45%208.97%2018%209.54%2017.76C9.63%2017.11%209.89%2016.67%2010.17%2016.42C7.95%2016.17%205.62%2015.31%205.62%2011.5C5.62%2010.39%206%209.5%206.65%208.79C6.55%208.54%206.2%207.5%206.75%206.15C6.75%206.15%207.59%205.88%209.5%207.17C10.29%206.95%2011.15%206.84%2012%206.84C12.85%206.84%2013.71%206.95%2014.5%207.17C16.41%205.88%2017.25%206.15%2017.25%206.15C17.8%207.5%2017.45%208.54%2017.35%208.79C18%209.5%2018.38%2010.39%2018.38%2011.5C18.38%2015.32%2016.04%2016.16%2013.81%2016.41C14.17%2016.72%2014.5%2017.33%2014.5%2018.26V21C14.5%2021.27%2014.66%2021.59%2015.17%2021.5C19.14%2020.16%2022%2016.42%2022%2012C22%2010.6868%2021.7413%209.38642%2021.2388%208.17317C20.7362%206.95991%2019.9997%205.85752%2019.0711%204.92893C18.1425%204.00035%2017.0401%203.26375%2015.8268%202.7612C14.6136%202.25866%2013.3132%202%2012%202Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20width='55'%20height='22'%20viewBox='0%200%2055%2022'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M9.95809%201.72925C11.5932%201.69208%2014.0155%201.65407%2015.6513%201.65407C16.7795%201.65407%2017.9096%201.58814%2019.034%201.5156C20.3055%201.43357%2021.6106%201.51164%2022.8836%201.51164C24.1659%201.51164%2025.4435%201.44043%2026.7292%201.44043C29.9809%201.44043%2033.2319%201.48987%2036.4816%201.5789C39.2326%201.65427%2042.0226%201.66875%2044.6357%202.63526C46.4858%203.31952%2048.3613%203.90303%2050.0085%205.00117C50.9551%205.63226%2051.9846%206.40982%2052.6118%207.36708C53.3073%208.42859%2053.3821%209.8471%2053.1815%2011.0505C53.0459%2011.864%2052.6656%2012.6858%2052.3902%2013.4599C52.2596%2013.8272%2052.1021%2014.1492%2051.9155%2014.4886C51.6444%2014.9815%2051.3987%2015.481%2051.1203%2015.9683C50.7634%2016.5928%2050.2688%2017.343%2049.6603%2017.7486C49.2024%2018.0539%2048.6696%2018.2164%2048.1965%2018.4924C47.6444%2018.8145%2046.9121%2019.0579%2046.2974%2019.2283C44.8748%2019.6227%2043.4239%2019.8606%2041.9612%2020.0631C40.1719%2020.3109%2038.3583%2020.2411%2036.5568%2020.2411C34.9588%2020.2411%2033.3596%2020.2221%2031.7617%2020.2411C30.0172%2020.2619%2028.2692%2020.3716%2026.5234%2020.3836C25.5083%2020.3905%2024.5065%2020.6117%2023.4968%2020.7001C22.6192%2020.7769%2021.7303%2020.7396%2020.85%2020.7396C17.4521%2020.7396%2014.1614%2020.3402%2010.8404%2019.616C8.30368%2019.0629%205.74602%2018.2158%203.5448%2016.807C2.48459%2016.1285%201.81672%2015.0333%201.76838%2013.7764C1.65416%2010.8066%201.66275%207.85901%202.83265%205.08821C3.50052%203.50642%205.47022%202.78585%206.9275%202.19214C7.24625%202.06228%207.60611%202.04422%207.94429%201.99432C8.62044%201.89456%209.26937%201.7449%209.95809%201.72925Z'%20fill='%2366BE8B'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.909%2013.1409C23.2956%2013.1409%2024.6932%2013.1463%2025.7989%2012.1634C26.0518%2011.9385%2026.7028%2010.8607%2026.4884%2010.4971C26.202%2010.0113%2024.9009%2010.0517%2024.4714%2010.0416C23.9373%2010.0291%2023.2157%2010.1122%2022.7374%2010.4026C22.1385%2010.7663%2021.8001%2011.168%2021.7289%2011.9356C21.6569%2012.7131%2022.1321%2013.6008%2022.6294%2014.1185C23.2268%2014.7403%2024.2371%2015.4404%2025.1043%2015.4404C26.0964%2015.4404%2027.0415%2015.0405%2028.0217%2015.0405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M29.8217%2010.9404H34.3217'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M32.5217%208.24048C32.5029%208.57958%2032.4041%208.93656%2032.3417%209.27048C32.1679%2010.2009%2032.1066%2011.1439%2031.9817%2012.0805C31.8364%2013.1701%2031.6217%2014.3426%2031.6217%2015.4405'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M38.4458%2010.9404C37.8164%2011.0019%2037.2365%2012.1706%2037.133%2012.6759C37.003%2013.3111%2036.8827%2014.3195%2037.4143%2014.8389C37.877%2015.2909%2038.6357%2015.5034%2039.2845%2015.4242C39.7187%2015.3711%2040.5741%2014.6222%2040.7483%2014.2332C41.0389%2013.5843%2041.4228%2012.7137%2040.9567%2012.0397C40.797%2011.8088%2040.5748%2011.5565%2040.3212%2011.4188C40.1812%2011.3429%2039.9542%2011.2938%2039.8523%2011.1695C39.6835%2010.9633%2039.8716%2011.2288%2040.0451%2011.3527C40.5276%2011.6971%2040.9926%2012.051%2041.4672%2012.4062C41.9513%2012.7684%2042.4245%2013.1383%2042.9362%2013.4597C43.0899%2013.5561%2043.2193%2013.6302%2043.3217%2013.7803'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M12.9738%206.44043C12.9354%207.12336%2012.7347%207.78117%2012.7275%208.48097C12.7144%209.74646%2012.7275%2011.0127%2012.7275%2012.2783C12.7275%2013.1657%2013.0217%2015.8278%2013.0217%2014.9404C13.0217%2013.8437%2012.8802%2012.655%2013.5281%2011.731C14.1557%2010.8358%2015.5416%2010.9404%2016.5184%2010.9404C17.5439%2010.9404%2018.9647%2011.3184%2019.0092%2012.5485C19.0297%2013.115%2019.0692%2013.5833%2018.7081%2014.0418C18.1068%2014.8051%2016.9377%2014.8162%2016.0531%2015.0148C15.258%2015.1932%2014.4057%2015.4404%2013.5897%2015.4404'%20stroke='%23489B6D'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","\n\n","export const isOpen = () => {\n const targetTime = new Date('2024-03-18T19:00:00+09:00')\n const current = new Date()\n return current < targetTime\n}\n","\n\n","export default \"__VITE_ASSET__BPFe3XX8__\"","export default \"data:image/svg+xml,%3csvg%20width='10'%20height='15'%20viewBox='0%200%2010%2015'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M1.27295%201.38288C2.72656%201.38288%204.55953%201.24929%205.94683%201.67319C6.16152%201.73879%206.20919%202.32808%206.30971%202.48604C6.64759%203.01699%206.99995%203.63674%207.22417%204.22786C7.6944%205.46757%207.94133%206.84558%208.16765%208.14695C8.25945%208.67479%208.45796%209.35081%208.45796%209.87426'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M8.26127%2013.6484C8.16865%2013.66%208.08112%2013.7385%208%2013.7791'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__CSHWqX0d__\"","export default \"__VITE_ASSET__BJGFyllh__\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2252%2020.4625%2012.6416%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1535%2023.3097%2014.4184C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8567%2024.1704%2016.3618%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3163C24.847%2018.8784%2025%2019.4522%2025%2020.0444C25%2020.2445%2024.913%2020.1797%2024.811%2020.0909C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.69%2021.5281%2018.6961C21.1936%2018.7005%2021.1426%2019.2521%2021.0588%2019.5717C20.8524%2020.359%2020.7209%2021.1802%2020.5749%2021.9869C20.5277%2022.248%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6895C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8942%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.174%2019.77%2021.087%2019.7298%2021.0105C19.3458%2020.2799%2018.8508%2019.5357%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9285C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1548C9.88096%2022.2865%209.45315%2023.1384%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1806%207.75245%2020.1839C7.41864%2020.1896%207.06751%2020.2314%206.73911%2020.3027C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5791C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6721C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9953%205.5771%2019.7562%205.70916%2019.5097C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1055C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5371%2014.688%2012.2615C15.7635%2011.9854%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23FEBE31'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M11%207.4445C11.0533%206.00462%2013.0492%205.82818%2014.0803%206.11689C14.5781%206.25627%2014.9933%206.72901%2015.3491%207.0848C15.9737%207.70949%2016.1343%208.38864%2016.1208%209.25606C16.1081%2010.0653%2015.7485%2010.8814%2015.2183%2011.4796C14.8644%2011.8789%2014.4805%2012.2684%2014.0313%2012.5587C13.545%2012.8729%2012.8888%2013.2083%2012.3243%2013.3337C12.1671%2013.3686%2011.5016%2013.6629%2011.6409%2013.713C12.6555%2014.0783%2013.7368%2014.2927%2014.7735%2014.5861C15.3355%2014.7451%2015.8982%2014.8825%2016.4739%2014.9785'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__T4FWtk06__\"","export default \"data:image/svg+xml,%3csvg%20width='30'%20height='24'%20viewBox='0%200%2030%2024'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M17.9523%2012.1195C19.228%2012.2253%2020.4625%2012.6417%2021.7108%2012.9306C22.0394%2013.135%2023.0295%2014.1536%2023.3097%2014.4185C23.5114%2014.6091%2023.667%2015.0842%2023.779%2015.3535C23.9882%2015.8568%2024.1704%2016.3619%2024.3417%2016.8827C24.4938%2017.3451%2024.6064%2017.8337%2024.7176%2018.3164C24.847%2018.8784%2025%2019.4522%2025%2020.0445C25%2020.2446%2024.913%2020.1797%2024.811%2020.091C24.5898%2019.8983%2024.3084%2019.7653%2024.0739%2019.5898C23.6878%2019.3009%2023.2927%2018.9882%2022.8529%2018.8459C22.4128%2018.7035%2021.9792%2018.6901%2021.5281%2018.6961C21.1936%2018.7006%2021.1426%2019.2521%2021.0588%2019.5718C20.8524%2020.3591%2020.7209%2021.1802%2020.5749%2021.987C20.5277%2022.2481%2020.4344%2022.5284%2020.4047%2022.7877C20.3838%2022.9693%2020.3333%2022.7758%2020.3112%2022.6896C20.2542%2022.4667%2020.2547%2022.2091%2020.2136%2021.9792C20.2045%2021.9283%2020.152%2021.8943%2020.1389%2021.8371C20.0973%2021.656%2019.9094%2021.4295%2019.8336%2021.2559C19.7979%2021.1741%2019.77%2021.087%2019.7298%2021.0106C19.3458%2020.2799%2018.8508%2019.5358%2018.3219%2018.9647C17.8112%2018.4133%2017.2933%2017.8923%2016.6483%2017.6034C16.3144%2017.4539%2015.9995%2017.4714%2015.6557%2017.544C15.1017%2017.661%2014.5788%2017.7362%2014.0401%2017.9625C13.5311%2018.1763%2013.1384%2018.5573%2012.7029%2018.9286C12.2587%2019.3072%2011.9177%2019.8397%2011.5151%2020.2769C10.9813%2020.8567%2010.4662%2021.5129%209.98056%2022.1549C9.88096%2022.2865%209.45315%2023.1385%209.30153%2022.8084C9.07585%2022.3171%208.96183%2021.7772%208.76164%2021.2792C8.60038%2020.878%208.34855%2020.6347%208.10546%2020.3234C7.98165%2020.1649%207.94525%2020.1807%207.75245%2020.184C7.41864%2020.1896%207.06751%2020.2315%206.73911%2020.3028C6.31548%2020.3948%205.89118%2020.4825%205.46829%2020.5792C5.38217%2020.5988%204.95955%2020.7942%205.00315%2020.6722C5.05936%2020.5148%205.1982%2020.371%205.2814%2020.233C5.42469%2019.9954%205.5771%2019.7562%205.70916%2019.5098C6.09633%2018.7873%206.54696%2018.1437%206.98414%2017.4639C7.53131%2016.6131%208.08463%2015.794%208.76579%2015.1056C9.12478%2014.7427%209.44768%2014.3824%209.8705%2014.1291C10.3983%2013.813%2010.9356%2013.5604%2011.486%2013.3129C12.5165%2012.8495%2013.6143%2012.5372%2014.688%2012.2616C15.7635%2011.9855%2016.8618%2012.029%2017.9523%2012.1195Z'%20fill='%23FF6C6C'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M6.30398%205.26528C7.3951%203.02849%209.50869%201.93544%2011.75%201.21245C13.1062%200.760356%2015.0403%201.13897%2016.3868%201.34613C18.1543%201.61805%2019.7525%202.10126%2021.2488%203.14036C23.0882%204.4177%2024.9217%206.32895%2024.9217%208.69189C24.9217%209.75117%2024.9625%2010.7606%2024.6965%2011.7948C24.3577%2013.1125%2023.355%2013.6014%2022.4168%2014.4827C21.5374%2015.3087%2020.6009%2016.1021%2019.6868%2016.889C19.2995%2017.2224%2018.9615%2017.5345%2018.4625%2017.6771C17.5123%2017.9486%2016.5469%2018.057%2015.5495%2018.057H12.1299C11.0236%2018.057%2010.1368%2017.689%209.11845%2017.3253C6.7053%2016.4634%205.29077%2013.5717%205.29077%2011.1405C5.29077%209.1369%205.41116%207.09557%206.30398%205.26528Z'%20fill='%23D88F4B'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M16.2695%204.02986C16.5929%203.91073%2016.9281%204.10918%2017.213%204.23327C17.6196%204.41034%2018.0496%204.55569%2018.4465%204.74831C18.8956%204.96625%2019.3152%205.13373%2019.706%205.45812C19.9602%205.66913%2020.2597%205.87499%2020.4678%206.13329C20.7326%206.46213%2021.0826%206.74281%2021.2252%207.15472C21.3185%207.42436%2021.4892%207.63611%2021.4892%207.92511'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M21.8787%2010.496V10.8856'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cpath%20d='M19.668%2012.6527C18.6089%2012.6066%2017.5663%2012.389%2016.5097%2012.3135C14.7245%2012.186%2012.9339%2011.9495%2011.1389%2012.0646C11.1233%2012.0656%2010.5327%2012.1373%2010.5476%2012.0552C10.5843%2011.8534%2010.7626%2011.5724%2010.8495%2011.3862C11.4861%2010.0219%2012.3305%208.72783%2013.3264%207.59615C13.6097%207.27421%2013.8747%206.9252%2014.2039%206.64708C14.3214%206.54779%2014.6786%206.18033%2014.8387%206.18033C14.8687%206.18033%2014.8413%206.30049%2014.8387%206.31102C14.8005%206.46356%2014.793%206.61388%2014.8076%206.77155C14.8898%207.66205%2015.2584%208.51072%2015.3677%209.40405C15.4721%2010.2575%2015.5897%2011.1052%2015.6664%2011.9619C15.714%2012.4938%2015.8375%2013.0301%2015.8593%2013.5613C15.8791%2014.0425%2015.9713%2014.5257%2015.9713%2015.0051'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","\n\n","import {zaxios} from '../zaxios.ts'\n\nexport interface GetRankParams {\n pageNumber: number,\n dateTime: number,\n}\n\nexport interface RankItem {\n nickName: string,\n score: number,\n rank: number\n}\n\nexport interface GetRankResult {\n nextPageNumber: number\n rankList: RankItem[],\n totalCount: number\n}\n\nexport const getRank = async (params: GetRankParams): Promise => {\n const response = await zaxios.get('/rank', {\n params\n })\n return response.data\n}\n","import {useInfiniteQuery} from '@tanstack/vue-query'\nimport {getRank} from '../fetch/getRank.ts'\n\nexport const useGetInfiniteRank = () => {\n const date = Date.now()\n return useInfiniteQuery({\n queryKey: ['rank'],\n queryFn: ({pageParam}) => getRank({\n pageNumber: pageParam,\n dateTime: date\n }),\n initialPageParam: 0,\n getNextPageParam: (lastPage) => {\n return lastPage.nextPageNumber\n }\n })\n}\n","export default \"data:image/svg+xml,%3csvg%20width='49'%20height='49'%20viewBox='0%200%2049%2049'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20clip-path='url(%23clip0_694_3918)'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M24.5%2044C29.6717%2044%2034.6316%2041.9455%2038.2886%2038.2886C41.9455%2034.6316%2044%2029.6717%2044%2024.5C44%2019.3283%2041.9455%2014.3684%2038.2886%2010.7114C34.6316%207.05446%2029.6717%205%2024.5%205C19.3283%205%2014.3684%207.05446%2010.7114%2010.7114C7.05446%2014.3684%205%2019.3283%205%2024.5C5%2029.6717%207.05446%2034.6316%2010.7114%2038.2886C14.3684%2041.9455%2019.3283%2044%2024.5%2044ZM24.5%2048.5C30.8652%2048.5%2036.9697%2045.9714%2041.4706%2041.4706C45.9714%2036.9697%2048.5%2030.8652%2048.5%2024.5C48.5%2018.1348%2045.9714%2012.0303%2041.4706%207.52944C36.9697%203.02856%2030.8652%200.5%2024.5%200.5C18.1348%200.5%2012.0303%203.02856%207.52944%207.52944C3.02856%2012.0303%200.5%2018.1348%200.5%2024.5C0.5%2030.8652%203.02856%2036.9697%207.52944%2041.4706C12.0303%2045.9714%2018.1348%2048.5%2024.5%2048.5ZM27.5%2033.5C27.5%2034.2957%2027.1839%2035.0587%2026.6213%2035.6213C26.0587%2036.1839%2025.2956%2036.5%2024.5%2036.5C23.7044%2036.5%2022.9413%2036.1839%2022.3787%2035.6213C21.8161%2035.0587%2021.5%2034.2957%2021.5%2033.5C21.5%2032.7043%2021.8161%2031.9413%2022.3787%2031.3787C22.9413%2030.8161%2023.7044%2030.5%2024.5%2030.5C25.2956%2030.5%2026.0587%2030.8161%2026.6213%2031.3787C27.1839%2031.9413%2027.5%2032.7043%2027.5%2033.5ZM26.75%2014.75C26.75%2014.1533%2026.5129%2013.581%2026.091%2013.159C25.669%2012.7371%2025.0967%2012.5%2024.5%2012.5C23.9033%2012.5%2023.331%2012.7371%2022.909%2013.159C22.4871%2013.581%2022.25%2014.1533%2022.25%2014.75V25.25C22.25%2025.8467%2022.4871%2026.419%2022.909%2026.841C23.331%2027.2629%2023.9033%2027.5%2024.5%2027.5C25.0967%2027.5%2025.669%2027.2629%2026.091%2026.841C26.5129%2026.419%2026.75%2025.8467%2026.75%2025.25V14.75Z'%20fill='%23489B6D'/%3e%3c/g%3e%3cdefs%3e%3cclipPath%20id='clip0_694_3918'%3e%3crect%20width='48'%20height='48'%20fill='white'%20transform='translate(0.5%200.5)'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\"","\n\n","\n\n\n","export default \"__VITE_ASSET__DA6YS1b1__\"","export default \"data:image/svg+xml,%3csvg%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M8%2011.3335C8.18889%2011.3335%208.34733%2011.2695%208.47533%2011.1415C8.60333%2011.0135%208.66711%2010.8553%208.66667%2010.6668V8.00016C8.66667%207.81127%208.60267%207.65305%208.47467%207.5255C8.34667%207.39794%208.18844%207.33394%208%207.3335C7.81111%207.3335%207.65289%207.3975%207.52533%207.5255C7.39778%207.6535%207.33378%207.81172%207.33333%208.00016V10.6668C7.33333%2010.8557%207.39733%2011.0142%207.52533%2011.1422C7.65333%2011.2702%207.81155%2011.3339%208%2011.3335ZM8%206.00016C8.18889%206.00016%208.34733%205.93616%208.47533%205.80816C8.60333%205.68016%208.66711%205.52194%208.66667%205.3335C8.66667%205.14461%208.60267%204.98639%208.47467%204.85883C8.34667%204.73127%208.18844%204.66727%208%204.66683C7.81111%204.66683%207.65289%204.73083%207.52533%204.85883C7.39778%204.98683%207.33378%205.14505%207.33333%205.3335C7.33333%205.52239%207.39733%205.68083%207.52533%205.80883C7.65333%205.93683%207.81155%206.00061%208%206.00016ZM8%2014.6668C7.07778%2014.6668%206.21111%2014.4917%205.4%2014.1415C4.58889%2013.7913%203.88333%2013.3164%203.28333%2012.7168C2.68333%2012.1168%202.20844%2011.4113%201.85867%2010.6002C1.50889%209.78905%201.33378%208.92239%201.33333%208.00016C1.33333%207.07794%201.50844%206.21127%201.85867%205.40016C2.20889%204.58905%202.68378%203.8835%203.28333%203.2835C3.88333%202.6835%204.58889%202.20861%205.4%201.85883C6.21111%201.50905%207.07778%201.33394%208%201.3335C8.92222%201.3335%209.78889%201.50861%2010.6%201.85883C11.4111%202.20905%2012.1167%202.68394%2012.7167%203.2835C13.3167%203.8835%2013.7918%204.58905%2014.142%205.40016C14.4922%206.21127%2014.6671%207.07794%2014.6667%208.00016C14.6667%208.92239%2014.4916%209.78905%2014.1413%2010.6002C13.7911%2011.4113%2013.3162%2012.1168%2012.7167%2012.7168C12.1167%2013.3168%2011.4111%2013.7919%2010.6%2014.1422C9.78889%2014.4924%208.92222%2014.6673%208%2014.6668Z'%20fill='%23489B6D'/%3e%3c/svg%3e\"","export default \"__VITE_ASSET__vnfYKicM__\"","\n\n","export default \"__VITE_ASSET__D$fvcx4K__\"","\n\n","\n\n","import {createRouter, createWebHistory} from 'vue-router'\nimport PlayPage from '../pages/play/PlayPage.vue'\nimport HomePage from '../pages/home/HomePage.vue'\nimport RankPage from '../pages/rank/RankPage.vue'\nimport DevHomePage from '../event-pages/home/DevHomePage.vue'\n\nconst routes = [\n {\n path: '/',\n component: HomePage,\n },\n {\n path: '/play',\n component: PlayPage,\n },\n {\n path: '/rank',\n component: RankPage,\n },\n {\n path: '/dev',\n component: DevHomePage,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory('/'),\n routes,\n})\n\nexport default router\n","import {createApp} from 'vue'\nimport {createPinia} from 'pinia'\nimport {VueQueryPlugin} from '@tanstack/vue-query'\nimport './style.css'\nimport App from './App.vue'\nimport router from './router'\n\nconst pinia = createPinia()\nconst app = createApp(App)\n\napp.use(pinia)\napp.use(router)\napp.use(VueQueryPlugin)\napp.mount('#app')\n"],"names":["makeMap","str","expectsLowerCase","set","val","EMPTY_OBJ","EMPTY_ARR","NOOP","NO","isOn","key","isModelListener","extend","remove","arr","el","i","hasOwnProperty","hasOwn","isArray","isMap","toTypeString","isSet","isDate","isFunction","isString","isSymbol","isObject","isPromise","objectToString","value","toRawType","isPlainObject","isIntegerKey","isReservedProp","cacheStringFunction","fn","cache","camelizeRE","camelize","_","c","hyphenateRE","hyphenate","capitalize","toHandlerKey","hasChanged","oldValue","invokeArrayFns","fns","arg","def","obj","looseToNumber","n","_globalThis","getGlobalThis","normalizeStyle","res","item","normalized","parseStringStyle","listDelimiterRE","propertyDelimiterRE","styleCommentRE","cssText","ret","tmp","normalizeClass","name","specialBooleanAttrs","isSpecialBooleanAttr","includeBooleanAttr","looseCompareArrays","a","b","equal","looseEqual","aValidType","bValidType","aKeysCount","bKeysCount","aHasKey","bHasKey","looseIndexOf","toDisplayString","replacer","_key","entries","val2","stringifySymbol","v","_a","activeEffectScope","EffectScope","detached","currentEffectScope","fromParent","l","last","effectScope","recordEffectScope","effect","scope","getCurrentScope","onScopeDispose","activeEffect","ReactiveEffect","trigger","scheduler","pauseTracking","dep","triggerComputed","resetTracking","lastShouldTrack","shouldTrack","lastEffect","preCleanupEffect","postCleanupEffect","computed","effect2","cleanupDepEffect","trackId","pauseScheduleStack","trackStack","pauseScheduling","resetScheduling","queueEffectSchedulers","trackEffect","debuggerEventExtraInfo","oldDep","triggerEffects","dirtyLevel","tracking","createDep","cleanup","targetMap","ITERATE_KEY","MAP_KEY_ITERATE_KEY","track","target","type","depsMap","newValue","oldTarget","deps","newLength","key2","getDepFromReactive","object","isNonTrackableKeys","builtInSymbols","arrayInstrumentations","createArrayInstrumentations","instrumentations","args","toRaw","BaseReactiveHandler","_isReadonly","_isShallow","receiver","isReadonly2","isShallow2","shallowReadonlyMap","readonlyMap","shallowReactiveMap","reactiveMap","targetIsArray","isRef","readonly","reactive","MutableReactiveHandler","isOldValueReadonly","isReadonly","isShallow","hadKey","result","ReadonlyReactiveHandler","mutableHandlers","readonlyHandlers","shallowReactiveHandlers","toShallow","getProto","get","rawTarget","rawKey","has2","wrap","toReadonly","toReactive","has","size","add","get2","deleteEntry","clear","hadItems","createForEach","callback","thisArg","observed","createIterableMethod","method","targetIsMap","isPair","isKeyOnly","innerIterator","done","createReadonlyMethod","createInstrumentations","mutableInstrumentations2","shallowInstrumentations2","readonlyInstrumentations2","shallowReadonlyInstrumentations2","mutableInstrumentations","readonlyInstrumentations","shallowInstrumentations","shallowReadonlyInstrumentations","createInstrumentationGetter","shallow","mutableCollectionHandlers","shallowCollectionHandlers","readonlyCollectionHandlers","targetTypeMap","rawType","getTargetType","createReactiveObject","shallowReactive","baseHandlers","collectionHandlers","proxyMap","existingProxy","targetType","proxy","isReactive","isProxy","raw","markRaw","ComputedRefImpl","getter","_setter","isSSR","triggerRefValue","self","trackRefValue","getterOrOptions","debugOptions","setter","onlyGetter","ref2","newVal","r","ref","createRef","shallowRef","rawValue","RefImpl","__v_isShallow","useDirectValue","unref","shallowUnwrapHandlers","proxyRefs","objectWithRefs","toRefs","propertyToRef","ObjectRefImpl","_object","_defaultValue","GetterRefImpl","_getter","toRef","source","defaultValue","callWithErrorHandling","instance","err","handleError","callWithAsyncErrorHandling","values","throwInDev","contextVNode","cur","exposedInstance","errorInfo","errorCapturedHooks","appErrorHandler","logError","isFlushing","isFlushPending","queue","flushIndex","pendingPostFlushCbs","activePostFlushCbs","postFlushIndex","resolvedPromise","currentFlushPromise","nextTick","p","findInsertionIndex","id","start","end","middle","middleJob","middleJobId","getId","queueJob","job","queueFlush","flushJobs","invalidateJob","queuePostFlushCb","cb","flushPreFlushCbs","seen","flushPostFlushCbs","deduped","comparator","diff","emit","event","rawArgs","props","modelArg","modifiersKey","number","trim","handlerName","handler","onceHandler","normalizeEmitsOptions","comp","appContext","asMixin","cached","hasExtends","extendEmits","raw2","normalizedFromExtend","isEmitListener","options","currentRenderingInstance","currentScopeId","setCurrentRenderingInstance","prev","pushScopeId","popScopeId","withCtx","ctx","isNonScopedSlot","renderFnWithContext","setBlockTracking","prevInstance","renderComponentRoot","Component","vnode","withProxy","propsOptions","slots","attrs","render","renderCache","data","setupState","inheritAttrs","fallthroughAttrs","proxyToUse","thisProxy","normalizeVNode","render2","getFunctionalFallthrough","blockStack","createVNode","Comment","root","keys","shapeFlag","filterModelListeners","cloneVNode","shouldUpdateComponent","prevVNode","nextVNode","optimized","prevProps","prevChildren","component","nextProps","nextChildren","patchFlag","emits","hasPropsChanged","dynamicProps","emitsOptions","nextKeys","updateHOCHostEl","parent","NULL_DYNAMIC_COMPONENT","isSuspense","queueEffectWithSuspense","suspense","ssrContextKey","useSSRContext","inject","watchPostEffect","doWatch","INITIAL_WATCHER_VALUE","watch","immediate","deep","flush","once","onTrack","onTrigger","_cb","unwatch","currentInstance","reactiveGetter","source2","traverse","forceTrigger","isMultiSource","s","onCleanup","baseGetter","ssrCleanup","isInSSRComponentSetup","queuePostRenderEffect","instanceWatch","publicThis","createPathGetter","reset","setCurrentInstance","path","segments","depth","currentDepth","withDirectives","directives","getExposeProxy","bindings","dir","modifiers","invokeDirectiveHook","oldBindings","binding","hook","defineComponent","extraOptions","isAsyncWrapper","isKeepAlive","onActivated","registerKeepAliveHook","onDeactivated","wrappedHook","current","injectHook","injectToKeepAliveRoot","keepAliveRoot","injected","onUnmounted","prepend","hooks","createHook","lifecycle","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onServerPrefetch","onRenderTriggered","onRenderTracked","onErrorCaptured","renderList","renderItem","index","renderSlot","fallback","noSlotted","slot","openBlock","validSlotContent","ensureValidVNode","rendered","createBlock","Fragment","vnodes","child","isVNode","getPublicInstance","isStatefulComponent","publicPropertiesMap","resolveMergedOptions","hasSetupBinding","state","PublicInstanceProxyHandlers","accessCache","normalizedProps","shouldCacheAccess","publicGetter","cssModule","globalProperties","descriptor","normalizePropsOrEmits","applyOptions","callHook","dataOptions","computedOptions","methods","watchOptions","provideOptions","injectOptions","created","beforeMount","mounted","beforeUpdate","updated","activated","deactivated","beforeDestroy","beforeUnmount","destroyed","unmounted","renderTracked","renderTriggered","errorCaptured","serverPrefetch","expose","components","filters","resolveInjections","methodHandler","opt","createWatcher","provides","provide","registerLifecycleHook","register","_hook","exposed","checkDuplicateProperties","normalizeInject","h","base","mixins","extendsOptions","globalMixins","optionMergeStrategies","resolved","m","mergeOptions","to","from","strats","strat","internalOptionMergeStrats","mergeDataFn","mergeEmitsOrPropsOptions","mergeObjectOptions","mergeAsArray","mergeWatchOptions","mergeInject","merged","createAppContext","uid$1","createAppAPI","hydrate","rootComponent","rootProps","context","installedPlugins","isMounted","app","version","plugin","mixin","directive","rootContainer","isHydrate","namespace","lastApp","currentApp","parentProvides","treatDefaultAsFactory","hasInjectionContext","initProps","rawProps","isStateful","InternalObjectKey","setFullProps","updateProps","rawPrevProps","rawCurrentProps","hasAttrsChanged","propsToUpdate","camelizedKey","resolvePropValue","kebabKey","needCastKeys","rawCastValues","camelKey","castValues","isAbsent","hasDefault","propsDefaults","normalizePropsOptions","extendProps","normalizedKey","validatePropName","prop","booleanIndex","getTypeIndex","stringIndex","getType","ctor","isSameType","expectedTypes","t","isInternalKey","normalizeSlotValue","normalizeSlot","rawSlot","normalizeObjectSlots","rawSlots","normalizeVNodeSlots","children","initSlots","updateSlots","needDeletionCheck","deletionComparisonTarget","setRef","rawRef","oldRawRef","parentSuspense","isUnmount","refValue","owner","oldRef","refs","_isString","_isRef","doSet","existing","createRenderer","baseCreateRenderer","createHydrationFns","hostInsert","hostRemove","hostPatchProp","hostCreateElement","hostCreateText","hostCreateComment","hostSetText","hostSetElementText","hostParentNode","hostNextSibling","hostSetScopeId","hostInsertStaticContent","patch","n1","n2","container","anchor","parentComponent","slotScopeIds","isSameVNodeType","getNextHostNode","unmount","Text","processText","processCommentNode","Static","mountStaticNode","processFragment","processElement","processComponent","internals","moveStaticNode","nextSibling","next","removeStaticNode","mountElement","patchElement","vnodeHook","transition","dirs","mountChildren","resolveChildrenNamespace","setScopeId","unmountChildren","invokeVNodeHook","needCallTransitionHooks","needTransition","scopeId","subTree","parentVNode","cloneIfMounted","dynamicChildren","oldProps","newProps","toggleRecurse","patchBlockChildren","patchChildren","patchProps","oldChildren","newChildren","fallbackContainer","oldVNode","newVNode","fragmentStartAnchor","fragmentEndAnchor","fragmentSlotScopeIds","traverseStaticChildren","mountComponent","updateComponent","initialVNode","createComponentInstance","setupComponent","setupRenderEffect","placeholder","updateComponentPreRender","componentUpdateFn","bu","u","nonHydratedAsyncRoot","locateNonHydratedAsyncRoot","originNext","nextTree","prevTree","bm","isAsyncWrapperVNode","hydrateNode","hydrateSubTree","scopedInitialVNode","update","c1","prevShapeFlag","c2","patchKeyedChildren","patchUnkeyedChildren","oldLength","commonLength","nextChild","parentAnchor","l2","e1","e2","nextPos","s1","s2","keyToNewIndexMap","j","patched","toBePatched","moved","maxNewIndexSoFar","newIndexToOldIndexMap","prevChild","newIndex","increasingNewIndexSequence","getSequence","nextIndex","move","moveType","leave","delayLeave","afterLeave","remove2","performLeave","doRemove","shouldInvokeDirs","shouldInvokeVnodeHook","unmountComponent","removeFragment","performRemove","bum","um","currentNamespace","allowed","ch1","ch2","len","arrI","subComponent","isTeleport","currentBlock","disableTracking","closeBlock","isBlockTreeEnabled","setupBlock","createElementBlock","createBaseVNode","normalizeKey","normalizeRef","ref_key","ref_for","isBlockNode","needFullChildrenNormalization","normalizeChildren","_createVNode","cloned","isClassComponent","guardReactiveProps","klass","style","extraProps","mergeRef","mergedProps","mergeProps","createTextVNode","text","flag","createStaticVNode","content","numberOfNodes","createCommentVNode","asBlock","slotFlag","toMerge","incoming","emptyAppContext","uid","getCurrentInstance","internalSetCurrentInstance","setInSSRSetupState","g","registerGlobalSetter","setters","unsetCurrentInstance","setupResult","setupStatefulComponent","setup","setupContext","createSetupContext","resolvedResult","handleSetupResult","e","finishComponentSetup","compile","skipOptions","template","isCustomElement","compilerOptions","delimiters","componentCompilerOptions","finalCompilerOptions","getAttrsProxy","computed$1","propsOrChildren","svgNS","mathmlNS","doc","templateContainer","nodeOps","tag","is","node","selector","before","wrapper","vtcKey","patchClass","isSVG","transitionClasses","vShowOriginalDisplay","vShowHidden","CSS_VAR_TEXT","useCssVars","updateTeleports","vars","setVarsOnNode","setVars","setVarsOnVNode","ob","displayRE","patchStyle","isCssString","hasControlledDisplay","prevStyle","setStyle","cssVarText","importantRE","prefixed","autoPrefix","prefixes","prefixCache","rawName","xlinkNS","patchAttr","isBoolean","patchDOMProp","needRemove","addEventListener","removeEventListener","veiKey","patchEvent","prevValue","nextValue","invokers","existingInvoker","parseName","invoker","createInvoker","optionsModifierRE","cachedNow","getNow","initialValue","patchStopImmediatePropagation","originalStop","isNativeOn","patchProp","shouldSetAsProp","getModelAssigner","assignKey","vModelCheckbox","modelValue","elementValue","getValue","checked","assign","found","filtered","getCheckboxValue","setChecked","rendererOptions","renderer","ensureRenderer","createApp","mount","containerOrSelector","normalizeContainer","resolveRootNamespace","isVue2","activePinia","setActivePinia","pinia","piniaSymbol","o","MutationType","createPinia","_p","toBeInstalled","noop","addSubscription","subscriptions","removeSubscription","idx","triggerSubscriptions","fallbackRunWithContext","mergeReactiveObjects","patchToApply","subPatch","targetValue","skipHydrateSymbol","shouldHydrate","isComputed","createOptionsStore","hot","actions","getters","initialState","store","localState","computedGetters","createSetupStore","$id","isOptionsStore","optionsForPlugin","$subscribeOptions","isListening","isSyncListening","actionSubscriptions","debuggerEvents","activeListener","$patch","partialStateOrMutator","subscriptionMutation","myListenerId","$reset","newState","$state","$dispose","wrapAction","action","afterCallbackList","onErrorCallbackList","after","onError","error","partialStore","stopWatcher","setupStore","actionValue","extender","defineStore","idOrOptions","setupOptions","isSetupStore","useStore","hasContext","Subscribable","listener","isServer","functionalUpdate","updater","input","isValidTimeout","timeUntilStale","updatedAt","staleTime","matchQuery","query","exact","fetchStatus","predicate","queryKey","stale","hashQueryKeyByOptions","partialMatchKey","isActive","matchMutation","mutation","status","mutationKey","hashKey","replaceEqualDeep","array","isPlainArray","aItems","aSize","bItems","bSize","copy","equalItems","shallowEqualObjects","hasObjectPrototype","prot","sleep","ms","resolve","replaceData","prevData","addToEnd","items","max","newItems","addToStart","skipToken","FocusManager","__privateAdd","_focused","_cleanup","_setup","__privateSet","onFocus","__privateGet","focused","isFocused","focusManager","OnlineManager","_online","onOnline","onlineListener","offlineListener","online","onlineManager","defaultRetryDelay","failureCount","canFetch","networkMode","CancelledError","isCancelledError","createRetryer","config","isRetryCancelled","isResolved","continueFn","promiseResolve","promiseReject","promise","outerResolve","outerReject","cancel","cancelOptions","reject","cancelRetry","continueRetry","shouldPause","pause","continueResolve","canContinue","run","promiseOrValue","retry","retryDelay","delay","shouldRetry","createNotifyManager","transactions","notifyFn","batchNotifyFn","scheduleFn","setScheduler","batch","schedule","batchCalls","originalQueue","notifyManager","Removable","_gcTimeout","newGcTime","Query","_dispatch","_initialState","_revertState","_cache","_retryer","_observers","_defaultOptions","_abortSignalConsumed","getDefaultState","newData","__privateMethod","dispatch_fn","setStateOptions","_b","observer","x","fetchOptions","abortController","queryFnContext","addSignalProperty","fetchFn","_c","_d","reducer","fetchState","hasData","initialDataUpdatedAt","QueryCache","_queries","client","queryHash","queryInMap","defaultedFilters","queries","Mutation","_mutationCache","variables","executeMutation","restored","_f","_e","_h","_g","_j","_i","_l","_k","_n","_m","_o","_r","_q","_t","_s","MutationCache","_mutations","_mutationId","_resuming","__privateWrapper","pausedMutations","infiniteQueryBehavior","pages","direction","oldPages","oldPageParams","empty","cancelled","queryFn","fetchPage","param","previous","page","maxPages","addTo","pageParamFn","getPreviousPageParam","getNextPageParam","oldData","remainingPages","pageParams","lastIndex","hasNextPage","hasPreviousPage","QueryClient","_queryCache","_queryDefaults","_mutationDefaults","_mountCount","_unsubscribeFocus","_unsubscribeOnline","cachedData","defaultedOptions","queryCache","refetchFilters","defaultedCancelOptions","promises","defaults","queryDefault","QueryObserver","_executeFetch","_updateStaleTimeout","_computeRefetchInterval","_updateRefetchInterval","_updateTimers","_clearStaleTimeout","_clearRefetchInterval","_updateQuery","_notify","_client","_currentQuery","_currentQueryInitialState","_currentResult","_currentResultState","_currentResultOptions","_selectError","_selectFn","_selectResult","_lastQueryWithDefinedData","_staleTimeoutId","_refetchIntervalId","_currentRefetchInterval","_trackedProps","shouldFetchOnMount","executeFetch_fn","updateTimers_fn","shouldFetchOn","clearStaleTimeout_fn","clearRefetchInterval_fn","notifyOptions","prevOptions","prevQuery","updateQuery_fn","shouldFetchOptionally","updateStaleTimeout_fn","nextRefetchInterval","computeRefetchInterval_fn","updateRefetchInterval_fn","shouldAssignObserverCurrentProperties","onPropTracked","trackedResult","prevResult","prevResultState","prevResultOptions","queryInitialState","isPlaceholderData","fetchOnMount","fetchOptionally","errorUpdatedAt","selectError","placeholderData","isFetching","isPending","isError","isLoading","isStale","nextResult","defaultNotifyOptions","shouldNotifyListeners","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","notify_fn","timeout","nextInterval","shouldLoadOnMount","field","optimisticResult","InfiniteQueryObserver","isRefetching","isFetchingNextPage","isFetchingPreviousPage","MutationObserver","_updateResult","_currentMutation","_mutateOptions","updateResult_fn","VUE_QUERY_CLIENT","getClientKey","suffix","updateState","cloneDeep","customize","cloneDeepUnref","prototype","shouldThrowError","throwOnError","params","useQueryClient","queryClient","QC","MC","vueQueryConfig","VueQueryPlugin","clientKey","clientConfig","persisterUnmount","originalUnmount","useBaseQuery","Observer","clonedOptions","defaulted","unsubscribe","isRestoring","refetch","stopWatch","useInfiniteQuery","useMutation","mutationOptions","mutate","mutateOptions","resultRefs","isBrowser","isESModule","applyToParams","newParams","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","parseURL","parseQuery","location","currentLocation","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery","stripBase","pathname","isSameRouteLocation","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","fromSegments","toSegments","lastToSegment","position","toPosition","segment","NavigationType","NavigationDirection","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","createBaseLocation","createCurrentLocation","search","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","fromState","pauseListeners","listen","teardown","beforeUnloadListener","history","destroy","buildState","back","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","hashIndex","url","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","isRouteLocation","route","isRouteName","START_LOCATION_NORMALIZED","NavigationFailureSymbol","NavigationFailureType","createRouterError","isNavigationFailure","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","REGEX_CHARS_RE","tokensToParser","score","pattern","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re","subPattern","parse","match","stringify","avoidDuplicatedSlash","compareScoreArray","comparePathParserScore","aScore","bScore","isLastScoreNegative","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","createRouteRecordMatcher","record","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","insertMatcher","matcherRef","getRoutes","isRecordChildOf","paramsFromLocation","k","matched","parentMatcher","mergeMetaFields","normalizeRecordProps","propsObject","meta","partialOptions","searchParams","searchParam","eqPos","currentValue","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","guardToPromiseFn","guard","runWithContext","enterCallbackArray","valid","guardReturn","guardCall","extractComponentsGuards","guardType","guards","rawComponent","isRouteComponent","componentPromise","resolvedComponent","useLink","router","currentRoute","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","includesParams","isExactActive","navigate","guardEvent","RouterLinkImpl","link","elClass","getLinkClass","RouterLink","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","injectedRoute","routeToDisplay","injectedDepth","initialDepth","matchedRoute","matchedRouteRef","viewRef","oldInstance","oldName","currentName","ViewComponent","routePropsOption","routeProps","slotContent","RouterView","createRouter","parseQuery$1","stringifyQuery$1","beforeGuards","beforeResolveGuards","afterGuards","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","href","matcherLocation","targetParams","fullPath","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","installedApps","leavingRecords","updatingRecords","enteringRecords","extractChangingRecords","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","scrollBehavior","started","reactiveRoute","unmountApp","recordFrom","recordTo","useRouter","_sfc_render","_ctx","_openBlock","_createElementBlock","_hoisted_1","n3","n4","n5","n6","n7","n8","n9","n10","__props","Block","block","gameOver","replay","home","gameOverZzio","f","clsx","falsyToString","cx","cva","variants","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","acc","getCompoundVariantClassNames","param1","cvClass","cvClassName","compoundVariantOptions","rankBanner","coinSm","giftZzio","arrow","eventJoinTag","bind","toString","getPrototypeOf","kindOf","thing","kindOfTest","typeOfTest","isUndefined","isBuffer","isArrayBuffer","isArrayBufferView","isNumber","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","forEach","allOwnKeys","findKey","_global","isContextDefined","merge","caseless","assignValue","targetKey","stripBOM","inherits","constructor","superConstructor","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","endsWith","toArray","isTypedArray","TypedArray","forEachEntry","iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","isRegExp","reduceDescriptors","reducedDescriptors","freezeMethods","toObjectSet","arrayOrString","delimiter","define","toFiniteNumber","ALPHA","DIGIT","ALPHABET","generateString","alphabet","isSpecCompliantForm","toJSONObject","stack","visit","reducedValue","isAsyncFn","isThenable","utils$1","AxiosError","code","request","response","utils","customProps","axiosError","httpAdapter","isVisitable","removeBrackets","renderKey","dots","isFlatArray","predicates","toFormData","formData","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","exposedHelpers","build","encode","charMap","AxiosURLSearchParams","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","transitionalDefaults","URLSearchParams$1","FormData$1","Blob$1","platform$1","URLSearchParams","FormData","Blob","hasBrowserEnv","hasStandardBrowserEnv","product","hasStandardBrowserWebWorkerEnv","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","defaults$1","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","w","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_value","_header","_rewrite","lHeader","setHeaders","deleted","deleteHeader","format","targets","asStrings","first","accessors","defineAccessor","mapped","headerValue","AxiosHeaders$1","transformData","isCancel","CanceledError","settle","validateStatus","cookies","expires","domain","secure","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","isURLSameOrigin","msie","urlParsingNode","originURL","resolveURL","requestURL","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","isXHRAdapterSupported","xhrAdapter","requestData","requestHeaders","responseType","withXSRFToken","onCanceled","username","password","onloadend","responseHeaders","timeoutErrorMessage","xsrfValue","protocol","knownAdapters","renderReason","reason","isResolvedHandle","adapter","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","dispatchRequest","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","VERSION","validators","deprecatedWarnings","validator","formatMessage","desc","opts","assertOptions","schema","allowUnknown","Axios","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","generateHTTPMethod","isForm","Axios$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","CancelToken$1","spread","isAxiosError","payload","HttpStatusCode","HttpStatusCode$1","createInstance","defaultConfig","axios","zaxios","postEvent","usePostEvent","eventTitle","postRank","usePostRank","__emit","filled","onInput","_hoisted_2","_createElementVNode","_hoisted_3","checkboxDefault","checkboxActive","modelValueRef","_hoisted_4","close","__viteBrowserExternal","factory","module","this","CryptoJS","Math","undefined","crypto","global","require","require$$0","cryptoSecureRandomInt","create","F","subtype","C","C_lib","Base","overrides","properties","propertyName","WordArray","words","sigBytes","Hex","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","thatByte","clone","nBytes","C_enc","hexChars","bite","hexStr","hexStrLength","Latin1","latin1Chars","latin1Str","latin1StrLength","Utf8","utf8Str","BufferedBlockAlgorithm","doFlush","processedWords","dataWords","dataSigBytes","blockSize","blockSizeBytes","nBlocksReady","nWordsReady","nBytesReady","cfg","messageUpdate","hasher","C_algo","X32WordArray","C_x64","high","low","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","superInit","subInit","typedArray","typedArrayByteLength","utf16Chars","codePoint","utf16Str","utf16StrLength","swapEndian","word","map","base64Chars","byte1","byte2","byte3","triplet","paddingChar","base64Str","base64StrLength","reverseMap","paddingIndex","parseLoop","bits1","bits2","bitsCombined","urlSafe","Hasher","T","MD5","M","offset_i","M_offset_i","H","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","d","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","W","SHA1","K","isPrime","sqrtN","factor","getFractionalBits","nPrime","SHA256","gamma0x","gamma0","gamma1x","gamma1","ch","maj","sigma0","sigma1","t1","t2","undef","require$$1","SHA224","X64Word","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","al","bh","bl","cl","dh","dl","eh","fh","fl","gh","gl","hh","hl","Wil","Wih","Wi","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1l","t1h","t2l","t2h","require$$2","SHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","y","newX","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","nBlockSizeLanes","M2i","M2i1","lane","round","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","hr","zl","zr","sl","sr","ar","br","cr","dr","er","f1","f2","f3","f4","f5","rotl","z","hasherBlockSize","hasherBlockSizeBytes","oKey","iKey","oKeyWords","iKeyWords","innerHash","hmac","HMAC","PBKDF2","salt","derivedKey","blockIndex","derivedKeyWords","blockIndexWords","keySize","iterations","blockWords","blockWordsLength","intermediate","intermediateWords","EvpKDF","Base64","Cipher","xformMode","dataUpdate","finalProcessedData","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","ciphertext","finalProcessedBlocks","C_mode","BlockCipherMode","iv","CBC","xorBlock","thisBlock","C_pad","Pkcs7","nPaddingBytes","paddingWord","paddingWords","padding","modeCreator","mode","CipherParams","cipherParams","formatter","C_format","OpenSSLFormatter","openSSLStr","ciphertextWords","encryptor","cipherCfg","plaintext","C_kdf","OpenSSLKdf","ivSize","derivedParams","CFB","generateKeystreamAndEncrypt","keystream","CTR","Encryptor","counter","CTRGladman","incWord","b1","b2","b3","incCounter","OFB","ECB","lastBytePos","require$$3","require$$4","BlockCipher","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","xi","sx","x2","x4","x8","RCON","AES","keyWords","nRounds","ksRows","keySchedule","ksRow","invKeySchedule","invKsRow","s0","s3","t0","t3","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","nSubKey","subKey","bitShift","invSubKeys","exchangeLR","exchangeRL","lBlock","rBlock","mask","TripleDES","key1","key3","StreamCipher","RC4","keySigBytes","S","keyByteIndex","keyByte","generateKeystreamWord","keystreamWord","RC4Drop","C_","G","Rabbit","X","nextState","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","gb","RabbitLegacy","N","ORIG_P","ORIG_S","BLOWFISH_CTX","BlowFish_Encrypt","left","right","Xl","Xr","temp","BlowFish_Decrypt","BlowFishInit","keysize","Row","Col","keyIndex","Data1","Data2","Blowfish","require$$5","require$$6","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","getGameId","crypto.AES","isSuccess","mutateEvent","rank","userId","activeBanner","topBannerStyle","phoneNumber","isPrivacyPolicyAgreed","isFormFilled","isPrivacyTermOpen","isOpen","toggleBanner","togglePrivacyTerm","onClickSubmit","heightRef","coin","modules","installedModules","__webpack_require__","moduleId","exports","ns","property","Common","argsStart","deepClone","begin","parts","choices","_seededRandom","colorString","warning","haystack","needle","func","graph","visited","neighbors","neighbor","funcs","lastResult","decomp","Bounds","vertices","bounds","velocity","vertex","point","boundsA","boundsB","vector","deltaX","deltaY","Vector","angle","output","cos","sin","magnitude","vectorA","vectorB","vectorC","scalar","negate","Vertices","points","body","pathPattern","area","centre","cross","average","signed","mass","numerator","denominator","verticesLength","translateX","translateY","pointX","pointY","dx","dy","nextVertex","scaleX","scaleY","radius","quality","qualityMin","qualityMax","newVertices","prevVertex","currentRadius","prevNormal","nextNormal","diagonalRadius","radiusVector","midNormal","scaledVertex","precision","alpha","theta","vertexA","vertexB","upper","lower","Body","Sleeping","Axes","_initProperties","isNonColliding","defaultFillStyle","defaultStrokeStyle","defaultLineWidth","settings","isStatic","part","moment","density","inertia","autoHull","hull","hullCentre","relative","updateVelocity","timeScale","speed","translation","rotation","totalArea","totalInertia","deltaTime","deltaTimeSquared","correction","frictionAir","velocityPrevX","velocityPrevY","bodyVelocity","Events","eventNames","names","callbacks","newCallbacks","eventClone","events","Composite","composite","isModified","updateParents","updateChildren","childComposite","objects","compositeA","compositeB","constraint","keepStatic","bodies","constraints","composites","recursive","motionSleepThreshold","angularSpeed","motion","minMotion","maxMotion","pairs","collision","bodyA","bodyB","sleepingBody","movingBody","isSleeping","wasSleeping","Collision","Pair","_supports","_overlapAB","_overlapBA","minOverlap","normal","supports","minAxis","minAxisX","minAxisY","supportsB","supportCount","supportsA","verticesA","verticesB","axes","verticesALength","verticesBLength","verticesAX","verticesAY","verticesBX","verticesBY","axesLength","overlapMin","overlapAxisNumber","overlap","overlapAB","overlapBA","dot","axis","axisX","axisY","minA","minB","maxA","maxB","projection","bodyAPositionX","bodyAPositionY","normalX","normalY","nearestDistance","vertexC","distance","Contact","timestamp","contacts","activeContacts","parentA","parentB","parentAVerticesLength","support","contactId","contact","Constraint","initialPointA","initialPointB","impulse","fixedA","fixedB","pointA","pointB","pointAWorld","pointBWorld","currentLength","difference","isRigid","stiffness","damping","massTotal","inertiaTotal","resistanceTotal","torque","share","normalVelocity","relativeVelocity","zero","gradient","xx","Bodies","width","height","rectangle","chamfer","slope","roof","x1","x3","verticesPath","trapezoid","maxSides","circle","sides","yy","polygon","vertexSets","flagInternal","removeCollinear","minimumArea","removeDuplicatePoints","canDecomp","isConvex","isConcave","concave","decomposed","chunk","chunkVertices","coincident_max_dist","partA","partB","pav","pbv","da","db","Detector","detector","collisions","bodiesLength","canCollide","collides","boundXMax","boundYMax","boundYMin","bodyAStatic","partsALength","partsASingle","partsBLength","partsAStart","partsBStart","filterA","filterB","Mouse","element","mouse","touches","scale","pixelRatio","elementBounds","rootNode","scrollX","scrollY","Plugin","registered","pluginVersion","registeredVersion","dependency","plugins","dependencies","sortedDependencies","tracked","parsedBase","range","major","minor","Engine","Resolver","Pairs","engine","startTime","world","timing","allBodies","allConstraints","positionDamping","engineA","engineB","gravity","gravityScale","activeCount","pairsLength","contactShare","positionImpulse","positionDampen","slopDampen","positionWarming","verticesTranslate","boundsUpdate","positionImpulseX","positionImpulseY","contactsLength","tangent","contactVertex","normalImpulse","tangentImpulse","impulseX","impulseY","timeScaleSquared","timeScaleCubed","restingThresh","restingThreshTangent","frictionNormalMultiplier","frictionMaxStatic","maxFriction","bodyAVelocity","bodyBVelocity","tangentX","tangentY","inverseMassTotal","friction","offsetAX","offsetAY","offsetBX","offsetBY","velocityPointAX","velocityPointAY","velocityPointBX","velocityPointBY","relativeVelocityX","relativeVelocityY","tangentVelocity","normalOverlap","normalForce","frictionLimit","oAcN","oBcN","contactNormalImpulse","contactTangentImpulse","pairsList","pairsListLength","pairsTable","collisionsLength","collisionStart","collisionEnd","collisionActive","pairIndex","removePairIndex","Matter","Composites","deprecated","columns","rows","columnGap","rowGap","lastBody","row","maxHeight","column","bodyHeight","bodyWidth","xOffsetA","yOffsetA","xOffsetB","yOffsetB","bodyAHeight","bodyAWidth","bodyBHeight","bodyBWidth","crossBrace","col","bodyC","actualRows","lastBodyWidth","xOffset","newtonsCradle","separation","wheelSize","group","wheelBase","wheelAOffset","wheelBOffset","wheelYOffset","car","wheelA","wheelB","axelA","axelB","particleRadius","particleOptions","constraintOptions","softBody","Grid","grid","forceUpdate","buckets","bucket","bucketId","gridChanged","newRegion","union","isInsideNewRegion","isInsideOldRegion","regionA","regionB","startCol","endCol","startRow","endRow","gridPairs","pairId","bucketLength","pairKeys","pairKeysLength","MouseConstraint","mouseConstraint","mouseEvents","overlaps","startPoint","endPoint","rayWidth","rayAngle","rayLength","rayX","rayY","ray","outside","Render","_requestAnimationFrame","_cancelAnimationFrame","_createCanvas","loop","time","_updateTiming","canvas","_getPixelRatio","center","viewHeight","viewWidth","outerRatio","innerRatio","boundsWidth","boundsHeight","boundsScaleX","boundsScaleY","background","_applyBackground","sections","section","deltaHistory","elapsedHistory","timestampElapsedHistory","engineDeltaHistory","engineElapsedHistory","lastEngineDelta","deltaMean","_mean","elapsedMean","engineDeltaMean","engineElapsedMean","timestampElapsedMean","rateMean","fps","graphHeight","gap","count","label","indicator","plotY","coils","showInternalEdges","sprite","texture","_getTexture","normalPosX","normalPosY","inspector","selected","historySize","devicePixelRatio","backingStorePixelRatio","imagePath","image","cssBackground","Runner","_frameTimeout","runner","SAT","Svg","sampleLength","il","segmentsQueue","lastSegment","lastPoint","segmentIndex","lx","ly","addPoint","px","py","pathSegType","isRelative","addSegmentPoint","segType","x0","y0","y1","y2","segs","seg","World","b4","b5","b6","b7","b8","b9","b10","lineColor","blocks","Background","ratio","getBlockIndex","RATIO","getDynamicCanvasHeight","setField","bottom","useTimer","limit","interval","usePlayer","groundHeightRef","isSetBlock","totalBlockCount","canvasOffsetX","gameOverRef","nextBlockRef","scoreRef","setNextBlock","addBlock","onDrag","drop","addCollisions","newBlock","removeCollisions","endGame","setLineCollisionTimer","useUserStore","playBackground","userStore","goBack","goRank","zzioGame","title$1","illustration","github","beta","titleRef","textRef","closedRef","onClickPlay","onClickRank","labelLine","medalZzio","medal1","medal2","medal3","medal4","getRank","useGetInfiniteRank","date","pageParam","lastPage","OFFSET","fetchNextPage","totalCountRef","winner","showUpButton","isStarted","onScroll","offsetHeight","scrollTop","scrollHeight","isEnd","scrollUp","title","event$1","remainingTime","remainingDays","formattedTime","hours","minutes","seconds","currentRef","isOpenRef","closeTime","HomePage","PlayPage","RankPage","DevHomePage","App"],"mappings":"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,UAAY,WAAY,UACpC,UAAY,UAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,SAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,UAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,UAAY,UAAY,WAAY,WACpC,UAAY,WAAY,SAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,UACpC,WAAY,UAAY,UAAY,UACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UAAc,EACtD,CAAI,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,UACpC,UAAY,WAAY,UAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WAC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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,48,49,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,155]} \ No newline at end of file diff --git a/index.html b/index.html index 130e081..8137245 100644 --- a/index.html +++ b/index.html @@ -26,7 +26,7 @@ - +