!function(e) { var t; "object" == typeof exports ? module.exports = e() : ("undefined" != typeof window ? t = window : "undefined" != typeof global ? t = global : "undefined" != typeof self && (t = self), t.p2 = e()) }(function() { return function o(s, a, n) { function h(i, e) { if (!a[i]) { if (!s[i]) { var t = "function" == typeof require && require; if (!e && t) return t(i, !0); if (c) return c(i, !0); throw new Error("Cannot find module '" + i + "'") } var r = a[i] = { exports: {} }; s[i][0].call(r.exports, function(e) { var t = s[i][1][e]; return h(t || e) }, r, r.exports, o, s, a, n) } return a[i].exports } for (var c = "function" == typeof require && require, e = 0; e < n.length; e++) h(n[e]); return h }({ 1: [function(e, t, i) { var m = e("./Scalar"); function r() {} (t.exports = r).lineInt = function(e, t, i) { i = i || 0; var r, o, s, a, n, h, c, l = [0, 0]; return r = e[1][1] - e[0][1], o = e[0][0] - e[1][0], s = r * e[0][0] + o * e[0][1], a = t[1][1] - t[0][1], n = t[0][0] - t[1][0], h = a * t[0][0] + n * t[0][1], c = r * n - a * o, m.eq(c, 0, i) || (l[0] = (n * s - o * h) / c, l[1] = (r * h - a * s) / c), l } , r.segmentsIntersect = function(e, t, i, r) { var o = t[0] - e[0] , s = t[1] - e[1] , a = r[0] - i[0] , n = r[1] - i[1]; if (a * s - n * o == 0) return !1; var h = (o * (i[1] - e[1]) + s * (e[0] - i[0])) / (a * s - n * o) , c = (a * (e[1] - i[1]) + n * (i[0] - e[0])) / (n * o - a * s); return 0 <= h && h <= 1 && 0 <= c && c <= 1 } } , { "./Scalar": 4 }], 2: [function(e, t, i) { function c() {} (t.exports = c).area = function(e, t, i) { return (t[0] - e[0]) * (i[1] - e[1]) - (i[0] - e[0]) * (t[1] - e[1]) } , c.left = function(e, t, i) { return 0 < c.area(e, t, i) } , c.leftOn = function(e, t, i) { return 0 <= c.area(e, t, i) } , c.right = function(e, t, i) { return c.area(e, t, i) < 0 } , c.rightOn = function(e, t, i) { return c.area(e, t, i) <= 0 } ; var l = [] , m = []; c.collinear = function(e, t, i, r) { if (r) { var o = l , s = m; o[0] = t[0] - e[0], o[1] = t[1] - e[1], s[0] = i[0] - t[0], s[1] = i[1] - t[1]; var a = o[0] * s[0] + o[1] * s[1] , n = Math.sqrt(o[0] * o[0] + o[1] * o[1]) , h = Math.sqrt(s[0] * s[0] + s[1] * s[1]); return Math.acos(a / (n * h)) < r } return 0 == c.area(e, t, i) } , c.sqdist = function(e, t) { var i = t[0] - e[0] , r = t[1] - e[1]; return i * i + r * r } } , {}], 3: [function(e, t, i) { var n = e("./Line") , v = e("./Point") , u = e("./Scalar"); function z() { this.vertices = [] } (t.exports = z).prototype.at = function(e) { var t = this.vertices , i = t.length; return t[e < 0 ? e % i + i : e % i] } , z.prototype.first = function() { return this.vertices[0] } , z.prototype.last = function() { return this.vertices[this.vertices.length - 1] } , z.prototype.clear = function() { this.vertices.length = 0 } , z.prototype.append = function(e, t, i) { if (void 0 === t) throw new Error("From is not given!"); if (void 0 === i) throw new Error("To is not given!"); if (i - 1 < t) throw new Error("lol1"); if (i > e.vertices.length) throw new Error("lol2"); if (t < 0) throw new Error("lol3"); for (var r = t; r < i; r++) this.vertices.push(e.vertices[r]) } , z.prototype.makeCCW = function() { for (var e = 0, t = this.vertices, i = 1; i < this.vertices.length; ++i) (t[i][1] < t[e][1] || t[i][1] == t[e][1] && t[i][0] > t[e][0]) && (e = i); v.left(this.at(e - 1), this.at(e), this.at(e + 1)) || this.reverse() } , z.prototype.reverse = function() { for (var e = [], t = 0, i = this.vertices.length; t !== i; t++) e.push(this.vertices.pop()); this.vertices = e } , z.prototype.isReflex = function(e) { return v.right(this.at(e - 1), this.at(e), this.at(e + 1)) } ; var h = [] , c = []; function C(e, t, i, r, o) { o = o || 0; var s = t[1] - e[1] , a = e[0] - t[0] , n = s * e[0] + a * e[1] , h = r[1] - i[1] , c = i[0] - r[0] , l = h * i[0] + c * i[1] , m = s * c - h * a; return u.eq(m, 0, o) ? [0, 0] : [(c * n - a * l) / m, (s * l - h * n) / m] } z.prototype.canSee = function(e, t) { var i, r, o = h, s = c; if (v.leftOn(this.at(e + 1), this.at(e), this.at(t)) && v.rightOn(this.at(e - 1), this.at(e), this.at(t))) return !1; r = v.sqdist(this.at(e), this.at(t)); for (var a = 0; a !== this.vertices.length; ++a) if ((a + 1) % this.vertices.length !== e && a !== e && v.leftOn(this.at(e), this.at(t), this.at(a + 1)) && v.rightOn(this.at(e), this.at(t), this.at(a)) && (o[0] = this.at(e), o[1] = this.at(t), s[0] = this.at(a), s[1] = this.at(a + 1), i = n.lineInt(o, s), v.sqdist(this.at(e), i) < r)) return !1; return !0 } , z.prototype.copy = function(e, t, i) { var r = i || new z; if (r.clear(), e < t) for (var o = e; o <= t; o++) r.vertices.push(this.vertices[o]); else { for (o = 0; o <= t; o++) r.vertices.push(this.vertices[o]); for (o = e; o < this.vertices.length; o++) r.vertices.push(this.vertices[o]) } return r } , z.prototype.getCutEdges = function() { for (var e = [], t = [], i = [], r = new z, o = Number.MAX_VALUE, s = 0; s < this.vertices.length; ++s) if (this.isReflex(s)) for (var a = 0; a < this.vertices.length; ++a) if (this.canSee(s, a)) { t = this.copy(s, a, r).getCutEdges(), i = this.copy(a, s, r).getCutEdges(); for (var n = 0; n < i.length; n++) t.push(i[n]); t.length < o && (o = (e = t).length, e.push([this.at(s), this.at(a)])) } return e } , z.prototype.decomp = function() { var e = this.getCutEdges(); return 0 < e.length ? this.slice(e) : [this] } , z.prototype.slice = function(e) { if (0 == e.length) return [this]; if (e instanceof Array && e.length && e[0]instanceof Array && 2 == e[0].length && e[0][0]instanceof Array) { for (var t = [this], i = 0; i < e.length; i++) for (var r = e[i], o = 0; o < t.length; o++) { var s = t[o].slice(r); if (s) { t.splice(o, 1), t.push(s[0], s[1]); break } } return t } r = e, i = this.vertices.indexOf(r[0]), o = this.vertices.indexOf(r[1]); return -1 != i && -1 != o && [this.copy(i, o), this.copy(o, i)] } , z.prototype.isSimple = function() { for (var e = this.vertices, t = 0; t < e.length - 1; t++) for (var i = 0; i < t - 1; i++) if (n.segmentsIntersect(e[t], e[t + 1], e[i], e[i + 1])) return !1; for (t = 1; t < e.length - 2; t++) if (n.segmentsIntersect(e[0], e[e.length - 1], e[t], e[t + 1])) return !1; return !0 } , z.prototype.quickDecomp = function(e, t, i, r, o, s) { o = o || 100, s = s || 0, r = r || 25, e = void 0 !== e ? e : [], t = t || [], i = i || []; var a = [0, 0] , n = [0, 0] , h = [0, 0] , c = 0 , l = 0 , m = 0 , u = 0 , d = 0 , p = 0 , f = 0 , y = new z , S = new z , w = this , g = this.vertices; if (g.length < 3) return e; if (o < ++s) return e; for (var x = 0; x < this.vertices.length; ++x) if (w.isReflex(x)) { t.push(w.vertices[x]), c = l = Number.MAX_VALUE; for (var b = 0; b < this.vertices.length; ++b) v.left(w.at(x - 1), w.at(x), w.at(b)) && v.rightOn(w.at(x - 1), w.at(x), w.at(b - 1)) && (h = C(w.at(x - 1), w.at(x), w.at(b), w.at(b - 1)), v.right(w.at(x + 1), w.at(x), h) && (m = v.sqdist(w.vertices[x], h)) < l && (l = m, n = h, p = b)), v.left(w.at(x + 1), w.at(x), w.at(b + 1)) && v.rightOn(w.at(x + 1), w.at(x), w.at(b)) && (h = C(w.at(x + 1), w.at(x), w.at(b), w.at(b + 1)), v.left(w.at(x - 1), w.at(x), h) && (m = v.sqdist(w.vertices[x], h)) < c && (c = m, a = h, d = b)); if (p == (d + 1) % this.vertices.length) h[0] = (n[0] + a[0]) / 2, h[1] = (n[1] + a[1]) / 2, i.push(h), x < d ? (y.append(w, x, d + 1), y.vertices.push(h), S.vertices.push(h), 0 != p && S.append(w, p, w.vertices.length), S.append(w, 0, x + 1)) : (0 != x && y.append(w, x, w.vertices.length), y.append(w, 0, d + 1), y.vertices.push(h), S.vertices.push(h), S.append(w, p, x + 1)); else { if (d < p && (d += this.vertices.length), u = Number.MAX_VALUE, d < p) return e; for (b = p; b <= d; ++b) v.leftOn(w.at(x - 1), w.at(x), w.at(b)) && v.rightOn(w.at(x + 1), w.at(x), w.at(b)) && (m = v.sqdist(w.at(x), w.at(b))) < u && (u = m, f = b % this.vertices.length); x < f ? (y.append(w, x, f + 1), 0 != f && S.append(w, f, g.length), S.append(w, 0, x + 1)) : (0 != x && y.append(w, x, g.length), y.append(w, 0, f + 1), S.append(w, f, x + 1)) } return y.vertices.length < S.vertices.length ? (y.quickDecomp(e, t, i, r, o, s), S.quickDecomp(e, t, i, r, o, s)) : (S.quickDecomp(e, t, i, r, o, s), y.quickDecomp(e, t, i, r, o, s)), e } return e.push(this), e } , z.prototype.removeCollinearPoints = function(e) { for (var t = 0, i = this.vertices.length - 1; 3 < this.vertices.length && 0 <= i; --i) v.collinear(this.at(i - 1), this.at(i), this.at(i + 1), e) && (this.vertices.splice(i % this.vertices.length, 1), i--, t++); return t } } , { "./Line": 1, "./Point": 2, "./Scalar": 4 }], 4: [function(e, t, i) { function r() {} (t.exports = r).eq = function(e, t, i) { return i = i || 0, Math.abs(e - t) < i } } , {}], 5: [function(e, t, i) { t.exports = { Polygon: e("./Polygon"), Point: e("./Point") } } , { "./Point": 2, "./Polygon": 3 }], 6: [function(e, t, i) { t.exports = { name: "p2", version: "0.7.0", description: "A JavaScript 2D physics engine.", author: "Stefan Hedman (http://steffe.se)", keywords: ["p2.js", "p2", "physics", "engine", "2d"], main: "./src/p2.js", engines: { node: "*" }, repository: { type: "git", url: "https://github.com/schteppe/p2.js.git" }, bugs: { url: "https://github.com/schteppe/p2.js/issues" }, licenses: [{ type: "MIT" }], devDependencies: { grunt: "^0.4.5", "grunt-contrib-jshint": "^0.11.2", "grunt-contrib-nodeunit": "^0.4.1", "grunt-contrib-uglify": "~0.4.0", "grunt-contrib-watch": "~0.5.0", "grunt-browserify": "~2.0.1", "grunt-contrib-concat": "^0.4.0" }, dependencies: { "poly-decomp": "0.1.0" } } } , {}], 7: [function(e, t, i) { var d = e("../math/vec2"); e("../utils/Utils"); function r(e) { this.lowerBound = d.create(), e && e.lowerBound && d.copy(this.lowerBound, e.lowerBound), this.upperBound = d.create(), e && e.upperBound && d.copy(this.upperBound, e.upperBound) } t.exports = r; var p = d.create(); r.prototype.setFromPoints = function(e, t, i, r) { var o = this.lowerBound , s = this.upperBound; "number" != typeof i && (i = 0), 0 !== i ? d.rotate(o, e[0], i) : d.copy(o, e[0]), d.copy(s, o); for (var a = Math.cos(i), n = Math.sin(i), h = 1; h < e.length; h++) { var c = e[h]; if (0 !== i) { var l = c[0] , m = c[1]; p[0] = a * l - n * m, p[1] = n * l + a * m, c = p } for (var u = 0; u < 2; u++) c[u] > s[u] && (s[u] = c[u]), c[u] < o[u] && (o[u] = c[u]) } t && (d.add(this.lowerBound, this.lowerBound, t), d.add(this.upperBound, this.upperBound, t)), r && (this.lowerBound[0] -= r, this.lowerBound[1] -= r, this.upperBound[0] += r, this.upperBound[1] += r) } , r.prototype.copy = function(e) { d.copy(this.lowerBound, e.lowerBound), d.copy(this.upperBound, e.upperBound) } , r.prototype.extend = function(e) { for (var t = 2; t--; ) { var i = e.lowerBound[t]; this.lowerBound[t] > i && (this.lowerBound[t] = i); var r = e.upperBound[t]; this.upperBound[t] < r && (this.upperBound[t] = r) } } , r.prototype.overlaps = function(e) { var t = this.lowerBound , i = this.upperBound , r = e.lowerBound , o = e.upperBound; return (r[0] <= i[0] && i[0] <= o[0] || t[0] <= o[0] && o[0] <= i[0]) && (r[1] <= i[1] && i[1] <= o[1] || t[1] <= o[1] && o[1] <= i[1]) } , r.prototype.containsPoint = function(e) { var t = this.lowerBound , i = this.upperBound; return t[0] <= e[0] && e[0] <= i[0] && t[1] <= e[1] && e[1] <= i[1] } , r.prototype.overlapsRay = function(e) { var t = 1 / e.direction[0] , i = 1 / e.direction[1] , r = (this.lowerBound[0] - e.from[0]) * t , o = (this.upperBound[0] - e.from[0]) * t , s = (this.lowerBound[1] - e.from[1]) * i , a = (this.upperBound[1] - e.from[1]) * i , n = Math.max(Math.max(Math.min(r, o), Math.min(s, a))) , h = Math.min(Math.min(Math.max(r, o), Math.max(s, a))); return h < 0 ? -1 : h < n ? -1 : n } } , { "../math/vec2": 30, "../utils/Utils": 57 }], 8: [function(e, t, i) { var o = e("../math/vec2") , s = e("../objects/Body"); function r(e) { this.type = e, this.result = [], this.world = null, this.boundingVolumeType = r.AABB } (t.exports = r).AABB = 1, r.BOUNDING_CIRCLE = 2, r.prototype.setWorld = function(e) { this.world = e } , r.prototype.getCollisionPairs = function(e) {} ; var a = o.create(); r.boundingRadiusCheck = function(e, t) { o.sub(a, e.position, t.position); var i = o.squaredLength(a) , r = e.boundingRadius + t.boundingRadius; return i <= r * r } , r.aabbCheck = function(e, t) { return e.getAABB().overlaps(t.getAABB()) } , r.prototype.boundingVolumeCheck = function(e, t) { var i; switch (this.boundingVolumeType) { case r.BOUNDING_CIRCLE: i = r.boundingRadiusCheck(e, t); break; case r.AABB: i = r.aabbCheck(e, t); break; default: throw new Error("Bounding volume type not recognized: " + this.boundingVolumeType) } return i } , r.canCollide = function(e, t) { var i = s.KINEMATIC , r = s.STATIC; return (e.type !== r || t.type !== r) && (!(e.type === i && t.type === r || e.type === r && t.type === i) && ((e.type !== i || t.type !== i) && ((e.sleepState !== s.SLEEPING || t.sleepState !== s.SLEEPING) && !(e.sleepState === s.SLEEPING && t.type === r || t.sleepState === s.SLEEPING && e.type === r)))) } , r.NAIVE = 1, r.SAP = 2 } , { "../math/vec2": 30, "../objects/Body": 31 }], 9: [function(e, t, i) { e("../shapes/Circle"), e("../shapes/Plane"), e("../shapes/Shape"), e("../shapes/Particle"); var h = e("../collision/Broadphase"); e("../math/vec2"); function r() { h.call(this, h.NAIVE) } (((t.exports = r).prototype = new h).constructor = r).prototype.getCollisionPairs = function(e) { for (var t = e.bodies, i = this.result, r = i.length = 0, o = t.length; r !== o; r++) for (var s = t[r], a = 0; a < r; a++) { var n = t[a]; h.canCollide(s, n) && this.boundingVolumeCheck(s, n) && i.push(s, n) } return i } , r.prototype.aabbQuery = function(e, t, i) { i = i || []; for (var r = e.bodies, o = 0; o < r.length; o++) { var s = r[o]; s.aabbNeedsUpdate && s.updateAABB(), s.aabb.overlaps(t) && i.push(s) } return i } } , { "../collision/Broadphase": 8, "../math/vec2": 30, "../shapes/Circle": 39, "../shapes/Particle": 43, "../shapes/Plane": 44, "../shapes/Shape": 45 }], 10: [function(e, t, i) { var U = e("../math/vec2") , W = U.sub , X = U.add , H = U.dot , r = (e("../utils/Utils"), e("../utils/ContactEquationPool")) , o = e("../utils/FrictionEquationPool") , s = e("../utils/TupleDictionary") , a = e("../equations/Equation") , n = (e("../equations/ContactEquation"), e("../equations/FrictionEquation"), e("../shapes/Circle")) , h = e("../shapes/Convex") , c = e("../shapes/Shape") , z = (e("../objects/Body"), e("../shapes/Box")); t.exports = $; var C = U.fromValues(0, 1) , j = U.fromValues(0, 0) , Y = U.fromValues(0, 0) , V = U.fromValues(0, 0) , K = U.fromValues(0, 0) , q = U.fromValues(0, 0) , I = U.fromValues(0, 0) , Z = U.fromValues(0, 0) , J = U.fromValues(0, 0) , Q = U.fromValues(0, 0) , L = U.fromValues(0, 0) , O = U.fromValues(0, 0) , R = U.fromValues(0, 0) , F = U.fromValues(0, 0) , G = U.fromValues(0, 0) , D = U.fromValues(0, 0) , k = U.fromValues(0, 0) , _ = U.fromValues(0, 0) , B = U.fromValues(0, 0) , N = []; function $() { this.contactEquations = [], this.frictionEquations = [], this.enableFriction = !0, this.enabledEquations = !0, this.slipForce = 10, this.frictionCoefficient = .3, this.surfaceVelocity = 0, this.contactEquationPool = new r({ size: 32 }), this.frictionEquationPool = new o({ size: 64 }), this.restitution = 0, this.stiffness = a.DEFAULT_STIFFNESS, this.relaxation = a.DEFAULT_RELAXATION, this.frictionStiffness = a.DEFAULT_STIFFNESS, this.frictionRelaxation = a.DEFAULT_RELAXATION, this.enableFrictionReduction = !0, this.collidingBodiesLastStep = new s, this.contactSkinSize = .01 } var l = U.create() , m = U.create(); function g(e, t) { U.set(e.vertices[0], .5 * -t.length, -t.radius), U.set(e.vertices[1], .5 * t.length, -t.radius), U.set(e.vertices[2], .5 * t.length, t.radius), U.set(e.vertices[3], .5 * -t.length, t.radius) } $.prototype.bodiesOverlap = function(e, t) { for (var i = l, r = m, o = 0, s = e.shapes.length; o !== s; o++) { var a = e.shapes[o]; e.toWorldFrame(i, a.position); for (var n = 0, h = t.shapes.length; n !== h; n++) { var c = t.shapes[n]; if (t.toWorldFrame(r, c.position), this[a.type | c.type](e, a, i, a.angle + e.angle, t, c, r, c.angle + t.angle, !0)) return !0 } } return !1 } , $.prototype.collidedLastStep = function(e, t) { var i = 0 | e.id , r = 0 | t.id; return !!this.collidingBodiesLastStep.get(i, r) } , $.prototype.reset = function() { this.collidingBodiesLastStep.reset(); for (var e = this.contactEquations, t = e.length; t--; ) { var i = e[t] , r = i.bodyA.id , o = i.bodyB.id; this.collidingBodiesLastStep.set(r, o, !0) } for (var s = this.contactEquations, a = this.frictionEquations, n = 0; n < s.length; n++) this.contactEquationPool.release(s[n]); for (n = 0; n < a.length; n++) this.frictionEquationPool.release(a[n]); this.contactEquations.length = this.frictionEquations.length = 0 } , $.prototype.createContactEquation = function(e, t, i, r) { var o = this.contactEquationPool.get(); return o.bodyA = e, o.bodyB = t, o.shapeA = i, o.shapeB = r, o.restitution = this.restitution, o.firstImpact = !this.collidedLastStep(e, t), o.stiffness = this.stiffness, o.relaxation = this.relaxation, o.needsUpdate = !0, o.enabled = this.enabledEquations, o.offset = this.contactSkinSize, o } , $.prototype.createFrictionEquation = function(e, t, i, r) { var o = this.frictionEquationPool.get(); return o.bodyA = e, o.bodyB = t, o.shapeA = i, o.shapeB = r, o.setSlipForce(this.slipForce), o.frictionCoefficient = this.frictionCoefficient, o.relativeVelocity = this.surfaceVelocity, o.enabled = this.enabledEquations, o.needsUpdate = !0, o.stiffness = this.frictionStiffness, o.relaxation = this.frictionRelaxation, o.contactEquations.length = 0, o } , $.prototype.createFrictionFromContact = function(e) { var t = this.createFrictionEquation(e.bodyA, e.bodyB, e.shapeA, e.shapeB); return U.copy(t.contactPointA, e.contactPointA), U.copy(t.contactPointB, e.contactPointB), U.rotate90cw(t.t, e.normalA), t.contactEquations.push(e), t } , $.prototype.createFrictionFromAverage = function(e) { var t = this.contactEquations[this.contactEquations.length - 1] , i = this.createFrictionEquation(t.bodyA, t.bodyB, t.shapeA, t.shapeB) , r = t.bodyA; t.bodyB; U.set(i.contactPointA, 0, 0), U.set(i.contactPointB, 0, 0), U.set(i.t, 0, 0); for (var o = 0; o !== e; o++) (t = this.contactEquations[this.contactEquations.length - 1 - o]).bodyA === r ? (U.add(i.t, i.t, t.normalA), U.add(i.contactPointA, i.contactPointA, t.contactPointA), U.add(i.contactPointB, i.contactPointB, t.contactPointB)) : (U.sub(i.t, i.t, t.normalA), U.add(i.contactPointA, i.contactPointA, t.contactPointB), U.add(i.contactPointB, i.contactPointB, t.contactPointA)), i.contactEquations.push(t); var s = 1 / e; return U.scale(i.contactPointA, i.contactPointA, s), U.scale(i.contactPointB, i.contactPointB, s), U.normalize(i.t, i.t), U.rotate90cw(i.t, i.t), i } , $.prototype[c.LINE | c.CONVEX] = $.prototype.convexLine = function(e, t, i, r, o, s, a, n, h) { return !h && 0 } , $.prototype[c.LINE | c.BOX] = $.prototype.lineBox = function(e, t, i, r, o, s, a, n, h) { return !h && 0 } ; var d = new z({ width: 1, height: 1 }) , p = U.create(); $.prototype[c.CAPSULE | c.CONVEX] = $.prototype[c.CAPSULE | c.BOX] = $.prototype.convexCapsule = function(e, t, i, r, o, s, a, n, h) { var c = p; U.set(c, s.length / 2, 0), U.rotate(c, c, n), U.add(c, c, a); var l = this.circleConvex(o, s, c, n, e, t, i, r, h, s.radius); U.set(c, -s.length / 2, 0), U.rotate(c, c, n), U.add(c, c, a); var m = this.circleConvex(o, s, c, n, e, t, i, r, h, s.radius); if (h && (l || m)) return !0; var u = d; return g(u, s), this.convexConvex(e, t, i, r, o, u, a, n, h) + l + m } , $.prototype[c.CAPSULE | c.LINE] = $.prototype.lineCapsule = function(e, t, i, r, o, s, a, n, h) { return !h && 0 } ; var x = U.create() , b = U.create() , v = new z({ width: 1, height: 1 }); $.prototype[c.CAPSULE | c.CAPSULE] = $.prototype.capsuleCapsule = function(e, t, i, r, o, s, a, n, h) { for (var c = x, l = b, m = 0, u = 0; u < 2; u++) { U.set(c, (0 === u ? -1 : 1) * t.length / 2, 0), U.rotate(c, c, r), U.add(c, c, i); for (var d = 0; d < 2; d++) { U.set(l, (0 === d ? -1 : 1) * s.length / 2, 0), U.rotate(l, l, n), U.add(l, l, a), this.enableFrictionReduction && (S = this.enableFriction, this.enableFriction = !1); var p = this.circleCircle(e, t, c, r, o, s, l, n, h, t.radius, s.radius); if (this.enableFrictionReduction && (this.enableFriction = S), h && p) return !0; m += p } } this.enableFrictionReduction && (S = this.enableFriction, this.enableFriction = !1); var f = v; g(f, t); var y = this.convexCapsule(e, f, i, r, o, s, a, n, h); if (this.enableFrictionReduction && (this.enableFriction = S), h && y) return !0; if (m += y, this.enableFrictionReduction) { var S = this.enableFriction; this.enableFriction = !1 } g(f, s); var w = this.convexCapsule(o, f, a, n, e, t, i, r, h); return this.enableFrictionReduction && (this.enableFriction = S), !(!h || !w) || (m += w, this.enableFrictionReduction && m && this.enableFriction && this.frictionEquations.push(this.createFrictionFromAverage(m)), m) } , $.prototype[c.LINE | c.LINE] = $.prototype.lineLine = function(e, t, i, r, o, s, a, n, h) { return !h && 0 } , $.prototype[c.PLANE | c.LINE] = $.prototype.planeLine = function(e, t, i, r, o, s, a, n, h) { var c = j , l = Y , m = V , u = K , d = q , p = I , f = Z , y = J , S = Q , w = N , g = 0; U.set(c, -s.length / 2, 0), U.set(l, s.length / 2, 0), U.rotate(m, c, n), U.rotate(u, l, n), X(m, m, a), X(u, u, a), U.copy(c, m), U.copy(l, u), W(d, l, c), U.normalize(p, d), U.rotate90cw(S, p), U.rotate(y, C, r), w[0] = c, w[1] = l; for (var x = 0; x < w.length; x++) { var b = w[x]; W(f, b, i); var v = H(f, y); if (v < 0) { if (h) return !0; var z = this.createContactEquation(e, o, t, s); g++, U.copy(z.normalA, y), U.normalize(z.normalA, z.normalA), U.scale(f, y, v), W(z.contactPointA, b, f), W(z.contactPointA, z.contactPointA, e.position), W(z.contactPointB, b, a), X(z.contactPointB, z.contactPointB, a), W(z.contactPointB, z.contactPointB, o.position), this.contactEquations.push(z), this.enableFrictionReduction || this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(z)) } } return !h && (this.enableFrictionReduction || g && this.enableFriction && this.frictionEquations.push(this.createFrictionFromAverage(g)), g) } , $.prototype[c.PARTICLE | c.CAPSULE] = $.prototype.particleCapsule = function(e, t, i, r, o, s, a, n, h) { return this.circleLine(e, t, i, r, o, s, a, n, h, s.radius, 0) } , $.prototype[c.CIRCLE | c.LINE] = $.prototype.circleLine = function(e, t, i, r, o, s, a, n, h, c, l) { c = c || 0, l = void 0 !== l ? l : t.radius; var m = j , u = Y , d = V , p = K , f = q , y = I , S = Z , w = J , g = Q , x = L , b = O , v = R , z = F , C = G , T = N; U.set(w, -s.length / 2, 0), U.set(g, s.length / 2, 0), U.rotate(x, w, n), U.rotate(b, g, n), X(x, x, a), X(b, b, a), U.copy(w, x), U.copy(g, b), W(y, g, w), U.normalize(S, y), U.rotate90cw(f, S), W(v, i, w); var P = H(v, f); W(p, w, a), W(z, i, a); var A = l + c; if (Math.abs(P) < A) { U.scale(m, f, P), W(d, i, m), U.scale(u, f, H(f, z)), U.normalize(u, u), U.scale(u, u, c), X(d, d, u); var _ = H(S, d) , B = H(S, w) , D = H(S, g); if (B < _ && _ < D) { if (h) return !0; var k = this.createContactEquation(e, o, t, s); return U.scale(k.normalA, m, -1), U.normalize(k.normalA, k.normalA), U.scale(k.contactPointA, k.normalA, l), X(k.contactPointA, k.contactPointA, i), W(k.contactPointA, k.contactPointA, e.position), W(k.contactPointB, d, a), X(k.contactPointB, k.contactPointB, a), W(k.contactPointB, k.contactPointB, o.position), this.contactEquations.push(k), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(k)), 1 } } T[0] = w, T[1] = g; for (var E = 0; E < T.length; E++) { var M = T[E]; if (W(v, M, i), U.squaredLength(v) < Math.pow(A, 2)) { if (h) return !0; k = this.createContactEquation(e, o, t, s); return U.copy(k.normalA, v), U.normalize(k.normalA, k.normalA), U.scale(k.contactPointA, k.normalA, l), X(k.contactPointA, k.contactPointA, i), W(k.contactPointA, k.contactPointA, e.position), W(k.contactPointB, M, a), U.scale(C, k.normalA, -c), X(k.contactPointB, k.contactPointB, C), X(k.contactPointB, k.contactPointB, a), W(k.contactPointB, k.contactPointB, o.position), this.contactEquations.push(k), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(k)), 1 } } return 0 } , $.prototype[c.CIRCLE | c.CAPSULE] = $.prototype.circleCapsule = function(e, t, i, r, o, s, a, n, h) { return this.circleLine(e, t, i, r, o, s, a, n, h, s.radius) } , $.prototype[c.CIRCLE | c.CONVEX] = $.prototype[c.CIRCLE | c.BOX] = $.prototype.circleConvex = function(e, t, i, r, o, s, a, n, h, c) { c = "number" == typeof c ? c : t.radius; for (var l = j, m = Y, u = V, d = K, p = q, f = L, y = O, S = F, w = G, g = D, x = k, b = !1, v = Number.MAX_VALUE, z = s.vertices, C = 0; C !== z.length + 1; C++) { var T = z[C % z.length] , P = z[(C + 1) % z.length]; if (U.rotate(l, T, n), U.rotate(m, P, n), X(l, l, a), X(m, m, a), W(u, m, l), U.normalize(d, u), U.rotate90cw(p, d), U.scale(w, p, -t.radius), X(w, w, i), E(w, s, a, n)) { U.sub(g, l, w); var A = Math.abs(U.dot(g, p)); A < v && (U.copy(x, w), v = A, U.scale(S, p, A), U.add(S, S, w), b = !0) } } if (b) { if (h) return !0; var _ = this.createContactEquation(e, o, t, s); return U.sub(_.normalA, x, i), U.normalize(_.normalA, _.normalA), U.scale(_.contactPointA, _.normalA, c), X(_.contactPointA, _.contactPointA, i), W(_.contactPointA, _.contactPointA, e.position), W(_.contactPointB, S, a), X(_.contactPointB, _.contactPointB, a), W(_.contactPointB, _.contactPointB, o.position), this.contactEquations.push(_), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(_)), 1 } if (0 < c) for (C = 0; C < z.length; C++) { var B = z[C]; if (U.rotate(y, B, n), X(y, y, a), W(f, y, i), U.squaredLength(f) < Math.pow(c, 2)) { if (h) return !0; _ = this.createContactEquation(e, o, t, s); return U.copy(_.normalA, f), U.normalize(_.normalA, _.normalA), U.scale(_.contactPointA, _.normalA, c), X(_.contactPointA, _.contactPointA, i), W(_.contactPointA, _.contactPointA, e.position), W(_.contactPointB, y, a), X(_.contactPointB, _.contactPointB, a), W(_.contactPointB, _.contactPointB, o.position), this.contactEquations.push(_), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(_)), 1 } } return 0 } ; var f = U.create() , y = U.create() , S = U.create() , w = U.create(); function E(e, t, i, r) { for (var o = f, s = y, a = S, n = w, h = e, c = t.vertices, l = null, m = 0; m !== c.length + 1; m++) { var u = c[m % c.length] , d = c[(m + 1) % c.length]; U.rotate(o, u, r), U.rotate(s, d, r), X(o, o, i), X(s, s, i), W(a, o, h), W(n, s, h); var p = U.crossLength(a, n); if (null === l && (l = p), p * l <= 0) return !1; l = p } return !0 } $.prototype[c.PARTICLE | c.CONVEX] = $.prototype[c.PARTICLE | c.BOX] = $.prototype.particleConvex = function(e, t, i, r, o, s, a, n, h) { var c = j , l = Y , m = V , u = K , d = q , p = I , f = Z , y = L , S = F , w = _ , g = B , x = Number.MAX_VALUE , b = !1 , v = s.vertices; if (!E(i, s, a, n)) return 0; if (h) return !0; for (var z = 0; z !== v.length + 1; z++) { var C = v[z % v.length] , T = v[(z + 1) % v.length]; U.rotate(c, C, n), U.rotate(l, T, n), X(c, c, a), X(l, l, a), W(m, l, c), U.normalize(u, m), U.rotate90cw(d, u), W(y, i, c); H(y, d); W(p, c, a), W(f, i, a), U.sub(w, c, i); var P = Math.abs(U.dot(w, d)); P < x && (x = P, U.scale(S, d, P), U.add(S, S, i), U.copy(g, d), b = !0) } if (b) { var A = this.createContactEquation(e, o, t, s); return U.scale(A.normalA, g, -1), U.normalize(A.normalA, A.normalA), U.set(A.contactPointA, 0, 0), X(A.contactPointA, A.contactPointA, i), W(A.contactPointA, A.contactPointA, e.position), W(A.contactPointB, S, a), X(A.contactPointB, A.contactPointB, a), W(A.contactPointB, A.contactPointB, o.position), this.contactEquations.push(A), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(A)), 1 } return 0 } , $.prototype[c.CIRCLE] = $.prototype.circleCircle = function(e, t, i, r, o, s, a, n, h, c, l) { var m = j; c = c || t.radius, l = l || s.radius; W(m, i, a); var u = c + l; if (U.squaredLength(m) > Math.pow(u, 2)) return 0; if (h) return !0; var d = this.createContactEquation(e, o, t, s); return W(d.normalA, a, i), U.normalize(d.normalA, d.normalA), U.scale(d.contactPointA, d.normalA, c), U.scale(d.contactPointB, d.normalA, -l), X(d.contactPointA, d.contactPointA, i), W(d.contactPointA, d.contactPointA, e.position), X(d.contactPointB, d.contactPointB, a), W(d.contactPointB, d.contactPointB, o.position), this.contactEquations.push(d), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(d)), 1 } , $.prototype[c.PLANE | c.CONVEX] = $.prototype[c.PLANE | c.BOX] = $.prototype.planeConvex = function(e, t, i, r, o, s, a, n, h) { var c = j , l = Y , m = V , u = 0; U.rotate(l, C, r); for (var d = 0; d !== s.vertices.length; d++) { var p = s.vertices[d]; if (U.rotate(c, p, n), X(c, c, a), W(m, c, i), H(m, l) <= 0) { if (h) return !0; u++; var f = this.createContactEquation(e, o, t, s); W(m, c, i), U.copy(f.normalA, l); var y = H(m, f.normalA); U.scale(m, f.normalA, y), W(f.contactPointB, c, o.position), W(f.contactPointA, c, m), W(f.contactPointA, f.contactPointA, e.position), this.contactEquations.push(f), this.enableFrictionReduction || this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(f)) } } return this.enableFrictionReduction && this.enableFriction && u && this.frictionEquations.push(this.createFrictionFromAverage(u)), u } , $.prototype[c.PARTICLE | c.PLANE] = $.prototype.particlePlane = function(e, t, i, r, o, s, a, n, h) { var c = j , l = Y; n = n || 0, W(c, i, a), U.rotate(l, C, n); var m = H(c, l); if (0 < m) return 0; if (h) return !0; var u = this.createContactEquation(o, e, s, t); return U.copy(u.normalA, l), U.scale(c, u.normalA, m), W(u.contactPointA, i, c), W(u.contactPointA, u.contactPointA, o.position), W(u.contactPointB, i, e.position), this.contactEquations.push(u), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(u)), 1 } , $.prototype[c.CIRCLE | c.PARTICLE] = $.prototype.circleParticle = function(e, t, i, r, o, s, a, n, h) { var c = j; if (W(c, a, i), U.squaredLength(c) > Math.pow(t.radius, 2)) return 0; if (h) return !0; var l = this.createContactEquation(e, o, t, s); return U.copy(l.normalA, c), U.normalize(l.normalA, l.normalA), U.scale(l.contactPointA, l.normalA, t.radius), X(l.contactPointA, l.contactPointA, i), W(l.contactPointA, l.contactPointA, e.position), W(l.contactPointB, a, o.position), this.contactEquations.push(l), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(l)), 1 } ; var T = new n({ radius: 1 }) , P = U.create() , A = U.create(); U.create(); $.prototype[c.PLANE | c.CAPSULE] = $.prototype.planeCapsule = function(e, t, i, r, o, s, a, n, h) { var c, l = P, m = A, u = T; U.set(l, -s.length / 2, 0), U.rotate(l, l, n), X(l, l, a), U.set(m, s.length / 2, 0), U.rotate(m, m, n), X(m, m, a), u.radius = s.radius, this.enableFrictionReduction && (c = this.enableFriction, this.enableFriction = !1); var d = this.circlePlane(o, u, l, 0, e, t, i, r, h) , p = this.circlePlane(o, u, m, 0, e, t, i, r, h); if (this.enableFrictionReduction && (this.enableFriction = c), h) return d || p; var f = d + p; return this.enableFrictionReduction && f && this.frictionEquations.push(this.createFrictionFromAverage(f)), f } , $.prototype[c.CIRCLE | c.PLANE] = $.prototype.circlePlane = function(e, t, i, r, o, s, a, n, h) { var c = e , l = t , m = i , u = o , d = a , p = n; p = p || 0; var f = j , y = Y , S = V; W(f, m, d), U.rotate(y, C, p); var w = H(y, f); if (w > l.radius) return 0; if (h) return !0; var g = this.createContactEquation(u, c, s, t); return U.copy(g.normalA, y), U.scale(g.contactPointB, g.normalA, -l.radius), X(g.contactPointB, g.contactPointB, m), W(g.contactPointB, g.contactPointB, c.position), U.scale(S, g.normalA, w), W(g.contactPointA, f, S), X(g.contactPointA, g.contactPointA, d), W(g.contactPointA, g.contactPointA, u.position), this.contactEquations.push(g), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(g)), 1 } , $.prototype[c.CONVEX] = $.prototype[c.CONVEX | c.BOX] = $.prototype[c.BOX] = $.prototype.convexConvex = function(e, t, i, r, o, s, a, n, h, c) { var l = j , m = Y , u = V , d = K , p = q , f = Z , y = J , S = Q , w = 0; c = "number" == typeof c ? c : 0; if (!$.findSeparatingAxis(t, i, r, s, a, n, l)) return 0; W(y, a, i), 0 < H(l, y) && U.scale(l, l, -1); var g = $.getClosestEdge(t, r, l, !0) , x = $.getClosestEdge(s, n, l); if (-1 === g || -1 === x) return 0; for (var b = 0; b < 2; b++) { var v, z = g, C = x, T = t, P = s, A = i, _ = a, B = r, D = n, k = e, E = o; if (0 === b) v = z, z = C, C = v, v = T, T = P, P = v, v = A, A = _, _ = v, v = B, B = D, D = v, v = k, k = E, E = v; for (var M = C; M < C + 2; M++) { var I = P.vertices[(M + P.vertices.length) % P.vertices.length]; U.rotate(m, I, D), X(m, m, _); for (var L = 0, O = z - 1; O < z + 2; O++) { var R = T.vertices[(O + T.vertices.length) % T.vertices.length] , F = T.vertices[(O + 1 + T.vertices.length) % T.vertices.length]; U.rotate(u, R, B), U.rotate(d, F, B), X(u, u, A), X(d, d, A), W(p, d, u), U.rotate90cw(S, p), U.normalize(S, S), W(y, m, u); var G = H(S, y); (O === z && G <= c || O !== z && G <= 0) && L++ } if (3 <= L) { if (h) return !0; var N = this.createContactEquation(k, E, T, P); w++; R = T.vertices[z % T.vertices.length], F = T.vertices[(z + 1) % T.vertices.length]; U.rotate(u, R, B), U.rotate(d, F, B), X(u, u, A), X(d, d, A), W(p, d, u), U.rotate90cw(N.normalA, p), U.normalize(N.normalA, N.normalA), W(y, m, u); G = H(N.normalA, y); U.scale(f, N.normalA, G), W(N.contactPointA, m, A), W(N.contactPointA, N.contactPointA, f), X(N.contactPointA, N.contactPointA, A), W(N.contactPointA, N.contactPointA, k.position), W(N.contactPointB, m, _), X(N.contactPointB, N.contactPointB, _), W(N.contactPointB, N.contactPointB, E.position), this.contactEquations.push(N), this.enableFrictionReduction || this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(N)) } } } return this.enableFrictionReduction && this.enableFriction && w && this.frictionEquations.push(this.createFrictionFromAverage(w)), w } ; var M = U.fromValues(0, 0); $.projectConvexOntoAxis = function(e, t, i, r, o) { var s, a, n = null, h = null, c = M; U.rotate(c, r, -i); for (var l = 0; l < e.vertices.length; l++) s = e.vertices[l], a = H(s, c), (null === n || n < a) && (n = a), (null === h || a < h) && (h = a); if (n < h) { var m = h; h = n, n = m } var u = H(t, r); U.set(o, h + u, n + u) } ; var ee = U.fromValues(0, 0) , te = U.fromValues(0, 0) , ie = U.fromValues(0, 0) , re = U.fromValues(0, 0) , oe = U.fromValues(0, 0) , se = U.fromValues(0, 0); $.findSeparatingAxis = function(e, t, i, r, o, s, a) { var n = null , h = !1 , c = !1 , l = ee , m = te , u = ie , d = re , p = oe , f = se; if (e instanceof z && r instanceof z) for (var y = 0; 2 !== y; y++) { var S = e , w = i; 1 === y && (S = r, w = s); for (var g = 0; 2 !== g; g++) { 0 === g ? U.set(d, 0, 1) : 1 === g && U.set(d, 1, 0), 0 !== w && U.rotate(d, d, w), $.projectConvexOntoAxis(e, t, i, d, p), $.projectConvexOntoAxis(r, o, s, d, f); var x = p , b = f; p[0] > f[0] && (b = p, x = f, !0), h = (v = b[0] - x[1]) <= 0, (null === n || n < v) && (U.copy(a, d), n = v, c = h) } } else for (y = 0; 2 !== y; y++) { S = e, w = i; 1 === y && (S = r, w = s); for (g = 0; g !== S.vertices.length; g++) { U.rotate(m, S.vertices[g], w), U.rotate(u, S.vertices[(g + 1) % S.vertices.length], w), W(l, u, m), U.rotate90cw(d, l), U.normalize(d, d), $.projectConvexOntoAxis(e, t, i, d, p), $.projectConvexOntoAxis(r, o, s, d, f); var v; x = p, b = f; p[0] > f[0] && (b = p, x = f, !0), h = (v = b[0] - x[1]) <= 0, (null === n || n < v) && (U.copy(a, d), n = v, c = h) } } return c } ; var u = U.fromValues(0, 0) , ae = U.fromValues(0, 0) , ne = U.fromValues(0, 0); $.getClosestEdge = function(e, t, i, r) { var o = u , s = ae , a = ne; U.rotate(o, i, -t), r && U.scale(o, o, -1); for (var n = -1, h = e.vertices.length, c = -1, l = 0; l !== h; l++) { W(s, e.vertices[(l + 1) % h], e.vertices[l % h]), U.rotate90cw(a, s), U.normalize(a, a); var m = H(a, o); (-1 === n || c < m) && (n = l % h, c = m) } return n } ; var he = U.create() , ce = U.create() , le = U.create() , me = U.create() , ue = U.create() , de = U.create() , pe = U.create(); $.prototype[c.CIRCLE | c.HEIGHTFIELD] = $.prototype.circleHeightfield = function(e, t, i, r, o, s, a, n, h, c) { var l = s.heights , m = (c = c || t.radius, s.elementWidth) , u = ce , d = he , p = ue , f = pe , y = de , S = le , w = me , g = Math.floor((i[0] - c - a[0]) / m) , x = Math.ceil((i[0] + c - a[0]) / m); g < 0 && (g = 0), x >= l.length && (x = l.length - 1); for (var b = l[g], v = l[x], z = g; z < x; z++) l[z] < v && (v = l[z]), l[z] > b && (b = l[z]); if (i[1] - c > b) return !h && 0; var C = !1; for (z = g; z < x; z++) { U.set(S, z * m, l[z]), U.set(w, (z + 1) * m, l[z + 1]), U.add(S, S, a), U.add(w, w, a), U.sub(y, w, S), U.rotate(y, y, Math.PI / 2), U.normalize(y, y), U.scale(d, y, -c), U.add(d, d, i), U.sub(u, d, S); var T = U.dot(u, y); if (d[0] >= S[0] && d[0] < w[0] && T <= 0) { if (h) return !0; C = !0, U.scale(u, y, -T), U.add(p, d, u), U.copy(f, y); var P = this.createContactEquation(o, e, s, t); U.copy(P.normalA, f), U.scale(P.contactPointB, P.normalA, -c), X(P.contactPointB, P.contactPointB, i), W(P.contactPointB, P.contactPointB, e.position), U.copy(P.contactPointA, p), U.sub(P.contactPointA, P.contactPointA, o.position), this.contactEquations.push(P), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(P)) } } if (C = !1, 0 < c) for (z = g; z <= x; z++) if (U.set(S, z * m, l[z]), U.add(S, S, a), U.sub(u, i, S), U.squaredLength(u) < Math.pow(c, 2)) { if (h) return !0; C = !0; P = this.createContactEquation(o, e, s, t); U.copy(P.normalA, u), U.normalize(P.normalA, P.normalA), U.scale(P.contactPointB, P.normalA, -c), X(P.contactPointB, P.contactPointB, i), W(P.contactPointB, P.contactPointB, e.position), W(P.contactPointA, S, a), X(P.contactPointA, P.contactPointA, a), W(P.contactPointA, P.contactPointA, o.position), this.contactEquations.push(P), this.enableFriction && this.frictionEquations.push(this.createFrictionFromContact(P)) } return C ? 1 : 0 } ; var fe = U.create() , ye = U.create() , Se = U.create() , we = new h({ vertices: [U.create(), U.create(), U.create(), U.create()] }); $.prototype[c.BOX | c.HEIGHTFIELD] = $.prototype[c.CONVEX | c.HEIGHTFIELD] = $.prototype.convexHeightfield = function(e, t, i, r, o, s, a, n, h) { var c = s.heights , l = s.elementWidth , m = fe , u = ye , d = Se , p = we , f = Math.floor((e.aabb.lowerBound[0] - a[0]) / l) , y = Math.ceil((e.aabb.upperBound[0] - a[0]) / l); f < 0 && (f = 0), y >= c.length && (y = c.length - 1); for (var S = c[f], w = c[y], g = f; g < y; g++) c[g] < w && (w = c[g]), c[g] > S && (S = c[g]); if (e.aabb.lowerBound[1] > S) return !h && 0; var x = 0; for (g = f; g < y; g++) { U.set(m, g * l, c[g]), U.set(u, (g + 1) * l, c[g + 1]), U.add(m, m, a), U.add(u, u, a); U.set(d, .5 * (u[0] + m[0]), .5 * (u[1] + m[1] - 100)), U.sub(p.vertices[0], u, d), U.sub(p.vertices[1], m, d), U.copy(p.vertices[2], p.vertices[1]), U.copy(p.vertices[3], p.vertices[0]), p.vertices[2][1] -= 100, p.vertices[3][1] -= 100, x += this.convexConvex(e, t, i, r, o, p, d, 0, h) } return x } } , { "../equations/ContactEquation": 21, "../equations/Equation": 22, "../equations/FrictionEquation": 23, "../math/vec2": 30, "../objects/Body": 31, "../shapes/Box": 37, "../shapes/Circle": 39, "../shapes/Convex": 40, "../shapes/Shape": 45, "../utils/ContactEquationPool": 48, "../utils/FrictionEquationPool": 49, "../utils/TupleDictionary": 56, "../utils/Utils": 57 }], 11: [function(e, t, i) { t.exports = a; var h = e("../math/vec2"); e("../collision/RaycastResult"), e("../shapes/Shape"), e("../collision/AABB"); function a(e) { e = e || {}, this.from = e.from ? h.fromValues(e.from[0], e.from[1]) : h.create(), this.to = e.to ? h.fromValues(e.to[0], e.to[1]) : h.create(), this.checkCollisionResponse = void 0 === e.checkCollisionResponse || e.checkCollisionResponse, this.skipBackfaces = !!e.skipBackfaces, this.collisionMask = void 0 !== e.collisionMask ? e.collisionMask : -1, this.collisionGroup = void 0 !== e.collisionGroup ? e.collisionGroup : -1, this.mode = void 0 !== e.mode ? e.mode : a.ANY, this.callback = e.callback || function(e) {} , this.direction = h.create(), this.length = 1, this.update() } (a.prototype.constructor = a).CLOSEST = 1, a.ANY = 2, a.ALL = 4, a.prototype.update = function() { var e = this.direction; h.sub(e, this.to, this.from), this.length = h.length(e), h.normalize(e, e) } , a.prototype.intersectBodies = function(e, t) { for (var i = 0, r = t.length; !e.shouldStop(this) && i < r; i++) { var o = t[i] , s = o.getAABB(); (0 <= s.overlapsRay(this) || s.containsPoint(this.from)) && this.intersectBody(e, o) } } ; var c = h.create(); a.prototype.intersectBody = function(e, t) { var i = this.checkCollisionResponse; if (!i || t.collisionResponse) for (var r = c, o = 0, s = t.shapes.length; o < s; o++) { var a = t.shapes[o]; if ((!i || a.collisionResponse) && (0 != (this.collisionGroup & a.collisionMask) && 0 != (a.collisionGroup & this.collisionMask))) { h.rotate(r, a.position, t.angle), h.add(r, r, t.position); var n = a.angle + t.angle; if (this.intersectShape(e, a, n, r, t), e.shouldStop(this)) break } } } , a.prototype.intersectShape = function(e, t, i, r, o) { (function(e, t, i) { h.sub(s, i, e); var r = h.dot(s, t); return h.scale(n, t, r), h.add(n, n, e), h.squaredDistance(i, n) } )(this.from, this.direction, r) > t.boundingRadius * t.boundingRadius || (this._currentBody = o, (this._currentShape = t).raycast(e, this, r, i), this._currentBody = this._currentShape = null) } , a.prototype.getAABB = function(e) { var t = this.to , i = this.from; h.set(e.lowerBound, Math.min(t[0], i[0]), Math.min(t[1], i[1])), h.set(e.upperBound, Math.max(t[0], i[0]), Math.max(t[1], i[1])) } ; h.create(); a.prototype.reportIntersection = function(e, t, i, r) { this.from, this.to; var o = this._currentShape , s = this._currentBody; if (!(this.skipBackfaces && 0 < h.dot(i, this.direction))) switch (this.mode) { case a.ALL: e.set(i, o, s, t, r), this.callback(e); break; case a.CLOSEST: (t < e.fraction || !e.hasHit()) && e.set(i, o, s, t, r); break; case a.ANY: e.set(i, o, s, t, r) } } ; var s = h.create() , n = h.create() } , { "../collision/AABB": 7, "../collision/RaycastResult": 12, "../math/vec2": 30, "../shapes/Shape": 45 }], 12: [function(e, t, i) { var s = e("../math/vec2") , r = e("../collision/Ray"); function o() { this.normal = s.create(), this.shape = null, this.body = null, this.faceIndex = -1, this.fraction = -1, this.isStopped = !1 } (t.exports = o).prototype.reset = function() { s.set(this.normal, 0, 0), this.shape = null, this.body = null, this.faceIndex = -1, this.fraction = -1, this.isStopped = !1 } , o.prototype.getHitDistance = function(e) { return s.distance(e.from, e.to) * this.fraction } , o.prototype.hasHit = function() { return -1 !== this.fraction } , o.prototype.getHitPoint = function(e, t) { s.lerp(e, t.from, t.to, this.fraction) } , o.prototype.stop = function() { this.isStopped = !0 } , o.prototype.shouldStop = function(e) { return this.isStopped || -1 !== this.fraction && e.mode === r.ANY } , o.prototype.set = function(e, t, i, r, o) { s.copy(this.normal, e), this.shape = t, this.body = i, this.fraction = r, this.faceIndex = o } } , { "../collision/Ray": 11, "../math/vec2": 30 }], 13: [function(e, t, i) { var r = e("../utils/Utils") , m = e("../collision/Broadphase"); function o() { m.call(this, m.SAP), this.axisList = [], this.axisIndex = 0; var i = this; this._addBodyHandler = function(e) { i.axisList.push(e.body) } , this._removeBodyHandler = function(e) { var t = i.axisList.indexOf(e.body); -1 !== t && i.axisList.splice(t, 1) } } (((t.exports = o).prototype = new m).constructor = o).prototype.setWorld = function(e) { this.axisList.length = 0, r.appendArray(this.axisList, e.bodies), e.off("addBody", this._addBodyHandler).off("removeBody", this._removeBodyHandler), e.on("addBody", this._addBodyHandler).on("removeBody", this._removeBodyHandler), this.world = e } , o.sortAxisList = function(e, t) { t |= 0; for (var i = 1, r = e.length; i < r; i++) { for (var o = e[i], s = i - 1; 0 <= s && !(e[s].aabb.lowerBound[t] <= o.aabb.lowerBound[t]); s--) e[s + 1] = e[s]; e[s + 1] = o } return e } , o.prototype.sortList = function() { var e = this.axisList , t = this.axisIndex; o.sortAxisList(e, t) } , o.prototype.getCollisionPairs = function(e) { var t = this.axisList , i = this.result , r = this.axisIndex; i.length = 0; for (var o = t.length; o--; ) { var s = t[o]; s.aabbNeedsUpdate && s.updateAABB() } this.sortList(); for (var a = 0, n = 0 | t.length; a !== n; a++) for (var h = t[a], c = a + 1; c < n; c++) { var l = t[c]; if (!(l.aabb.lowerBound[r] <= h.aabb.upperBound[r])) break; m.canCollide(h, l) && this.boundingVolumeCheck(h, l) && i.push(h, l) } return i } , o.prototype.aabbQuery = function(e, t, i) { i = i || [], this.sortList(); var r = this.axisIndex , o = "x"; 1 === r && (o = "y"), 2 === r && (o = "z"); for (var s = this.axisList, a = (t.lowerBound[o], t.upperBound[o], 0); a < s.length; a++) { var n = s[a]; n.aabbNeedsUpdate && n.updateAABB(), n.aabb.overlaps(t) && i.push(n) } return i } } , { "../collision/Broadphase": 8, "../utils/Utils": 57 }], 14: [function(e, t, i) { t.exports = r; var o = e("../utils/Utils"); function r(e, t, i, r) { this.type = i, r = o.defaults(r, { collideConnected: !0, wakeUpBodies: !0 }), this.equations = [], this.bodyA = e, this.bodyB = t, this.collideConnected = r.collideConnected, r.wakeUpBodies && (e && e.wakeUp(), t && t.wakeUp()) } r.prototype.update = function() { throw new Error("method update() not implmemented in this Constraint subclass!") } , r.DISTANCE = 1, r.GEAR = 2, r.LOCK = 3, r.PRISMATIC = 4, r.REVOLUTE = 5, r.prototype.setStiffness = function(e) { for (var t = this.equations, i = 0; i !== t.length; i++) { var r = t[i]; r.stiffness = e, r.needsUpdate = !0 } } , r.prototype.setRelaxation = function(e) { for (var t = this.equations, i = 0; i !== t.length; i++) { var r = t[i]; r.relaxation = e, r.needsUpdate = !0 } } } , { "../utils/Utils": 57 }], 15: [function(e, t, i) { var d = e("./Constraint") , p = e("../equations/Equation") , f = e("../math/vec2") , y = e("../utils/Utils"); function r(e, t, i) { i = y.defaults(i, { localAnchorA: [0, 0], localAnchorB: [0, 0] }), d.call(this, e, t, d.DISTANCE, i), this.localAnchorA = f.fromValues(i.localAnchorA[0], i.localAnchorA[1]), this.localAnchorB = f.fromValues(i.localAnchorB[0], i.localAnchorB[1]); var r, o = this.localAnchorA, s = this.localAnchorB; if (this.distance = 0, "number" == typeof i.distance) this.distance = i.distance; else { var a = f.create() , n = f.create() , h = f.create(); f.rotate(a, o, e.angle), f.rotate(n, s, t.angle), f.add(h, t.position, n), f.sub(h, h, a), f.sub(h, h, e.position), this.distance = f.length(h) } r = void 0 === i.maxForce ? Number.MAX_VALUE : i.maxForce; var c = new p(e,t,-r,r); this.equations = [c], this.maxForce = r; h = f.create(); var l = f.create() , m = f.create() , u = this; c.computeGq = function() { var e = this.bodyA , t = this.bodyB , i = e.position , r = t.position; return f.rotate(l, o, e.angle), f.rotate(m, s, t.angle), f.add(h, r, m), f.sub(h, h, l), f.sub(h, h, i), f.length(h) - u.distance } , this.setMaxForce(r), this.upperLimitEnabled = !1, this.upperLimit = 1, this.lowerLimitEnabled = !1, this.lowerLimit = 0, this.position = 0 } ((t.exports = r).prototype = new d).constructor = r; var l = f.create() , m = f.create() , u = f.create(); r.prototype.update = function() { var e = this.equations[0] , t = this.bodyA , i = this.bodyB , r = (this.distance, t.position) , o = i.position , s = this.equations[0] , a = e.G; f.rotate(m, this.localAnchorA, t.angle), f.rotate(u, this.localAnchorB, i.angle), f.add(l, o, u), f.sub(l, l, m), f.sub(l, l, r), this.position = f.length(l); var n = !1; if (this.upperLimitEnabled && this.position > this.upperLimit && (s.maxForce = 0, s.minForce = -this.maxForce, this.distance = this.upperLimit, n = !0), this.lowerLimitEnabled && this.position < this.lowerLimit && (s.maxForce = this.maxForce, s.minForce = 0, this.distance = this.lowerLimit, n = !0), !this.lowerLimitEnabled && !this.upperLimitEnabled || n) { s.enabled = !0, f.normalize(l, l); var h = f.crossLength(m, l) , c = f.crossLength(u, l); a[0] = -l[0], a[1] = -l[1], a[2] = -h, a[3] = l[0], a[4] = l[1], a[5] = c } else s.enabled = !1 } , r.prototype.setMaxForce = function(e) { var t = this.equations[0]; t.minForce = -e, t.maxForce = e } , r.prototype.getMaxForce = function() { return this.equations[0].maxForce } } , { "../equations/Equation": 22, "../math/vec2": 30, "../utils/Utils": 57, "./Constraint": 14 }], 16: [function(e, t, i) { var r = e("./Constraint") , o = (e("../equations/Equation"), e("../equations/AngleLockEquation")); e("../math/vec2"); function s(e, t, i) { i = i || {}, r.call(this, e, t, r.GEAR, i), this.ratio = void 0 !== i.ratio ? i.ratio : 1, this.angle = void 0 !== i.angle ? i.angle : t.angle - this.ratio * e.angle, i.angle = this.angle, i.ratio = this.ratio, this.equations = [new o(e,t,i)], void 0 !== i.maxTorque && this.setMaxTorque(i.maxTorque) } (((t.exports = s).prototype = new r).constructor = s).prototype.update = function() { var e = this.equations[0]; e.ratio !== this.ratio && e.setRatio(this.ratio), e.angle = this.angle } , s.prototype.setMaxTorque = function(e) { this.equations[0].setMaxTorque(e) } , s.prototype.getMaxTorque = function(e) { return this.equations[0].maxForce } } , { "../equations/AngleLockEquation": 20, "../equations/Equation": 22, "../math/vec2": 30, "./Constraint": 14 }], 17: [function(e, t, i) { var u = e("./Constraint") , d = e("../math/vec2") , p = e("../equations/Equation"); function r(e, t, i) { i = i || {}, u.call(this, e, t, u.LOCK, i); var r = void 0 === i.maxForce ? Number.MAX_VALUE : i.maxForce , o = (i.localAngleB, new p(e,t,-r,r)) , s = new p(e,t,-r,r) , a = new p(e,t,-r,r) , n = d.create() , h = d.create() , c = this; o.computeGq = function() { return d.rotate(n, c.localOffsetB, e.angle), d.sub(h, t.position, e.position), d.sub(h, h, n), h[0] } , s.computeGq = function() { return d.rotate(n, c.localOffsetB, e.angle), d.sub(h, t.position, e.position), d.sub(h, h, n), h[1] } ; var l = d.create() , m = d.create(); a.computeGq = function() { return d.rotate(l, c.localOffsetB, t.angle - c.localAngleB), d.scale(l, l, -1), d.sub(h, e.position, t.position), d.add(h, h, l), d.rotate(m, l, -Math.PI / 2), d.normalize(m, m), d.dot(h, m) } , this.localOffsetB = d.create(), i.localOffsetB ? d.copy(this.localOffsetB, i.localOffsetB) : (d.sub(this.localOffsetB, t.position, e.position), d.rotate(this.localOffsetB, this.localOffsetB, -e.angle)), this.localAngleB = 0, "number" == typeof i.localAngleB ? this.localAngleB = i.localAngleB : this.localAngleB = t.angle - e.angle, this.equations.push(o, s, a), this.setMaxForce(r) } (((t.exports = r).prototype = new u).constructor = r).prototype.setMaxForce = function(e) { for (var t = this.equations, i = 0; i < this.equations.length; i++) t[i].maxForce = e, t[i].minForce = -e } , r.prototype.getMaxForce = function() { return this.equations[0].maxForce } ; var s = d.create() , a = d.create() , n = d.create() , h = d.fromValues(1, 0) , c = d.fromValues(0, 1); r.prototype.update = function() { var e = this.equations[0] , t = this.equations[1] , i = this.equations[2] , r = this.bodyA , o = this.bodyB; d.rotate(s, this.localOffsetB, r.angle), d.rotate(a, this.localOffsetB, o.angle - this.localAngleB), d.scale(a, a, -1), d.rotate(n, a, Math.PI / 2), d.normalize(n, n), e.G[0] = -1, e.G[1] = 0, e.G[2] = -d.crossLength(s, h), e.G[3] = 1, t.G[0] = 0, t.G[1] = -1, t.G[2] = -d.crossLength(s, c), t.G[4] = 1, i.G[0] = -n[0], i.G[1] = -n[1], i.G[3] = n[0], i.G[4] = n[1], i.G[5] = d.crossLength(a, n) } } , { "../equations/Equation": 22, "../math/vec2": 30, "./Constraint": 14 }], 18: [function(e, t, i) { var f = e("./Constraint") , y = e("../equations/ContactEquation") , S = e("../equations/Equation") , w = e("../math/vec2") , g = e("../equations/RotationalLockEquation"); function r(r, o, e) { e = e || {}, f.call(this, r, o, f.PRISMATIC, e); var s = w.fromValues(0, 0) , a = w.fromValues(1, 0) , n = w.fromValues(0, 0); e.localAnchorA && w.copy(s, e.localAnchorA), e.localAxisA && w.copy(a, e.localAxisA), e.localAnchorB && w.copy(n, e.localAnchorB), this.localAnchorA = s, this.localAnchorB = n, this.localAxisA = a; var t = this.maxForce = void 0 !== e.maxForce ? e.maxForce : Number.MAX_VALUE , i = new S(r,o,-t,t) , h = new w.create , c = new w.create , l = new w.create , m = new w.create; if (i.computeGq = function() { return w.dot(l, m) } , i.updateJacobian = function() { var e = this.G , t = r.position , i = o.position; w.rotate(h, s, r.angle), w.rotate(c, n, o.angle), w.add(l, i, c), w.sub(l, l, t), w.sub(l, l, h), w.rotate(m, a, r.angle + Math.PI / 2), e[0] = -m[0], e[1] = -m[1], e[2] = -w.crossLength(h, m) + w.crossLength(m, l), e[3] = m[0], e[4] = m[1], e[5] = w.crossLength(c, m) } , this.equations.push(i), !e.disableRotationalLock) { var u = new g(r,o,-t,t); this.equations.push(u) } this.position = 0, this.velocity = 0, this.lowerLimitEnabled = void 0 !== e.lowerLimit, this.upperLimitEnabled = void 0 !== e.upperLimit, this.lowerLimit = void 0 !== e.lowerLimit ? e.lowerLimit : 0, this.upperLimit = void 0 !== e.upperLimit ? e.upperLimit : 1, this.upperLimitEquation = new y(r,o), this.lowerLimitEquation = new y(r,o), this.upperLimitEquation.minForce = this.lowerLimitEquation.minForce = 0, this.upperLimitEquation.maxForce = this.lowerLimitEquation.maxForce = t, this.motorEquation = new S(r,o), this.motorEnabled = !1, this.motorSpeed = 0; var d = this , p = this.motorEquation; p.computeGW; p.computeGq = function() { return 0 } , p.computeGW = function() { var e = this.G , t = this.bodyA , i = this.bodyB , r = t.velocity , o = i.velocity , s = t.angularVelocity , a = i.angularVelocity; return this.gmult(e, r, s, o, a) + d.motorSpeed } } ((t.exports = r).prototype = new f).constructor = r; var p = w.create() , x = w.create() , b = w.create() , v = w.create() , z = w.create() , C = w.create(); r.prototype.update = function() { var e = this.equations , t = e[0] , i = this.upperLimit , r = this.lowerLimit , o = this.upperLimitEquation , s = this.lowerLimitEquation , a = this.bodyA , n = this.bodyB , h = this.localAxisA , c = this.localAnchorA , l = this.localAnchorB; t.updateJacobian(), w.rotate(p, h, a.angle), w.rotate(v, c, a.angle), w.add(x, v, a.position), w.rotate(z, l, n.angle), w.add(b, z, n.position); var m, u = this.position = w.dot(b, p) - w.dot(x, p); if (this.motorEnabled) { var d = this.motorEquation.G; d[0] = p[0], d[1] = p[1], d[2] = w.crossLength(p, z), d[3] = -p[0], d[4] = -p[1], d[5] = -w.crossLength(p, v) } this.upperLimitEnabled && i < u ? (w.scale(o.normalA, p, -1), w.sub(o.contactPointA, x, a.position), w.sub(o.contactPointB, b, n.position), w.scale(C, p, i), w.add(o.contactPointA, o.contactPointA, C), -1 === e.indexOf(o) && e.push(o)) : -1 !== (m = e.indexOf(o)) && e.splice(m, 1); this.lowerLimitEnabled && u < r ? (w.scale(s.normalA, p, 1), w.sub(s.contactPointA, x, a.position), w.sub(s.contactPointB, b, n.position), w.scale(C, p, r), w.sub(s.contactPointB, s.contactPointB, C), -1 === e.indexOf(s) && e.push(s)) : -1 !== (m = e.indexOf(s)) && e.splice(m, 1) } , r.prototype.enableMotor = function() { this.motorEnabled || (this.equations.push(this.motorEquation), this.motorEnabled = !0) } , r.prototype.disableMotor = function() { if (this.motorEnabled) { var e = this.equations.indexOf(this.motorEquation); this.equations.splice(e, 1), this.motorEnabled = !1 } } , r.prototype.setLimits = function(e, t) { "number" == typeof e ? (this.lowerLimit = e, this.lowerLimitEnabled = !0) : (this.lowerLimit = e, this.lowerLimitEnabled = !1), "number" == typeof t ? (this.upperLimit = t, this.upperLimitEnabled = !0) : (this.upperLimit = t, this.upperLimitEnabled = !1) } } , { "../equations/ContactEquation": 21, "../equations/Equation": 22, "../equations/RotationalLockEquation": 24, "../math/vec2": 30, "./Constraint": 14 }], 19: [function(e, t, i) { var h = e("./Constraint") , c = e("../equations/Equation") , l = e("../equations/RotationalVelocityEquation") , m = e("../equations/RotationalLockEquation") , d = e("../math/vec2"); t.exports = r; var p = d.create() , f = d.create() , y = d.fromValues(1, 0) , S = d.fromValues(0, 1) , u = d.create(); function r(e, t, i) { i = i || {}, h.call(this, e, t, h.REVOLUTE, i); var r = this.maxForce = void 0 !== i.maxForce ? i.maxForce : Number.MAX_VALUE; this.pivotA = d.create(), this.pivotB = d.create(), i.worldPivot ? (d.sub(this.pivotA, i.worldPivot, e.position), d.sub(this.pivotB, i.worldPivot, t.position), d.rotate(this.pivotA, this.pivotA, -e.angle), d.rotate(this.pivotB, this.pivotB, -t.angle)) : (d.copy(this.pivotA, i.localPivotA), d.copy(this.pivotB, i.localPivotB)); var o = this.equations = [new c(e,t,-r,r), new c(e,t,-r,r)] , s = o[0] , a = o[1] , n = this; s.computeGq = function() { return d.rotate(p, n.pivotA, e.angle), d.rotate(f, n.pivotB, t.angle), d.add(u, t.position, f), d.sub(u, u, e.position), d.sub(u, u, p), d.dot(u, y) } , a.computeGq = function() { return d.rotate(p, n.pivotA, e.angle), d.rotate(f, n.pivotB, t.angle), d.add(u, t.position, f), d.sub(u, u, e.position), d.sub(u, u, p), d.dot(u, S) } , a.minForce = s.minForce = -r, a.maxForce = s.maxForce = r, this.motorEquation = new l(e,t), this.motorEnabled = !1, this.angle = 0, this.lowerLimitEnabled = !1, this.upperLimitEnabled = !1, this.lowerLimit = 0, this.upperLimit = 0, this.upperLimitEquation = new m(e,t), this.lowerLimitEquation = new m(e,t), this.upperLimitEquation.minForce = 0, this.lowerLimitEquation.maxForce = 0 } ((r.prototype = new h).constructor = r).prototype.setLimits = function(e, t) { "number" == typeof e ? (this.lowerLimit = e, this.lowerLimitEnabled = !0) : (this.lowerLimit = e, this.lowerLimitEnabled = !1), "number" == typeof t ? (this.upperLimit = t, this.upperLimitEnabled = !0) : (this.upperLimit = t, this.upperLimitEnabled = !1) } , r.prototype.update = function() { var e, t = this.bodyA, i = this.bodyB, r = this.pivotA, o = this.pivotB, s = this.equations, a = (s[0], s[1], s[0]), n = s[1], h = this.upperLimit, c = this.lowerLimit, l = this.upperLimitEquation, m = this.lowerLimitEquation, u = this.angle = i.angle - t.angle; this.upperLimitEnabled && h < u ? (l.angle = h, -1 === s.indexOf(l) && s.push(l)) : -1 !== (e = s.indexOf(l)) && s.splice(e, 1); this.lowerLimitEnabled && u < c ? (m.angle = c, -1 === s.indexOf(m) && s.push(m)) : -1 !== (e = s.indexOf(m)) && s.splice(e, 1); d.rotate(p, r, t.angle), d.rotate(f, o, i.angle), a.G[0] = -1, a.G[1] = 0, a.G[2] = -d.crossLength(p, y), a.G[3] = 1, a.G[4] = 0, a.G[5] = d.crossLength(f, y), n.G[0] = 0, n.G[1] = -1, n.G[2] = -d.crossLength(p, S), n.G[3] = 0, n.G[4] = 1, n.G[5] = d.crossLength(f, S) } , r.prototype.enableMotor = function() { this.motorEnabled || (this.equations.push(this.motorEquation), this.motorEnabled = !0) } , r.prototype.disableMotor = function() { if (this.motorEnabled) { var e = this.equations.indexOf(this.motorEquation); this.equations.splice(e, 1), this.motorEnabled = !1 } } , r.prototype.motorIsEnabled = function() { return !!this.motorEnabled } , r.prototype.setMotorSpeed = function(e) { if (this.motorEnabled) { var t = this.equations.indexOf(this.motorEquation); this.equations[t].relativeVelocity = e } } , r.prototype.getMotorSpeed = function() { return !!this.motorEnabled && this.motorEquation.relativeVelocity } } , { "../equations/Equation": 22, "../equations/RotationalLockEquation": 24, "../equations/RotationalVelocityEquation": 25, "../math/vec2": 30, "./Constraint": 14 }], 20: [function(e, t, i) { var r = e("./Equation"); e("../math/vec2"); function o(e, t, i) { i = i || {}, r.call(this, e, t, -Number.MAX_VALUE, Number.MAX_VALUE), this.angle = i.angle || 0, this.ratio = "number" == typeof i.ratio ? i.ratio : 1, this.setRatio(this.ratio) } (((t.exports = o).prototype = new r).constructor = o).prototype.computeGq = function() { return this.ratio * this.bodyA.angle - this.bodyB.angle + this.angle } , o.prototype.setRatio = function(e) { var t = this.G; t[2] = e, t[5] = -1, this.ratio = e } , o.prototype.setMaxTorque = function(e) { this.maxForce = e, this.minForce = -e } } , { "../math/vec2": 30, "./Equation": 22 }], 21: [function(e, t, i) { var r = e("./Equation") , y = e("../math/vec2"); function o(e, t) { r.call(this, e, t, 0, Number.MAX_VALUE), this.contactPointA = y.create(), this.penetrationVec = y.create(), this.contactPointB = y.create(), this.normalA = y.create(), this.restitution = 0, this.firstImpact = !1, this.shapeA = null, this.shapeB = null } (((t.exports = o).prototype = new r).constructor = o).prototype.computeB = function(e, t, i) { var r, o, s = this.bodyA, a = this.bodyB, n = this.contactPointA, h = this.contactPointB, c = s.position, l = a.position, m = this.penetrationVec, u = this.normalA, d = this.G, p = y.crossLength(n, u), f = y.crossLength(h, u); return d[0] = -u[0], d[1] = -u[1], d[2] = -p, d[3] = u[0], d[4] = u[1], d[5] = f, y.add(m, l, h), y.sub(m, m, c), y.sub(m, m, n), r = this.firstImpact && 0 !== this.restitution ? (o = 0, 1 / t * (1 + this.restitution) * this.computeGW()) : (o = y.dot(u, m) + this.offset, this.computeGW()), -o * e - r * t - i * this.computeGiMf() } } , { "../math/vec2": 30, "./Equation": 22 }], 22: [function(e, t, i) { t.exports = a; var m = e("../math/vec2") , s = e("../utils/Utils"); e("../objects/Body"); function a(e, t, i, r) { this.minForce = void 0 === i ? -Number.MAX_VALUE : i, this.maxForce = void 0 === r ? Number.MAX_VALUE : r, this.bodyA = e, this.bodyB = t, this.stiffness = a.DEFAULT_STIFFNESS, this.relaxation = a.DEFAULT_RELAXATION, this.G = new s.ARRAY_TYPE(6); for (var o = 0; o < 6; o++) this.G[o] = 0; this.offset = 0, this.a = 0, this.b = 0, this.epsilon = 0, this.timeStep = 1 / 60, this.needsUpdate = !0, this.multiplier = 0, this.relativeVelocity = 0, this.enabled = !0 } (a.prototype.constructor = a).DEFAULT_STIFFNESS = 1e6, a.DEFAULT_RELAXATION = 4, a.prototype.update = function() { var e = this.stiffness , t = this.relaxation , i = this.timeStep; this.a = 4 / (i * (1 + 4 * t)), this.b = 4 * t / (1 + 4 * t), this.epsilon = 4 / (i * i * e * (1 + 4 * t)), this.needsUpdate = !1 } , a.prototype.gmult = function(e, t, i, r, o) { return e[0] * t[0] + e[1] * t[1] + e[2] * i + e[3] * r[0] + e[4] * r[1] + e[5] * o } , a.prototype.computeB = function(e, t, i) { var r = this.computeGW(); return -this.computeGq() * e - r * t - this.computeGiMf() * i } ; var n = m.create() , h = m.create(); a.prototype.computeGq = function() { var e = this.G , t = this.bodyA , i = this.bodyB , r = (t.position, i.position, t.angle) , o = i.angle; return this.gmult(e, n, r, h, o) + this.offset } , a.prototype.computeGW = function() { var e = this.G , t = this.bodyA , i = this.bodyB , r = t.velocity , o = i.velocity , s = t.angularVelocity , a = i.angularVelocity; return this.gmult(e, r, s, o, a) + this.relativeVelocity } , a.prototype.computeGWlambda = function() { var e = this.G , t = this.bodyA , i = this.bodyB , r = t.vlambda , o = i.vlambda , s = t.wlambda , a = i.wlambda; return this.gmult(e, r, s, o, a) } ; var u = m.create() , d = m.create(); a.prototype.computeGiMf = function() { var e = this.bodyA , t = this.bodyB , i = e.force , r = e.angularForce , o = t.force , s = t.angularForce , a = e.invMassSolve , n = t.invMassSolve , h = e.invInertiaSolve , c = t.invInertiaSolve , l = this.G; return m.scale(u, i, a), m.multiply(u, e.massMultiplier, u), m.scale(d, o, n), m.multiply(d, t.massMultiplier, d), this.gmult(l, u, r * h, d, s * c) } , a.prototype.computeGiMGt = function() { var e = this.bodyA , t = this.bodyB , i = e.invMassSolve , r = t.invMassSolve , o = e.invInertiaSolve , s = t.invInertiaSolve , a = this.G; return a[0] * a[0] * i * e.massMultiplier[0] + a[1] * a[1] * i * e.massMultiplier[1] + a[2] * a[2] * o + a[3] * a[3] * r * t.massMultiplier[0] + a[4] * a[4] * r * t.massMultiplier[1] + a[5] * a[5] * s } ; var p = m.create() , f = m.create() , y = m.create(); m.create(), m.create(), m.create(); a.prototype.addToWlambda = function(e) { var t = this.bodyA , i = this.bodyB , r = p , o = f , s = y , a = t.invMassSolve , n = i.invMassSolve , h = t.invInertiaSolve , c = i.invInertiaSolve , l = this.G; o[0] = l[0], o[1] = l[1], s[0] = l[3], s[1] = l[4], m.scale(r, o, a * e), m.multiply(r, r, t.massMultiplier), m.add(t.vlambda, t.vlambda, r), t.wlambda += h * l[2] * e, m.scale(r, s, n * e), m.multiply(r, r, i.massMultiplier), m.add(i.vlambda, i.vlambda, r), i.wlambda += c * l[5] * e } , a.prototype.computeInvC = function(e) { return 1 / (this.computeGiMGt() + e) } } , { "../math/vec2": 30, "../objects/Body": 31, "../utils/Utils": 57 }], 23: [function(e, t, i) { var n = e("../math/vec2") , r = e("./Equation"); e("../utils/Utils"); function o(e, t, i) { r.call(this, e, t, -i, i), this.contactPointA = n.create(), this.contactPointB = n.create(), this.t = n.create(), this.contactEquations = [], this.shapeA = null, this.shapeB = null, this.frictionCoefficient = .3 } (((t.exports = o).prototype = new r).constructor = o).prototype.setSlipForce = function(e) { this.maxForce = e, this.minForce = -e } , o.prototype.getSlipForce = function() { return this.maxForce } , o.prototype.computeB = function(e, t, i) { this.bodyA, this.bodyB; var r = this.contactPointA , o = this.contactPointB , s = this.t , a = this.G; return a[0] = -s[0], a[1] = -s[1], a[2] = -n.crossLength(r, s), a[3] = s[0], a[4] = s[1], a[5] = n.crossLength(o, s), -this.computeGW() * t - i * this.computeGiMf() } } , { "../math/vec2": 30, "../utils/Utils": 57, "./Equation": 22 }], 24: [function(e, t, i) { var o = e("./Equation") , r = e("../math/vec2"); function s(e, t, i) { i = i || {}, o.call(this, e, t, -Number.MAX_VALUE, Number.MAX_VALUE), this.angle = i.angle || 0; var r = this.G; r[2] = 1, r[5] = -1 } ((t.exports = s).prototype = new o).constructor = s; var a = r.create() , n = r.create() , h = r.fromValues(1, 0) , c = r.fromValues(0, 1); s.prototype.computeGq = function() { return r.rotate(a, h, this.bodyA.angle + this.angle), r.rotate(n, c, this.bodyB.angle), r.dot(a, n) } } , { "../math/vec2": 30, "./Equation": 22 }], 25: [function(e, t, i) { var r = e("./Equation"); e("../math/vec2"); function o(e, t) { r.call(this, e, t, -Number.MAX_VALUE, Number.MAX_VALUE), this.relativeVelocity = 1, this.ratio = 1 } (((t.exports = o).prototype = new r).constructor = o).prototype.computeB = function(e, t, i) { var r = this.G; r[2] = -1, r[5] = this.ratio; var o = this.computeGiMf(); return -this.computeGW() * t - i * o } } , { "../math/vec2": 30, "./Equation": 22 }], 26: [function(e, t, i) { var r = function() {}; (t.exports = r).prototype = { constructor: r, on: function(e, t, i) { t.context = i || this, void 0 === this._listeners && (this._listeners = {}); var r = this._listeners; return void 0 === r[e] && (r[e] = []), -1 === r[e].indexOf(t) && r[e].push(t), this }, has: function(e, t) { if (void 0 === this._listeners) return !1; var i = this._listeners; if (t) { if (void 0 !== i[e] && -1 !== i[e].indexOf(t)) return !0 } else if (void 0 !== i[e]) return !0; return !1 }, off: function(e, t) { if (void 0 === this._listeners) return this; var i = this._listeners , r = i[e].indexOf(t); return -1 !== r && i[e].splice(r, 1), this }, emit: function(e) { if (void 0 === this._listeners) return this; var t = this._listeners[e.type]; if (void 0 !== t) { e.target = this; for (var i = 0, r = t.length; i < r; i++) { var o = t[i]; o.call(o.context, e) } } return this } } } , {}], 27: [function(e, t, i) { var r = e("./Material") , o = e("../equations/Equation"); function s(e, t, i) { if (i = i || {}, !(e instanceof r && t instanceof r)) throw new Error("First two arguments must be Material instances."); this.id = s.idCounter++, this.materialA = e, this.materialB = t, this.friction = void 0 !== i.friction ? Number(i.friction) : .3, this.restitution = void 0 !== i.restitution ? Number(i.restitution) : 0, this.stiffness = void 0 !== i.stiffness ? Number(i.stiffness) : o.DEFAULT_STIFFNESS, this.relaxation = void 0 !== i.relaxation ? Number(i.relaxation) : o.DEFAULT_RELAXATION, this.frictionStiffness = void 0 !== i.frictionStiffness ? Number(i.frictionStiffness) : o.DEFAULT_STIFFNESS, this.frictionRelaxation = void 0 !== i.frictionRelaxation ? Number(i.frictionRelaxation) : o.DEFAULT_RELAXATION, this.surfaceVelocity = void 0 !== i.surfaceVelocity ? Number(i.surfaceVelocity) : 0, this.contactSkinSize = .005 } (t.exports = s).idCounter = 0 } , { "../equations/Equation": 22, "./Material": 28 }], 28: [function(e, t, i) { function r(e) { this.id = e || r.idCounter++ } (t.exports = r).idCounter = 0 } , {}], 29: [function(e, t, i) { var w = { GetArea: function(e) { if (e.length < 6) return 0; for (var t = e.length - 2, i = 0, r = 0; r < t; r += 2) i += (e[r + 2] - e[r]) * (e[r + 1] + e[r + 3]); return .5 * -(i += (e[0] - e[t]) * (e[t + 1] + e[1])) }, Triangulate: function(e) { var t = e.length >> 1; if (t < 3) return []; for (var i = [], r = [], o = 0; o < t; o++) r.push(o); o = 0; for (var s = t; 3 < s; ) { var a = r[(o + 0) % s] , n = r[(o + 1) % s] , h = r[(o + 2) % s] , c = e[2 * a] , l = e[2 * a + 1] , m = e[2 * n] , u = e[2 * n + 1] , d = e[2 * h] , p = e[2 * h + 1] , f = !1; if (w._convex(c, l, m, u, d, p)) { f = !0; for (var y = 0; y < s; y++) { var S = r[y]; if (S != a && S != n && S != h && w._PointInTriangle(e[2 * S], e[2 * S + 1], c, l, m, u, d, p)) { f = !1; break } } } if (f) i.push(a, n, h), r.splice((o + 1) % s, 1), s--, o = 0; else if (o++ > 3 * s) break } return i.push(r[0], r[1], r[2]), i }, _PointInTriangle: function(e, t, i, r, o, s, a, n) { var h = a - i , c = n - r , l = o - i , m = s - r , u = e - i , d = t - r , p = h * h + c * c , f = h * l + c * m , y = h * u + c * d , S = l * l + m * m , w = l * u + m * d , g = 1 / (p * S - f * f) , x = (S * y - f * w) * g , b = (p * w - f * y) * g; return 0 <= x && 0 <= b && x + b < 1 }, _convex: function(e, t, i, r, o, s) { return 0 <= (t - r) * (o - i) + (i - e) * (s - r) } }; t.exports = w } , {}], 30: [function(e, t, i) { var a = t.exports = {} , r = e("../utils/Utils"); a.crossLength = function(e, t) { return e[0] * t[1] - e[1] * t[0] } , a.crossVZ = function(e, t, i) { return a.rotate(e, t, -Math.PI / 2), a.scale(e, e, i), e } , a.crossZV = function(e, t, i) { return a.rotate(e, i, Math.PI / 2), a.scale(e, e, t), e } , a.rotate = function(e, t, i) { if (0 !== i) { var r = Math.cos(i) , o = Math.sin(i) , s = t[0] , a = t[1]; e[0] = r * s - o * a, e[1] = o * s + r * a } else e[0] = t[0], e[1] = t[1] } , a.rotate90cw = function(e, t) { var i = t[0] , r = t[1]; e[0] = r, e[1] = -i } , a.toLocalFrame = function(e, t, i, r) { a.copy(e, t), a.sub(e, e, i), a.rotate(e, e, -r) } , a.toGlobalFrame = function(e, t, i, r) { a.copy(e, t), a.rotate(e, e, r), a.add(e, e, i) } , a.vectorToLocalFrame = function(e, t, i) { a.rotate(e, t, -i) } , a.vectorToGlobalFrame = function(e, t, i) { a.rotate(e, t, i) } , a.centroid = function(e, t, i, r) { return a.add(e, t, i), a.add(e, e, r), a.scale(e, e, 1 / 3), e } , a.create = function() { var e = new r.ARRAY_TYPE(2); return e[0] = 0, e[1] = 0, e } , a.clone = function(e) { var t = new r.ARRAY_TYPE(2); return t[0] = e[0], t[1] = e[1], t } , a.fromValues = function(e, t) { var i = new r.ARRAY_TYPE(2); return i[0] = e, i[1] = t, i } , a.copy = function(e, t) { return e[0] = t[0], e[1] = t[1], e } , a.set = function(e, t, i) { return e[0] = t, e[1] = i, e } , a.add = function(e, t, i) { return e[0] = t[0] + i[0], e[1] = t[1] + i[1], e } , a.subtract = function(e, t, i) { return e[0] = t[0] - i[0], e[1] = t[1] - i[1], e } , a.sub = a.subtract, a.multiply = function(e, t, i) { return e[0] = t[0] * i[0], e[1] = t[1] * i[1], e } , a.mul = a.multiply, a.divide = function(e, t, i) { return e[0] = t[0] / i[0], e[1] = t[1] / i[1], e } , a.div = a.divide, a.scale = function(e, t, i) { return e[0] = t[0] * i, e[1] = t[1] * i, e } , a.distance = function(e, t) { var i = t[0] - e[0] , r = t[1] - e[1]; return Math.sqrt(i * i + r * r) } , a.dist = a.distance, a.squaredDistance = function(e, t) { var i = t[0] - e[0] , r = t[1] - e[1]; return i * i + r * r } , a.sqrDist = a.squaredDistance, a.length = function(e) { var t = e[0] , i = e[1]; return Math.sqrt(t * t + i * i) } , a.len = a.length, a.squaredLength = function(e) { var t = e[0] , i = e[1]; return t * t + i * i } , a.sqrLen = a.squaredLength, a.negate = function(e, t) { return e[0] = -t[0], e[1] = -t[1], e } , a.normalize = function(e, t) { var i = t[0] , r = t[1] , o = i * i + r * r; return 0 < o && (o = 1 / Math.sqrt(o), e[0] = t[0] * o, e[1] = t[1] * o), e } , a.dot = function(e, t) { return e[0] * t[0] + e[1] * t[1] } , a.str = function(e) { return "vec2(" + e[0] + ", " + e[1] + ")" } , a.lerp = function(e, t, i, r) { var o = t[0] , s = t[1]; return e[0] = o + r * (i[0] - o), e[1] = s + r * (i[1] - s), e } , a.reflect = function(e, t, i) { var r = t[0] * i[0] + t[1] * i[1]; e[0] = t[0] - 2 * i[0] * r, e[1] = t[1] - 2 * i[1] * r } , a.getLineSegmentsIntersection = function(e, t, i, r, o) { var s = a.getLineSegmentsIntersectionFraction(t, i, r, o); return !(s < 0) && (e[0] = t[0] + s * (i[0] - t[0]), e[1] = t[1] + s * (i[1] - t[1]), !0) } , a.getLineSegmentsIntersectionFraction = function(e, t, i, r) { var o, s, a = t[0] - e[0], n = t[1] - e[1], h = r[0] - i[0], c = r[1] - i[1]; return o = (-n * (e[0] - i[0]) + a * (e[1] - i[1])) / (-h * n + a * c), s = (h * (e[1] - i[1]) - c * (e[0] - i[0])) / (-h * n + a * c), 0 <= o && o <= 1 && 0 <= s && s <= 1 ? s : -1 } } , { "../utils/Utils": 57 }], 31: [function(e, t, i) { var m = e("../math/vec2") , c = e("poly-decomp") , l = e("../shapes/Convex") , r = e("../collision/RaycastResult") , o = e("../collision/Ray") , s = e("../collision/AABB") , a = e("../events/EventEmitter"); function n(e) { e = e || {}, a.call(this), this.id = e.id || ++n._idCounter, this.world = null, this.shapes = [], this.mass = e.mass || 0, this.invMass = 0, this.inertia = 0, this.invInertia = 0, this.invMassSolve = 0, this.invInertiaSolve = 0, this.fixedRotation = !!e.fixedRotation, this.fixedX = !!e.fixedX, this.fixedY = !!e.fixedY, this.massMultiplier = m.create(), this.position = m.fromValues(0, 0), e.position && m.copy(this.position, e.position), this.interpolatedPosition = m.fromValues(0, 0), this.interpolatedAngle = 0, this.previousPosition = m.fromValues(0, 0), this.previousAngle = 0, this.velocity = m.fromValues(0, 0), e.velocity && m.copy(this.velocity, e.velocity), this.vlambda = m.fromValues(0, 0), this.wlambda = 0, this.angle = e.angle || 0, this.angularVelocity = e.angularVelocity || 0, this.force = m.create(), e.force && m.copy(this.force, e.force), this.angularForce = e.angularForce || 0, this.damping = "number" == typeof e.damping ? e.damping : .1, this.angularDamping = "number" == typeof e.angularDamping ? e.angularDamping : .1, this.type = n.STATIC, void 0 !== e.type ? this.type = e.type : e.mass ? this.type = n.DYNAMIC : this.type = n.STATIC, this.boundingRadius = 0, this.aabb = new s, this.aabbNeedsUpdate = !0, this.allowSleep = void 0 === e.allowSleep || e.allowSleep, this.wantsToSleep = !1, this.sleepState = n.AWAKE, this.sleepSpeedLimit = void 0 !== e.sleepSpeedLimit ? e.sleepSpeedLimit : .2, this.sleepTimeLimit = void 0 !== e.sleepTimeLimit ? e.sleepTimeLimit : 1, this.gravityScale = void 0 !== e.gravityScale ? e.gravityScale : 1, this.collisionResponse = void 0 === e.collisionResponse || e.collisionResponse, this.idleTime = 0, this.timeLastSleepy = 0, this.ccdSpeedThreshold = void 0 !== e.ccdSpeedThreshold ? e.ccdSpeedThreshold : -1, this.ccdIterations = void 0 !== e.ccdIterations ? e.ccdIterations : 10, this.concavePath = null, this._wakeUpAfterNarrowphase = !1, this.updateMassProperties() } (((t.exports = n).prototype = new a).constructor = n)._idCounter = 0, n.prototype.updateSolveMassProperties = function() { this.sleepState === n.SLEEPING || this.type === n.KINEMATIC ? (this.invMassSolve = 0, this.invInertiaSolve = 0) : (this.invMassSolve = this.invMass, this.invInertiaSolve = this.invInertia) } , n.prototype.setDensity = function(e) { var t = this.getArea(); this.mass = t * e, this.updateMassProperties() } , n.prototype.getArea = function() { for (var e = 0, t = 0; t < this.shapes.length; t++) e += this.shapes[t].area; return e } , n.prototype.getAABB = function() { return this.aabbNeedsUpdate && this.updateAABB(), this.aabb } ; var h = new s , u = m.create(); n.prototype.updateAABB = function() { for (var e = this.shapes, t = e.length, i = u, r = this.angle, o = 0; o !== t; o++) { var s = e[o] , a = s.angle + r; m.rotate(i, s.position, r), m.add(i, i, this.position), s.computeAABB(h, i, a), 0 === o ? this.aabb.copy(h) : this.aabb.extend(h) } this.aabbNeedsUpdate = !1 } , n.prototype.updateBoundingRadius = function() { for (var e = this.shapes, t = e.length, i = 0, r = 0; r !== t; r++) { var o = e[r] , s = m.length(o.position) , a = o.boundingRadius; i < s + a && (i = s + a) } this.boundingRadius = i } , n.prototype.addShape = function(e, t, i) { if (e.body) throw new Error("A shape can only be added to one body."); e.body = this, t ? m.copy(e.position, t) : m.set(e.position, 0, 0), e.angle = i || 0, this.shapes.push(e), this.updateMassProperties(), this.updateBoundingRadius(), this.aabbNeedsUpdate = !0 } , n.prototype.removeShape = function(e) { var t = this.shapes.indexOf(e); return -1 !== t && (this.shapes.splice(t, 1), this.aabbNeedsUpdate = !0, !(e.body = null)) } , n.prototype.updateMassProperties = function() { if (this.type === n.STATIC || this.type === n.KINEMATIC) this.mass = Number.MAX_VALUE, this.invMass = 0, this.inertia = Number.MAX_VALUE, this.invInertia = 0; else { var e = this.shapes , t = e.length , i = this.mass / t , r = 0; if (this.fixedRotation) this.inertia = Number.MAX_VALUE, this.invInertia = 0; else { for (var o = 0; o < t; o++) { var s = e[o] , a = m.squaredLength(s.position); r += s.computeMomentOfInertia(i) + i * a } this.inertia = r, this.invInertia = 0 < r ? 1 / r : 0 } this.invMass = 1 / this.mass, m.set(this.massMultiplier, this.fixedX ? 0 : 1, this.fixedY ? 0 : 1) } } ; m.create(); n.prototype.applyForce = function(e, t) { if (m.add(this.force, this.force, e), t) { var i = m.crossLength(t, e); this.angularForce += i } } ; var d = m.create() , p = m.create() , f = m.create(); n.prototype.applyForceLocal = function(e, t) { t = t || f; var i = d , r = p; this.vectorToWorldFrame(i, e), this.vectorToWorldFrame(r, t), this.applyForce(i, r) } ; var y = m.create(); n.prototype.applyImpulse = function(e, t) { if (this.type === n.DYNAMIC) { var i = y; if (m.scale(i, e, this.invMass), m.multiply(i, this.massMultiplier, i), m.add(this.velocity, i, this.velocity), t) { var r = m.crossLength(t, e); r *= this.invInertia, this.angularVelocity += r } } } ; var S = m.create() , w = m.create() , g = m.create(); n.prototype.applyImpulseLocal = function(e, t) { t = t || g; var i = S , r = w; this.vectorToWorldFrame(i, e), this.vectorToWorldFrame(r, t), this.applyImpulse(i, r) } , n.prototype.toLocalFrame = function(e, t) { m.toLocalFrame(e, t, this.position, this.angle) } , n.prototype.toWorldFrame = function(e, t) { m.toGlobalFrame(e, t, this.position, this.angle) } , n.prototype.vectorToLocalFrame = function(e, t) { m.vectorToLocalFrame(e, t, this.angle) } , n.prototype.vectorToWorldFrame = function(e, t) { m.vectorToGlobalFrame(e, t, this.angle) } , n.prototype.fromPolygon = function(e, t) { t = t || {}; for (var i = this.shapes.length; 0 <= i; --i) this.removeShape(this.shapes[i]); var r, o = new c.Polygon; if (o.vertices = e, o.makeCCW(), "number" == typeof t.removeCollinearPoints && o.removeCollinearPoints(t.removeCollinearPoints), void 0 === t.skipSimpleCheck && !o.isSimple()) return !1; this.concavePath = o.vertices.slice(0); for (i = 0; i < this.concavePath.length; i++) { var s = [0, 0]; m.copy(s, this.concavePath[i]), this.concavePath[i] = s } r = t.optimalDecomp ? o.decomp() : o.quickDecomp(); var a = m.create(); for (i = 0; i !== r.length; i++) { for (var n = new l({ vertices: r[i].vertices }), h = 0; h !== n.vertices.length; h++) { s = n.vertices[h]; m.sub(s, s, n.centerOfMass) } m.scale(a, n.centerOfMass, 1), n.updateTriangles(), n.updateCenterOfMass(), n.updateBoundingRadius(), this.addShape(n, a) } return this.adjustCenterOfMass(), this.aabbNeedsUpdate = !0 } ; m.fromValues(0, 0); var x = m.fromValues(0, 0) , b = m.fromValues(0, 0) , v = m.fromValues(0, 0); n.prototype.adjustCenterOfMass = function() { var e = x , t = b , i = v , r = 0; m.set(t, 0, 0); for (var o = 0; o !== this.shapes.length; o++) { var s = this.shapes[o]; m.scale(e, s.position, s.area), m.add(t, t, e), r += s.area } m.scale(i, t, 1 / r); for (o = 0; o !== this.shapes.length; o++) { s = this.shapes[o]; m.sub(s.position, s.position, i) } m.add(this.position, this.position, i); for (o = 0; this.concavePath && o < this.concavePath.length; o++) m.sub(this.concavePath[o], this.concavePath[o], i); this.updateMassProperties(), this.updateBoundingRadius() } , n.prototype.setZeroForce = function() { m.set(this.force, 0, 0), this.angularForce = 0 } , n.prototype.resetConstraintVelocity = function() { var e = this.vlambda; m.set(e, 0, 0), this.wlambda = 0 } , n.prototype.addConstraintVelocity = function() { var e = this.velocity; m.add(e, e, this.vlambda), this.angularVelocity += this.wlambda } , n.prototype.applyDamping = function(e) { if (this.type === n.DYNAMIC) { var t = this.velocity; m.scale(t, t, Math.pow(1 - this.damping, e)), this.angularVelocity *= Math.pow(1 - this.angularDamping, e) } } , n.prototype.wakeUp = function() { var e = this.sleepState; this.sleepState = n.AWAKE, this.idleTime = 0, e !== n.AWAKE && this.emit(n.wakeUpEvent) } , n.prototype.sleep = function() { this.sleepState = n.SLEEPING, this.angularVelocity = 0, this.angularForce = 0, m.set(this.velocity, 0, 0), m.set(this.force, 0, 0), this.emit(n.sleepEvent) } , n.prototype.sleepTick = function(e, t, i) { if (this.allowSleep && this.type !== n.SLEEPING) { this.wantsToSleep = !1; this.sleepState; var r = m.squaredLength(this.velocity) + Math.pow(this.angularVelocity, 2); Math.pow(this.sleepSpeedLimit, 2) <= r ? (this.idleTime = 0, this.sleepState = n.AWAKE) : (this.idleTime += i, this.sleepState = n.SLEEPY), this.idleTime > this.sleepTimeLimit && (t ? this.wantsToSleep = !0 : this.sleep()) } } , n.prototype.overlaps = function(e) { return this.world.overlapKeeper.bodiesAreOverlapping(this, e) } ; var z = m.create() , C = m.create(); n.prototype.integrate = function(e) { var t = this.invMass , i = this.force , r = this.position , o = this.velocity; m.copy(this.previousPosition, this.position), this.previousAngle = this.angle, this.fixedRotation || (this.angularVelocity += this.angularForce * this.invInertia * e), m.scale(z, i, e * t), m.multiply(z, this.massMultiplier, z), m.add(o, z, o), this.integrateToTimeOfImpact(e) || (m.scale(C, o, e), m.add(r, r, C), this.fixedRotation || (this.angle += this.angularVelocity * e)), this.aabbNeedsUpdate = !0 } ; var T = new r , P = new o({ mode: o.ALL }) , A = m.create() , _ = m.create() , B = m.create() , D = m.create(); n.prototype.integrateToTimeOfImpact = function(e) { if (this.ccdSpeedThreshold < 0 || m.squaredLength(this.velocity) < Math.pow(this.ccdSpeedThreshold, 2)) return !1; m.normalize(A, this.velocity), m.scale(_, this.velocity, e), m.add(_, _, this.position), m.sub(B, _, this.position); var t, i = this.angularVelocity * e, r = m.length(B), o = 1, s = this; if (T.reset(), P.callback = function(e) { e.body !== s && (t = e.body, e.getHitPoint(_, P), m.sub(B, _, s.position), o = m.length(B) / r, e.stop()) } , m.copy(P.from, this.position), m.copy(P.to, _), P.update(), this.world.raycast(T, P), !t) return !1; var a = this.angle; m.copy(D, this.position); for (var n = 0, h = 0, c = 0, l = o; h <= l && n < this.ccdIterations; ) { n++, c = (l - h) / 2, m.scale(C, B, o), m.add(this.position, D, C), this.angle = a + i * o, this.updateAABB(), this.aabb.overlaps(t.aabb) && this.world.narrowphase.bodiesOverlap(this, t) ? h = c : l = c } return o = c, m.copy(this.position, D), this.angle = a, m.scale(C, B, o), m.add(this.position, this.position, C), this.fixedRotation || (this.angle += i * o), !0 } , n.prototype.getVelocityAtPoint = function(e, t) { return m.crossVZ(e, t, this.angularVelocity), m.subtract(e, this.velocity, e), e } , n.sleepyEvent = { type: "sleepy" }, n.sleepEvent = { type: "sleep" }, n.wakeUpEvent = { type: "wakeup" }, n.DYNAMIC = 1, n.STATIC = 2, n.KINEMATIC = 4, n.AWAKE = 0, n.SLEEPY = 1, n.SLEEPING = 2 } , { "../collision/AABB": 7, "../collision/Ray": 11, "../collision/RaycastResult": 12, "../events/EventEmitter": 26, "../math/vec2": 30, "../shapes/Convex": 40, "poly-decomp": 5 }], 32: [function(e, t, i) { var S = e("../math/vec2") , a = e("./Spring"); e("../utils/Utils"); function r(e, t, i) { i = i || {}, a.call(this, e, t, i), this.localAnchorA = S.fromValues(0, 0), this.localAnchorB = S.fromValues(0, 0), i.localAnchorA && S.copy(this.localAnchorA, i.localAnchorA), i.localAnchorB && S.copy(this.localAnchorB, i.localAnchorB), i.worldAnchorA && this.setWorldAnchorA(i.worldAnchorA), i.worldAnchorB && this.setWorldAnchorB(i.worldAnchorB); var r = S.create() , o = S.create(); this.getWorldAnchorA(r), this.getWorldAnchorB(o); var s = S.distance(r, o); this.restLength = "number" == typeof i.restLength ? i.restLength : s } (((t.exports = r).prototype = new a).constructor = r).prototype.setWorldAnchorA = function(e) { this.bodyA.toLocalFrame(this.localAnchorA, e) } , r.prototype.setWorldAnchorB = function(e) { this.bodyB.toLocalFrame(this.localAnchorB, e) } , r.prototype.getWorldAnchorA = function(e) { this.bodyA.toWorldFrame(e, this.localAnchorA) } , r.prototype.getWorldAnchorB = function(e) { this.bodyB.toWorldFrame(e, this.localAnchorB) } ; var w = S.create() , g = S.create() , x = S.create() , b = S.create() , v = S.create() , z = S.create() , C = S.create() , T = S.create() , P = S.create(); r.prototype.applyForce = function() { var e = this.stiffness , t = this.damping , i = this.restLength , r = this.bodyA , o = this.bodyB , s = w , a = g , n = x , h = b , c = P , l = v , m = z , u = C , d = T; this.getWorldAnchorA(l), this.getWorldAnchorB(m), S.sub(u, l, r.position), S.sub(d, m, o.position), S.sub(s, m, l); var p = S.len(s); S.normalize(a, s), S.sub(n, o.velocity, r.velocity), S.crossZV(c, o.angularVelocity, d), S.add(n, n, c), S.crossZV(c, r.angularVelocity, u), S.sub(n, n, c), S.scale(h, a, -e * (p - i) - t * S.dot(n, a)), S.sub(r.force, r.force, h), S.add(o.force, o.force, h); var f = S.crossLength(u, h) , y = S.crossLength(d, h); r.angularForce -= f, o.angularForce += y } } , { "../math/vec2": 30, "../utils/Utils": 57, "./Spring": 34 }], 33: [function(e, t, i) { e("../math/vec2"); var r = e("./Spring"); function o(e, t, i) { i = i || {}, r.call(this, e, t, i), this.restAngle = "number" == typeof i.restAngle ? i.restAngle : t.angle - e.angle } (((t.exports = o).prototype = new r).constructor = o).prototype.applyForce = function() { var e = this.stiffness , t = this.damping , i = this.restAngle , r = this.bodyA , o = this.bodyB , s = -e * (o.angle - r.angle - i) - t * (o.angularVelocity - r.angularVelocity) * 0; r.angularForce -= s, o.angularForce += s } } , { "../math/vec2": 30, "./Spring": 34 }], 34: [function(e, t, i) { e("../math/vec2"); var r = e("../utils/Utils"); function o(e, t, i) { i = r.defaults(i, { stiffness: 100, damping: 1 }), this.stiffness = i.stiffness, this.damping = i.damping, this.bodyA = e, this.bodyB = t } (t.exports = o).prototype.applyForce = function() {} } , { "../math/vec2": 30, "../utils/Utils": 57 }], 35: [function(e, t, i) { var r = e("../math/vec2") , o = (e("../utils/Utils"), e("../constraints/Constraint")) , s = e("../equations/FrictionEquation") , a = e("../objects/Body"); function n(e, t) { t = t || {}, this.chassisBody = e, this.wheels = [], this.groundBody = new a({ mass: 0 }), this.world = null; var i = this; this.preStepCallback = function() { i.update() } } function h(e, t) { t = t || {}, this.vehicle = e, this.forwardEquation = new s(e.chassisBody,e.groundBody), this.sideEquation = new s(e.chassisBody,e.groundBody), this.steerValue = 0, this.engineForce = 0, this.setSideFriction(void 0 !== t.sideFriction ? t.sideFriction : 5), this.localForwardVector = r.fromValues(0, 1), t.localForwardVector && r.copy(this.localForwardVector, t.localForwardVector), this.localPosition = r.fromValues(0, 0), t.localPosition && r.copy(this.localPosition, t.localPosition), o.apply(this, e.chassisBody, e.groundBody), this.equations.push(this.forwardEquation, this.sideEquation), this.setBrakeForce(0) } (t.exports = n).prototype.addToWorld = function(e) { (this.world = e).addBody(this.groundBody), e.on("preStep", this.preStepCallback); for (var t = 0; t < this.wheels.length; t++) { var i = this.wheels[t]; e.addConstraint(i) } } , n.prototype.removeFromWorld = function() { var e = this.world; e.removeBody(this.groundBody), e.off("preStep", this.preStepCallback); for (var t = 0; t < this.wheels.length; t++) { var i = this.wheels[t]; e.removeConstraint(i) } this.world = null } , n.prototype.addWheel = function(e) { var t = new h(this,e); return this.wheels.push(t), t } , n.prototype.update = function() { for (var e = 0; e < this.wheels.length; e++) this.wheels[e].update() } , (h.prototype = new o).setBrakeForce = function(e) { this.forwardEquation.setSlipForce(e) } , h.prototype.setSideFriction = function(e) { this.sideEquation.setSlipForce(e) } ; var c = r.create() , l = r.create(); h.prototype.getSpeed = function() { return this.vehicle.chassisBody.vectorToWorldFrame(l, this.localForwardVector), this.vehicle.chassisBody.getVelocityAtPoint(c, l), r.dot(c, l) } ; var m = r.create(); h.prototype.update = function() { this.vehicle.chassisBody.vectorToWorldFrame(this.forwardEquation.t, this.localForwardVector), r.rotate(this.sideEquation.t, this.localForwardVector, Math.PI / 2), this.vehicle.chassisBody.vectorToWorldFrame(this.sideEquation.t, this.sideEquation.t), r.rotate(this.forwardEquation.t, this.forwardEquation.t, this.steerValue), r.rotate(this.sideEquation.t, this.sideEquation.t, this.steerValue), this.vehicle.chassisBody.toWorldFrame(this.forwardEquation.contactPointB, this.localPosition), r.copy(this.sideEquation.contactPointB, this.forwardEquation.contactPointB), this.vehicle.chassisBody.vectorToWorldFrame(this.forwardEquation.contactPointA, this.localPosition), r.copy(this.sideEquation.contactPointA, this.forwardEquation.contactPointA), r.normalize(m, this.forwardEquation.t), r.scale(m, m, this.engineForce), this.vehicle.chassisBody.applyForce(m, this.forwardEquation.contactPointA) } } , { "../constraints/Constraint": 14, "../equations/FrictionEquation": 23, "../math/vec2": 30, "../objects/Body": 31, "../utils/Utils": 57 }], 36: [function(e, t, i) { var r = t.exports = { AABB: e("./collision/AABB"), AngleLockEquation: e("./equations/AngleLockEquation"), Body: e("./objects/Body"), Broadphase: e("./collision/Broadphase"), Capsule: e("./shapes/Capsule"), Circle: e("./shapes/Circle"), Constraint: e("./constraints/Constraint"), ContactEquation: e("./equations/ContactEquation"), ContactEquationPool: e("./utils/ContactEquationPool"), ContactMaterial: e("./material/ContactMaterial"), Convex: e("./shapes/Convex"), DistanceConstraint: e("./constraints/DistanceConstraint"), Equation: e("./equations/Equation"), EventEmitter: e("./events/EventEmitter"), FrictionEquation: e("./equations/FrictionEquation"), FrictionEquationPool: e("./utils/FrictionEquationPool"), GearConstraint: e("./constraints/GearConstraint"), GSSolver: e("./solver/GSSolver"), Heightfield: e("./shapes/Heightfield"), Line: e("./shapes/Line"), LockConstraint: e("./constraints/LockConstraint"), Material: e("./material/Material"), Narrowphase: e("./collision/Narrowphase"), NaiveBroadphase: e("./collision/NaiveBroadphase"), Particle: e("./shapes/Particle"), Plane: e("./shapes/Plane"), Pool: e("./utils/Pool"), RevoluteConstraint: e("./constraints/RevoluteConstraint"), PrismaticConstraint: e("./constraints/PrismaticConstraint"), Ray: e("./collision/Ray"), RaycastResult: e("./collision/RaycastResult"), Box: e("./shapes/Box"), RotationalVelocityEquation: e("./equations/RotationalVelocityEquation"), SAPBroadphase: e("./collision/SAPBroadphase"), Shape: e("./shapes/Shape"), Solver: e("./solver/Solver"), Spring: e("./objects/Spring"), TopDownVehicle: e("./objects/TopDownVehicle"), LinearSpring: e("./objects/LinearSpring"), RotationalSpring: e("./objects/RotationalSpring"), Utils: e("./utils/Utils"), World: e("./world/World"), vec2: e("./math/vec2"), version: e("../package.json").version }; Object.defineProperty(r, "Rectangle", { get: function() { return this.Box } }) } , { "../package.json": 6, "./collision/AABB": 7, "./collision/Broadphase": 8, "./collision/NaiveBroadphase": 9, "./collision/Narrowphase": 10, "./collision/Ray": 11, "./collision/RaycastResult": 12, "./collision/SAPBroadphase": 13, "./constraints/Constraint": 14, "./constraints/DistanceConstraint": 15, "./constraints/GearConstraint": 16, "./constraints/LockConstraint": 17, "./constraints/PrismaticConstraint": 18, "./constraints/RevoluteConstraint": 19, "./equations/AngleLockEquation": 20, "./equations/ContactEquation": 21, "./equations/Equation": 22, "./equations/FrictionEquation": 23, "./equations/RotationalVelocityEquation": 25, "./events/EventEmitter": 26, "./material/ContactMaterial": 27, "./material/Material": 28, "./math/vec2": 30, "./objects/Body": 31, "./objects/LinearSpring": 32, "./objects/RotationalSpring": 33, "./objects/Spring": 34, "./objects/TopDownVehicle": 35, "./shapes/Box": 37, "./shapes/Capsule": 38, "./shapes/Circle": 39, "./shapes/Convex": 40, "./shapes/Heightfield": 41, "./shapes/Line": 42, "./shapes/Particle": 43, "./shapes/Plane": 44, "./shapes/Shape": 45, "./solver/GSSolver": 46, "./solver/Solver": 47, "./utils/ContactEquationPool": 48, "./utils/FrictionEquationPool": 49, "./utils/Pool": 55, "./utils/Utils": 57, "./world/World": 61 }], 37: [function(e, t, i) { var s = e("../math/vec2") , a = e("./Shape") , n = e("./Convex"); function r(e) { "number" == typeof e && "number" == typeof arguments[1] && (e = { width: e, height: arguments[1] }), e = e || {}; var t = this.width = e.width || 1 , i = this.height = e.height || 1 , r = [s.fromValues(-t / 2, -i / 2), s.fromValues(t / 2, -i / 2), s.fromValues(t / 2, i / 2), s.fromValues(-t / 2, i / 2)] , o = [s.fromValues(1, 0), s.fromValues(0, 1)]; e.vertices = r, e.axes = o, e.type = a.BOX, n.call(this, e) } (((t.exports = r).prototype = new n).constructor = r).prototype.computeMomentOfInertia = function(e) { var t = this.width , i = this.height; return e * (i * i + t * t) / 12 } , r.prototype.updateBoundingRadius = function() { var e = this.width , t = this.height; this.boundingRadius = Math.sqrt(e * e + t * t) / 2 } ; s.create(), s.create(), s.create(), s.create(); r.prototype.computeAABB = function(e, t, i) { e.setFromPoints(this.vertices, t, i, 0) } , r.prototype.updateArea = function() { this.area = this.width * this.height } } , { "../math/vec2": 30, "./Convex": 40, "./Shape": 45 }], 38: [function(e, t, i) { var r = e("./Shape") , v = e("../math/vec2"); function o(e) { "number" == typeof e && "number" == typeof arguments[1] && (e = { length: e, radius: arguments[1] }), e = e || {}, this.length = e.length || 1, this.radius = e.radius || 1, e.type = r.CAPSULE, r.call(this, e) } (((t.exports = o).prototype = new r).constructor = o).prototype.computeMomentOfInertia = function(e) { var t = this.radius , i = this.length + t , r = 2 * t; return e * (r * r + i * i) / 12 } , o.prototype.updateBoundingRadius = function() { this.boundingRadius = this.radius + this.length / 2 } , o.prototype.updateArea = function() { this.area = Math.PI * this.radius * this.radius + 2 * this.radius * this.length } ; var s = v.create(); o.prototype.computeAABB = function(e, t, i) { var r = this.radius; v.set(s, this.length / 2, 0), 0 !== i && v.rotate(s, s, i), v.set(e.upperBound, Math.max(s[0] + r, -s[0] + r), Math.max(s[1] + r, -s[1] + r)), v.set(e.lowerBound, Math.min(s[0] - r, -s[0] - r), Math.min(s[1] - r, -s[1] - r)), v.add(e.lowerBound, e.lowerBound, t), v.add(e.upperBound, e.upperBound, t) } ; var z = v.create() , C = v.create() , T = v.create() , P = v.create() , A = v.fromValues(0, 1); o.prototype.raycast = function(e, t, i, r) { for (var o = t.from, s = t.to, a = (t.direction, z), n = C, h = T, c = P, l = this.length / 2, m = 0; m < 2; m++) { var u = this.radius * (2 * m - 1); if (v.set(h, -l, u), v.set(c, l, u), v.toGlobalFrame(h, h, i, r), v.toGlobalFrame(c, c, i, r), 0 <= (p = v.getLineSegmentsIntersectionFraction(o, s, h, c)) && (v.rotate(n, A, r), v.scale(n, n, 2 * m - 1), t.reportIntersection(e, p, n, -1), e.shouldStop(t))) return } var d = Math.pow(this.radius, 2) + Math.pow(l, 2); for (m = 0; m < 2; m++) { v.set(h, l * (2 * m - 1), 0), v.toGlobalFrame(h, h, i, r); var p, f = Math.pow(s[0] - o[0], 2) + Math.pow(s[1] - o[1], 2), y = 2 * ((s[0] - o[0]) * (o[0] - h[0]) + (s[1] - o[1]) * (o[1] - h[1])), S = Math.pow(o[0] - h[0], 2) + Math.pow(o[1] - h[1], 2) - Math.pow(this.radius, 2); if (!((p = Math.pow(y, 2) - 4 * f * S) < 0)) if (0 === p) { if (v.lerp(a, o, s, p), v.squaredDistance(a, i) > d && (v.sub(n, a, h), v.normalize(n, n), t.reportIntersection(e, p, n, -1), e.shouldStop(t))) return } else { var w = Math.sqrt(p) , g = 1 / (2 * f) , x = (-y - w) * g , b = (-y + w) * g; if (0 <= x && x <= 1 && (v.lerp(a, o, s, x), v.squaredDistance(a, i) > d && (v.sub(n, a, h), v.normalize(n, n), t.reportIntersection(e, x, n, -1), e.shouldStop(t)))) return; if (0 <= b && b <= 1 && (v.lerp(a, o, s, b), v.squaredDistance(a, i) > d && (v.sub(n, a, h), v.normalize(n, n), t.reportIntersection(e, b, n, -1), e.shouldStop(t)))) return } } } } , { "../math/vec2": 30, "./Shape": 45 }], 39: [function(e, t, i) { var r = e("./Shape") , S = e("../math/vec2"); function o(e) { "number" == typeof e && (e = { radius: e }), e = e || {}, this.radius = e.radius || 1, e.type = r.CIRCLE, r.call(this, e) } (((t.exports = o).prototype = new r).constructor = o).prototype.computeMomentOfInertia = function(e) { var t = this.radius; return e * t * t / 2 } , o.prototype.updateBoundingRadius = function() { this.boundingRadius = this.radius } , o.prototype.updateArea = function() { this.area = Math.PI * this.radius * this.radius } , o.prototype.computeAABB = function(e, t, i) { var r = this.radius; S.set(e.upperBound, r, r), S.set(e.lowerBound, -r, -r), t && (S.add(e.lowerBound, e.lowerBound, t), S.add(e.upperBound, e.upperBound, t)) } ; var w = S.create() , g = S.create(); o.prototype.raycast = function(e, t, i, r) { var o = t.from , s = t.to , a = this.radius , n = Math.pow(s[0] - o[0], 2) + Math.pow(s[1] - o[1], 2) , h = 2 * ((s[0] - o[0]) * (o[0] - i[0]) + (s[1] - o[1]) * (o[1] - i[1])) , c = Math.pow(o[0] - i[0], 2) + Math.pow(o[1] - i[1], 2) - Math.pow(a, 2) , l = Math.pow(h, 2) - 4 * n * c , m = w , u = g; if (!(l < 0)) if (0 === l) S.lerp(m, o, s, l), S.sub(u, m, i), S.normalize(u, u), t.reportIntersection(e, l, u, -1); else { var d = Math.sqrt(l) , p = 1 / (2 * n) , f = (-h - d) * p , y = (-h + d) * p; if (0 <= f && f <= 1 && (S.lerp(m, o, s, f), S.sub(u, m, i), S.normalize(u, u), t.reportIntersection(e, f, u, -1), e.shouldStop(t))) return; 0 <= y && y <= 1 && (S.lerp(m, o, s, y), S.sub(u, m, i), S.normalize(u, u), t.reportIntersection(e, y, u, -1)) } } } , { "../math/vec2": 30, "./Shape": 45 }], 40: [function(e, t, i) { var h = e("./Shape") , d = e("../math/vec2") , n = e("../math/polyk"); e("poly-decomp"); function u(e) { Array.isArray(e) && (e = { vertices: e, axes: arguments[1] }), e = e || {}, this.vertices = []; for (var t = void 0 !== e.vertices ? e.vertices : [], i = 0; i < t.length; i++) { var r = d.create(); d.copy(r, t[i]), this.vertices.push(r) } if (this.axes = [], e.axes) for (i = 0; i < e.axes.length; i++) { var o = d.create(); d.copy(o, e.axes[i]), this.axes.push(o) } else for (i = 0; i < this.vertices.length; i++) { var s = this.vertices[i] , a = this.vertices[(i + 1) % this.vertices.length] , n = d.create(); d.sub(n, a, s), d.rotate90cw(n, n), d.normalize(n, n), this.axes.push(n) } if (this.centerOfMass = d.fromValues(0, 0), this.triangles = [], this.vertices.length && (this.updateTriangles(), this.updateCenterOfMass()), this.boundingRadius = 0, e.type = h.CONVEX, h.call(this, e), this.updateBoundingRadius(), this.updateArea(), this.area < 0) throw new Error("Convex vertices must be given in conter-clockwise winding.") } ((t.exports = u).prototype = new h).constructor = u; var c = d.create() , a = d.create(); u.prototype.projectOntoLocalAxis = function(e, t) { for (var i, r, o = null, s = null, a = (e = c, 0); a < this.vertices.length; a++) i = this.vertices[a], r = d.dot(i, e), (null === o || o < r) && (o = r), (null === s || r < s) && (s = r); if (o < s) { var n = s; s = o, o = n } d.set(t, s, o) } , u.prototype.projectOntoWorldAxis = function(e, t, i, r) { var o = a; this.projectOntoLocalAxis(e, r), 0 !== i ? d.rotate(o, e, i) : o = e; var s = d.dot(t, o); d.set(r, r[0] + s, r[1] + s) } , u.prototype.updateTriangles = function() { for (var e = [], t = this.triangles.length = 0; t < this.vertices.length; t++) { var i = this.vertices[t]; e.push(i[0], i[1]) } var r = n.Triangulate(e); for (t = 0; t < r.length; t += 3) { var o = r[t] , s = r[t + 1] , a = r[t + 2]; this.triangles.push([o, s, a]) } } ; var p = d.create() , f = d.create() , y = d.create() , S = d.create() , w = d.create(); d.create(), d.create(), d.create(), d.create(); u.prototype.updateCenterOfMass = function() { var e = this.triangles , t = this.vertices , i = this.centerOfMass , r = p , o = y , s = S , a = w , n = f; d.set(i, 0, 0); for (var h = 0, c = 0; c !== e.length; c++) { var l = e[c]; o = t[l[0]], s = t[l[1]], a = t[l[2]]; d.centroid(r, o, s, a); var m = u.triangleArea(o, s, a); h += m, d.scale(n, r, m), d.add(i, i, n) } d.scale(i, i, 1 / h) } , u.prototype.computeMomentOfInertia = function(e) { for (var t = 0, i = 0, r = this.vertices.length, o = r - 1, s = 0; s < r; o = s, s++) { var a = this.vertices[o] , n = this.vertices[s] , h = Math.abs(d.crossLength(a, n)); t += h * (d.dot(n, n) + d.dot(n, a) + d.dot(a, a)), i += h } return e / 6 * (t / i) } , u.prototype.updateBoundingRadius = function() { for (var e = this.vertices, t = 0, i = 0; i !== e.length; i++) { var r = d.squaredLength(e[i]); t < r && (t = r) } this.boundingRadius = Math.sqrt(t) } , u.triangleArea = function(e, t, i) { return .5 * ((t[0] - e[0]) * (i[1] - e[1]) - (i[0] - e[0]) * (t[1] - e[1])) } , u.prototype.updateArea = function() { this.updateTriangles(), this.area = 0; for (var e = this.triangles, t = this.vertices, i = 0; i !== e.length; i++) { var r = e[i] , o = t[r[0]] , s = t[r[1]] , a = t[r[2]] , n = u.triangleArea(o, s, a); this.area += n } } , u.prototype.computeAABB = function(e, t, i) { e.setFromPoints(this.vertices, t, i, 0) } ; var g = d.create() , x = d.create() , b = d.create(); u.prototype.raycast = function(e, t, i, r) { var o = g , s = x , a = b , n = this.vertices; d.toLocalFrame(o, t.from, i, r), d.toLocalFrame(s, t.to, i, r); for (var h = n.length, c = 0; c < h && !e.shouldStop(t); c++) { var l = n[c] , m = n[(c + 1) % h] , u = d.getLineSegmentsIntersectionFraction(o, s, l, m); 0 <= u && (d.sub(a, m, l), d.rotate(a, a, -Math.PI / 2 + r), d.normalize(a, a), t.reportIntersection(e, u, a, c)) } } } , { "../math/polyk": 29, "../math/vec2": 30, "./Shape": 45, "poly-decomp": 5 }], 41: [function(e, t, i) { var r = e("./Shape") , y = e("../math/vec2"); e("../utils/Utils"); function o(e) { if (Array.isArray(e) && (e = { heights: e }, "object" == typeof arguments[1])) for (var t in arguments[1]) e[t] = arguments[1][t]; e = e || {}, this.heights = e.heights ? e.heights.slice(0) : [], this.maxValue = e.maxValue || null, this.minValue = e.minValue || null, this.elementWidth = e.elementWidth || .1, void 0 !== e.maxValue && void 0 !== e.minValue || this.updateMaxMinValues(), e.type = r.HEIGHTFIELD, r.call(this, e) } (((t.exports = o).prototype = new r).constructor = o).prototype.updateMaxMinValues = function() { for (var e = this.heights, t = e[0], i = e[0], r = 0; r !== e.length; r++) { var o = e[r]; t < o && (t = o), o < i && (i = o) } this.maxValue = t, this.minValue = i } , o.prototype.computeMomentOfInertia = function(e) { return Number.MAX_VALUE } , o.prototype.updateBoundingRadius = function() { this.boundingRadius = Number.MAX_VALUE } , o.prototype.updateArea = function() { for (var e = this.heights, t = 0, i = 0; i < e.length - 1; i++) t += (e[i] + e[i + 1]) / 2 * this.elementWidth; this.area = t } ; var s = [y.create(), y.create(), y.create(), y.create()]; o.prototype.computeAABB = function(e, t, i) { y.set(s[0], 0, this.maxValue), y.set(s[1], this.elementWidth * this.heights.length, this.maxValue), y.set(s[2], this.elementWidth * this.heights.length, this.minValue), y.set(s[3], 0, this.minValue), e.setFromPoints(s, t, i) } , o.prototype.getLineSegment = function(e, t, i) { var r = this.heights , o = this.elementWidth; y.set(e, i * o, r[i]), y.set(t, (i + 1) * o, r[i + 1]) } , o.prototype.getSegmentIndex = function(e) { return Math.floor(e[0] / this.elementWidth) } , o.prototype.getClampedSegmentIndex = function(e) { var t = this.getSegmentIndex(e); return t = Math.min(this.heights.length, Math.max(t, 0)) } ; y.create(); var S = y.create() , w = y.create() , g = y.create() , x = y.create() , b = y.create(); y.fromValues(0, 1); o.prototype.raycast = function(e, t, i, r) { var o = t.from , s = t.to , a = (t.direction, S) , n = w , h = g , c = x , l = b; y.toLocalFrame(c, o, i, r), y.toLocalFrame(l, s, i, r); var m = this.getClampedSegmentIndex(c) , u = this.getClampedSegmentIndex(l); if (u < m) { var d = m; m = u, u = d } for (var p = 0; p < this.heights.length - 1; p++) { this.getLineSegment(n, h, p); var f = y.getLineSegmentsIntersectionFraction(c, l, n, h); if (0 <= f && (y.sub(a, h, n), y.rotate(a, a, r + Math.PI / 2), y.normalize(a, a), t.reportIntersection(e, f, a, -1), e.shouldStop(t))) return } } } , { "../math/vec2": 30, "../utils/Utils": 57, "./Shape": 45 }], 42: [function(e, t, i) { var r = e("./Shape") , m = e("../math/vec2"); function o(e) { "number" == typeof e && (e = { length: e }), e = e || {}, this.length = e.length || 1, e.type = r.LINE, r.call(this, e) } (((t.exports = o).prototype = new r).constructor = o).prototype.computeMomentOfInertia = function(e) { return e * Math.pow(this.length, 2) / 12 } , o.prototype.updateBoundingRadius = function() { this.boundingRadius = this.length / 2 } ; var s = [m.create(), m.create()]; o.prototype.computeAABB = function(e, t, i) { var r = this.length / 2; m.set(s[0], -r, 0), m.set(s[1], r, 0), e.setFromPoints(s, t, i, 0) } ; m.create(); var u = m.create() , d = m.create() , p = m.create() , f = m.fromValues(0, 1); o.prototype.raycast = function(e, t, i, r) { var o = t.from , s = t.to , a = d , n = p , h = this.length / 2; m.set(a, -h, 0), m.set(n, h, 0), m.toGlobalFrame(a, a, i, r), m.toGlobalFrame(n, n, i, r); var c = m.getLineSegmentsIntersectionFraction(a, n, o, s); if (0 <= c) { var l = u; m.rotate(l, f, r), t.reportIntersection(e, c, l, -1) } } } , { "../math/vec2": 30, "./Shape": 45 }], 43: [function(e, t, i) { var r = e("./Shape") , o = e("../math/vec2"); function s(e) { (e = e || {}).type = r.PARTICLE, r.call(this, e) } (((t.exports = s).prototype = new r).constructor = s).prototype.computeMomentOfInertia = function(e) { return 0 } , s.prototype.updateBoundingRadius = function() { this.boundingRadius = 0 } , s.prototype.computeAABB = function(e, t, i) { o.copy(e.lowerBound, t), o.copy(e.upperBound, t) } } , { "../math/vec2": 30, "./Shape": 45 }], 44: [function(e, t, i) { var r = e("./Shape") , d = e("../math/vec2"); e("../utils/Utils"); function o(e) { (e = e || {}).type = r.PLANE, r.call(this, e) } (((t.exports = o).prototype = new r).constructor = o).prototype.computeMomentOfInertia = function(e) { return 0 } , o.prototype.updateBoundingRadius = function() { this.boundingRadius = Number.MAX_VALUE } , o.prototype.computeAABB = function(e, t, i) { var r = i % (2 * Math.PI) , o = d.set , s = Number.MAX_VALUE , a = e.lowerBound , n = e.upperBound; 0 === r ? (o(a, -s, -s), o(n, s, 0)) : r === Math.PI / 2 ? (o(a, 0, -s), o(n, s, s)) : r === Math.PI ? (o(a, -s, 0), o(n, s, s)) : r === 3 * Math.PI / 2 ? (o(a, -s, -s), o(n, 0, s)) : (o(a, -s, -s), o(n, s, s)), d.add(a, a, t), d.add(n, n, t) } , o.prototype.updateArea = function() { this.area = Number.MAX_VALUE } ; var p = d.create() , f = (d.create(), d.create(), d.create()) , y = d.create(); o.prototype.raycast = function(e, t, i, r) { var o = t.from , s = t.to , a = t.direction , n = p , h = f , c = y; d.set(h, 0, 1), d.rotate(h, h, r), d.sub(c, o, i); var l = d.dot(c, h); if (d.sub(c, s, i), !(0 < l * d.dot(c, h) || d.squaredDistance(o, s) < l * l)) { var m = d.dot(h, a); d.sub(n, o, i); var u = -d.dot(h, n) / m / t.length; t.reportIntersection(e, u, h, -1) } } } , { "../math/vec2": 30, "../utils/Utils": 57, "./Shape": 45 }], 45: [function(e, t, i) { t.exports = o; var r = e("../math/vec2"); function o(e) { e = e || {}, this.body = null, this.position = r.fromValues(0, 0), e.position && r.copy(this.position, e.position), this.angle = e.angle || 0, this.type = e.type || 0, this.id = o.idCounter++, this.boundingRadius = 0, this.collisionGroup = void 0 !== e.collisionGroup ? e.collisionGroup : 1, this.collisionResponse = void 0 === e.collisionResponse || e.collisionResponse, this.collisionMask = void 0 !== e.collisionMask ? e.collisionMask : 1, this.material = e.material || null, this.area = 0, this.sensor = void 0 !== e.sensor && e.sensor, this.type && this.updateBoundingRadius(), this.updateArea() } o.idCounter = 0, o.CIRCLE = 1, o.PARTICLE = 2, o.PLANE = 4, o.CONVEX = 8, o.LINE = 16, o.BOX = 32, Object.defineProperty(o, "RECTANGLE", { get: function() { return o.BOX } }), o.CAPSULE = 64, o.HEIGHTFIELD = 128, o.prototype.computeMomentOfInertia = function(e) {} , o.prototype.updateBoundingRadius = function() {} , o.prototype.updateArea = function() {} , o.prototype.computeAABB = function(e, t, i) {} , o.prototype.raycast = function(e, t, i, r) {} } , { "../math/vec2": 30 }], 46: [function(e, t, i) { var v = e("../math/vec2") , r = e("./Solver") , z = e("../utils/Utils") , C = e("../equations/FrictionEquation"); function T(e) { r.call(this, e, r.GS), e = e || {}, this.iterations = e.iterations || 10, this.tolerance = e.tolerance || 1e-7, this.arrayStep = 30, this.lambda = new z.ARRAY_TYPE(this.arrayStep), this.Bs = new z.ARRAY_TYPE(this.arrayStep), this.invCs = new z.ARRAY_TYPE(this.arrayStep), this.useZeroRHS = !1, this.frictionIterations = 0, this.usedIterations = 0 } (((t.exports = T).prototype = new r).constructor = T).prototype.solve = function(e, t) { this.sortEquations(); var i = 0 , r = this.iterations , o = this.frictionIterations , s = this.equations , a = s.length , n = Math.pow(this.tolerance * a, 2) , h = t.bodies , c = t.bodies.length , l = (v.add, v.set, this.useZeroRHS) , m = this.lambda; if (this.usedIterations = 0, a) for (var u = 0; u !== c; u++) { h[u].updateSolveMassProperties() } m.length < a && (m = this.lambda = new z.ARRAY_TYPE(a + this.arrayStep), this.Bs = new z.ARRAY_TYPE(a + this.arrayStep), this.invCs = new z.ARRAY_TYPE(a + this.arrayStep)), function(e) { for (var t = e.length; t--; ) e[t] = 0 }(m); var d, p, f = this.invCs, y = this.Bs; for (m = this.lambda, u = 0; u !== s.length; u++) { var S; ((S = s[u]).timeStep !== e || S.needsUpdate) && (S.timeStep = e, S.update()), y[u] = S.computeB(S.a, S.b, e), f[u] = S.computeInvC(S.epsilon) } if (0 !== a) { for (u = 0; u !== c; u++) { h[u].resetConstraintVelocity() } if (o) { for (i = 0; i !== o; i++) { for (p = d = 0; p !== a; p++) { S = s[p]; var w = T.iterateEquation(p, S, S.epsilon, y, f, m, l, e, i); d += Math.abs(w) } if (this.usedIterations++, d * d <= n) break } for (T.updateMultipliers(s, m, 1 / e), p = 0; p !== a; p++) { var g = s[p]; if (g instanceof C) { for (var x = 0, b = 0; b !== g.contactEquations.length; b++) x += g.contactEquations[b].multiplier; x *= g.frictionCoefficient / g.contactEquations.length, g.maxForce = x, g.minForce = -x } } } for (i = 0; i !== r; i++) { for (p = d = 0; p !== a; p++) { S = s[p]; w = T.iterateEquation(p, S, S.epsilon, y, f, m, l, e, i); d += Math.abs(w) } if (this.usedIterations++, d * d <= n) break } for (u = 0; u !== c; u++) h[u].addConstraintVelocity(); T.updateMultipliers(s, m, 1 / e) } } , T.updateMultipliers = function(e, t, i) { for (var r = e.length; r--; ) e[r].multiplier = t[r] * i } , T.iterateEquation = function(e, t, i, r, o, s, a, n, h) { var c = r[e] , l = o[e] , m = s[e] , u = t.computeGWlambda() , d = t.maxForce , p = t.minForce; a && (c = 0); var f = l * (c - u - i * m) , y = m + f; return y < p * n ? f = p * n - m : d * n < y && (f = d * n - m), s[e] += f, t.addToWlambda(f), f } } , { "../equations/FrictionEquation": 23, "../math/vec2": 30, "../utils/Utils": 57, "./Solver": 47 }], 47: [function(e, t, i) { e("../utils/Utils"); var r = e("../events/EventEmitter"); function o(e, t) { e = e || {}, r.call(this), this.type = t, this.equations = [], this.equationSortFunction = e.equationSortFunction || !1 } (((t.exports = o).prototype = new r).constructor = o).prototype.solve = function(e, t) { throw new Error("Solver.solve should be implemented by subclasses!") } ; var s = { bodies: [] }; o.prototype.solveIsland = function(e, t) { this.removeAllEquations(), t.equations.length && (this.addEquations(t.equations), s.bodies.length = 0, t.getBodies(s.bodies), s.bodies.length && this.solve(e, s)) } , o.prototype.sortEquations = function() { this.equationSortFunction && this.equations.sort(this.equationSortFunction) } , o.prototype.addEquation = function(e) { e.enabled && this.equations.push(e) } , o.prototype.addEquations = function(e) { for (var t = 0, i = e.length; t !== i; t++) { var r = e[t]; r.enabled && this.equations.push(r) } } , o.prototype.removeEquation = function(e) { var t = this.equations.indexOf(e); -1 !== t && this.equations.splice(t, 1) } , o.prototype.removeAllEquations = function() { this.equations.length = 0 } , o.GS = 1, o.ISLAND = 2 } , { "../events/EventEmitter": 26, "../utils/Utils": 57 }], 48: [function(e, t, i) { var r = e("../equations/ContactEquation") , o = e("./Pool"); function s() { o.apply(this, arguments) } (((t.exports = s).prototype = new o).constructor = s).prototype.create = function() { return new r } , s.prototype.destroy = function(e) { return e.bodyA = e.bodyB = null, this } } , { "../equations/ContactEquation": 21, "./Pool": 55 }], 49: [function(e, t, i) { var r = e("../equations/FrictionEquation") , o = e("./Pool"); function s() { o.apply(this, arguments) } (((t.exports = s).prototype = new o).constructor = s).prototype.create = function() { return new r } , s.prototype.destroy = function(e) { return e.bodyA = e.bodyB = null, this } } , { "../equations/FrictionEquation": 23, "./Pool": 55 }], 50: [function(e, t, i) { var r = e("../world/IslandNode") , o = e("./Pool"); function s() { o.apply(this, arguments) } (((t.exports = s).prototype = new o).constructor = s).prototype.create = function() { return new r } , s.prototype.destroy = function(e) { return e.reset(), this } } , { "../world/IslandNode": 60, "./Pool": 55 }], 51: [function(e, t, i) { var r = e("../world/Island") , o = e("./Pool"); function s() { o.apply(this, arguments) } (((t.exports = s).prototype = new o).constructor = s).prototype.create = function() { return new r } , s.prototype.destroy = function(e) { return e.reset(), this } } , { "../world/Island": 58, "./Pool": 55 }], 52: [function(e, t, i) { var r = e("./TupleDictionary") , o = (e("./OverlapKeeperRecord"), e("./OverlapKeeperRecordPool")); e("./Utils"); function s() { this.overlappingShapesLastState = new r, this.overlappingShapesCurrentState = new r, this.recordPool = new o({ size: 16 }), this.tmpDict = new r, this.tmpArray1 = [] } (t.exports = s).prototype.tick = function() { for (var e = this.overlappingShapesLastState, t = this.overlappingShapesCurrentState, i = e.keys.length; i--; ) { var r = e.keys[i] , o = e.getByKey(r); t.getByKey(r); o && this.recordPool.release(o) } e.reset(), e.copy(t), t.reset() } , s.prototype.setOverlapping = function(e, t, i, r) { this.overlappingShapesLastState; var o = this.overlappingShapesCurrentState; if (!o.get(t.id, r.id)) { var s = this.recordPool.get(); s.set(e, t, i, r), o.set(t.id, r.id, s) } } , s.prototype.getNewOverlaps = function(e) { return this.getDiff(this.overlappingShapesLastState, this.overlappingShapesCurrentState, e) } , s.prototype.getEndOverlaps = function(e) { return this.getDiff(this.overlappingShapesCurrentState, this.overlappingShapesLastState, e) } , s.prototype.bodiesAreOverlapping = function(e, t) { for (var i = this.overlappingShapesCurrentState, r = i.keys.length; r--; ) { var o = i.keys[r] , s = i.data[o]; if (s.bodyA === e && s.bodyB === t || s.bodyA === t && s.bodyB === e) return !0 } return !1 } , s.prototype.getDiff = function(e, t, i) { var r = e , o = t; (i = i || []).length = 0; for (var s = o.keys.length; s--; ) { var a = o.keys[s] , n = o.data[a]; if (!n) throw new Error("Key " + a + " had no data!"); r.data[a] || i.push(n) } return i } , s.prototype.isNewOverlap = function(e, t) { var i = 0 | e.id , r = 0 | t.id , o = this.overlappingShapesLastState , s = this.overlappingShapesCurrentState; return !o.get(i, r) && !!s.get(i, r) } , s.prototype.getNewBodyOverlaps = function(e) { this.tmpArray1.length = 0; var t = this.getNewOverlaps(this.tmpArray1); return this.getBodyDiff(t, e) } , s.prototype.getEndBodyOverlaps = function(e) { this.tmpArray1.length = 0; var t = this.getEndOverlaps(this.tmpArray1); return this.getBodyDiff(t, e) } , s.prototype.getBodyDiff = function(e, t) { t = t || []; for (var i = this.tmpDict, r = e.length; r--; ) { var o = e[r]; i.set(0 | o.bodyA.id, 0 | o.bodyB.id, o) } for (r = i.keys.length; r--; ) { (o = i.getByKey(i.keys[r])) && t.push(o.bodyA, o.bodyB) } return i.reset(), t } } , { "./OverlapKeeperRecord": 53, "./OverlapKeeperRecordPool": 54, "./TupleDictionary": 56, "./Utils": 57 }], 53: [function(e, t, i) { function o(e, t, i, r) { this.shapeA = t, this.shapeB = r, this.bodyA = e, this.bodyB = i } (t.exports = o).prototype.set = function(e, t, i, r) { o.call(this, e, t, i, r) } } , {}], 54: [function(e, t, i) { var r = e("./OverlapKeeperRecord") , o = e("./Pool"); function s() { o.apply(this, arguments) } (((t.exports = s).prototype = new o).constructor = s).prototype.create = function() { return new r } , s.prototype.destroy = function(e) { return e.bodyA = e.bodyB = e.shapeA = e.shapeB = null, this } } , { "./OverlapKeeperRecord": 53, "./Pool": 55 }], 55: [function(e, t, i) { function r(e) { e = e || {}, this.objects = [], void 0 !== e.size && this.resize(e.size) } (t.exports = r).prototype.resize = function(e) { for (var t = this.objects; t.length > e; ) t.pop(); for (; t.length < e; ) t.push(this.create()); return this } , r.prototype.get = function() { var e = this.objects; return e.length ? e.pop() : this.create() } , r.prototype.release = function(e) { return this.destroy(e), this.objects.push(e), this } } , {}], 56: [function(e, t, i) { var r = e("./Utils"); function o() { this.data = {}, this.keys = [] } (t.exports = o).prototype.getKey = function(e, t) { return (0 | (e |= 0)) == (0 | (t |= 0)) ? -1 : 0 | ((0 | t) < (0 | e) ? e << 16 | 65535 & t : t << 16 | 65535 & e) } , o.prototype.getByKey = function(e) { return e |= 0, this.data[e] } , o.prototype.get = function(e, t) { return this.data[this.getKey(e, t)] } , o.prototype.set = function(e, t, i) { if (!i) throw new Error("No data!"); var r = this.getKey(e, t); return this.data[r] || this.keys.push(r), this.data[r] = i, r } , o.prototype.reset = function() { for (var e = this.data, t = this.keys, i = t.length; i--; ) delete e[t[i]]; t.length = 0 } , o.prototype.copy = function(e) { this.reset(), r.appendArray(this.keys, e.keys); for (var t = e.keys.length; t--; ) { var i = e.keys[t]; this.data[i] = e.data[i] } } } , { "./Utils": 57 }], 57: [function(e, t, i) { function r() {} (t.exports = r).appendArray = function(e, t) { if (t.length < 15e4) e.push.apply(e, t); else for (var i = 0, r = t.length; i !== r; ++i) e.push(t[i]) } , r.splice = function(e, t, i) { i = i || 1; for (var r = t, o = e.length - i; r < o; r++) e[r] = e[r + i]; e.length = o } , r.ARRAY_TYPE = "undefined" != typeof P2_ARRAY_TYPE ? P2_ARRAY_TYPE : "undefined" != typeof Float32Array ? Float32Array : Array, r.extend = function(e, t) { for (var i in t) e[i] = t[i] } , r.defaults = function(e, t) { for (var i in e = e || {}, t) i in e || (e[i] = t[i]); return e } } , {}], 58: [function(e, t, i) { var r = e("../objects/Body"); function o() { this.equations = [], this.bodies = [] } (t.exports = o).prototype.reset = function() { this.equations.length = this.bodies.length = 0 } ; var s = []; o.prototype.getBodies = function(e) { for (var t = e || [], i = this.equations, r = s.length = 0; r !== i.length; r++) { var o = i[r]; -1 === s.indexOf(o.bodyA.id) && (t.push(o.bodyA), s.push(o.bodyA.id)), -1 === s.indexOf(o.bodyB.id) && (t.push(o.bodyB), s.push(o.bodyB.id)) } return t } , o.prototype.wantsToSleep = function() { for (var e = 0; e < this.bodies.length; e++) { var t = this.bodies[e]; if (t.type === r.DYNAMIC && !t.wantsToSleep) return !1 } return !0 } , o.prototype.sleep = function() { for (var e = 0; e < this.bodies.length; e++) { this.bodies[e].sleep() } return !0 } } , { "../objects/Body": 31 }], 59: [function(e, t, i) { e("../math/vec2"), e("./Island"), e("./IslandNode"); var r = e("./../utils/IslandNodePool") , o = e("./../utils/IslandPool") , a = e("../objects/Body"); function p(e) { this.nodePool = new r({ size: 16 }), this.islandPool = new o({ size: 8 }), this.equations = [], this.islands = [], this.nodes = [], this.queue = [] } (t.exports = p).getUnvisitedNode = function(e) { for (var t = e.length, i = 0; i !== t; i++) { var r = e[i]; if (!r.visited && r.body.type === a.DYNAMIC) return r } return !1 } , p.prototype.visit = function(e, t, i) { t.push(e.body); for (var r = e.equations.length, o = 0; o !== r; o++) { var s = e.equations[o]; -1 === i.indexOf(s) && i.push(s) } } , p.prototype.bfs = function(e, t, i) { var r = this.queue; for (r.length = 0, r.push(e), e.visited = !0, this.visit(e, t, i); r.length; ) for (var o, s = r.pop(); o = p.getUnvisitedNode(s.neighbors); ) o.visited = !0, this.visit(o, t, i), o.body.type === a.DYNAMIC && r.push(o) } , p.prototype.split = function(e) { for (var t = e.bodies, i = this.nodes, r = this.equations; i.length; ) this.nodePool.release(i.pop()); for (var o = 0; o !== t.length; o++) { var s = this.nodePool.get(); s.body = t[o], i.push(s) } for (var a = 0; a !== r.length; a++) { var n = r[a] , h = (o = t.indexOf(n.bodyA), t.indexOf(n.bodyB)) , c = i[o] , l = i[h]; c.neighbors.push(l), l.neighbors.push(c), c.equations.push(n), l.equations.push(n) } var m, u = this.islands; for (o = 0; o < u.length; o++) this.islandPool.release(u[o]); for (u.length = 0; m = p.getUnvisitedNode(i); ) { var d = this.islandPool.get(); this.bfs(m, d.bodies, d.equations), u.push(d) } return u } } , { "../math/vec2": 30, "../objects/Body": 31, "./../utils/IslandNodePool": 50, "./../utils/IslandPool": 51, "./Island": 58, "./IslandNode": 60 }], 60: [function(e, t, i) { function r(e) { this.body = e, this.neighbors = [], this.equations = [], this.visited = !1 } (t.exports = r).prototype.reset = function() { this.equations.length = 0, this.neighbors.length = 0, this.visited = !1, this.body = null } } , {}], 61: [function(e, t, i) { var r = e("../solver/GSSolver") , j = (e("../solver/Solver"), e("../collision/Ray"), e("../math/vec2")) , S = e("../shapes/Circle") , w = e("../shapes/Convex") , g = (e("../shapes/Line"), e("../shapes/Plane")) , x = e("../shapes/Capsule") , b = e("../shapes/Particle") , o = e("../events/EventEmitter") , Y = e("../objects/Body") , s = (e("../shapes/Shape"), e("../objects/LinearSpring"), e("../material/Material")) , a = e("../material/ContactMaterial") , n = (e("../constraints/DistanceConstraint"), e("../constraints/Constraint"), e("../constraints/LockConstraint"), e("../constraints/RevoluteConstraint"), e("../constraints/PrismaticConstraint"), e("../constraints/GearConstraint"), e("../../package.json"), e("../collision/Broadphase"), e("../collision/AABB")) , h = e("../collision/SAPBroadphase") , c = e("../collision/Narrowphase") , V = e("../utils/Utils") , l = e("../utils/OverlapKeeper") , m = e("./IslandManager"); e("../objects/RotationalSpring"); function K(e) { o.apply(this), e = e || {}, this.springs = [], this.bodies = [], this.disabledBodyCollisionPairs = [], this.solver = e.solver || new r, this.narrowphase = new c(this), this.islandManager = new m, this.gravity = j.fromValues(0, -9.78), e.gravity && j.copy(this.gravity, e.gravity), this.frictionGravity = j.length(this.gravity) || 10, this.useWorldGravityAsFrictionGravity = !0, this.useFrictionGravityOnZeroGravity = !0, this.broadphase = e.broadphase || new h, this.broadphase.setWorld(this), this.constraints = [], this.defaultMaterial = new s, this.defaultContactMaterial = new a(this.defaultMaterial,this.defaultMaterial), this.lastTimeStep = 1 / 60, this.applySpringForces = !0, this.applyDamping = !0, this.applyGravity = !0, this.solveConstraints = !0, this.contactMaterials = [], this.time = 0, this.accumulator = 0, this.stepping = !1, this.bodiesToBeRemoved = [], this.islandSplit = void 0 === e.islandSplit || !!e.islandSplit, this.emitImpactEvent = !0, this._constraintIdCounter = 0, this._bodyIdCounter = 0, this.postStepEvent = { type: "postStep" }, this.addBodyEvent = { type: "addBody", body: null }, this.removeBodyEvent = { type: "removeBody", body: null }, this.addSpringEvent = { type: "addSpring", spring: null }, this.impactEvent = { type: "impact", bodyA: null, bodyB: null, shapeA: null, shapeB: null, contactEquation: null }, this.postBroadphaseEvent = { type: "postBroadphase", pairs: null }, this.sleepMode = K.NO_SLEEPING, this.beginContactEvent = { type: "beginContact", shapeA: null, shapeB: null, bodyA: null, bodyB: null, contactEquations: [] }, this.endContactEvent = { type: "endContact", shapeA: null, shapeB: null, bodyA: null, bodyB: null }, this.preSolveEvent = { type: "preSolve", contactEquations: null, frictionEquations: null }, this.overlappingShapesLastState = { keys: [] }, this.overlappingShapesCurrentState = { keys: [] }, this.overlapKeeper = new l } (((t.exports = K).prototype = new Object(o.prototype)).constructor = K).NO_SLEEPING = 1, K.BODY_SLEEPING = 2, K.ISLAND_SLEEPING = 4, K.prototype.addConstraint = function(e) { this.constraints.push(e) } , K.prototype.addContactMaterial = function(e) { this.contactMaterials.push(e) } , K.prototype.removeContactMaterial = function(e) { var t = this.contactMaterials.indexOf(e); -1 !== t && V.splice(this.contactMaterials, t, 1) } , K.prototype.getContactMaterial = function(e, t) { for (var i = this.contactMaterials, r = 0, o = i.length; r !== o; r++) { var s = i[r]; if (s.materialA.id === e.id && s.materialB.id === t.id || s.materialA.id === t.id && s.materialB.id === e.id) return s } return !1 } , K.prototype.removeConstraint = function(e) { var t = this.constraints.indexOf(e); -1 !== t && V.splice(this.constraints, t, 1) } ; j.create(), j.create(), j.create(), j.create(), j.create(), j.create(); var q = j.create() , C = j.fromValues(0, 0) , T = j.fromValues(0, 0); j.fromValues(0, 0), j.fromValues(0, 0); K.prototype.step = function(e, t, i) { if (i = i || 10, 0 === (t = t || 0)) this.internalStep(e), this.time += e; else { this.accumulator += t; for (var r = 0; this.accumulator >= e && r < i; ) this.internalStep(e), this.time += e, this.accumulator -= e, r++; for (var o = this.accumulator % e / e, s = 0; s !== this.bodies.length; s++) { var a = this.bodies[s]; j.lerp(a.interpolatedPosition, a.previousPosition, a.position, o), a.interpolatedAngle = a.previousAngle + o * (a.angle - a.previousAngle) } } } ; var Z = []; K.prototype.internalStep = function(e) { this.stepping = !0; var t = this.springs.length , i = this.springs , r = this.bodies , o = this.gravity , s = this.solver , a = this.bodies.length , n = this.broadphase , h = this.narrowphase , c = this.constraints , l = q , m = (j.scale, j.add) , u = (j.rotate, this.islandManager); if (this.overlapKeeper.tick(), this.lastTimeStep = e, this.useWorldGravityAsFrictionGravity) { var d = j.length(this.gravity); 0 === d && this.useFrictionGravityOnZeroGravity || (this.frictionGravity = d) } if (this.applyGravity) for (var p = 0; p !== a; p++) { var f = (y = r[p]).force; y.type === Y.DYNAMIC && y.sleepState !== Y.SLEEPING && (j.scale(l, o, y.mass * y.gravityScale), m(f, f, l)) } if (this.applySpringForces) for (p = 0; p !== t; p++) { i[p].applyForce() } if (this.applyDamping) for (p = 0; p !== a; p++) { var y; (y = r[p]).type === Y.DYNAMIC && y.applyDamping(e) } var S = n.getCollisionPairs(this) , w = this.disabledBodyCollisionPairs; for (p = w.length - 2; 0 <= p; p -= 2) for (var g = S.length - 2; 0 <= g; g -= 2) (w[p] === S[g] && w[p + 1] === S[g + 1] || w[p + 1] === S[g] && w[p] === S[g + 1]) && S.splice(g, 2); var x = c.length; for (p = 0; p !== x; p++) { var b = c[p]; if (!b.collideConnected) for (g = S.length - 2; 0 <= g; g -= 2) (b.bodyA === S[g] && b.bodyB === S[g + 1] || b.bodyB === S[g] && b.bodyA === S[g + 1]) && S.splice(g, 2) } this.postBroadphaseEvent.pairs = S, this.emit(this.postBroadphaseEvent), this.postBroadphaseEvent.pairs = null, h.reset(this); p = 0; for (var v = S.length; p !== v; p += 2) for (var z = S[p], C = S[p + 1], T = 0, P = z.shapes.length; T !== P; T++) for (var A = z.shapes[T], _ = A.position, B = A.angle, D = 0, k = C.shapes.length; D !== k; D++) { var E = C.shapes[D] , M = E.position , I = E.angle , L = this.defaultContactMaterial; if (A.material && E.material) { var O = this.getContactMaterial(A.material, E.material); O && (L = O) } this.runNarrowphase(h, z, A, _, B, C, E, M, I, L, this.frictionGravity) } for (p = 0; p !== a; p++) { (N = r[p])._wakeUpAfterNarrowphase && (N.wakeUp(), N._wakeUpAfterNarrowphase = !1) } if (this.has("endContact")) { this.overlapKeeper.getEndOverlaps(Z); var R = this.endContactEvent; for (D = Z.length; D--; ) { var F = Z[D]; R.shapeA = F.shapeA, R.shapeB = F.shapeB, R.bodyA = F.bodyA, R.bodyB = F.bodyB, this.emit(R) } Z.length = 0 } var G = this.preSolveEvent; G.contactEquations = h.contactEquations, G.frictionEquations = h.frictionEquations, this.emit(G), G.contactEquations = G.frictionEquations = null; x = c.length; for (p = 0; p !== x; p++) c[p].update(); if (h.contactEquations.length || h.frictionEquations.length || x) if (this.islandSplit) { for (u.equations.length = 0, V.appendArray(u.equations, h.contactEquations), V.appendArray(u.equations, h.frictionEquations), p = 0; p !== x; p++) V.appendArray(u.equations, c[p].equations); u.split(this); for (p = 0; p !== u.islands.length; p++) { (X = u.islands[p]).equations.length && s.solveIsland(e, X) } } else { for (s.addEquations(h.contactEquations), s.addEquations(h.frictionEquations), p = 0; p !== x; p++) s.addEquations(c[p].equations); this.solveConstraints && s.solve(e, this), s.removeAllEquations() } for (p = 0; p !== a; p++) { var N; (N = r[p]).integrate(e) } for (p = 0; p !== a; p++) r[p].setZeroForce(); if (this.emitImpactEvent && this.has("impact")) { var U = this.impactEvent; for (p = 0; p !== h.contactEquations.length; p++) { var W = h.contactEquations[p]; W.firstImpact && (U.bodyA = W.bodyA, U.bodyB = W.bodyB, U.shapeA = W.shapeA, U.shapeB = W.shapeB, U.contactEquation = W, this.emit(U)) } } if (this.sleepMode === K.BODY_SLEEPING) for (p = 0; p !== a; p++) r[p].sleepTick(this.time, !1, e); else if (this.sleepMode === K.ISLAND_SLEEPING && this.islandSplit) { for (p = 0; p !== a; p++) r[p].sleepTick(this.time, !0, e); for (p = 0; p < this.islandManager.islands.length; p++) { var X; (X = this.islandManager.islands[p]).wantsToSleep() && X.sleep() } } this.stepping = !1; var H = this.bodiesToBeRemoved; for (p = 0; p !== H.length; p++) this.removeBody(H[p]); H.length = 0, this.emit(this.postStepEvent) } , K.prototype.runNarrowphase = function(e, t, i, r, o, s, a, n, h, c, l) { if (0 != (i.collisionGroup & a.collisionMask) && 0 != (a.collisionGroup & i.collisionMask)) { j.rotate(C, r, t.angle), j.rotate(T, n, s.angle), j.add(C, C, t.position), j.add(T, T, s.position); var m, u = o + t.angle, d = h + s.angle; e.enableFriction = 0 < c.friction, e.frictionCoefficient = c.friction, m = t.type === Y.STATIC || t.type === Y.KINEMATIC ? s.mass : s.type === Y.STATIC || s.type === Y.KINEMATIC ? t.mass : t.mass * s.mass / (t.mass + s.mass), e.slipForce = c.friction * l * m, e.restitution = c.restitution, e.surfaceVelocity = c.surfaceVelocity, e.frictionStiffness = c.frictionStiffness, e.frictionRelaxation = c.frictionRelaxation, e.stiffness = c.stiffness, e.relaxation = c.relaxation, e.contactSkinSize = c.contactSkinSize, e.enabledEquations = t.collisionResponse && s.collisionResponse && i.collisionResponse && a.collisionResponse; var p = e[i.type | a.type] , f = 0; if (p) { var y = i.sensor || a.sensor , S = e.frictionEquations.length; f = i.type < a.type ? p.call(e, t, i, C, u, s, a, T, d, y) : p.call(e, s, a, T, d, t, i, C, u, y); var w = e.frictionEquations.length - S; if (f) { if (t.allowSleep && t.type === Y.DYNAMIC && t.sleepState === Y.SLEEPING && s.sleepState === Y.AWAKE && s.type !== Y.STATIC) { var g = j.squaredLength(s.velocity) + Math.pow(s.angularVelocity, 2); 2 * Math.pow(s.sleepSpeedLimit, 2) <= g && (t._wakeUpAfterNarrowphase = !0) } if (s.allowSleep && s.type === Y.DYNAMIC && s.sleepState === Y.SLEEPING && t.sleepState === Y.AWAKE && t.type !== Y.STATIC) { var x = j.squaredLength(t.velocity) + Math.pow(t.angularVelocity, 2); 2 * Math.pow(t.sleepSpeedLimit, 2) <= x && (s._wakeUpAfterNarrowphase = !0) } if (this.overlapKeeper.setOverlapping(t, i, s, a), this.has("beginContact") && this.overlapKeeper.isNewOverlap(i, a)) { var b = this.beginContactEvent; if (b.shapeA = i, b.shapeB = a, b.bodyA = t, b.bodyB = s, b.contactEquations.length = 0, "number" == typeof f) for (var v = e.contactEquations.length - f; v < e.contactEquations.length; v++) b.contactEquations.push(e.contactEquations[v]); this.emit(b) } if ("number" == typeof f && 1 < w) for (v = e.frictionEquations.length - w; v < e.frictionEquations.length; v++) { var z = e.frictionEquations[v]; z.setSlipForce(z.getSlipForce() / w) } } } } } , K.prototype.addSpring = function(e) { this.springs.push(e); var t = this.addSpringEvent; t.spring = e, this.emit(t), t.spring = null } , K.prototype.removeSpring = function(e) { var t = this.springs.indexOf(e); -1 !== t && V.splice(this.springs, t, 1) } , K.prototype.addBody = function(e) { if (-1 === this.bodies.indexOf(e)) { this.bodies.push(e); var t = (e.world = this).addBodyEvent; t.body = e, this.emit(t), t.body = null } } , K.prototype.removeBody = function(e) { if (this.stepping) this.bodiesToBeRemoved.push(e); else { e.world = null; var t = this.bodies.indexOf(e); -1 !== t && (V.splice(this.bodies, t, 1), (this.removeBodyEvent.body = e).resetConstraintVelocity(), this.emit(this.removeBodyEvent), this.removeBodyEvent.body = null) } } , K.prototype.getBodyById = function(e) { for (var t = this.bodies, i = 0; i < t.length; i++) { var r = t[i]; if (r.id === e) return r } return !1 } , K.prototype.disableBodyCollision = function(e, t) { this.disabledBodyCollisionPairs.push(e, t) } , K.prototype.enableBodyCollision = function(e, t) { for (var i = this.disabledBodyCollisionPairs, r = 0; r < i.length; r += 2) if (i[r] === e && i[r + 1] === t || i[r + 1] === e && i[r] === t) return void i.splice(r, 2) } , K.prototype.clear = function() { this.time = 0, this.solver && this.solver.equations.length && this.solver.removeAllEquations(); for (var e = this.constraints, t = e.length - 1; 0 <= t; t--) this.removeConstraint(e[t]); var i = this.bodies; for (t = i.length - 1; 0 <= t; t--) this.removeBody(i[t]); var r = this.springs; for (t = r.length - 1; 0 <= t; t--) this.removeSpring(r[t]); var o = this.contactMaterials; for (t = o.length - 1; 0 <= t; t--) this.removeContactMaterial(o[t]); K.apply(this) } ; var v = j.create() , z = (j.fromValues(0, 0), j.fromValues(0, 0)); K.prototype.hitTest = function(e, t, i) { i = i || 0; var r = new Y({ position: e }) , o = new b , s = e , a = v , n = z; r.addShape(o); for (var h = this.narrowphase, c = [], l = 0, m = t.length; l !== m; l++) for (var u = t[l], d = 0, p = u.shapes.length; d !== p; d++) { var f = u.shapes[d]; j.rotate(a, f.position, u.angle), j.add(a, a, u.position); var y = f.angle + u.angle; (f instanceof S && h.circleParticle(u, f, a, y, r, o, s, 0, !0) || f instanceof w && h.particleConvex(r, o, s, 0, u, f, a, y, !0) || f instanceof g && h.particlePlane(r, o, s, 0, u, f, a, y, !0) || f instanceof x && h.particleCapsule(r, o, s, 0, u, f, a, y, !0) || f instanceof b && j.squaredLength(j.sub(n, a, e)) < i * i) && c.push(u) } return c } , K.prototype.setGlobalStiffness = function(e) { for (var t = this.constraints, i = 0; i !== t.length; i++) for (var r = t[i], o = 0; o !== r.equations.length; o++) { var s = r.equations[o]; s.stiffness = e, s.needsUpdate = !0 } var a = this.contactMaterials; for (i = 0; i !== a.length; i++) { (r = a[i]).stiffness = r.frictionStiffness = e } (r = this.defaultContactMaterial).stiffness = r.frictionStiffness = e } , K.prototype.setGlobalRelaxation = function(e) { for (var t = 0; t !== this.constraints.length; t++) for (var i = this.constraints[t], r = 0; r !== i.equations.length; r++) { var o = i.equations[r]; o.relaxation = e, o.needsUpdate = !0 } for (t = 0; t !== this.contactMaterials.length; t++) { (i = this.contactMaterials[t]).relaxation = i.frictionRelaxation = e } (i = this.defaultContactMaterial).relaxation = i.frictionRelaxation = e } ; var u = new n , d = []; K.prototype.raycast = function(e, t) { return t.getAABB(u), this.broadphase.aabbQuery(this, u, d), t.intersectBodies(e, d), d.length = 0, e.hasHit() } } , { "../../package.json": 6, "../collision/AABB": 7, "../collision/Broadphase": 8, "../collision/Narrowphase": 10, "../collision/Ray": 11, "../collision/SAPBroadphase": 13, "../constraints/Constraint": 14, "../constraints/DistanceConstraint": 15, "../constraints/GearConstraint": 16, "../constraints/LockConstraint": 17, "../constraints/PrismaticConstraint": 18, "../constraints/RevoluteConstraint": 19, "../events/EventEmitter": 26, "../material/ContactMaterial": 27, "../material/Material": 28, "../math/vec2": 30, "../objects/Body": 31, "../objects/LinearSpring": 32, "../objects/RotationalSpring": 33, "../shapes/Capsule": 38, "../shapes/Circle": 39, "../shapes/Convex": 40, "../shapes/Line": 42, "../shapes/Particle": 43, "../shapes/Plane": 44, "../shapes/Shape": 45, "../solver/GSSolver": 46, "../solver/Solver": 47, "../utils/OverlapKeeper": 52, "../utils/Utils": 57, "./IslandManager": 59 }] }, {}, [36])(36) }), function() { var e = this , I = I || {}; return I.game = null, I.WEBGL_RENDERER = 0, I.CANVAS_RENDERER = 1, I.VERSION = "v2.2.9", I._UID = 0, "undefined" != typeof Float32Array ? (I.Float32Array = Float32Array, I.Uint16Array = Uint16Array, I.Uint32Array = Uint32Array, I.ArrayBuffer = ArrayBuffer) : (I.Float32Array = Array, I.Uint16Array = Array), I.PI_2 = 2 * Math.PI, I.RAD_TO_DEG = 180 / Math.PI, I.DEG_TO_RAD = Math.PI / 180, I.RETINA_PREFIX = "@2x", I.DisplayObject = function() { this.position = new I.Point(0,0), this.scale = new I.Point(1,1), this.pivot = new I.Point(0,0), this.rotation = 0, this.alpha = 1, this.visible = !0, this.hitArea = null, this.renderable = !1, this.parent = null, this.worldAlpha = 1, this.worldTransform = new I.Matrix, this.worldPosition = new I.Point(0,0), this.worldScale = new I.Point(1,1), this.worldRotation = 0, this.filterArea = null, this._sr = 0, this._cr = 1, this._bounds = new I.Rectangle(0,0,0,0), this._currentBounds = null, this._mask = null, this._cacheAsBitmap = !1, this._cacheIsDirty = !1 } , I.DisplayObject.prototype.constructor = I.DisplayObject, I.DisplayObject.prototype = { destroy: function() { if (this.children) { for (var e = this.children.length; e--; ) this.children[e].destroy(); this.children = [] } this.hitArea = null, this.parent = null, this.worldTransform = null, this.filterArea = null, this.renderable = !1, this._bounds = null, this._currentBounds = null, this._mask = null, this._destroyCachedSprite() }, updateTransform: function(e) { if (!e && !this.parent && !this.game) return this; var t = this.parent; e ? t = e : this.parent || (t = this.game.world); var i, r, o, s, a, n, h = t.worldTransform, c = this.worldTransform; return this.rotation % I.PI_2 ? (this.rotation !== this.rotationCache && (this.rotationCache = this.rotation, this._sr = Math.sin(this.rotation), this._cr = Math.cos(this.rotation)), i = this._cr * this.scale.x, r = this._sr * this.scale.x, o = -this._sr * this.scale.y, s = this._cr * this.scale.y, a = this.position.x, n = this.position.y, (this.pivot.x || this.pivot.y) && (a -= this.pivot.x * i + this.pivot.y * o, n -= this.pivot.x * r + this.pivot.y * s), c.a = i * h.a + r * h.c, c.b = i * h.b + r * h.d, c.c = o * h.a + s * h.c, c.d = o * h.b + s * h.d) : (i = this.scale.x, s = this.scale.y, a = this.position.x - this.pivot.x * i, n = this.position.y - this.pivot.y * s, c.a = i * h.a, c.b = i * h.b, c.c = s * h.c, c.d = s * h.d), c.tx = a * h.a + n * h.c + h.tx, c.ty = a * h.b + n * h.d + h.ty, this.worldAlpha = this.alpha * t.worldAlpha, this.worldPosition.set(c.tx, c.ty), this.worldScale.set(this.scale.x * Math.sqrt(c.a * c.a + c.c * c.c), this.scale.y * Math.sqrt(c.b * c.b + c.d * c.d)), this.worldRotation = Math.atan2(-c.c, c.d), this._currentBounds = null, this.transformCallback && this.transformCallback.call(this.transformCallbackContext, c, h), this }, preUpdate: function() {}, generateTexture: function(e, t, i) { var r = this.getLocalBounds() , o = new I.RenderTexture(0 | r.width,0 | r.height,i,t,e); return I.DisplayObject._tempMatrix.tx = -r.x, I.DisplayObject._tempMatrix.ty = -r.y, o.render(this, I.DisplayObject._tempMatrix), o }, updateCache: function() { return this._generateCachedSprite(), this }, toGlobal: function(e) { return this.updateTransform(), this.worldTransform.apply(e) }, toLocal: function(e, t) { return t && (e = t.toGlobal(e)), this.updateTransform(), this.worldTransform.applyInverse(e) }, _renderCachedSprite: function(e) { this._cachedSprite.worldAlpha = this.worldAlpha, e.gl ? I.Sprite.prototype._renderWebGL.call(this._cachedSprite, e) : I.Sprite.prototype._renderCanvas.call(this._cachedSprite, e) }, _generateCachedSprite: function() { this._cacheAsBitmap = !1; var e = this.getLocalBounds(); if (e.width = Math.max(1, Math.ceil(e.width)), e.height = Math.max(1, Math.ceil(e.height)), this.updateTransform(), this._cachedSprite) this._cachedSprite.texture.resize(e.width, e.height); else { var t = new I.RenderTexture(e.width,e.height); this._cachedSprite = new I.Sprite(t), this._cachedSprite.worldTransform = this.worldTransform } var i = this._filters; this._filters = null, this._cachedSprite.filters = i, I.DisplayObject._tempMatrix.tx = -e.x, I.DisplayObject._tempMatrix.ty = -e.y, this._cachedSprite.texture.render(this, I.DisplayObject._tempMatrix, !0), this._cachedSprite.anchor.x = -e.x / e.width, this._cachedSprite.anchor.y = -e.y / e.height, this._filters = i, this._cacheAsBitmap = !0 }, _destroyCachedSprite: function() { this._cachedSprite && (this._cachedSprite.texture.destroy(!0), this._cachedSprite = null) } }, I.DisplayObject.prototype.displayObjectUpdateTransform = I.DisplayObject.prototype.updateTransform, Object.defineProperties(I.DisplayObject.prototype, { x: { get: function() { return this.position.x }, set: function(e) { this.position.x = e } }, y: { get: function() { return this.position.y }, set: function(e) { this.position.y = e } }, worldVisible: { get: function() { if (this.visible) { var e = this.parent; if (!e) return this.visible; do { if (!e.visible) return !1; e = e.parent } while (e); return !0 } return !1 } }, mask: { get: function() { return this._mask }, set: function(e) { this._mask && (this._mask.isMask = !1), (this._mask = e) && (this._mask.isMask = !0) } }, filters: { get: function() { return this._filters }, set: function(e) { if (Array.isArray(e)) { for (var t = [], i = 0; i < e.length; i++) for (var r = e[i].passes, o = 0; o < r.length; o++) t.push(r[o]); this._filterBlock = { target: this, filterPasses: t } } this._filters = e, this.blendMode && this.blendMode === I.blendModes.MULTIPLY && (this.blendMode = I.blendModes.NORMAL) } }, cacheAsBitmap: { get: function() { return this._cacheAsBitmap }, set: function(e) { this._cacheAsBitmap !== e && (e ? this._generateCachedSprite() : this._destroyCachedSprite(), this._cacheAsBitmap = e) } } }), I.DisplayObjectContainer = function() { I.DisplayObject.call(this), this.children = [], this.ignoreChildInput = !1 } , I.DisplayObjectContainer.prototype = Object.create(I.DisplayObject.prototype), I.DisplayObjectContainer.prototype.constructor = I.DisplayObjectContainer, I.DisplayObjectContainer.prototype.addChild = function(e) { return this.addChildAt(e, this.children.length) } , I.DisplayObjectContainer.prototype.addChildAt = function(e, t) { if (0 <= t && t <= this.children.length) return e.parent && e.parent.removeChild(e), (e.parent = this).children.splice(t, 0, e), e; throw new Error(e + "addChildAt: The index " + t + " supplied is out of bounds " + this.children.length) } , I.DisplayObjectContainer.prototype.swapChildren = function(e, t) { if (e !== t) { var i = this.getChildIndex(e) , r = this.getChildIndex(t); if (i < 0 || r < 0) throw new Error("swapChildren: Both the supplied DisplayObjects must be a child of the caller."); this.children[i] = t, this.children[r] = e } } , I.DisplayObjectContainer.prototype.getChildIndex = function(e) { var t = this.children.indexOf(e); if (-1 === t) throw new Error("The supplied DisplayObject must be a child of the caller"); return t } , I.DisplayObjectContainer.prototype.setChildIndex = function(e, t) { if (t < 0 || t >= this.children.length) throw new Error("The supplied index is out of bounds"); var i = this.getChildIndex(e); this.children.splice(i, 1), this.children.splice(t, 0, e) } , I.DisplayObjectContainer.prototype.getChildAt = function(e) { if (e < 0 || e >= this.children.length) throw new Error("getChildAt: Supplied index " + e + " does not exist in the child list, or the supplied DisplayObject must be a child of the caller"); return this.children[e] } , I.DisplayObjectContainer.prototype.removeChild = function(e) { var t = this.children.indexOf(e); if (-1 !== t) return this.removeChildAt(t) } , I.DisplayObjectContainer.prototype.removeChildAt = function(e) { var t = this.getChildAt(e); return t && (t.parent = void 0, this.children.splice(e, 1)), t } , I.DisplayObjectContainer.prototype.removeChildren = function(e, t) { void 0 === e && (e = 0), void 0 === t && (t = this.children.length); var i = t - e; if (0 < i && i <= t) { for (var r = this.children.splice(e, i), o = 0; o < r.length; o++) { r[o].parent = void 0 } return r } if (0 === i && 0 === this.children.length) return []; throw new Error("removeChildren: Range Error, numeric values are outside the acceptable range") } , I.DisplayObjectContainer.prototype.updateTransform = function() { if (this.visible && (this.displayObjectUpdateTransform(), !this._cacheAsBitmap)) for (var e = 0; e < this.children.length; e++) this.children[e].updateTransform() } , I.DisplayObjectContainer.prototype.displayObjectContainerUpdateTransform = I.DisplayObjectContainer.prototype.updateTransform, I.DisplayObjectContainer.prototype.getBounds = function(e) { var t, i = e && e instanceof I.DisplayObject, r = !0; if (i ? r = e instanceof I.DisplayObjectContainer && e.contains(this) : e = this, i) { var o = e.worldTransform; for (e.worldTransform = I.identityMatrix, t = 0; t < e.children.length; t++) e.children[t].updateTransform() } var s, a, n, h = 1 / 0, c = 1 / 0, l = -1 / 0, m = -1 / 0, u = !1; for (t = 0; t < this.children.length; t++) { this.children[t].visible && (u = !0, h = h < (s = this.children[t].getBounds()).x ? h : s.x, c = c < s.y ? c : s.y, l = (a = s.width + s.x) < l ? l : a, m = (n = s.height + s.y) < m ? m : n) } var d = this._bounds; if (!u) { var p = (d = new I.Rectangle).x , f = d.width + d.x , y = d.y , S = d.height + d.y , w = this.worldTransform , g = w.a , x = w.b , b = w.c , v = w.d , z = w.tx , C = w.ty , T = g * f + b * S + z , P = v * S + x * f + C , A = g * p + b * S + z , _ = v * S + x * p + C , B = g * p + b * y + z , D = v * y + x * p + C , k = g * f + b * y + z , E = v * y + x * f + C; h = k < (h = B < (h = A < (h = l = T) ? A : h) ? B : h) ? k : h, c = E < (c = D < (c = _ < (c = m = P) ? _ : c) ? D : c) ? E : c, l = (l = (l = l < A ? A : l) < B ? B : l) < k ? k : l, m = (m = (m = m < _ ? _ : m) < D ? D : m) < E ? E : m } if (d.x = h, d.y = c, d.width = l - h, d.height = m - c, i) for (e.worldTransform = o, t = 0; t < e.children.length; t++) e.children[t].updateTransform(); if (!r) { var M = e.getBounds(); d.x -= M.x, d.y -= M.y } return d } , I.DisplayObjectContainer.prototype.getLocalBounds = function() { return this.getBounds(this) } , I.DisplayObjectContainer.prototype.contains = function(e) { return !!e && (e === this || this.contains(e.parent)) } , I.DisplayObjectContainer.prototype._renderWebGL = function(e) { var t; if (this.visible && !(this.alpha <= 0)) if (this._cacheAsBitmap) this._renderCachedSprite(e); else if (this._mask || this._filters) { for (this._filters && (e.spriteBatch.flush(), e.filterManager.pushFilter(this._filterBlock)), this._mask && (e.spriteBatch.stop(), e.maskManager.pushMask(this.mask, e), e.spriteBatch.start()), t = 0; t < this.children.length; t++) this.children[t]._renderWebGL(e); e.spriteBatch.stop(), this._mask && e.maskManager.popMask(this._mask, e), this._filters && e.filterManager.popFilter(), e.spriteBatch.start() } else for (t = 0; t < this.children.length; t++) this.children[t]._renderWebGL(e) } , I.DisplayObjectContainer.prototype._renderCanvas = function(e) { if (!1 !== this.visible && 0 !== this.alpha) if (this._cacheAsBitmap) this._renderCachedSprite(e); else { this._mask && e.maskManager.pushMask(this._mask, e); for (var t = 0; t < this.children.length; t++) this.children[t]._renderCanvas(e); this._mask && e.maskManager.popMask(e) } } , Object.defineProperty(I.DisplayObjectContainer.prototype, "width", { get: function() { return this.getLocalBounds().width * this.scale.x }, set: function(e) { var t = this.getLocalBounds().width; this.scale.x = 0 !== t ? e / t : 1, this._width = e } }), Object.defineProperty(I.DisplayObjectContainer.prototype, "height", { get: function() { return this.getLocalBounds().height * this.scale.y }, set: function(e) { var t = this.getLocalBounds().height; this.scale.y = 0 !== t ? e / t : 1, this._height = e } }), I.Sprite = function(e) { I.DisplayObjectContainer.call(this), this.anchor = new I.Point, this.texture = e || I.Texture.emptyTexture, this._width = 0, this._height = 0, this.tint = 16777215, this.cachedTint = -1, this.tintedTexture = null, this.blendMode = I.blendModes.NORMAL, this.shader = null, this.exists = !0, this.texture.baseTexture.hasLoaded && this.onTextureUpdate(), this.renderable = !0 } , I.Sprite.prototype = Object.create(I.DisplayObjectContainer.prototype), I.Sprite.prototype.constructor = I.Sprite, Object.defineProperty(I.Sprite.prototype, "width", { get: function() { return this.scale.x * this.texture.frame.width }, set: function(e) { this.scale.x = e / this.texture.frame.width, this._width = e } }), Object.defineProperty(I.Sprite.prototype, "height", { get: function() { return this.scale.y * this.texture.frame.height }, set: function(e) { this.scale.y = e / this.texture.frame.height, this._height = e } }), I.Sprite.prototype.setTexture = function(e, t) { void 0 !== t && this.texture.baseTexture.destroy(), this.texture.baseTexture.skipRender = !1, this.texture = e, this.texture.valid = !0, this.cachedTint = -1 } , I.Sprite.prototype.onTextureUpdate = function() { this._width && (this.scale.x = this._width / this.texture.frame.width), this._height && (this.scale.y = this._height / this.texture.frame.height) } , I.Sprite.prototype.getBounds = function(e) { var t = this.texture.frame.width , i = this.texture.frame.height , r = t * (1 - this.anchor.x) , o = t * -this.anchor.x , s = i * (1 - this.anchor.y) , a = i * -this.anchor.y , n = e || this.worldTransform , h = n.a , c = n.b , l = n.c , m = n.d , u = n.tx , d = n.ty , p = -1 / 0 , f = -1 / 0 , y = 1 / 0 , S = 1 / 0; if (0 === c && 0 === l) { if (h < 0) { h *= -1; var w = r; r = -o, o = -w } if (m < 0) { m *= -1; w = s; s = -a, a = -w } y = h * o + u, p = h * r + u, S = m * a + d, f = m * s + d } else { var g = h * o + l * a + u , x = m * a + c * o + d , b = h * r + l * a + u , v = m * a + c * r + d , z = h * r + l * s + u , C = m * s + c * r + d , T = h * o + l * s + u , P = m * s + c * o + d; y = T < (y = z < (y = b < (y = g < y ? g : y) ? b : y) ? z : y) ? T : y, S = P < (S = C < (S = v < (S = x < S ? x : S) ? v : S) ? C : S) ? P : S, p = (p = (p = (p = p < g ? g : p) < b ? b : p) < z ? z : p) < T ? T : p, f = (f = (f = (f = f < x ? x : f) < v ? v : f) < C ? C : f) < P ? P : f } var A = this._bounds; return A.x = y, A.width = p - y, A.y = S, A.height = f - S, this._currentBounds = A } , I.Sprite.prototype.getLocalBounds = function() { var e = this.worldTransform; this.worldTransform = I.identityMatrix; for (var t = 0; t < this.children.length; t++) this.children[t].updateTransform(); var i = this.getBounds(); for (this.worldTransform = e, t = 0; t < this.children.length; t++) this.children[t].updateTransform(); return i } , I.Sprite.prototype._renderWebGL = function(e, t) { if (this.visible && !(this.alpha <= 0) && this.renderable) { var i = this.worldTransform; if (t && (i = t), this._mask || this._filters) { var r = e.spriteBatch; this._filters && (r.flush(), e.filterManager.pushFilter(this._filterBlock)), this._mask && (r.stop(), e.maskManager.pushMask(this.mask, e), r.start()), r.render(this); for (var o = 0; o < this.children.length; o++) this.children[o]._renderWebGL(e); r.stop(), this._mask && e.maskManager.popMask(this._mask, e), this._filters && e.filterManager.popFilter(), r.start() } else { e.spriteBatch.render(this); for (o = 0; o < this.children.length; o++) this.children[o]._renderWebGL(e, i) } } } , I.Sprite.prototype._renderCanvas = function(e, t) { if (!(!this.visible || 0 === this.alpha || !this.renderable || this.texture.crop.width <= 0 || this.texture.crop.height <= 0)) { var i = this.worldTransform; if (t && (i = t), this.blendMode !== e.currentBlendMode && (e.currentBlendMode = this.blendMode, e.context.globalCompositeOperation = I.blendModesCanvas[e.currentBlendMode]), this._mask && e.maskManager.pushMask(this._mask, e), this.texture.valid) { var r = this.texture.baseTexture.resolution / e.resolution; e.context.globalAlpha = this.worldAlpha, e.smoothProperty && e.scaleMode !== this.texture.baseTexture.scaleMode && (e.scaleMode = this.texture.baseTexture.scaleMode, e.context[e.smoothProperty] = e.scaleMode === I.scaleModes.LINEAR); var o = this.texture.trim ? this.texture.trim.x - this.anchor.x * this.texture.trim.width : this.anchor.x * -this.texture.frame.width , s = this.texture.trim ? this.texture.trim.y - this.anchor.y * this.texture.trim.height : this.anchor.y * -this.texture.frame.height , a = i.tx * e.resolution + e.shakeX , n = i.ty * e.resolution + e.shakeY; e.roundPixels ? (e.context.setTransform(i.a, i.b, i.c, i.d, 0 | a, 0 | n), o |= 0, s |= 0) : e.context.setTransform(i.a, i.b, i.c, i.d, a, n); var h = this.texture.crop.width , c = this.texture.crop.height; if (o /= r, s /= r, 16777215 !== this.tint) (this.texture.requiresReTint || this.cachedTint !== this.tint) && (this.tintedTexture = I.CanvasTinter.getTintedTexture(this, this.tint), this.cachedTint = this.tint, this.texture.requiresReTint = !1), e.context.drawImage(this.tintedTexture, 0, 0, h, c, o, s, h / r, c / r); else { var l = this.texture.crop.x , m = this.texture.crop.y; e.context.drawImage(this.texture.baseTexture.source, l, m, h, c, o, s, h / r, c / r) } } for (var u = 0; u < this.children.length; u++) this.children[u]._renderCanvas(e); this._mask && e.maskManager.popMask(e) } } , I.SpriteBatch = function(e) { I.DisplayObjectContainer.call(this), this.textureThing = e, this.ready = !1 } , I.SpriteBatch.prototype = Object.create(I.DisplayObjectContainer.prototype), I.SpriteBatch.prototype.constructor = I.SpriteBatch, I.SpriteBatch.prototype.initWebGL = function(e) { this.fastSpriteBatch = new I.WebGLFastSpriteBatch(e), this.ready = !0 } , I.SpriteBatch.prototype.updateTransform = function() { this.displayObjectUpdateTransform() } , I.SpriteBatch.prototype._renderWebGL = function(e) { !this.visible || this.alpha <= 0 || !this.children.length || (this.ready || this.initWebGL(e.gl), this.fastSpriteBatch.gl !== e.gl && this.fastSpriteBatch.setContext(e.gl), e.spriteBatch.stop(), e.shaderManager.setShader(e.shaderManager.fastShader), this.fastSpriteBatch.begin(this, e), this.fastSpriteBatch.render(this), e.spriteBatch.start()) } , I.SpriteBatch.prototype._renderCanvas = function(e) { if (this.visible && !(this.alpha <= 0) && this.children.length) { var t = e.context; t.globalAlpha = this.worldAlpha, this.displayObjectUpdateTransform(); for (var i = this.worldTransform, r = !0, o = 0; o < this.children.length; o++) { var s = this.children[o]; if (s.visible) { var a = s.texture , n = a.frame; if (t.globalAlpha = this.worldAlpha * s.alpha, s.rotation % (2 * Math.PI) == 0) r && (t.setTransform(i.a, i.b, i.c, i.d, i.tx, i.ty), r = !1), t.drawImage(a.baseTexture.source, n.x, n.y, n.width, n.height, s.anchor.x * (-n.width * s.scale.x) + s.position.x + .5 + e.shakeX | 0, s.anchor.y * (-n.height * s.scale.y) + s.position.y + .5 + e.shakeY | 0, n.width * s.scale.x, n.height * s.scale.y); else { r || (r = !0), s.displayObjectUpdateTransform(); var h = s.worldTransform , c = h.tx * e.resolution + e.shakeX , l = h.ty * e.resolution + e.shakeY; e.roundPixels ? t.setTransform(h.a, h.b, h.c, h.d, 0 | c, 0 | l) : t.setTransform(h.a, h.b, h.c, h.d, c, l), t.drawImage(a.baseTexture.source, n.x, n.y, n.width, n.height, s.anchor.x * -n.width + .5 | 0, s.anchor.y * -n.height + .5 | 0, n.width, n.height) } } } } } , I.hex2rgb = function(e) { return [(e >> 16 & 255) / 255, (e >> 8 & 255) / 255, (255 & e) / 255] } , I.rgb2hex = function(e) { return (255 * e[0] << 16) + (255 * e[1] << 8) + 255 * e[2] } , I.canUseNewCanvasBlendModes = function() { if (void 0 === document) return !1; var e = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/" , t = "AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==" , i = new Image; i.src = e + "AP804Oa6" + t; var r = new Image; r.src = e + "/wCKxvRF" + t; var o = I.CanvasPool.create(this, 6, 1).getContext("2d"); if (o.globalCompositeOperation = "multiply", o.drawImage(i, 0, 0), o.drawImage(r, 2, 0), !o.getImageData(2, 0, 1, 1)) return !1; var s = o.getImageData(2, 0, 1, 1).data; return I.CanvasPool.remove(this), 255 === s[0] && 0 === s[1] && 0 === s[2] } , I.getNextPowerOfTwo = function(e) { if (0 < e && 0 == (e & e - 1)) return e; for (var t = 1; t < e; ) t <<= 1; return t } , I.isPowerOfTwo = function(e, t) { return 0 < e && 0 == (e & e - 1) && 0 < t && 0 == (t & t - 1) } , I.CanvasPool = { create: function(e, t, i) { var r, o = I.CanvasPool.getFirst(); if (-1 === o) { var s = { parent: e, canvas: document.createElement("canvas") }; I.CanvasPool.pool.push(s), r = s.canvas } else I.CanvasPool.pool[o].parent = e, r = I.CanvasPool.pool[o].canvas; return void 0 !== t && (r.width = t, r.height = i), r }, getFirst: function() { for (var e = I.CanvasPool.pool, t = 0; t < e.length; t++) if (!e[t].parent) return t; return -1 }, remove: function(e) { for (var t = I.CanvasPool.pool, i = 0; i < t.length; i++) t[i].parent === e && (t[i].parent = null, t[i].canvas.width = 1, t[i].canvas.height = 1) }, removeByCanvas: function(e) { for (var t = I.CanvasPool.pool, i = 0; i < t.length; i++) t[i].canvas === e && (t[i].parent = null, t[i].canvas.width = 1, t[i].canvas.height = 1) }, getTotal: function() { for (var e = I.CanvasPool.pool, t = 0, i = 0; i < e.length; i++) e[i].parent && t++; return t }, getFree: function() { for (var e = I.CanvasPool.pool, t = 0, i = 0; i < e.length; i++) e[i].parent || t++; return t } }, I.CanvasPool.pool = [], I.initDefaultShaders = function() {} , I.CompileVertexShader = function(e, t) { return I._CompileShader(e, t, e.VERTEX_SHADER) } , I.CompileFragmentShader = function(e, t) { return I._CompileShader(e, t, e.FRAGMENT_SHADER) } , I._CompileShader = function(e, t, i) { var r = t; Array.isArray(t) && (r = t.join("\n")); var o = e.createShader(i); return e.shaderSource(o, r), e.compileShader(o), e.getShaderParameter(o, e.COMPILE_STATUS) ? o : (window.console.log(e.getShaderInfoLog(o)), null) } , I.compileProgram = function(e, t, i) { var r = I.CompileFragmentShader(e, i) , o = I.CompileVertexShader(e, t) , s = e.createProgram(); return e.attachShader(s, o), e.attachShader(s, r), e.linkProgram(s), e.getProgramParameter(s, e.LINK_STATUS) || (window.console.log(e.getProgramInfoLog(s)), window.console.log("Could not initialise shaders")), s } , I.PixiShader = function(e) { this._UID = I._UID++, this.gl = e, this.program = null, this.fragmentSrc = ["precision lowp float;", "varying vec2 vTextureCoord;", "varying vec4 vColor;", "uniform sampler2D uSampler;", "void main(void) {", " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;", "}"], this.textureCount = 0, this.firstRun = !0, this.dirty = !0, this.attributes = [], this.init() } , I.PixiShader.prototype.constructor = I.PixiShader, I.PixiShader.prototype.init = function() { var e = this.gl , t = I.compileProgram(e, this.vertexSrc || I.PixiShader.defaultVertexSrc, this.fragmentSrc); for (var i in e.useProgram(t), this.uSampler = e.getUniformLocation(t, "uSampler"), this.projectionVector = e.getUniformLocation(t, "projectionVector"), this.offsetVector = e.getUniformLocation(t, "offsetVector"), this.dimensions = e.getUniformLocation(t, "dimensions"), this.aVertexPosition = e.getAttribLocation(t, "aVertexPosition"), this.aTextureCoord = e.getAttribLocation(t, "aTextureCoord"), this.colorAttribute = e.getAttribLocation(t, "aColor"), -1 === this.colorAttribute && (this.colorAttribute = 2), this.attributes = [this.aVertexPosition, this.aTextureCoord, this.colorAttribute], this.uniforms) this.uniforms[i].uniformLocation = e.getUniformLocation(t, i); this.initUniforms(), this.program = t } , I.PixiShader.prototype.initUniforms = function() { this.textureCount = 1; var e, t = this.gl; for (var i in this.uniforms) { var r = (e = this.uniforms[i]).type; "sampler2D" === r ? (e._init = !1, null !== e.value && this.initSampler2D(e)) : "mat2" === r || "mat3" === r || "mat4" === r ? (e.glMatrix = !0, e.glValueLength = 1, "mat2" === r ? e.glFunc = t.uniformMatrix2fv : "mat3" === r ? e.glFunc = t.uniformMatrix3fv : "mat4" === r && (e.glFunc = t.uniformMatrix4fv)) : (e.glFunc = t["uniform" + r], e.glValueLength = "2f" === r || "2i" === r ? 2 : "3f" === r || "3i" === r ? 3 : "4f" === r || "4i" === r ? 4 : 1) } } , I.PixiShader.prototype.initSampler2D = function(e) { if (e.value && e.value.baseTexture && e.value.baseTexture.hasLoaded) { var t = this.gl; if (t.activeTexture(t["TEXTURE" + this.textureCount]), t.bindTexture(t.TEXTURE_2D, e.value.baseTexture._glTextures[t.id]), e.textureData) { var i = e.textureData , r = i.magFilter ? i.magFilter : t.LINEAR , o = i.minFilter ? i.minFilter : t.LINEAR , s = i.wrapS ? i.wrapS : t.CLAMP_TO_EDGE , a = i.wrapT ? i.wrapT : t.CLAMP_TO_EDGE , n = i.luminance ? t.LUMINANCE : t.RGBA; if (i.repeat && (s = t.REPEAT, a = t.REPEAT), t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL, !!i.flipY), i.width) { var h = i.width ? i.width : 512 , c = i.height ? i.height : 2 , l = i.border ? i.border : 0; t.texImage2D(t.TEXTURE_2D, 0, n, h, c, l, n, t.UNSIGNED_BYTE, null) } else t.texImage2D(t.TEXTURE_2D, 0, n, t.RGBA, t.UNSIGNED_BYTE, e.value.baseTexture.source); t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, r), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, o), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, s), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, a) } t.uniform1i(e.uniformLocation, this.textureCount), e._init = !0, this.textureCount++ } } , I.PixiShader.prototype.syncUniforms = function() { var e; this.textureCount = 1; var t = this.gl; for (var i in this.uniforms) 1 === (e = this.uniforms[i]).glValueLength ? !0 === e.glMatrix ? e.glFunc.call(t, e.uniformLocation, e.transpose, e.value) : e.glFunc.call(t, e.uniformLocation, e.value) : 2 === e.glValueLength ? e.glFunc.call(t, e.uniformLocation, e.value.x, e.value.y) : 3 === e.glValueLength ? e.glFunc.call(t, e.uniformLocation, e.value.x, e.value.y, e.value.z) : 4 === e.glValueLength ? e.glFunc.call(t, e.uniformLocation, e.value.x, e.value.y, e.value.z, e.value.w) : "sampler2D" === e.type && (e._init ? (t.activeTexture(t["TEXTURE" + this.textureCount]), e.value.baseTexture._dirty[t.id] ? I.instances[t.id].updateTexture(e.value.baseTexture) : t.bindTexture(t.TEXTURE_2D, e.value.baseTexture._glTextures[t.id]), t.uniform1i(e.uniformLocation, this.textureCount), this.textureCount++) : this.initSampler2D(e)) } , I.PixiShader.prototype.destroy = function() { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attributes = null } , I.PixiShader.defaultVertexSrc = ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "attribute vec4 aColor;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "varying vec2 vTextureCoord;", "varying vec4 vColor;", "const vec2 center = vec2(-1.0, 1.0);", "void main(void) {", " gl_Position = vec4( ((aVertexPosition + offsetVector) / projectionVector) + center , 0.0, 1.0);", " vTextureCoord = aTextureCoord;", " vColor = vec4(aColor.rgb * aColor.a, aColor.a);", "}"], I.PixiFastShader = function(e) { this._UID = I._UID++, this.gl = e, this.program = null, this.fragmentSrc = ["precision lowp float;", "varying vec2 vTextureCoord;", "varying float vColor;", "uniform sampler2D uSampler;", "void main(void) {", " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;", "}"], this.vertexSrc = ["attribute vec2 aVertexPosition;", "attribute vec2 aPositionCoord;", "attribute vec2 aScale;", "attribute float aRotation;", "attribute vec2 aTextureCoord;", "attribute float aColor;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "uniform mat3 uMatrix;", "varying vec2 vTextureCoord;", "varying float vColor;", "const vec2 center = vec2(-1.0, 1.0);", "void main(void) {", " vec2 v;", " vec2 sv = aVertexPosition * aScale;", " v.x = (sv.x) * cos(aRotation) - (sv.y) * sin(aRotation);", " v.y = (sv.x) * sin(aRotation) + (sv.y) * cos(aRotation);", " v = ( uMatrix * vec3(v + aPositionCoord , 1.0) ).xy ;", " gl_Position = vec4( ( v / projectionVector) + center , 0.0, 1.0);", " vTextureCoord = aTextureCoord;", " vColor = aColor;", "}"], this.textureCount = 0, this.init() } , I.PixiFastShader.prototype.constructor = I.PixiFastShader, I.PixiFastShader.prototype.init = function() { var e = this.gl , t = I.compileProgram(e, this.vertexSrc, this.fragmentSrc); e.useProgram(t), this.uSampler = e.getUniformLocation(t, "uSampler"), this.projectionVector = e.getUniformLocation(t, "projectionVector"), this.offsetVector = e.getUniformLocation(t, "offsetVector"), this.dimensions = e.getUniformLocation(t, "dimensions"), this.uMatrix = e.getUniformLocation(t, "uMatrix"), this.aVertexPosition = e.getAttribLocation(t, "aVertexPosition"), this.aPositionCoord = e.getAttribLocation(t, "aPositionCoord"), this.aScale = e.getAttribLocation(t, "aScale"), this.aRotation = e.getAttribLocation(t, "aRotation"), this.aTextureCoord = e.getAttribLocation(t, "aTextureCoord"), this.colorAttribute = e.getAttribLocation(t, "aColor"), -1 === this.colorAttribute && (this.colorAttribute = 2), this.attributes = [this.aVertexPosition, this.aPositionCoord, this.aScale, this.aRotation, this.aTextureCoord, this.colorAttribute], this.program = t } , I.PixiFastShader.prototype.destroy = function() { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attributes = null } , I.StripShader = function(e) { this._UID = I._UID++, this.gl = e, this.program = null, this.fragmentSrc = ["precision mediump float;", "varying vec2 vTextureCoord;", "uniform float alpha;", "uniform sampler2D uSampler;", "void main(void) {", " gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y)) * alpha;", "}"], this.vertexSrc = ["attribute vec2 aVertexPosition;", "attribute vec2 aTextureCoord;", "uniform mat3 translationMatrix;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "varying vec2 vTextureCoord;", "void main(void) {", " vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);", " v -= offsetVector.xyx;", " gl_Position = vec4( v.x / projectionVector.x -1.0, v.y / -projectionVector.y + 1.0 , 0.0, 1.0);", " vTextureCoord = aTextureCoord;", "}"], this.init() } , I.StripShader.prototype.constructor = I.StripShader, I.StripShader.prototype.init = function() { var e = this.gl , t = I.compileProgram(e, this.vertexSrc, this.fragmentSrc); e.useProgram(t), this.uSampler = e.getUniformLocation(t, "uSampler"), this.projectionVector = e.getUniformLocation(t, "projectionVector"), this.offsetVector = e.getUniformLocation(t, "offsetVector"), this.colorAttribute = e.getAttribLocation(t, "aColor"), this.aVertexPosition = e.getAttribLocation(t, "aVertexPosition"), this.aTextureCoord = e.getAttribLocation(t, "aTextureCoord"), this.attributes = [this.aVertexPosition, this.aTextureCoord], this.translationMatrix = e.getUniformLocation(t, "translationMatrix"), this.alpha = e.getUniformLocation(t, "alpha"), this.program = t } , I.StripShader.prototype.destroy = function() { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attribute = null } , I.PrimitiveShader = function(e) { this._UID = I._UID++, this.gl = e, this.program = null, this.fragmentSrc = ["precision mediump float;", "varying vec4 vColor;", "void main(void) {", " gl_FragColor = vColor;", "}"], this.vertexSrc = ["attribute vec2 aVertexPosition;", "attribute vec4 aColor;", "uniform mat3 translationMatrix;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "uniform float alpha;", "uniform float flipY;", "uniform vec3 tint;", "varying vec4 vColor;", "void main(void) {", " vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);", " v -= offsetVector.xyx;", " gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);", " vColor = aColor * vec4(tint * alpha, alpha);", "}"], this.init() } , I.PrimitiveShader.prototype.constructor = I.PrimitiveShader, I.PrimitiveShader.prototype.init = function() { var e = this.gl , t = I.compileProgram(e, this.vertexSrc, this.fragmentSrc); e.useProgram(t), this.projectionVector = e.getUniformLocation(t, "projectionVector"), this.offsetVector = e.getUniformLocation(t, "offsetVector"), this.tintColor = e.getUniformLocation(t, "tint"), this.flipY = e.getUniformLocation(t, "flipY"), this.aVertexPosition = e.getAttribLocation(t, "aVertexPosition"), this.colorAttribute = e.getAttribLocation(t, "aColor"), this.attributes = [this.aVertexPosition, this.colorAttribute], this.translationMatrix = e.getUniformLocation(t, "translationMatrix"), this.alpha = e.getUniformLocation(t, "alpha"), this.program = t } , I.PrimitiveShader.prototype.destroy = function() { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attributes = null } , I.ComplexPrimitiveShader = function(e) { this._UID = I._UID++, this.gl = e, this.program = null, this.fragmentSrc = ["precision mediump float;", "varying vec4 vColor;", "void main(void) {", " gl_FragColor = vColor;", "}"], this.vertexSrc = ["attribute vec2 aVertexPosition;", "uniform mat3 translationMatrix;", "uniform vec2 projectionVector;", "uniform vec2 offsetVector;", "uniform vec3 tint;", "uniform float alpha;", "uniform vec3 color;", "uniform float flipY;", "varying vec4 vColor;", "void main(void) {", " vec3 v = translationMatrix * vec3(aVertexPosition , 1.0);", " v -= offsetVector.xyx;", " gl_Position = vec4( v.x / projectionVector.x -1.0, (v.y / projectionVector.y * -flipY) + flipY , 0.0, 1.0);", " vColor = vec4(color * alpha * tint, alpha);", "}"], this.init() } , I.ComplexPrimitiveShader.prototype.constructor = I.ComplexPrimitiveShader, I.ComplexPrimitiveShader.prototype.init = function() { var e = this.gl , t = I.compileProgram(e, this.vertexSrc, this.fragmentSrc); e.useProgram(t), this.projectionVector = e.getUniformLocation(t, "projectionVector"), this.offsetVector = e.getUniformLocation(t, "offsetVector"), this.tintColor = e.getUniformLocation(t, "tint"), this.color = e.getUniformLocation(t, "color"), this.flipY = e.getUniformLocation(t, "flipY"), this.aVertexPosition = e.getAttribLocation(t, "aVertexPosition"), this.attributes = [this.aVertexPosition, this.colorAttribute], this.translationMatrix = e.getUniformLocation(t, "translationMatrix"), this.alpha = e.getUniformLocation(t, "alpha"), this.program = t } , I.ComplexPrimitiveShader.prototype.destroy = function() { this.gl.deleteProgram(this.program), this.uniforms = null, this.gl = null, this.attribute = null } , I.glContexts = [], I.instances = [], I.WebGLRenderer = function(e) { this.game = e, I.defaultRenderer || (I.defaultRenderer = this), this.type = I.WEBGL_RENDERER, this.resolution = e.resolution, this.transparent = e.transparent, this.autoResize = !1, this.preserveDrawingBuffer = e.preserveDrawingBuffer, this.clearBeforeRender = e.clearBeforeRender, this.width = e.width, this.height = e.height, this.view = e.canvas, this._contextOptions = { alpha: this.transparent, antialias: e.antialias, premultipliedAlpha: this.transparent && "notMultiplied" !== this.transparent, stencil: !0, preserveDrawingBuffer: this.preserveDrawingBuffer }, this.projection = new I.Point, this.offset = new I.Point, this.shaderManager = new I.WebGLShaderManager, this.spriteBatch = new I.WebGLSpriteBatch, this.maskManager = new I.WebGLMaskManager, this.filterManager = new I.WebGLFilterManager, this.stencilManager = new I.WebGLStencilManager, this.blendModeManager = new I.WebGLBlendModeManager, this.renderSession = {}, this.renderSession.game = this.game, this.renderSession.gl = this.gl, this.renderSession.drawCount = 0, this.renderSession.shaderManager = this.shaderManager, this.renderSession.maskManager = this.maskManager, this.renderSession.filterManager = this.filterManager, this.renderSession.blendModeManager = this.blendModeManager, this.renderSession.spriteBatch = this.spriteBatch, this.renderSession.stencilManager = this.stencilManager, (this.renderSession.renderer = this).renderSession.resolution = this.resolution, this.initContext(), this.mapBlendModes() } , I.WebGLRenderer.prototype.constructor = I.WebGLRenderer, I.WebGLRenderer.prototype.initContext = function() { var e = this.view.getContext("webgl", this._contextOptions) || this.view.getContext("experimental-webgl", this._contextOptions); if (!(this.gl = e)) throw new Error("This browser does not support webGL. Try using the canvas renderer"); this.glContextId = e.id = I.WebGLRenderer.glContextId++, I.glContexts[this.glContextId] = e, I.instances[this.glContextId] = this, e.disable(e.DEPTH_TEST), e.disable(e.CULL_FACE), e.enable(e.BLEND), this.shaderManager.setContext(e), this.spriteBatch.setContext(e), this.maskManager.setContext(e), this.filterManager.setContext(e), this.blendModeManager.setContext(e), this.stencilManager.setContext(e), this.renderSession.gl = this.gl, this.resize(this.width, this.height) } , I.WebGLRenderer.prototype.render = function(e) { if (!this.contextLost) { var t = this.gl; t.viewport(0, 0, this.width, this.height), t.bindFramebuffer(t.FRAMEBUFFER, null), this.game.clearBeforeRender && (t.clearColor(e._bgColor.r, e._bgColor.g, e._bgColor.b, e._bgColor.a), t.clear(t.COLOR_BUFFER_BIT)), this.offset.x = this.game.camera._shake.x, this.offset.y = this.game.camera._shake.y, this.renderDisplayObject(e, this.projection) } } , I.WebGLRenderer.prototype.renderDisplayObject = function(e, t, i, r) { this.renderSession.blendModeManager.setBlendMode(I.blendModes.NORMAL), this.renderSession.drawCount = 0, this.renderSession.flipY = i ? -1 : 1, this.renderSession.projection = t, this.renderSession.offset = this.offset, this.spriteBatch.begin(this.renderSession), this.filterManager.begin(this.renderSession, i), e._renderWebGL(this.renderSession, r), this.spriteBatch.end() } , I.WebGLRenderer.prototype.resize = function(e, t) { this.width = e * this.resolution, this.height = t * this.resolution, this.view.width = this.width, this.view.height = this.height, this.autoResize && (this.view.style.width = this.width / this.resolution + "px", this.view.style.height = this.height / this.resolution + "px"), this.gl.viewport(0, 0, this.width, this.height), this.projection.x = this.width / 2 / this.resolution, this.projection.y = -this.height / 2 / this.resolution } , I.WebGLRenderer.prototype.updateTexture = function(e) { if (!e.hasLoaded) return !1; var t = this.gl; return e._glTextures[t.id] || (e._glTextures[t.id] = t.createTexture()), t.bindTexture(t.TEXTURE_2D, e._glTextures[t.id]), t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL, e.premultipliedAlpha), t.texImage2D(t.TEXTURE_2D, 0, t.RGBA, t.RGBA, t.UNSIGNED_BYTE, e.source), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MAG_FILTER, e.scaleMode === I.scaleModes.LINEAR ? t.LINEAR : t.NEAREST), e.mipmap && I.isPowerOfTwo(e.width, e.height) ? (t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, e.scaleMode === I.scaleModes.LINEAR ? t.LINEAR_MIPMAP_LINEAR : t.NEAREST_MIPMAP_NEAREST), t.generateMipmap(t.TEXTURE_2D)) : t.texParameteri(t.TEXTURE_2D, t.TEXTURE_MIN_FILTER, e.scaleMode === I.scaleModes.LINEAR ? t.LINEAR : t.NEAREST), e._powerOf2 ? (t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.REPEAT), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.REPEAT)) : (t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_S, t.CLAMP_TO_EDGE), t.texParameteri(t.TEXTURE_2D, t.TEXTURE_WRAP_T, t.CLAMP_TO_EDGE)), !(e._dirty[t.id] = !1) } , I.WebGLRenderer.prototype.destroy = function() { I.glContexts[this.glContextId] = null, this.projection = null, this.offset = null, this.shaderManager.destroy(), this.spriteBatch.destroy(), this.maskManager.destroy(), this.filterManager.destroy(), this.shaderManager = null, this.spriteBatch = null, this.maskManager = null, this.filterManager = null, this.gl = null, this.renderSession = null, I.CanvasPool.remove(this), I.instances[this.glContextId] = null, I.WebGLRenderer.glContextId-- } , I.WebGLRenderer.prototype.mapBlendModes = function() { var e = this.gl; if (!I.blendModesWebGL) { var t = [] , i = I.blendModes; t[i.NORMAL] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.ADD] = [e.SRC_ALPHA, e.DST_ALPHA], t[i.MULTIPLY] = [e.DST_COLOR, e.ONE_MINUS_SRC_ALPHA], t[i.SCREEN] = [e.SRC_ALPHA, e.ONE], t[i.OVERLAY] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.DARKEN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.LIGHTEN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.COLOR_DODGE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.COLOR_BURN] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.HARD_LIGHT] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.SOFT_LIGHT] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.DIFFERENCE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.EXCLUSION] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.HUE] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.SATURATION] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.COLOR] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], t[i.LUMINOSITY] = [e.ONE, e.ONE_MINUS_SRC_ALPHA], I.blendModesWebGL = t } } , I.WebGLRenderer.glContextId = 0, I.WebGLBlendModeManager = function() { this.currentBlendMode = 99999 } , I.WebGLBlendModeManager.prototype.constructor = I.WebGLBlendModeManager, I.WebGLBlendModeManager.prototype.setContext = function(e) { this.gl = e } , I.WebGLBlendModeManager.prototype.setBlendMode = function(e) { if (this.currentBlendMode === e) return !1; this.currentBlendMode = e; var t = I.blendModesWebGL[this.currentBlendMode]; return t && this.gl.blendFunc(t[0], t[1]), !0 } , I.WebGLBlendModeManager.prototype.destroy = function() { this.gl = null } , I.WebGLMaskManager = function() {} , I.WebGLMaskManager.prototype.constructor = I.WebGLMaskManager, I.WebGLMaskManager.prototype.setContext = function(e) { this.gl = e } , I.WebGLMaskManager.prototype.pushMask = function(e, t) { var i = t.gl; e.dirty && I.WebGLGraphics.updateGraphics(e, i), void 0 !== e._webGL[i.id] && void 0 !== e._webGL[i.id].data && 0 !== e._webGL[i.id].data.length && t.stencilManager.pushStencil(e, e._webGL[i.id].data[0], t) } , I.WebGLMaskManager.prototype.popMask = function(e, t) { var i = this.gl; void 0 !== e._webGL[i.id] && void 0 !== e._webGL[i.id].data && 0 !== e._webGL[i.id].data.length && t.stencilManager.popStencil(e, e._webGL[i.id].data[0], t) } , I.WebGLMaskManager.prototype.destroy = function() { this.gl = null } , I.WebGLStencilManager = function() { this.stencilStack = [], this.reverse = !0, this.count = 0 } , I.WebGLStencilManager.prototype.setContext = function(e) { this.gl = e } , I.WebGLStencilManager.prototype.pushStencil = function(e, t, i) { var r = this.gl; this.bindGraphics(e, t, i), 0 === this.stencilStack.length && (r.enable(r.STENCIL_TEST), r.clear(r.STENCIL_BUFFER_BIT), this.reverse = !0, this.count = 0), this.stencilStack.push(t); var o = this.count; r.colorMask(!1, !1, !1, !1), r.stencilFunc(r.ALWAYS, 0, 255), r.stencilOp(r.KEEP, r.KEEP, r.INVERT), 1 === t.mode ? (r.drawElements(r.TRIANGLE_FAN, t.indices.length - 4, r.UNSIGNED_SHORT, 0), this.reverse ? (r.stencilFunc(r.EQUAL, 255 - o, 255), r.stencilOp(r.KEEP, r.KEEP, r.DECR)) : (r.stencilFunc(r.EQUAL, o, 255), r.stencilOp(r.KEEP, r.KEEP, r.INCR)), r.drawElements(r.TRIANGLE_FAN, 4, r.UNSIGNED_SHORT, 2 * (t.indices.length - 4)), this.reverse ? r.stencilFunc(r.EQUAL, 255 - (o + 1), 255) : r.stencilFunc(r.EQUAL, o + 1, 255), this.reverse = !this.reverse) : (this.reverse ? (r.stencilFunc(r.EQUAL, o, 255), r.stencilOp(r.KEEP, r.KEEP, r.INCR)) : (r.stencilFunc(r.EQUAL, 255 - o, 255), r.stencilOp(r.KEEP, r.KEEP, r.DECR)), r.drawElements(r.TRIANGLE_STRIP, t.indices.length, r.UNSIGNED_SHORT, 0), this.reverse ? r.stencilFunc(r.EQUAL, o + 1, 255) : r.stencilFunc(r.EQUAL, 255 - (o + 1), 255)), r.colorMask(!0, !0, !0, !0), r.stencilOp(r.KEEP, r.KEEP, r.KEEP), this.count++ } , I.WebGLStencilManager.prototype.bindGraphics = function(e, t, i) { this._currentGraphics = e; var r, o = this.gl, s = i.projection, a = i.offset; 1 === t.mode ? (r = i.shaderManager.complexPrimitiveShader, i.shaderManager.setShader(r), o.uniform1f(r.flipY, i.flipY), o.uniformMatrix3fv(r.translationMatrix, !1, e.worldTransform.toArray(!0)), o.uniform2f(r.projectionVector, s.x, -s.y), o.uniform2f(r.offsetVector, -a.x, -a.y), o.uniform3fv(r.tintColor, I.hex2rgb(e.tint)), o.uniform3fv(r.color, t.color), o.uniform1f(r.alpha, e.worldAlpha * t.alpha), o.bindBuffer(o.ARRAY_BUFFER, t.buffer), o.vertexAttribPointer(r.aVertexPosition, 2, o.FLOAT, !1, 8, 0)) : (r = i.shaderManager.primitiveShader, i.shaderManager.setShader(r), o.uniformMatrix3fv(r.translationMatrix, !1, e.worldTransform.toArray(!0)), o.uniform1f(r.flipY, i.flipY), o.uniform2f(r.projectionVector, s.x, -s.y), o.uniform2f(r.offsetVector, -a.x, -a.y), o.uniform3fv(r.tintColor, I.hex2rgb(e.tint)), o.uniform1f(r.alpha, e.worldAlpha), o.bindBuffer(o.ARRAY_BUFFER, t.buffer), o.vertexAttribPointer(r.aVertexPosition, 2, o.FLOAT, !1, 24, 0), o.vertexAttribPointer(r.colorAttribute, 4, o.FLOAT, !1, 24, 8)), o.bindBuffer(o.ELEMENT_ARRAY_BUFFER, t.indexBuffer) } , I.WebGLStencilManager.prototype.popStencil = function(e, t, i) { var r = this.gl; if (this.stencilStack.pop(), this.count--, 0 === this.stencilStack.length) r.disable(r.STENCIL_TEST); else { var o = this.count; this.bindGraphics(e, t, i), r.colorMask(!1, !1, !1, !1), 1 === t.mode ? (this.reverse = !this.reverse, this.reverse ? (r.stencilFunc(r.EQUAL, 255 - (o + 1), 255), r.stencilOp(r.KEEP, r.KEEP, r.INCR)) : (r.stencilFunc(r.EQUAL, o + 1, 255), r.stencilOp(r.KEEP, r.KEEP, r.DECR)), r.drawElements(r.TRIANGLE_FAN, 4, r.UNSIGNED_SHORT, 2 * (t.indices.length - 4)), r.stencilFunc(r.ALWAYS, 0, 255), r.stencilOp(r.KEEP, r.KEEP, r.INVERT), r.drawElements(r.TRIANGLE_FAN, t.indices.length - 4, r.UNSIGNED_SHORT, 0)) : (this.reverse ? (r.stencilFunc(r.EQUAL, o + 1, 255), r.stencilOp(r.KEEP, r.KEEP, r.DECR)) : (r.stencilFunc(r.EQUAL, 255 - (o + 1), 255), r.stencilOp(r.KEEP, r.KEEP, r.INCR)), r.drawElements(r.TRIANGLE_STRIP, t.indices.length, r.UNSIGNED_SHORT, 0)), this.reverse ? r.stencilFunc(r.EQUAL, o, 255) : r.stencilFunc(r.EQUAL, 255 - o, 255), r.colorMask(!0, !0, !0, !0), r.stencilOp(r.KEEP, r.KEEP, r.KEEP) } } , I.WebGLStencilManager.prototype.destroy = function() { this.stencilStack = null, this.gl = null } , I.WebGLShaderManager = function() { this.maxAttibs = 10, this.attribState = [], this.tempAttribState = []; for (var e = 0; e < this.maxAttibs; e++) this.attribState[e] = !1; this.stack = [] } , I.WebGLShaderManager.prototype.constructor = I.WebGLShaderManager, I.WebGLShaderManager.prototype.setContext = function(e) { this.gl = e, this.primitiveShader = new I.PrimitiveShader(e), this.complexPrimitiveShader = new I.ComplexPrimitiveShader(e), this.defaultShader = new I.PixiShader(e), this.fastShader = new I.PixiFastShader(e), this.stripShader = new I.StripShader(e), this.setShader(this.defaultShader) } , I.WebGLShaderManager.prototype.setAttribs = function(e) { var t; for (t = 0; t < this.tempAttribState.length; t++) this.tempAttribState[t] = !1; for (t = 0; t < e.length; t++) { var i = e[t]; this.tempAttribState[i] = !0 } var r = this.gl; for (t = 0; t < this.attribState.length; t++) this.attribState[t] !== this.tempAttribState[t] && (this.attribState[t] = this.tempAttribState[t], this.tempAttribState[t] ? r.enableVertexAttribArray(t) : r.disableVertexAttribArray(t)) } , I.WebGLShaderManager.prototype.setShader = function(e) { return this._currentId !== e._UID && (this._currentId = e._UID, this.currentShader = e, this.gl.useProgram(e.program), this.setAttribs(e.attributes), !0) } , I.WebGLShaderManager.prototype.destroy = function() { this.attribState = null, this.tempAttribState = null, this.primitiveShader.destroy(), this.complexPrimitiveShader.destroy(), this.defaultShader.destroy(), this.fastShader.destroy(), this.stripShader.destroy(), this.gl = null } , I.WebGLSpriteBatch = function() { this.vertSize = 5, this.size = 2e3; var e = 4 * this.size * 4 * this.vertSize , t = 6 * this.size; this.vertices = new I.ArrayBuffer(e), this.positions = new I.Float32Array(this.vertices), this.colors = new I.Uint32Array(this.vertices), this.indices = new I.Uint16Array(t); for (var i = this.lastIndexCount = 0, r = 0; i < t; i += 6, r += 4) this.indices[i + 0] = r + 0, this.indices[i + 1] = r + 1, this.indices[i + 2] = r + 2, this.indices[i + 3] = r + 0, this.indices[i + 4] = r + 2, this.indices[i + 5] = r + 3; this.drawing = !1, this.currentBatchSize = 0, this.currentBaseTexture = null, this.dirty = !0, this.textures = [], this.blendModes = [], this.shaders = [], this.sprites = [], this.defaultShader = new I.AbstractFilter(["precision lowp float;", "varying vec2 vTextureCoord;", "varying vec4 vColor;", "uniform sampler2D uSampler;", "void main(void) {", " gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;", "}"]) } , I.WebGLSpriteBatch.prototype.setContext = function(e) { this.gl = e, this.vertexBuffer = e.createBuffer(), this.indexBuffer = e.createBuffer(), e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.indexBuffer), e.bufferData(e.ELEMENT_ARRAY_BUFFER, this.indices, e.STATIC_DRAW), e.bindBuffer(e.ARRAY_BUFFER, this.vertexBuffer), e.bufferData(e.ARRAY_BUFFER, this.vertices, e.DYNAMIC_DRAW), this.currentBlendMode = 99999; var t = new I.PixiShader(e); t.fragmentSrc = this.defaultShader.fragmentSrc, t.uniforms = {}, t.init(), this.defaultShader.shaders[e.id] = t } , I.WebGLSpriteBatch.prototype.begin = function(e) { this.renderSession = e, this.shader = this.renderSession.shaderManager.defaultShader, this.start() } , I.WebGLSpriteBatch.prototype.end = function() { this.flush() } , I.WebGLSpriteBatch.prototype.render = function(e, t) { var i = e.texture , r = e.worldTransform; t && (r = t), this.currentBatchSize >= this.size && (this.flush(), this.currentBaseTexture = i.baseTexture); var o = i._uvs; if (o) { var s, a, n, h, c = e.anchor.x, l = e.anchor.y; if (i.trim) { var m = i.trim; s = (a = m.x - c * m.width) + i.crop.width, n = (h = m.y - l * m.height) + i.crop.height } else s = i.frame.width * (1 - c), a = i.frame.width * -c, n = i.frame.height * (1 - l), h = i.frame.height * -l; var u = 4 * this.currentBatchSize * this.vertSize , d = i.baseTexture.resolution , p = r.a / d , f = r.b / d , y = r.c / d , S = r.d / d , w = r.tx , g = r.ty , x = this.colors , b = this.positions; this.renderSession.roundPixels ? (b[u] = p * a + y * h + w | 0, b[u + 1] = S * h + f * a + g | 0, b[u + 5] = p * s + y * h + w | 0, b[u + 6] = S * h + f * s + g | 0, b[u + 10] = p * s + y * n + w | 0, b[u + 11] = S * n + f * s + g | 0, b[u + 15] = p * a + y * n + w | 0, b[u + 16] = S * n + f * a + g | 0) : (b[u] = p * a + y * h + w, b[u + 1] = S * h + f * a + g, b[u + 5] = p * s + y * h + w, b[u + 6] = S * h + f * s + g, b[u + 10] = p * s + y * n + w, b[u + 11] = S * n + f * s + g, b[u + 15] = p * a + y * n + w, b[u + 16] = S * n + f * a + g), b[u + 2] = o.x0, b[u + 3] = o.y0, b[u + 7] = o.x1, b[u + 8] = o.y1, b[u + 12] = o.x2, b[u + 13] = o.y2, b[u + 17] = o.x3, b[u + 18] = o.y3; var v = e.tint; x[u + 4] = x[u + 9] = x[u + 14] = x[u + 19] = (v >> 16) + (65280 & v) + ((255 & v) << 16) + (255 * e.worldAlpha << 24), this.sprites[this.currentBatchSize++] = e } } , I.WebGLSpriteBatch.prototype.renderTilingSprite = function(e) { var t = e.tilingTexture; this.currentBatchSize >= this.size && (this.flush(), this.currentBaseTexture = t.baseTexture), e._uvs || (e._uvs = new I.TextureUvs); var i = e._uvs , r = t.baseTexture.width , o = t.baseTexture.height; e.tilePosition.x %= r * e.tileScaleOffset.x, e.tilePosition.y %= o * e.tileScaleOffset.y; var s = e.tilePosition.x / (r * e.tileScaleOffset.x) , a = e.tilePosition.y / (o * e.tileScaleOffset.y) , n = e.width / r / (e.tileScale.x * e.tileScaleOffset.x) , h = e.height / o / (e.tileScale.y * e.tileScaleOffset.y); i.x0 = 0 - s, i.y0 = 0 - a, i.x1 = 1 * n - s, i.y1 = 0 - a, i.x2 = 1 * n - s, i.y2 = 1 * h - a, i.x3 = 0 - s, i.y3 = 1 * h - a; var c = e.tint , l = (c >> 16) + (65280 & c) + ((255 & c) << 16) + (255 * e.worldAlpha << 24) , m = this.positions , u = this.colors , d = e.width , p = e.height , f = e.anchor.x , y = e.anchor.y , S = d * (1 - f) , w = d * -f , g = p * (1 - y) , x = p * -y , b = 4 * this.currentBatchSize * this.vertSize , v = t.baseTexture.resolution , z = e.worldTransform , C = z.a / v , T = z.b / v , P = z.c / v , A = z.d / v , _ = z.tx , B = z.ty; m[b++] = C * w + P * x + _, m[b++] = A * x + T * w + B, m[b++] = i.x0, m[b++] = i.y0, u[b++] = l, m[b++] = C * S + P * x + _, m[b++] = A * x + T * S + B, m[b++] = i.x1, m[b++] = i.y1, u[b++] = l, m[b++] = C * S + P * g + _, m[b++] = A * g + T * S + B, m[b++] = i.x2, m[b++] = i.y2, u[b++] = l, m[b++] = C * w + P * g + _, m[b++] = A * g + T * w + B, m[b++] = i.x3, m[b++] = i.y3, u[b++] = l, this.sprites[this.currentBatchSize++] = e } , I.WebGLSpriteBatch.prototype.flush = function() { if (0 !== this.currentBatchSize) { var e, t, i, r, o = this.gl; if (this.dirty) { this.dirty = !1, o.activeTexture(o.TEXTURE0), o.bindBuffer(o.ARRAY_BUFFER, this.vertexBuffer), o.bindBuffer(o.ELEMENT_ARRAY_BUFFER, this.indexBuffer), e = this.defaultShader.shaders[o.id]; var s = 4 * this.vertSize; o.vertexAttribPointer(e.aVertexPosition, 2, o.FLOAT, !1, s, 0), o.vertexAttribPointer(e.aTextureCoord, 2, o.FLOAT, !1, s, 8), o.vertexAttribPointer(e.colorAttribute, 4, o.UNSIGNED_BYTE, !0, s, 16) } if (this.currentBatchSize > .5 * this.size) o.bufferSubData(o.ARRAY_BUFFER, 0, this.vertices); else { var a = this.positions.subarray(0, 4 * this.currentBatchSize * this.vertSize); o.bufferSubData(o.ARRAY_BUFFER, 0, a) } for (var n, h = 0, c = 0, l = null, m = this.renderSession.blendModeManager.currentBlendMode, u = null, d = !1, p = !1, f = 0, y = this.currentBatchSize; f < y; f++) { t = (n = this.sprites[f]).tilingTexture ? n.tilingTexture.baseTexture : n.texture.baseTexture, d = m !== (i = n.blendMode), p = u !== (r = n.shader || this.defaultShader); var S = t.skipRender; if (S && 0 < n.children.length && (S = !1), (l !== t && !S || d || p) && (this.renderBatch(l, h, c), c = f, h = 0, l = t, d && (m = i, this.renderSession.blendModeManager.setBlendMode(m)), p)) { (e = (u = r).shaders[o.id]) || ((e = new I.PixiShader(o)).fragmentSrc = u.fragmentSrc, e.uniforms = u.uniforms, e.init(), u.shaders[o.id] = e), this.renderSession.shaderManager.setShader(e), e.dirty && e.syncUniforms(); var w = this.renderSession.projection; o.uniform2f(e.projectionVector, w.x, w.y); var g = this.renderSession.offset; o.uniform2f(e.offsetVector, g.x, g.y) } h++ } this.renderBatch(l, h, c), this.currentBatchSize = 0 } } , I.WebGLSpriteBatch.prototype.renderBatch = function(e, t, i) { if (0 !== t) { var r = this.gl; if (e._dirty[r.id]) { if (!this.renderSession.renderer.updateTexture(e)) return } else r.bindTexture(r.TEXTURE_2D, e._glTextures[r.id]); r.drawElements(r.TRIANGLES, 6 * t, r.UNSIGNED_SHORT, 6 * i * 2), this.renderSession.drawCount++ } } , I.WebGLSpriteBatch.prototype.stop = function() { this.flush(), this.dirty = !0 } , I.WebGLSpriteBatch.prototype.start = function() { this.dirty = !0 } , I.WebGLSpriteBatch.prototype.destroy = function() { this.vertices = null, this.indices = null, this.gl.deleteBuffer(this.vertexBuffer), this.gl.deleteBuffer(this.indexBuffer), this.currentBaseTexture = null, this.gl = null } , I.WebGLFastSpriteBatch = function(e) { this.vertSize = 10, this.maxSize = 6e3, this.size = this.maxSize; var t = 4 * this.size * this.vertSize , i = 6 * this.maxSize; this.vertices = new I.Float32Array(t), this.indices = new I.Uint16Array(i), this.vertexBuffer = null, this.indexBuffer = null; for (var r = this.lastIndexCount = 0, o = 0; r < i; r += 6, o += 4) this.indices[r + 0] = o + 0, this.indices[r + 1] = o + 1, this.indices[r + 2] = o + 2, this.indices[r + 3] = o + 0, this.indices[r + 4] = o + 2, this.indices[r + 5] = o + 3; this.drawing = !1, this.currentBatchSize = 0, this.currentBaseTexture = null, this.currentBlendMode = 0, this.renderSession = null, this.shader = null, this.matrix = null, this.setContext(e) } , I.WebGLFastSpriteBatch.prototype.constructor = I.WebGLFastSpriteBatch, I.WebGLFastSpriteBatch.prototype.setContext = function(e) { this.gl = e, this.vertexBuffer = e.createBuffer(), this.indexBuffer = e.createBuffer(), e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.indexBuffer), e.bufferData(e.ELEMENT_ARRAY_BUFFER, this.indices, e.STATIC_DRAW), e.bindBuffer(e.ARRAY_BUFFER, this.vertexBuffer), e.bufferData(e.ARRAY_BUFFER, this.vertices, e.DYNAMIC_DRAW) } , I.WebGLFastSpriteBatch.prototype.begin = function(e, t) { this.renderSession = t, this.shader = this.renderSession.shaderManager.fastShader, this.matrix = e.worldTransform.toArray(!0), this.start() } , I.WebGLFastSpriteBatch.prototype.end = function() { this.flush() } , I.WebGLFastSpriteBatch.prototype.render = function(e) { var t = e.children , i = t[0]; if (i.texture._uvs) { this.currentBaseTexture = i.texture.baseTexture, i.blendMode !== this.renderSession.blendModeManager.currentBlendMode && (this.flush(), this.renderSession.blendModeManager.setBlendMode(i.blendMode)); for (var r = 0, o = t.length; r < o; r++) this.renderSprite(t[r]); this.flush() } } , I.WebGLFastSpriteBatch.prototype.renderSprite = function(e) { if (e.visible && (e.texture.baseTexture === this.currentBaseTexture || e.texture.baseTexture.skipRender || (this.flush(), this.currentBaseTexture = e.texture.baseTexture, e.texture._uvs))) { var t, i, r, o, s, a, n = this.vertices; if (t = e.texture._uvs, e.texture.frame.width, e.texture.frame.height, e.texture.trim) { var h = e.texture.trim; i = (r = h.x - e.anchor.x * h.width) + e.texture.crop.width, o = (s = h.y - e.anchor.y * h.height) + e.texture.crop.height } else i = e.texture.frame.width * (1 - e.anchor.x), r = e.texture.frame.width * -e.anchor.x, o = e.texture.frame.height * (1 - e.anchor.y), s = e.texture.frame.height * -e.anchor.y; a = 4 * this.currentBatchSize * this.vertSize, n[a++] = r, n[a++] = s, n[a++] = e.position.x, n[a++] = e.position.y, n[a++] = e.scale.x, n[a++] = e.scale.y, n[a++] = e.rotation, n[a++] = t.x0, n[a++] = t.y1, n[a++] = e.alpha, n[a++] = i, n[a++] = s, n[a++] = e.position.x, n[a++] = e.position.y, n[a++] = e.scale.x, n[a++] = e.scale.y, n[a++] = e.rotation, n[a++] = t.x1, n[a++] = t.y1, n[a++] = e.alpha, n[a++] = i, n[a++] = o, n[a++] = e.position.x, n[a++] = e.position.y, n[a++] = e.scale.x, n[a++] = e.scale.y, n[a++] = e.rotation, n[a++] = t.x2, n[a++] = t.y2, n[a++] = e.alpha, n[a++] = r, n[a++] = o, n[a++] = e.position.x, n[a++] = e.position.y, n[a++] = e.scale.x, n[a++] = e.scale.y, n[a++] = e.rotation, n[a++] = t.x3, n[a++] = t.y3, n[a++] = e.alpha, this.currentBatchSize++, this.currentBatchSize >= this.size && this.flush() } } , I.WebGLFastSpriteBatch.prototype.flush = function() { if (0 !== this.currentBatchSize) { var e = this.gl; if (this.currentBaseTexture._glTextures[e.id] || this.renderSession.renderer.updateTexture(this.currentBaseTexture, e), e.bindTexture(e.TEXTURE_2D, this.currentBaseTexture._glTextures[e.id]), this.currentBatchSize > .5 * this.size) e.bufferSubData(e.ARRAY_BUFFER, 0, this.vertices); else { var t = this.vertices.subarray(0, 4 * this.currentBatchSize * this.vertSize); e.bufferSubData(e.ARRAY_BUFFER, 0, t) } e.drawElements(e.TRIANGLES, 6 * this.currentBatchSize, e.UNSIGNED_SHORT, 0), this.currentBatchSize = 0, this.renderSession.drawCount++ } } , I.WebGLFastSpriteBatch.prototype.stop = function() { this.flush() } , I.WebGLFastSpriteBatch.prototype.start = function() { var e = this.gl; e.activeTexture(e.TEXTURE0), e.bindBuffer(e.ARRAY_BUFFER, this.vertexBuffer), e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.indexBuffer); var t = this.renderSession.projection; e.uniform2f(this.shader.projectionVector, t.x, t.y), e.uniformMatrix3fv(this.shader.uMatrix, !1, this.matrix); var i = 4 * this.vertSize; e.vertexAttribPointer(this.shader.aVertexPosition, 2, e.FLOAT, !1, i, 0), e.vertexAttribPointer(this.shader.aPositionCoord, 2, e.FLOAT, !1, i, 8), e.vertexAttribPointer(this.shader.aScale, 2, e.FLOAT, !1, i, 16), e.vertexAttribPointer(this.shader.aRotation, 1, e.FLOAT, !1, i, 24), e.vertexAttribPointer(this.shader.aTextureCoord, 2, e.FLOAT, !1, i, 28), e.vertexAttribPointer(this.shader.colorAttribute, 1, e.FLOAT, !1, i, 36) } , I.WebGLFilterManager = function() { this.filterStack = [], this.offsetX = 0, this.offsetY = 0 } , I.WebGLFilterManager.prototype.constructor = I.WebGLFilterManager, I.WebGLFilterManager.prototype.setContext = function(e) { this.gl = e, this.texturePool = [], this.initShaderBuffers() } , I.WebGLFilterManager.prototype.begin = function(e, t) { this.renderSession = e, this.defaultShader = e.shaderManager.defaultShader; var i = this.renderSession.projection; this.width = 2 * i.x, this.height = 2 * -i.y, this.buffer = t } , I.WebGLFilterManager.prototype.pushFilter = function(e) { var t = this.gl , i = this.renderSession.projection , r = this.renderSession.offset; e._filterArea = e.target.filterArea || e.target.getBounds(), e._previous_stencil_mgr = this.renderSession.stencilManager, this.renderSession.stencilManager = new I.WebGLStencilManager, this.renderSession.stencilManager.setContext(t), t.disable(t.STENCIL_TEST), this.filterStack.push(e); var o = e.filterPasses[0]; this.offsetX += e._filterArea.x, this.offsetY += e._filterArea.y; var s = this.texturePool.pop(); s ? s.resize(this.width * this.renderSession.resolution, this.height * this.renderSession.resolution) : s = new I.FilterTexture(this.gl,this.width * this.renderSession.resolution,this.height * this.renderSession.resolution), t.bindTexture(t.TEXTURE_2D, s.texture); var a = e._filterArea , n = o.padding; a.x -= n, a.y -= n, a.width += 2 * n, a.height += 2 * n, a.x < 0 && (a.x = 0), a.width > this.width && (a.width = this.width), a.y < 0 && (a.y = 0), a.height > this.height && (a.height = this.height), t.bindFramebuffer(t.FRAMEBUFFER, s.frameBuffer), t.viewport(0, 0, a.width * this.renderSession.resolution, a.height * this.renderSession.resolution), i.x = a.width / 2, i.y = -a.height / 2, r.x = -a.x, r.y = -a.y, t.colorMask(!0, !0, !0, !0), t.clearColor(0, 0, 0, 0), t.clear(t.COLOR_BUFFER_BIT), e._glFilterTexture = s } , I.WebGLFilterManager.prototype.popFilter = function() { var e = this.gl , t = this.filterStack.pop() , i = t._filterArea , r = t._glFilterTexture , o = this.renderSession.projection , s = this.renderSession.offset; if (1 < t.filterPasses.length) { e.viewport(0, 0, i.width * this.renderSession.resolution, i.height * this.renderSession.resolution), e.bindBuffer(e.ARRAY_BUFFER, this.vertexBuffer), this.vertexArray[0] = 0, this.vertexArray[1] = i.height, this.vertexArray[2] = i.width, this.vertexArray[3] = i.height, this.vertexArray[4] = 0, this.vertexArray[5] = 0, this.vertexArray[6] = i.width, this.vertexArray[7] = 0, e.bufferSubData(e.ARRAY_BUFFER, 0, this.vertexArray), e.bindBuffer(e.ARRAY_BUFFER, this.uvBuffer), this.uvArray[2] = i.width / this.width, this.uvArray[5] = i.height / this.height, this.uvArray[6] = i.width / this.width, this.uvArray[7] = i.height / this.height, e.bufferSubData(e.ARRAY_BUFFER, 0, this.uvArray); var a = r , n = this.texturePool.pop(); n || (n = new I.FilterTexture(this.gl,this.width * this.renderSession.resolution,this.height * this.renderSession.resolution)), n.resize(this.width * this.renderSession.resolution, this.height * this.renderSession.resolution), e.bindFramebuffer(e.FRAMEBUFFER, n.frameBuffer), e.clear(e.COLOR_BUFFER_BIT), e.disable(e.BLEND); for (var h = 0; h < t.filterPasses.length - 1; h++) { var c = t.filterPasses[h]; e.bindFramebuffer(e.FRAMEBUFFER, n.frameBuffer), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, a.texture), this.applyFilterPass(c, i, i.width, i.height); var l = a; a = n, n = l } e.enable(e.BLEND), r = a, this.texturePool.push(n) } var m = t.filterPasses[t.filterPasses.length - 1]; this.offsetX -= i.x, this.offsetY -= i.y; var u = this.width , d = this.height , p = 0 , f = 0 , y = this.buffer; if (0 === this.filterStack.length) e.colorMask(!0, !0, !0, !0); else { var S = this.filterStack[this.filterStack.length - 1]; u = (i = S._filterArea).width, d = i.height, p = i.x, f = i.y, y = S._glFilterTexture.frameBuffer } o.x = u / 2, o.y = -d / 2, s.x = p, s.y = f; var w = (i = t._filterArea).x - p , g = i.y - f; e.bindBuffer(e.ARRAY_BUFFER, this.vertexBuffer), this.vertexArray[0] = w, this.vertexArray[1] = g + i.height, this.vertexArray[2] = w + i.width, this.vertexArray[3] = g + i.height, this.vertexArray[4] = w, this.vertexArray[5] = g, this.vertexArray[6] = w + i.width, this.vertexArray[7] = g, e.bufferSubData(e.ARRAY_BUFFER, 0, this.vertexArray), e.bindBuffer(e.ARRAY_BUFFER, this.uvBuffer), this.uvArray[2] = i.width / this.width, this.uvArray[5] = i.height / this.height, this.uvArray[6] = i.width / this.width, this.uvArray[7] = i.height / this.height, e.bufferSubData(e.ARRAY_BUFFER, 0, this.uvArray), e.viewport(0, 0, u * this.renderSession.resolution, d * this.renderSession.resolution), e.bindFramebuffer(e.FRAMEBUFFER, y), e.activeTexture(e.TEXTURE0), e.bindTexture(e.TEXTURE_2D, r.texture), this.renderSession.stencilManager && this.renderSession.stencilManager.destroy(), this.renderSession.stencilManager = t._previous_stencil_mgr, t._previous_stencil_mgr = null, 0 < this.renderSession.stencilManager.count ? e.enable(e.STENCIL_TEST) : e.disable(e.STENCIL_TEST), this.applyFilterPass(m, i, u, d), this.texturePool.push(r), t._glFilterTexture = null } , I.WebGLFilterManager.prototype.applyFilterPass = function(e, t, i, r) { var o = this.gl , s = e.shaders[o.id]; s || ((s = new I.PixiShader(o)).fragmentSrc = e.fragmentSrc, s.uniforms = e.uniforms, s.init(), e.shaders[o.id] = s), this.renderSession.shaderManager.setShader(s), o.uniform2f(s.projectionVector, i / 2, -r / 2), o.uniform2f(s.offsetVector, 0, 0), e.uniforms.dimensions && (e.uniforms.dimensions.value[0] = this.width, e.uniforms.dimensions.value[1] = this.height, e.uniforms.dimensions.value[2] = this.vertexArray[0], e.uniforms.dimensions.value[3] = this.vertexArray[5]), s.syncUniforms(), o.bindBuffer(o.ARRAY_BUFFER, this.vertexBuffer), o.vertexAttribPointer(s.aVertexPosition, 2, o.FLOAT, !1, 0, 0), o.bindBuffer(o.ARRAY_BUFFER, this.uvBuffer), o.vertexAttribPointer(s.aTextureCoord, 2, o.FLOAT, !1, 0, 0), o.bindBuffer(o.ARRAY_BUFFER, this.colorBuffer), o.vertexAttribPointer(s.colorAttribute, 2, o.FLOAT, !1, 0, 0), o.bindBuffer(o.ELEMENT_ARRAY_BUFFER, this.indexBuffer), o.drawElements(o.TRIANGLES, 6, o.UNSIGNED_SHORT, 0), this.renderSession.drawCount++ } , I.WebGLFilterManager.prototype.initShaderBuffers = function() { var e = this.gl; this.vertexBuffer = e.createBuffer(), this.uvBuffer = e.createBuffer(), this.colorBuffer = e.createBuffer(), this.indexBuffer = e.createBuffer(), this.vertexArray = new I.Float32Array([0, 0, 1, 0, 0, 1, 1, 1]), e.bindBuffer(e.ARRAY_BUFFER, this.vertexBuffer), e.bufferData(e.ARRAY_BUFFER, this.vertexArray, e.STATIC_DRAW), this.uvArray = new I.Float32Array([0, 0, 1, 0, 0, 1, 1, 1]), e.bindBuffer(e.ARRAY_BUFFER, this.uvBuffer), e.bufferData(e.ARRAY_BUFFER, this.uvArray, e.STATIC_DRAW), this.colorArray = new I.Float32Array([1, 16777215, 1, 16777215, 1, 16777215, 1, 16777215]), e.bindBuffer(e.ARRAY_BUFFER, this.colorBuffer), e.bufferData(e.ARRAY_BUFFER, this.colorArray, e.STATIC_DRAW), e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.indexBuffer), e.bufferData(e.ELEMENT_ARRAY_BUFFER, new Uint16Array([0, 1, 2, 1, 3, 2]), e.STATIC_DRAW) } , I.WebGLFilterManager.prototype.destroy = function() { var e = this.gl; this.filterStack = null, this.offsetX = 0; for (var t = this.offsetY = 0; t < this.texturePool.length; t++) this.texturePool[t].destroy(); this.texturePool = null, e.deleteBuffer(this.vertexBuffer), e.deleteBuffer(this.uvBuffer), e.deleteBuffer(this.colorBuffer), e.deleteBuffer(this.indexBuffer) } , I.FilterTexture = function(e, t, i, r) { this.gl = e, this.frameBuffer = e.createFramebuffer(), this.texture = e.createTexture(), r = r || I.scaleModes.DEFAULT, e.bindTexture(e.TEXTURE_2D, this.texture), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, r === I.scaleModes.LINEAR ? e.LINEAR : e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, r === I.scaleModes.LINEAR ? e.LINEAR : e.NEAREST), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE), e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE), e.bindFramebuffer(e.FRAMEBUFFER, this.frameBuffer), e.bindFramebuffer(e.FRAMEBUFFER, this.frameBuffer), e.framebufferTexture2D(e.FRAMEBUFFER, e.COLOR_ATTACHMENT0, e.TEXTURE_2D, this.texture, 0), this.renderBuffer = e.createRenderbuffer(), e.bindRenderbuffer(e.RENDERBUFFER, this.renderBuffer), e.framebufferRenderbuffer(e.FRAMEBUFFER, e.DEPTH_STENCIL_ATTACHMENT, e.RENDERBUFFER, this.renderBuffer), this.resize(t, i) } , I.FilterTexture.prototype.constructor = I.FilterTexture, I.FilterTexture.prototype.clear = function() { var e = this.gl; e.clearColor(0, 0, 0, 0), e.clear(e.COLOR_BUFFER_BIT) } , I.FilterTexture.prototype.resize = function(e, t) { if (this.width !== e || this.height !== t) { this.width = e, this.height = t; var i = this.gl; i.bindTexture(i.TEXTURE_2D, this.texture), i.texImage2D(i.TEXTURE_2D, 0, i.RGBA, e, t, 0, i.RGBA, i.UNSIGNED_BYTE, null), i.bindRenderbuffer(i.RENDERBUFFER, this.renderBuffer), i.renderbufferStorage(i.RENDERBUFFER, i.DEPTH_STENCIL, e, t) } } , I.FilterTexture.prototype.destroy = function() { var e = this.gl; e.deleteFramebuffer(this.frameBuffer), e.deleteTexture(this.texture), this.frameBuffer = null, this.texture = null } , I.CanvasBuffer = function(e, t) { this.width = e, this.height = t, this.canvas = I.CanvasPool.create(this, this.width, this.height), this.context = this.canvas.getContext("2d"), this.canvas.width = e, this.canvas.height = t } , I.CanvasBuffer.prototype.constructor = I.CanvasBuffer, I.CanvasBuffer.prototype.clear = function() { this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.clearRect(0, 0, this.width, this.height) } , I.CanvasBuffer.prototype.resize = function(e, t) { this.width = this.canvas.width = e, this.height = this.canvas.height = t } , I.CanvasBuffer.prototype.destroy = function() { I.CanvasPool.remove(this) } , I.CanvasMaskManager = function() {} , I.CanvasMaskManager.prototype.constructor = I.CanvasMaskManager, I.CanvasMaskManager.prototype.pushMask = function(e, t) { var i = t.context; i.save(); var r = e.alpha , o = e.worldTransform , s = t.resolution; i.setTransform(o.a * s, o.b * s, o.c * s, o.d * s, o.tx * s, o.ty * s), I.CanvasGraphics.renderGraphicsMask(e, i), i.clip(), e.worldAlpha = r } , I.CanvasMaskManager.prototype.popMask = function(e) { e.context.restore() } , I.CanvasTinter = function() {} , I.CanvasTinter.getTintedTexture = function(e, t) { var i = e.tintedTexture || I.CanvasPool.create(this); return I.CanvasTinter.tintMethod(e.texture, t, i), i } , I.CanvasTinter.tintWithMultiply = function(e, t, i) { var r = i.getContext("2d") , o = e.crop; i.width === o.width && i.height === o.height || (i.width = o.width, i.height = o.height), r.clearRect(0, 0, o.width, o.height), r.fillStyle = "#" + ("00000" + (0 | t).toString(16)).substr(-6), r.fillRect(0, 0, o.width, o.height), r.globalCompositeOperation = "multiply", r.drawImage(e.baseTexture.source, o.x, o.y, o.width, o.height, 0, 0, o.width, o.height), r.globalCompositeOperation = "destination-atop", r.drawImage(e.baseTexture.source, o.x, o.y, o.width, o.height, 0, 0, o.width, o.height) } , I.CanvasTinter.tintWithPerPixel = function(e, t, i) { var r = i.getContext("2d") , o = e.crop; i.width = o.width, i.height = o.height, r.globalCompositeOperation = "copy", r.drawImage(e.baseTexture.source, o.x, o.y, o.width, o.height, 0, 0, o.width, o.height); for (var s = I.hex2rgb(t), a = s[0], n = s[1], h = s[2], c = r.getImageData(0, 0, o.width, o.height), l = c.data, m = 0; m < l.length; m += 4) if (l[m + 0] *= a, l[m + 1] *= n, l[m + 2] *= h, !I.CanvasTinter.canHandleAlpha) { var u = l[m + 3]; l[m + 0] /= 255 / u, l[m + 1] /= 255 / u, l[m + 2] /= 255 / u } r.putImageData(c, 0, 0) } , I.CanvasTinter.checkInverseAlpha = function() { var e = new I.CanvasBuffer(2,1); e.context.fillStyle = "rgba(10, 20, 30, 0.5)", e.context.fillRect(0, 0, 1, 1); var t = e.context.getImageData(0, 0, 1, 1); if (null === t) return !1; e.context.putImageData(t, 1, 0); var i = e.context.getImageData(1, 0, 1, 1); return i.data[0] === t.data[0] && i.data[1] === t.data[1] && i.data[2] === t.data[2] && i.data[3] === t.data[3] } , I.CanvasTinter.canHandleAlpha = I.CanvasTinter.checkInverseAlpha(), I.CanvasTinter.canUseMultiply = I.canUseNewCanvasBlendModes(), I.CanvasTinter.tintMethod = I.CanvasTinter.canUseMultiply ? I.CanvasTinter.tintWithMultiply : I.CanvasTinter.tintWithPerPixel, I.CanvasRenderer = function(e) { this.game = e, I.defaultRenderer || (I.defaultRenderer = this), this.type = I.CANVAS_RENDERER, this.resolution = e.resolution, this.clearBeforeRender = e.clearBeforeRender, this.transparent = e.transparent, this.autoResize = !1, this.width = e.width * this.resolution, this.height = e.height * this.resolution, this.view = e.canvas, this.context = this.view.getContext("2d", { alpha: this.transparent }), this.refresh = !0, this.count = 0, this.maskManager = new I.CanvasMaskManager, this.renderSession = { context: this.context, maskManager: this.maskManager, scaleMode: null, smoothProperty: Phaser.Canvas.getSmoothingPrefix(this.context), roundPixels: !1 }, this.mapBlendModes(), this.resize(this.width, this.height) } , I.CanvasRenderer.prototype.constructor = I.CanvasRenderer, I.CanvasRenderer.prototype.render = function(e) { this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.globalAlpha = 1, this.renderSession.currentBlendMode = 0, this.renderSession.shakeX = this.game.camera._shake.x, this.renderSession.shakeY = this.game.camera._shake.y, this.context.globalCompositeOperation = "source-over", navigator.isCocoonJS && this.view.screencanvas && (this.context.fillStyle = "black", this.context.clear()), this.clearBeforeRender && (this.transparent ? this.context.clearRect(0, 0, this.width, this.height) : e._bgColor && (this.context.fillStyle = e._bgColor.rgba, this.context.fillRect(0, 0, this.width, this.height))), this.renderDisplayObject(e) } , I.CanvasRenderer.prototype.destroy = function(e) { void 0 === e && (e = !0), e && this.view.parent && this.view.parent.removeChild(this.view), this.view = null, this.context = null, this.maskManager = null, this.renderSession = null } , I.CanvasRenderer.prototype.resize = function(e, t) { this.width = e * this.resolution, this.height = t * this.resolution, this.view.width = this.width, this.view.height = this.height, this.autoResize && (this.view.style.width = this.width / this.resolution + "px", this.view.style.height = this.height / this.resolution + "px"), this.renderSession.smoothProperty && (this.context[this.renderSession.smoothProperty] = this.renderSession.scaleMode === I.scaleModes.LINEAR) } , I.CanvasRenderer.prototype.renderDisplayObject = function(e, t, i) { this.renderSession.context = t || this.context, this.renderSession.resolution = this.resolution, e._renderCanvas(this.renderSession, i) } , I.CanvasRenderer.prototype.mapBlendModes = function() { if (!I.blendModesCanvas) { var e = [] , t = I.blendModes , i = I.canUseNewCanvasBlendModes(); e[t.NORMAL] = "source-over", e[t.ADD] = "lighter", e[t.MULTIPLY] = i ? "multiply" : "source-over", e[t.SCREEN] = i ? "screen" : "source-over", e[t.OVERLAY] = i ? "overlay" : "source-over", e[t.DARKEN] = i ? "darken" : "source-over", e[t.LIGHTEN] = i ? "lighten" : "source-over", e[t.COLOR_DODGE] = i ? "color-dodge" : "source-over", e[t.COLOR_BURN] = i ? "color-burn" : "source-over", e[t.HARD_LIGHT] = i ? "hard-light" : "source-over", e[t.SOFT_LIGHT] = i ? "soft-light" : "source-over", e[t.DIFFERENCE] = i ? "difference" : "source-over", e[t.EXCLUSION] = i ? "exclusion" : "source-over", e[t.HUE] = i ? "hue" : "source-over", e[t.SATURATION] = i ? "saturation" : "source-over", e[t.COLOR] = i ? "color" : "source-over", e[t.LUMINOSITY] = i ? "luminosity" : "source-over", I.blendModesCanvas = e } } , I.BaseTexture = function(e, t) { this.resolution = 1, this.width = 100, this.height = 100, this.scaleMode = t || I.scaleModes.DEFAULT, this.hasLoaded = !1, this.source = e, this.premultipliedAlpha = !0, this._glTextures = [], this.mipmap = !1, this._dirty = [!0, !0, !0, !0], e && ((this.source.complete || this.source.getContext) && this.source.width && this.source.height && (this.hasLoaded = !0, this.width = this.source.naturalWidth || this.source.width, this.height = this.source.naturalHeight || this.source.height, this.dirty()), this.skipRender = !1, this._powerOf2 = !1) } , I.BaseTexture.prototype.constructor = I.BaseTexture, I.BaseTexture.prototype.forceLoaded = function(e, t) { this.hasLoaded = !0, this.width = e, this.height = t, this.dirty() } , I.BaseTexture.prototype.destroy = function() { this.source && I.CanvasPool.removeByCanvas(this.source), this.source = null, this.unloadFromGPU() } , I.BaseTexture.prototype.updateSourceImage = function(e) {} , I.BaseTexture.prototype.dirty = function() { for (var e = 0; e < this._glTextures.length; e++) this._dirty[e] = !0 } , I.BaseTexture.prototype.unloadFromGPU = function() { this.dirty(); for (var e = this._glTextures.length - 1; 0 <= e; e--) { var t = this._glTextures[e] , i = I.glContexts[e]; i && t && i.deleteTexture(t) } this._glTextures.length = 0, this.dirty() } , I.BaseTexture.fromCanvas = function(e, t) { return 0 === e.width && (e.width = 1), 0 === e.height && (e.height = 1), new I.BaseTexture(e,t) } , I.TextureSilentFail = !1, I.Texture = function(e, t, i, r) { this.noFrame = !1, t || (this.noFrame = !0, t = new I.Rectangle(0,0,1,1)), e instanceof I.Texture && (e = e.baseTexture), this.baseTexture = e, this.frame = t, this.trim = r, this.valid = !1, this.isTiling = !1, this.requiresUpdate = !1, this.requiresReTint = !1, this._uvs = null, this.width = 0, this.height = 0, this.crop = i || new I.Rectangle(0,0,1,1), e.hasLoaded && (this.noFrame && (t = new I.Rectangle(0,0,e.width,e.height)), this.setFrame(t)) } , I.Texture.prototype.constructor = I.Texture, I.Texture.prototype.onBaseTextureLoaded = function() { var e = this.baseTexture; this.noFrame && (this.frame = new I.Rectangle(0,0,e.width,e.height)), this.setFrame(this.frame) } , I.Texture.prototype.destroy = function(e) { e && this.baseTexture.destroy(), this.valid = !1 } , I.Texture.prototype.setFrame = function(e) { if (this.noFrame = !1, this.frame = e, this.width = e.width, this.height = e.height, this.crop.x = e.x, this.crop.y = e.y, this.crop.width = e.width, this.crop.height = e.height, this.trim || !(e.x + e.width > this.baseTexture.width || e.y + e.height > this.baseTexture.height)) this.valid = e && e.width && e.height && this.baseTexture.source && this.baseTexture.hasLoaded, this.trim && (this.width = this.trim.width, this.height = this.trim.height, this.frame.width = this.trim.width, this.frame.height = this.trim.height), this.valid && this._updateUvs(); else { if (!I.TextureSilentFail) throw new Error("Texture Error: frame does not fit inside the base Texture dimensions " + this); this.valid = !1 } } , I.Texture.prototype._updateUvs = function() { this._uvs || (this._uvs = new I.TextureUvs); var e = this.crop , t = this.baseTexture.width , i = this.baseTexture.height; this._uvs.x0 = e.x / t, this._uvs.y0 = e.y / i, this._uvs.x1 = (e.x + e.width) / t, this._uvs.y1 = e.y / i, this._uvs.x2 = (e.x + e.width) / t, this._uvs.y2 = (e.y + e.height) / i, this._uvs.x3 = e.x / t, this._uvs.y3 = (e.y + e.height) / i } , I.Texture.fromCanvas = function(e, t) { var i = I.BaseTexture.fromCanvas(e, t); return new I.Texture(i) } , I.TextureUvs = function() { this.x0 = 0, this.y0 = 0, this.x1 = 0, this.y1 = 0, this.x2 = 0, this.y2 = 0, this.x3 = 0, this.y3 = 0 } , I.RenderTexture = function(e, t, i, r, o) { if (this.width = e || 100, this.height = t || 100, this.resolution = o || 1, this.frame = new I.Rectangle(0,0,this.width * this.resolution,this.height * this.resolution), this.crop = new I.Rectangle(0,0,this.width * this.resolution,this.height * this.resolution), this.baseTexture = new I.BaseTexture, this.baseTexture.width = this.width * this.resolution, this.baseTexture.height = this.height * this.resolution, this.baseTexture._glTextures = [], this.baseTexture.resolution = this.resolution, this.baseTexture.scaleMode = r || I.scaleModes.DEFAULT, this.baseTexture.hasLoaded = !0, I.Texture.call(this, this.baseTexture, new I.Rectangle(0,0,this.width * this.resolution,this.height * this.resolution)), this.renderer = i || I.defaultRenderer, this.renderer.type === I.WEBGL_RENDERER) { var s = this.renderer.gl; this.baseTexture._dirty[s.id] = !1, this.textureBuffer = new I.FilterTexture(s,this.width,this.height,this.baseTexture.scaleMode), this.baseTexture._glTextures[s.id] = this.textureBuffer.texture, this.render = this.renderWebGL, this.projection = new I.Point(.5 * this.width,.5 * -this.height) } else this.render = this.renderCanvas, this.textureBuffer = new I.CanvasBuffer(this.width * this.resolution,this.height * this.resolution), this.baseTexture.source = this.textureBuffer.canvas; this.valid = !0, this.tempMatrix = new Phaser.Matrix, this._updateUvs() } , I.RenderTexture.prototype = Object.create(I.Texture.prototype), I.RenderTexture.prototype.constructor = I.RenderTexture, I.RenderTexture.prototype.resize = function(e, t, i) { e === this.width && t === this.height || (this.valid = 0 < e && 0 < t, this.width = e, this.height = t, this.frame.width = this.crop.width = e * this.resolution, this.frame.height = this.crop.height = t * this.resolution, i && (this.baseTexture.width = this.width * this.resolution, this.baseTexture.height = this.height * this.resolution), this.renderer.type === I.WEBGL_RENDERER && (this.projection.x = this.width / 2, this.projection.y = -this.height / 2), this.valid && this.textureBuffer.resize(this.width, this.height)) } , I.RenderTexture.prototype.clear = function() { this.valid && (this.renderer.type === I.WEBGL_RENDERER && this.renderer.gl.bindFramebuffer(this.renderer.gl.FRAMEBUFFER, this.textureBuffer.frameBuffer), this.textureBuffer.clear()) } , I.RenderTexture.prototype.renderWebGL = function(e, t, i) { if (this.valid && 0 !== e.alpha) { var r = e.worldTransform; r.identity(), r.translate(0, 2 * this.projection.y), t && r.append(t), r.scale(1, -1); for (var o = 0; o < e.children.length; o++) e.children[o].updateTransform(); var s = this.renderer.gl; s.viewport(0, 0, this.width * this.resolution, this.height * this.resolution), s.bindFramebuffer(s.FRAMEBUFFER, this.textureBuffer.frameBuffer), i && this.textureBuffer.clear(), this.renderer.spriteBatch.dirty = !0, this.renderer.renderDisplayObject(e, this.projection, this.textureBuffer.frameBuffer, t), this.renderer.spriteBatch.dirty = !0 } } , I.RenderTexture.prototype.renderCanvas = function(e, t, i) { if (this.valid && 0 !== e.alpha) { var r = e.worldTransform; r.identity(), t && r.append(t); for (var o = 0; o < e.children.length; o++) e.children[o].updateTransform(); i && this.textureBuffer.clear(); var s = this.renderer.resolution; this.renderer.resolution = this.resolution, this.renderer.renderDisplayObject(e, this.textureBuffer.context, t), this.renderer.resolution = s } } , I.RenderTexture.prototype.getImage = function() { var e = new Image; return e.src = this.getBase64(), e } , I.RenderTexture.prototype.getBase64 = function() { return this.getCanvas().toDataURL() } , I.RenderTexture.prototype.getCanvas = function() { if (this.renderer.type !== I.WEBGL_RENDERER) return this.textureBuffer.canvas; var e = this.renderer.gl , t = this.textureBuffer.width , i = this.textureBuffer.height , r = new Uint8Array(4 * t * i); e.bindFramebuffer(e.FRAMEBUFFER, this.textureBuffer.frameBuffer), e.readPixels(0, 0, t, i, e.RGBA, e.UNSIGNED_BYTE, r), e.bindFramebuffer(e.FRAMEBUFFER, null); var o = new I.CanvasBuffer(t,i) , s = o.context.getImageData(0, 0, t, i); return s.data.set(r), o.context.putImageData(s, 0, 0), o.canvas } , I.AbstractFilter = function(e, t) { this.passes = [this], this.shaders = [], this.dirty = !0, this.padding = 0, this.uniforms = t || {}, this.fragmentSrc = e || [] } , I.AbstractFilter.prototype.constructor = I.AbstractFilter, I.AbstractFilter.prototype.syncUniforms = function() { for (var e = 0, t = this.shaders.length; e < t; e++) this.shaders[e].dirty = !0 } , I.Strip = function(e) { I.DisplayObjectContainer.call(this), this.texture = e, this.uvs = new I.Float32Array([0, 1, 1, 1, 1, 0, 0, 1]), this.vertices = new I.Float32Array([0, 0, 100, 0, 100, 100, 0, 100]), this.colors = new I.Float32Array([1, 1, 1, 1]), this.indices = new I.Uint16Array([0, 1, 2, 3]), this.dirty = !0, this.blendMode = I.blendModes.NORMAL, this.canvasPadding = 0, this.drawMode = I.Strip.DrawModes.TRIANGLE_STRIP } , I.Strip.prototype = Object.create(I.DisplayObjectContainer.prototype), I.Strip.prototype.constructor = I.Strip, I.Strip.prototype._renderWebGL = function(e) { !this.visible || this.alpha <= 0 || (e.spriteBatch.stop(), this._vertexBuffer || this._initWebGL(e), e.shaderManager.setShader(e.shaderManager.stripShader), this._renderStrip(e), e.spriteBatch.start()) } , I.Strip.prototype._initWebGL = function(e) { var t = e.gl; this._vertexBuffer = t.createBuffer(), this._indexBuffer = t.createBuffer(), this._uvBuffer = t.createBuffer(), this._colorBuffer = t.createBuffer(), t.bindBuffer(t.ARRAY_BUFFER, this._vertexBuffer), t.bufferData(t.ARRAY_BUFFER, this.vertices, t.DYNAMIC_DRAW), t.bindBuffer(t.ARRAY_BUFFER, this._uvBuffer), t.bufferData(t.ARRAY_BUFFER, this.uvs, t.STATIC_DRAW), t.bindBuffer(t.ARRAY_BUFFER, this._colorBuffer), t.bufferData(t.ARRAY_BUFFER, this.colors, t.STATIC_DRAW), t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this._indexBuffer), t.bufferData(t.ELEMENT_ARRAY_BUFFER, this.indices, t.STATIC_DRAW) } , I.Strip.prototype._renderStrip = function(e) { var t = e.gl , i = e.projection , r = e.offset , o = e.shaderManager.stripShader , s = this.drawMode === I.Strip.DrawModes.TRIANGLE_STRIP ? t.TRIANGLE_STRIP : t.TRIANGLES; e.blendModeManager.setBlendMode(this.blendMode), t.uniformMatrix3fv(o.translationMatrix, !1, this.worldTransform.toArray(!0)), t.uniform2f(o.projectionVector, i.x, -i.y), t.uniform2f(o.offsetVector, -r.x, -r.y), t.uniform1f(o.alpha, this.worldAlpha), this.dirty ? (this.dirty = !1, t.bindBuffer(t.ARRAY_BUFFER, this._vertexBuffer), t.bufferData(t.ARRAY_BUFFER, this.vertices, t.STATIC_DRAW), t.vertexAttribPointer(o.aVertexPosition, 2, t.FLOAT, !1, 0, 0), t.bindBuffer(t.ARRAY_BUFFER, this._uvBuffer), t.bufferData(t.ARRAY_BUFFER, this.uvs, t.STATIC_DRAW), t.vertexAttribPointer(o.aTextureCoord, 2, t.FLOAT, !1, 0, 0), t.activeTexture(t.TEXTURE0), this.texture.baseTexture._dirty[t.id] ? e.renderer.updateTexture(this.texture.baseTexture) : t.bindTexture(t.TEXTURE_2D, this.texture.baseTexture._glTextures[t.id]), t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this._indexBuffer), t.bufferData(t.ELEMENT_ARRAY_BUFFER, this.indices, t.STATIC_DRAW)) : (t.bindBuffer(t.ARRAY_BUFFER, this._vertexBuffer), t.bufferSubData(t.ARRAY_BUFFER, 0, this.vertices), t.vertexAttribPointer(o.aVertexPosition, 2, t.FLOAT, !1, 0, 0), t.bindBuffer(t.ARRAY_BUFFER, this._uvBuffer), t.vertexAttribPointer(o.aTextureCoord, 2, t.FLOAT, !1, 0, 0), t.activeTexture(t.TEXTURE0), this.texture.baseTexture._dirty[t.id] ? e.renderer.updateTexture(this.texture.baseTexture) : t.bindTexture(t.TEXTURE_2D, this.texture.baseTexture._glTextures[t.id]), t.bindBuffer(t.ELEMENT_ARRAY_BUFFER, this._indexBuffer)), t.drawElements(s, this.indices.length, t.UNSIGNED_SHORT, 0) } , I.Strip.prototype._renderCanvas = function(e) { var t = e.context , i = this.worldTransform , r = i.tx * e.resolution + e.shakeX , o = i.ty * e.resolution + e.shakeY; e.roundPixels ? t.setTransform(i.a, i.b, i.c, i.d, 0 | r, 0 | o) : t.setTransform(i.a, i.b, i.c, i.d, r, o), this.drawMode === I.Strip.DrawModes.TRIANGLE_STRIP ? this._renderCanvasTriangleStrip(t) : this._renderCanvasTriangles(t) } , I.Strip.prototype._renderCanvasTriangleStrip = function(e) { var t = this.vertices , i = this.uvs , r = t.length / 2; this.count++; for (var o = 0; o < r - 2; o++) { var s = 2 * o; this._renderCanvasDrawTriangle(e, t, i, s, s + 2, s + 4) } } , I.Strip.prototype._renderCanvasTriangles = function(e) { var t = this.vertices , i = this.uvs , r = this.indices , o = r.length; this.count++; for (var s = 0; s < o; s += 3) { var a = 2 * r[s] , n = 2 * r[s + 1] , h = 2 * r[s + 2]; this._renderCanvasDrawTriangle(e, t, i, a, n, h) } } , I.Strip.prototype._renderCanvasDrawTriangle = function(e, t, i, r, o, s) { var a = this.texture.baseTexture.source , n = this.texture.width , h = this.texture.height , c = t[r] , l = t[o] , m = t[s] , u = t[r + 1] , d = t[o + 1] , p = t[s + 1] , f = i[r] * n , y = i[o] * n , S = i[s] * n , w = i[r + 1] * h , g = i[o + 1] * h , x = i[s + 1] * h; if (0 < this.canvasPadding) { var b = this.canvasPadding / this.worldTransform.a , v = this.canvasPadding / this.worldTransform.d , z = (c + l + m) / 3 , C = (u + d + p) / 3 , T = c - z , P = u - C , A = Math.sqrt(T * T + P * P); c = z + T / A * (A + b), u = C + P / A * (A + v), P = d - C, l = z + (T = l - z) / (A = Math.sqrt(T * T + P * P)) * (A + b), d = C + P / A * (A + v), P = p - C, m = z + (T = m - z) / (A = Math.sqrt(T * T + P * P)) * (A + b), p = C + P / A * (A + v) } e.save(), e.beginPath(), e.moveTo(c, u), e.lineTo(l, d), e.lineTo(m, p), e.closePath(), e.clip(); var _ = f * g + w * S + y * x - g * S - w * y - f * x , B = c * g + w * m + l * x - g * m - w * l - c * x , D = f * l + c * S + y * m - l * S - c * y - f * m , k = f * g * m + w * l * S + c * y * x - c * g * S - w * y * m - f * l * x , E = u * g + w * p + d * x - g * p - w * d - u * x , M = f * d + u * S + y * p - d * S - u * y - f * p , I = f * g * p + w * d * S + u * y * x - u * g * S - w * y * p - f * d * x; e.transform(B / _, E / _, D / _, M / _, k / _, I / _), e.drawImage(a, 0, 0), e.restore() } , I.Strip.prototype.renderStripFlat = function(e) { var t = this.context , i = e.vertices , r = i.length / 2; this.count++, t.beginPath(); for (var o = 1; o < r - 2; o++) { var s = 2 * o , a = i[s] , n = i[s + 2] , h = i[s + 4] , c = i[s + 1] , l = i[s + 3] , m = i[s + 5]; t.moveTo(a, c), t.lineTo(n, l), t.lineTo(h, m) } t.fillStyle = "#FF0000", t.fill(), t.closePath() } , I.Strip.prototype.onTextureUpdate = function() { this.updateFrame = !0 } , I.Strip.prototype.getBounds = function(e) { for (var t = e || this.worldTransform, i = t.a, r = t.b, o = t.c, s = t.d, a = t.tx, n = t.ty, h = -1 / 0, c = -1 / 0, l = 1 / 0, m = 1 / 0, u = this.vertices, d = 0, p = u.length; d < p; d += 2) { var f = u[d] , y = u[d + 1] , S = i * f + o * y + a , w = s * y + r * f + n; l = S < l ? S : l, m = w < m ? w : m, h = h < S ? S : h, c = c < w ? w : c } if (l === -1 / 0 || c === 1 / 0) return I.EmptyRectangle; var g = this._bounds; return g.x = l, g.width = h - l, g.y = m, g.height = c - m, this._currentBounds = g } , I.Strip.DrawModes = { TRIANGLE_STRIP: 0, TRIANGLES: 1 }, I.Rope = function(e, t) { I.Strip.call(this, e), this.points = t, this.vertices = new I.Float32Array(4 * t.length), this.uvs = new I.Float32Array(4 * t.length), this.colors = new I.Float32Array(2 * t.length), this.indices = new I.Uint16Array(2 * t.length), this.refresh() } , I.Rope.prototype = Object.create(I.Strip.prototype), I.Rope.prototype.constructor = I.Rope, I.Rope.prototype.refresh = function() { var e = this.points; if (!(e.length < 1)) { var t = this.uvs , i = (e[0], this.indices) , r = this.colors; this.count -= .2, t[0] = 0, t[1] = 0, t[2] = 0, t[3] = 1, r[0] = 1, r[1] = 1, i[0] = 0, i[1] = 1; for (var o, s, a, n = e.length, h = 1; h < n; h++) o = e[h], a = h / (n - 1), t[s = 4 * h] = a, t[s + 1] = 0, t[s + 2] = a, t[s + 3] = 1, r[s = 2 * h] = 1, r[s + 1] = 1, i[s = 2 * h] = s, i[s + 1] = s + 1, o } } , I.Rope.prototype.updateTransform = function() { var e = this.points; if (!(e.length < 1)) { var t, i = e[0], r = { x: 0, y: 0 }; this.count -= .2; for (var o, s, a, n, h = this.vertices, c = e.length, l = 0; l < c; l++) o = e[l], s = 4 * l, t = l < e.length - 1 ? e[l + 1] : o, r.y = -(t.x - i.x), r.x = t.y - i.y, 1 < 10 * (1 - l / (c - 1)) && 1, a = Math.sqrt(r.x * r.x + r.y * r.y), n = this.texture.height / 2, r.x /= a, r.y /= a, r.x *= n, r.y *= n, h[s] = o.x + r.x, h[s + 1] = o.y + r.y, h[s + 2] = o.x - r.x, h[s + 3] = o.y - r.y, i = o; I.DisplayObjectContainer.prototype.updateTransform.call(this) } } , I.Rope.prototype.setTexture = function(e) { this.texture = e } , I.TilingSprite = function(e, t, i) { I.Sprite.call(this, e), this._width = t || 128, this._height = i || 128, this.tileScale = new I.Point(1,1), this.tileScaleOffset = new I.Point(1,1), this.tilePosition = new I.Point, this.renderable = !0, this.tint = 16777215, this.textureDebug = !1, this.blendMode = I.blendModes.NORMAL, this.canvasBuffer = null, this.tilingTexture = null, this.tilePattern = null, this.refreshTexture = !0, this.frameWidth = 0, this.frameHeight = 0 } , I.TilingSprite.prototype = Object.create(I.Sprite.prototype), I.TilingSprite.prototype.constructor = I.TilingSprite, I.TilingSprite.prototype.setTexture = function(e) { this.texture !== e && (this.texture = e, this.refreshTexture = !0, this.cachedTint = 16777215) } , I.TilingSprite.prototype._renderWebGL = function(e) { if (this.visible && this.renderable && 0 !== this.alpha) { if (this._mask && (e.spriteBatch.stop(), e.maskManager.pushMask(this.mask, e), e.spriteBatch.start()), this._filters && (e.spriteBatch.flush(), e.filterManager.pushFilter(this._filterBlock)), this.refreshTexture) { if (this.generateTilingTexture(!0, e), !this.tilingTexture) return; this.tilingTexture.needsUpdate && (e.renderer.updateTexture(this.tilingTexture.baseTexture), this.tilingTexture.needsUpdate = !1) } e.spriteBatch.renderTilingSprite(this); for (var t = 0; t < this.children.length; t++) this.children[t]._renderWebGL(e); e.spriteBatch.stop(), this._filters && e.filterManager.popFilter(), this._mask && e.maskManager.popMask(this._mask, e), e.spriteBatch.start() } } , I.TilingSprite.prototype._renderCanvas = function(e) { if (this.visible && this.renderable && 0 !== this.alpha) { var t = e.context; this._mask && e.maskManager.pushMask(this._mask, e), t.globalAlpha = this.worldAlpha; var i = this.worldTransform , r = e.resolution , o = i.tx * r + e.shakeX , s = i.ty * r + e.shakeY; if (t.setTransform(i.a * r, i.b * r, i.c * r, i.d * r, o, s), this.refreshTexture) { if (this.generateTilingTexture(!1, e), !this.tilingTexture) return; this.tilePattern = t.createPattern(this.tilingTexture.baseTexture.source, "repeat") } var a = e.currentBlendMode; this.blendMode !== e.currentBlendMode && (e.currentBlendMode = this.blendMode, t.globalCompositeOperation = I.blendModesCanvas[e.currentBlendMode]); var n = this.tilePosition , h = this.tileScale; n.x %= this.tilingTexture.baseTexture.width, n.y %= this.tilingTexture.baseTexture.height, t.scale(h.x, h.y), t.translate(n.x + this.anchor.x * -this._width, n.y + this.anchor.y * -this._height), t.fillStyle = this.tilePattern; o = -n.x, s = -n.y; var c = this._width / h.x , l = this._height / h.y; e.roundPixels && (o |= 0, s |= 0, c |= 0, l |= 0), t.fillRect(o, s, c, l), t.scale(1 / h.x, 1 / h.y), t.translate(-n.x + this.anchor.x * this._width, -n.y + this.anchor.y * this._height), this._mask && e.maskManager.popMask(e); for (var m = 0; m < this.children.length; m++) this.children[m]._renderCanvas(e); a !== this.blendMode && (e.currentBlendMode = a, t.globalCompositeOperation = I.blendModesCanvas[a]) } } , I.TilingSprite.prototype.onTextureUpdate = function() {} , I.TilingSprite.prototype.generateTilingTexture = function(e, t) { if (this.texture.baseTexture.hasLoaded) { var i = this.texture , r = i.frame , o = this._frame.sourceSizeW || this._frame.width , s = this._frame.sourceSizeH || this._frame.height , a = 0 , n = 0; this._frame.trimmed && (a = this._frame.spriteSourceSizeX, n = this._frame.spriteSourceSizeY), e && (o = I.getNextPowerOfTwo(o), s = I.getNextPowerOfTwo(s)), this.canvasBuffer ? (this.canvasBuffer.resize(o, s), this.tilingTexture.baseTexture.width = o, this.tilingTexture.baseTexture.height = s) : (this.canvasBuffer = new I.CanvasBuffer(o,s), this.tilingTexture = I.Texture.fromCanvas(this.canvasBuffer.canvas), this.tilingTexture.isTiling = !0), this.tilingTexture.needsUpdate = !0, this.textureDebug && (this.canvasBuffer.context.strokeStyle = "#00ff00", this.canvasBuffer.context.strokeRect(0, 0, o, s)); var h = i.crop.width , c = i.crop.height; h === o && c === s || (h = o, c = s), this.canvasBuffer.context.drawImage(i.baseTexture.source, i.crop.x, i.crop.y, i.crop.width, i.crop.height, a, n, h, c), this.tileScaleOffset.x = r.width / o, this.tileScaleOffset.y = r.height / s, this.refreshTexture = !1, this.tilingTexture.baseTexture._powerOf2 = !0 } } , I.TilingSprite.prototype.getBounds = function() { var e = this._width , t = this._height , i = e * (1 - this.anchor.x) , r = e * -this.anchor.x , o = t * (1 - this.anchor.y) , s = t * -this.anchor.y , a = this.worldTransform , n = a.a , h = a.b , c = a.c , l = a.d , m = a.tx , u = a.ty , d = n * r + c * s + m , p = l * s + h * r + u , f = n * i + c * s + m , y = l * s + h * i + u , S = n * i + c * o + m , w = l * o + h * i + u , g = n * r + c * o + m , x = l * o + h * r + u , b = -1 / 0 , v = -1 / 0 , z = 1 / 0 , C = 1 / 0; z = g < (z = S < (z = f < (z = d < z ? d : z) ? f : z) ? S : z) ? g : z, C = x < (C = w < (C = y < (C = p < C ? p : C) ? y : C) ? w : C) ? x : C, b = (b = (b = (b = b < d ? d : b) < f ? f : b) < S ? S : b) < g ? g : b, v = (v = (v = (v = v < p ? p : v) < y ? y : v) < w ? w : v) < x ? x : v; var T = this._bounds; return T.x = z, T.width = b - z, T.y = C, T.height = v - C, this._currentBounds = T } , I.TilingSprite.prototype.destroy = function() { I.Sprite.prototype.destroy.call(this), this.canvasBuffer && (this.canvasBuffer.destroy(), this.canvasBuffer = null), this.tileScale = null, this.tileScaleOffset = null, this.tilePosition = null, this.tilingTexture && (this.tilingTexture.destroy(!0), this.tilingTexture = null) } , Object.defineProperty(I.TilingSprite.prototype, "width", { get: function() { return this._width }, set: function(e) { this._width = e } }), Object.defineProperty(I.TilingSprite.prototype, "height", { get: function() { return this._height }, set: function(e) { this._height = e } }), "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = I), exports.PIXI = I) : "undefined" != typeof define && define.amd ? define("PIXI", e.PIXI = I) : e.PIXI = I, I } .call(this), function() { var s, e = this, W = W || { VERSION: "2.6.15", GAMES: [], AUTO: 0, CANVAS: 1, WEBGL: 2, HEADLESS: 3, NONE: 0, LEFT: 1, RIGHT: 2, UP: 3, DOWN: 4, SPRITE: 0, BUTTON: 1, IMAGE: 2, GRAPHICS: 3, TEXT: 4, TILESPRITE: 5, BITMAPTEXT: 6, GROUP: 7, RENDERTEXTURE: 8, TILEMAP: 9, TILEMAPLAYER: 10, EMITTER: 11, POLYGON: 12, BITMAPDATA: 13, CANVAS_FILTER: 14, WEBGL_FILTER: 15, ELLIPSE: 16, SPRITEBATCH: 17, RETROFONT: 18, POINTER: 19, ROPE: 20, CIRCLE: 21, RECTANGLE: 22, LINE: 23, MATRIX: 24, POINT: 25, ROUNDEDRECTANGLE: 26, CREATURE: 27, VIDEO: 28, PENDING_ATLAS: -1, HORIZONTAL: 0, VERTICAL: 1, LANDSCAPE: 0, PORTRAIT: 1, ANGLE_UP: 270, ANGLE_DOWN: 90, ANGLE_LEFT: 180, ANGLE_RIGHT: 0, ANGLE_NORTH_EAST: 315, ANGLE_NORTH_WEST: 225, ANGLE_SOUTH_EAST: 45, ANGLE_SOUTH_WEST: 135, TOP_LEFT: 0, TOP_CENTER: 1, TOP_RIGHT: 2, LEFT_TOP: 3, LEFT_CENTER: 4, LEFT_BOTTOM: 5, CENTER: 6, RIGHT_TOP: 7, RIGHT_CENTER: 8, RIGHT_BOTTOM: 9, BOTTOM_LEFT: 10, BOTTOM_CENTER: 11, BOTTOM_RIGHT: 12, blendModes: { NORMAL: 0, ADD: 1, MULTIPLY: 2, SCREEN: 3, OVERLAY: 4, DARKEN: 5, LIGHTEN: 6, COLOR_DODGE: 7, COLOR_BURN: 8, HARD_LIGHT: 9, SOFT_LIGHT: 10, DIFFERENCE: 11, EXCLUSION: 12, HUE: 13, SATURATION: 14, COLOR: 15, LUMINOSITY: 16 }, scaleModes: { DEFAULT: 0, LINEAR: 0, NEAREST: 1 }, PIXI: PIXI || {} }; if (Math.trunc || (Math.trunc = function(e) { return e < 0 ? Math.ceil(e) : Math.floor(e) } ), Function.prototype.bind || (Function.prototype.bind = (s = Array.prototype.slice, function(t) { var i = this , r = s.call(arguments, 1); if ("function" != typeof i) throw new TypeError; function o() { var e = r.concat(s.call(arguments)); i.apply(this instanceof o ? this : t, e) } return o.prototype = function e(t) { if (t && (e.prototype = t), !(this instanceof e)) return new e }(i.prototype), o } )), Array.isArray || (Array.isArray = function(e) { return "[object Array]" === Object.prototype.toString.call(e) } ), Array.prototype.forEach || (Array.prototype.forEach = function(e) { "use strict"; if (null == this) throw new TypeError; var t = Object(this) , i = t.length >>> 0; if ("function" != typeof e) throw new TypeError; for (var r = 2 <= arguments.length ? arguments[1] : void 0, o = 0; o < i; o++) o in t && e.call(r, t[o], o, t) } ), "function" != typeof window.Uint32Array && "object" != typeof window.Uint32Array) { var t = function(e) { var t = new Array; window[e] = function(e) { if ("number" == typeof e) { Array.call(this, e), this.length = e; for (var t = 0; t < this.length; t++) this[t] = 0 } else { Array.call(this, e.length), this.length = e.length; for (t = 0; t < this.length; t++) this[t] = e[t] } } , window[e].prototype = t, window[e].constructor = window[e] }; t("Uint32Array"), t("Int16Array") } function r(e, t) { this._scaleFactor = e, this._deltaMode = t, this.originalEvent = null } for (var i in window.console || (window.console = {}, window.console.log = window.console.assert = function() {} , window.console.warn = window.console.assert = function() {} ), /firefox/i.test(navigator.userAgent) && (window.oldGetComputedStyle = window.getComputedStyle, window.getComputedStyle = function(e, t) { var i = window.oldGetComputedStyle(e, t); return null === i ? { getPropertyValue: function() {} } : i } ), W.Utils = { reverseString: function(e) { return e.split("").reverse().join("") }, getProperty: function(e, t) { for (var i = t.split("."), r = i.pop(), o = i.length, s = 1, a = i[0]; s < o && (e = e[a]); ) a = i[s], s++; return e ? e[r] : null }, setProperty: function(e, t, i) { for (var r = t.split("."), o = r.pop(), s = r.length, a = 1, n = r[0]; a < s && (e = e[n]); ) n = r[a], a++; return e && (e[o] = i), e }, chanceRoll: function(e) { return void 0 === e && (e = 50), 0 < e && 100 * Math.random() <= e }, randomChoice: function(e, t) { return Math.random() < .5 ? e : t }, parseDimension: function(e, t) { var i = 0; return "string" == typeof e ? "%" === e.substr(-1) ? (i = parseInt(e, 10) / 100, 0 === t ? window.innerWidth * i : window.innerHeight * i) : parseInt(e, 10) : e }, pad: function(e, t, i, r) { if (void 0 === t) t = 0; if (void 0 === i) i = " "; if (void 0 === r) r = 3; var o = 0; if (t + 1 >= (e = e.toString()).length) switch (r) { case 1: e = new Array(t + 1 - e.length).join(i) + e; break; case 3: var s = Math.ceil((o = t - e.length) / 2); e = new Array(o - s + 1).join(i) + e + new Array(s + 1).join(i); break; default: e += new Array(t + 1 - e.length).join(i) } return e }, isPlainObject: function(e) { if ("object" != typeof e || e.nodeType || e === e.window) return !1; try { if (e.constructor && !{}.hasOwnProperty.call(e.constructor.prototype, "isPrototypeOf")) return !1 } catch (e) { return !1 } return !0 }, extend: function() { var e, t, i, r, o, s, a = arguments[0] || {}, n = 1, h = arguments.length, c = !1; for ("boolean" == typeof a && (c = a, a = arguments[1] || {}, n = 2), h === n && (a = this, --n); n < h; n++) if (null != (e = arguments[n])) for (t in e) i = a[t], a !== (r = e[t]) && (c && r && (W.Utils.isPlainObject(r) || (o = Array.isArray(r))) ? (s = o ? (o = !1, i && Array.isArray(i) ? i : []) : i && W.Utils.isPlainObject(i) ? i : {}, a[t] = W.Utils.extend(c, s, r)) : void 0 !== r && (a[t] = r)); return a }, mixinPrototype: function(e, t, i) { void 0 === i && (i = !1); for (var r = Object.keys(t), o = 0; o < r.length; o++) { var s = r[o] , a = t[s]; !i && s in e || (!a || "function" != typeof a.get && "function" != typeof a.set ? e[s] = a : "function" == typeof a.clone ? e[s] = a.clone() : Object.defineProperty(e, s, a)) } }, mixin: function(e, t) { if (!e || "object" != typeof e) return t; for (var i in e) { var r = e[i]; if (!r.childNodes && !r.cloneNode) { var o = typeof e[i]; e[i] && "object" === o ? typeof t[i] === o ? t[i] = W.Utils.mixin(e[i], t[i]) : t[i] = W.Utils.mixin(e[i], new r.constructor) : t[i] = e[i] } } return t } }, W.Circle = function(e, t, i) { e = e || 0, t = t || 0, i = i || 0, this.x = e, this.y = t, this._diameter = i, (this._radius = 0) < i && (this._radius = .5 * i), this.type = W.CIRCLE } , W.Circle.prototype = { circumference: function() { return Math.PI * this._radius * 2 }, random: function(e) { void 0 === e && (e = new W.Point); var t = 2 * Math.PI * Math.random() , i = Math.random() + Math.random() , r = 1 < i ? 2 - i : i , o = r * Math.cos(t) , s = r * Math.sin(t); return e.x = this.x + o * this.radius, e.y = this.y + s * this.radius, e }, getBounds: function() { return new W.Rectangle(this.x - this.radius,this.y - this.radius,this.diameter,this.diameter) }, setTo: function(e, t, i) { return this.x = e, this.y = t, this._diameter = i, this._radius = .5 * i, this }, copyFrom: function(e) { return this.setTo(e.x, e.y, e.diameter) }, copyTo: function(e) { return e.x = this.x, e.y = this.y, e.diameter = this._diameter, e }, distance: function(e, t) { var i = W.Math.distance(this.x, this.y, e.x, e.y); return t ? Math.round(i) : i }, clone: function(e) { return null == e ? e = new W.Circle(this.x,this.y,this.diameter) : e.setTo(this.x, this.y, this.diameter), e }, contains: function(e, t) { return W.Circle.contains(this, e, t) }, circumferencePoint: function(e, t, i) { return W.Circle.circumferencePoint(this, e, t, i) }, offset: function(e, t) { return this.x += e, this.y += t, this }, offsetPoint: function(e) { return this.offset(e.x, e.y) }, toString: function() { return "[{Phaser.Circle (x=" + this.x + " y=" + this.y + " diameter=" + this.diameter + " radius=" + this.radius + ")}]" } }, W.Circle.prototype.constructor = W.Circle, Object.defineProperty(W.Circle.prototype, "diameter", { get: function() { return this._diameter }, set: function(e) { 0 < e && (this._diameter = e, this._radius = .5 * e) } }), Object.defineProperty(W.Circle.prototype, "radius", { get: function() { return this._radius }, set: function(e) { 0 < e && (this._radius = e, this._diameter = 2 * e) } }), Object.defineProperty(W.Circle.prototype, "left", { get: function() { return this.x - this._radius }, set: function(e) { e > this.x ? (this._radius = 0, this._diameter = 0) : this.radius = this.x - e } }), Object.defineProperty(W.Circle.prototype, "right", { get: function() { return this.x + this._radius }, set: function(e) { e < this.x ? (this._radius = 0, this._diameter = 0) : this.radius = e - this.x } }), Object.defineProperty(W.Circle.prototype, "top", { get: function() { return this.y - this._radius }, set: function(e) { e > this.y ? (this._radius = 0, this._diameter = 0) : this.radius = this.y - e } }), Object.defineProperty(W.Circle.prototype, "bottom", { get: function() { return this.y + this._radius }, set: function(e) { e < this.y ? (this._radius = 0, this._diameter = 0) : this.radius = e - this.y } }), Object.defineProperty(W.Circle.prototype, "area", { get: function() { return 0 < this._radius ? Math.PI * this._radius * this._radius : 0 } }), Object.defineProperty(W.Circle.prototype, "empty", { get: function() { return 0 === this._diameter }, set: function(e) { !0 === e && this.setTo(0, 0, 0) } }), W.Circle.contains = function(e, t, i) { return 0 < e.radius && t >= e.left && t <= e.right && i >= e.top && i <= e.bottom && (e.x - t) * (e.x - t) + (e.y - i) * (e.y - i) <= e.radius * e.radius } , W.Circle.equals = function(e, t) { return e.x === t.x && e.y === t.y && e.diameter === t.diameter } , W.Circle.intersects = function(e, t) { return W.Math.distance(e.x, e.y, t.x, t.y) <= e.radius + t.radius } , W.Circle.circumferencePoint = function(e, t, i, r) { return void 0 === i && (i = !1), void 0 === r && (r = new W.Point), !0 === i && (t = W.Math.degToRad(t)), r.x = e.x + e.radius * Math.cos(t), r.y = e.y + e.radius * Math.sin(t), r } , W.Circle.intersectsRectangle = function(e, t) { var i = Math.abs(e.x - t.x - t.halfWidth); if (t.halfWidth + e.radius < i) return !1; var r = Math.abs(e.y - t.y - t.halfHeight); if (t.halfHeight + e.radius < r) return !1; if (i <= t.halfWidth || r <= t.halfHeight) return !0; var o = i - t.halfWidth , s = r - t.halfHeight; return o * o + s * s <= e.radius * e.radius } , PIXI.Circle = W.Circle, W.Ellipse = function(e, t, i, r) { e = e || 0, t = t || 0, i = i || 0, r = r || 0, this.x = e, this.y = t, this.width = i, this.height = r, this.type = W.ELLIPSE } , W.Ellipse.prototype = { setTo: function(e, t, i, r) { return this.x = e, this.y = t, this.width = i, this.height = r, this }, getBounds: function() { return new W.Rectangle(this.x - this.width,this.y - this.height,this.width,this.height) }, copyFrom: function(e) { return this.setTo(e.x, e.y, e.width, e.height) }, copyTo: function(e) { return e.x = this.x, e.y = this.y, e.width = this.width, e.height = this.height, e }, clone: function(e) { return null == e ? e = new W.Ellipse(this.x,this.y,this.width,this.height) : e.setTo(this.x, this.y, this.width, this.height), e }, contains: function(e, t) { return W.Ellipse.contains(this, e, t) }, random: function(e) { void 0 === e && (e = new W.Point); var t = Math.random() * Math.PI * 2 , i = Math.random(); return e.x = Math.sqrt(i) * Math.cos(t), e.y = Math.sqrt(i) * Math.sin(t), e.x = this.x + e.x * this.width / 2, e.y = this.y + e.y * this.height / 2, e }, toString: function() { return "[{Phaser.Ellipse (x=" + this.x + " y=" + this.y + " width=" + this.width + " height=" + this.height + ")}]" } }, W.Ellipse.prototype.constructor = W.Ellipse, Object.defineProperty(W.Ellipse.prototype, "left", { get: function() { return this.x }, set: function(e) { this.x = e } }), Object.defineProperty(W.Ellipse.prototype, "right", { get: function() { return this.x + this.width }, set: function(e) { e < this.x ? this.width = 0 : this.width = e - this.x } }), Object.defineProperty(W.Ellipse.prototype, "top", { get: function() { return this.y }, set: function(e) { this.y = e } }), Object.defineProperty(W.Ellipse.prototype, "bottom", { get: function() { return this.y + this.height }, set: function(e) { e < this.y ? this.height = 0 : this.height = e - this.y } }), Object.defineProperty(W.Ellipse.prototype, "empty", { get: function() { return 0 === this.width || 0 === this.height }, set: function(e) { !0 === e && this.setTo(0, 0, 0, 0) } }), W.Ellipse.contains = function(e, t, i) { if (e.width <= 0 || e.height <= 0) return !1; var r = (t - e.x) / e.width - .5 , o = (i - e.y) / e.height - .5; return (r *= r) + (o *= o) < .25 } , PIXI.Ellipse = W.Ellipse, W.Line = function(e, t, i, r) { e = e || 0, t = t || 0, i = i || 0, r = r || 0, this.start = new W.Point(e,t), this.end = new W.Point(i,r), this.type = W.LINE } , W.Line.prototype = { setTo: function(e, t, i, r) { return this.start.setTo(e, t), this.end.setTo(i, r), this }, fromSprite: function(e, t, i) { return void 0 === i && (i = !1), i ? this.setTo(e.center.x, e.center.y, t.center.x, t.center.y) : this.setTo(e.x, e.y, t.x, t.y) }, fromAngle: function(e, t, i, r) { return this.start.setTo(e, t), this.end.setTo(e + Math.cos(i) * r, t + Math.sin(i) * r), this }, rotate: function(e, t) { var i = (this.start.x + this.end.x) / 2 , r = (this.start.y + this.end.y) / 2; return this.start.rotate(i, r, e, t), this.end.rotate(i, r, e, t), this }, rotateAround: function(e, t, i, r) { return this.start.rotate(e, t, i, r), this.end.rotate(e, t, i, r), this }, intersects: function(e, t, i) { return W.Line.intersectsPoints(this.start, this.end, e.start, e.end, t, i) }, reflect: function(e) { return W.Line.reflect(this, e) }, midPoint: function(e) { return void 0 === e && (e = new W.Point), e.x = (this.start.x + this.end.x) / 2, e.y = (this.start.y + this.end.y) / 2, e }, centerOn: function(e, t) { var i = e - (this.start.x + this.end.x) / 2 , r = t - (this.start.y + this.end.y) / 2; this.start.add(i, r), this.end.add(i, r) }, pointOnLine: function(e, t) { return (e - this.start.x) * (this.end.y - this.start.y) == (this.end.x - this.start.x) * (t - this.start.y) }, pointOnSegment: function(e, t) { var i = Math.min(this.start.x, this.end.x) , r = Math.max(this.start.x, this.end.x) , o = Math.min(this.start.y, this.end.y) , s = Math.max(this.start.y, this.end.y); return this.pointOnLine(e, t) && i <= e && e <= r && o <= t && t <= s }, random: function(e) { void 0 === e && (e = new W.Point); var t = Math.random(); return e.x = this.start.x + t * (this.end.x - this.start.x), e.y = this.start.y + t * (this.end.y - this.start.y), e }, coordinatesOnLine: function(e, t) { void 0 === e && (e = 1), void 0 === t && (t = []); var i = Math.round(this.start.x) , r = Math.round(this.start.y) , o = Math.round(this.end.x) , s = Math.round(this.end.y) , a = Math.abs(o - i) , n = Math.abs(s - r) , h = i < o ? 1 : -1 , c = r < s ? 1 : -1 , l = a - n; t.push([i, r]); for (var m = 1; i !== o || r !== s; ) { var u = l << 1; -n < u && (l -= n, i += h), u < a && (l += a, r += c), m % e == 0 && t.push([i, r]), m++ } return t }, clone: function(e) { return null == e ? e = new W.Line(this.start.x,this.start.y,this.end.x,this.end.y) : e.setTo(this.start.x, this.start.y, this.end.x, this.end.y), e } }, Object.defineProperty(W.Line.prototype, "length", { get: function() { return Math.sqrt((this.end.x - this.start.x) * (this.end.x - this.start.x) + (this.end.y - this.start.y) * (this.end.y - this.start.y)) } }), Object.defineProperty(W.Line.prototype, "angle", { get: function() { return Math.atan2(this.end.y - this.start.y, this.end.x - this.start.x) } }), Object.defineProperty(W.Line.prototype, "slope", { get: function() { return (this.end.y - this.start.y) / (this.end.x - this.start.x) } }), Object.defineProperty(W.Line.prototype, "perpSlope", { get: function() { return -(this.end.x - this.start.x) / (this.end.y - this.start.y) } }), Object.defineProperty(W.Line.prototype, "x", { get: function() { return Math.min(this.start.x, this.end.x) } }), Object.defineProperty(W.Line.prototype, "y", { get: function() { return Math.min(this.start.y, this.end.y) } }), Object.defineProperty(W.Line.prototype, "left", { get: function() { return Math.min(this.start.x, this.end.x) } }), Object.defineProperty(W.Line.prototype, "right", { get: function() { return Math.max(this.start.x, this.end.x) } }), Object.defineProperty(W.Line.prototype, "top", { get: function() { return Math.min(this.start.y, this.end.y) } }), Object.defineProperty(W.Line.prototype, "bottom", { get: function() { return Math.max(this.start.y, this.end.y) } }), Object.defineProperty(W.Line.prototype, "width", { get: function() { return Math.abs(this.start.x - this.end.x) } }), Object.defineProperty(W.Line.prototype, "height", { get: function() { return Math.abs(this.start.y - this.end.y) } }), Object.defineProperty(W.Line.prototype, "normalX", { get: function() { return Math.cos(this.angle - 1.5707963267948966) } }), Object.defineProperty(W.Line.prototype, "normalY", { get: function() { return Math.sin(this.angle - 1.5707963267948966) } }), Object.defineProperty(W.Line.prototype, "normalAngle", { get: function() { return W.Math.wrap(this.angle - 1.5707963267948966, -Math.PI, Math.PI) } }), W.Line.intersectsPoints = function(e, t, i, r, o, s) { void 0 === o && (o = !0), void 0 === s && (s = new W.Point); var a = t.y - e.y , n = r.y - i.y , h = e.x - t.x , c = i.x - r.x , l = t.x * e.y - e.x * t.y , m = r.x * i.y - i.x * r.y , u = a * c - n * h; if (0 === u) return null; if (s.x = (h * m - c * l) / u, s.y = (n * l - a * m) / u, o) { var d = (r.y - i.y) * (t.x - e.x) - (r.x - i.x) * (t.y - e.y) , p = ((r.x - i.x) * (e.y - i.y) - (r.y - i.y) * (e.x - i.x)) / d , f = ((t.x - e.x) * (e.y - i.y) - (t.y - e.y) * (e.x - i.x)) / d; return 0 <= p && p <= 1 && 0 <= f && f <= 1 ? s : null } return s } , W.Line.intersects = function(e, t, i, r) { return W.Line.intersectsPoints(e.start, e.end, t.start, t.end, i, r) } , W.Line.intersectsRectangle = function(e, t) { if (!W.Rectangle.intersects(e, t)) return !1; var i = e.start.x , r = e.start.y , o = e.end.x , s = e.end.y , a = t.x , n = t.y , h = t.right , c = t.bottom , l = 0; if (a <= i && i <= h && n <= r && r <= c || a <= o && o <= h && n <= s && s <= c) return !0; if (i < a && a <= o) { if (n < (l = r + (s - r) * (a - i) / (o - i)) && l <= c) return !0 } else if (h < i && o <= h && n <= (l = r + (s - r) * (h - i) / (o - i)) && l <= c) return !0; if (r < n && n <= s) { if (a <= (l = i + (o - i) * (n - r) / (s - r)) && l <= h) return !0 } else if (c < r && s <= c && a <= (l = i + (o - i) * (c - r) / (s - r)) && l <= h) return !0; return !1 } , W.Line.reflect = function(e, t) { return 2 * t.normalAngle - 3.141592653589793 - e.angle } , W.Matrix = function(e, t, i, r, o, s) { null == e && (e = 1), null == t && (t = 0), null == i && (i = 0), null == r && (r = 1), null == o && (o = 0), null == s && (s = 0), this.a = e, this.b = t, this.c = i, this.d = r, this.tx = o, this.ty = s, this.type = W.MATRIX } , W.Matrix.prototype = { fromArray: function(e) { return this.setTo(e[0], e[1], e[3], e[4], e[2], e[5]) }, setTo: function(e, t, i, r, o, s) { return this.a = e, this.b = t, this.c = i, this.d = r, this.tx = o, this.ty = s, this }, clone: function(e) { return null == e ? e = new W.Matrix(this.a,this.b,this.c,this.d,this.tx,this.ty) : (e.a = this.a, e.b = this.b, e.c = this.c, e.d = this.d, e.tx = this.tx, e.ty = this.ty), e }, copyTo: function(e) { return e.copyFrom(this), e }, copyFrom: function(e) { return this.a = e.a, this.b = e.b, this.c = e.c, this.d = e.d, this.tx = e.tx, this.ty = e.ty, this }, toArray: function(e, t) { return void 0 === t && (t = new PIXI.Float32Array(9)), e ? (t[0] = this.a, t[1] = this.b, t[2] = 0, t[3] = this.c, t[4] = this.d, t[5] = 0, t[6] = this.tx, t[7] = this.ty) : (t[0] = this.a, t[1] = this.c, t[2] = this.tx, t[3] = this.b, t[4] = this.d, t[5] = this.ty, t[6] = 0, t[7] = 0), t[8] = 1, t }, apply: function(e, t) { return void 0 === t && (t = new W.Point), t.x = this.a * e.x + this.c * e.y + this.tx, t.y = this.b * e.x + this.d * e.y + this.ty, t }, applyInverse: function(e, t) { void 0 === t && (t = new W.Point); var i = 1 / (this.a * this.d + this.c * -this.b) , r = e.x , o = e.y; return t.x = this.d * i * r + -this.c * i * o + (this.ty * this.c - this.tx * this.d) * i, t.y = this.a * i * o + -this.b * i * r + (-this.ty * this.a + this.tx * this.b) * i, t }, translate: function(e, t) { return this.tx += e, this.ty += t, this }, scale: function(e, t) { return this.a *= e, this.d *= t, this.c *= e, this.b *= t, this.tx *= e, this.ty *= t, this }, rotate: function(e) { var t = Math.cos(e) , i = Math.sin(e) , r = this.a , o = this.c , s = this.tx; return this.a = r * t - this.b * i, this.b = r * i + this.b * t, this.c = o * t - this.d * i, this.d = o * i + this.d * t, this.tx = s * t - this.ty * i, this.ty = s * i + this.ty * t, this }, append: function(e) { var t = this.a , i = this.b , r = this.c , o = this.d; return this.a = e.a * t + e.b * r, this.b = e.a * i + e.b * o, this.c = e.c * t + e.d * r, this.d = e.c * i + e.d * o, this.tx = e.tx * t + e.ty * r + this.tx, this.ty = e.tx * i + e.ty * o + this.ty, this }, identity: function() { return this.setTo(1, 0, 0, 1, 0, 0) } }, W.identityMatrix = new W.Matrix, PIXI.Matrix = W.Matrix, PIXI.identityMatrix = W.identityMatrix, W.Point = function(e, t) { e = e || 0, t = t || 0, this.x = e, this.y = t, this.type = W.POINT } , W.Point.prototype = { copyFrom: function(e) { return this.setTo(e.x, e.y) }, invert: function() { return this.setTo(this.y, this.x) }, setTo: function(e, t) { return this.x = e || 0, this.y = t || (0 !== t ? this.x : 0), this }, set: function(e, t) { return this.x = e || 0, this.y = t || (0 !== t ? this.x : 0), this }, add: function(e, t) { return this.x += e, this.y += t, this }, subtract: function(e, t) { return this.x -= e, this.y -= t, this }, multiply: function(e, t) { return this.x *= e, this.y *= t, this }, divide: function(e, t) { return this.x /= e, this.y /= t, this }, clampX: function(e, t) { return this.x = W.Math.clamp(this.x, e, t), this }, clampY: function(e, t) { return this.y = W.Math.clamp(this.y, e, t), this }, clamp: function(e, t) { return this.x = W.Math.clamp(this.x, e, t), this.y = W.Math.clamp(this.y, e, t), this }, clone: function(e) { return null == e ? e = new W.Point(this.x,this.y) : e.setTo(this.x, this.y), e }, copyTo: function(e) { return e.x = this.x, e.y = this.y, e }, distance: function(e, t) { return W.Point.distance(this, e, t) }, equals: function(e) { return e.x === this.x && e.y === this.y }, angle: function(e, t) { return void 0 === t && (t = !1), t ? W.Math.radToDeg(Math.atan2(e.y - this.y, e.x - this.x)) : Math.atan2(e.y - this.y, e.x - this.x) }, rotate: function(e, t, i, r, o) { return W.Point.rotate(this, e, t, i, r, o) }, getMagnitude: function() { return Math.sqrt(this.x * this.x + this.y * this.y) }, getMagnitudeSq: function() { return this.x * this.x + this.y * this.y }, setMagnitude: function(e) { return this.normalize().multiply(e, e) }, normalize: function() { if (!this.isZero()) { var e = this.getMagnitude(); this.x /= e, this.y /= e } return this }, isZero: function() { return 0 === this.x && 0 === this.y }, dot: function(e) { return this.x * e.x + this.y * e.y }, cross: function(e) { return this.x * e.y - this.y * e.x }, perp: function() { return this.setTo(-this.y, this.x) }, rperp: function() { return this.setTo(this.y, -this.x) }, normalRightHand: function() { return this.setTo(-1 * this.y, this.x) }, floor: function() { return this.setTo(Math.floor(this.x), Math.floor(this.y)) }, ceil: function() { return this.setTo(Math.ceil(this.x), Math.ceil(this.y)) }, toString: function() { return "[{Point (x=" + this.x + " y=" + this.y + ")}]" } }, W.Point.prototype.constructor = W.Point, W.Point.add = function(e, t, i) { return void 0 === i && (i = new W.Point), i.x = e.x + t.x, i.y = e.y + t.y, i } , W.Point.subtract = function(e, t, i) { return void 0 === i && (i = new W.Point), i.x = e.x - t.x, i.y = e.y - t.y, i } , W.Point.multiply = function(e, t, i) { return void 0 === i && (i = new W.Point), i.x = e.x * t.x, i.y = e.y * t.y, i } , W.Point.divide = function(e, t, i) { return void 0 === i && (i = new W.Point), i.x = e.x / t.x, i.y = e.y / t.y, i } , W.Point.equals = function(e, t) { return e.x === t.x && e.y === t.y } , W.Point.angle = function(e, t) { return Math.atan2(e.y - t.y, e.x - t.x) } , W.Point.negative = function(e, t) { return void 0 === t && (t = new W.Point), t.setTo(-e.x, -e.y) } , W.Point.multiplyAdd = function(e, t, i, r) { return void 0 === r && (r = new W.Point), r.setTo(e.x + t.x * i, e.y + t.y * i) } , W.Point.interpolate = function(e, t, i, r) { return void 0 === r && (r = new W.Point), r.setTo(e.x + (t.x - e.x) * i, e.y + (t.y - e.y) * i) } , W.Point.perp = function(e, t) { return void 0 === t && (t = new W.Point), t.setTo(-e.y, e.x) } , W.Point.rperp = function(e, t) { return void 0 === t && (t = new W.Point), t.setTo(e.y, -e.x) } , W.Point.distance = function(e, t, i) { var r = W.Math.distance(e.x, e.y, t.x, t.y); return i ? Math.round(r) : r } , W.Point.project = function(e, t, i) { void 0 === i && (i = new W.Point); var r = e.dot(t) / t.getMagnitudeSq(); return 0 !== r && i.setTo(r * t.x, r * t.y), i } , W.Point.projectUnit = function(e, t, i) { void 0 === i && (i = new W.Point); var r = e.dot(t); return 0 !== r && i.setTo(r * t.x, r * t.y), i } , W.Point.normalRightHand = function(e, t) { return void 0 === t && (t = new W.Point), t.setTo(-1 * e.y, e.x) } , W.Point.normalize = function(e, t) { void 0 === t && (t = new W.Point); var i = e.getMagnitude(); return 0 !== i && t.setTo(e.x / i, e.y / i), t } , W.Point.rotate = function(e, t, i, r, o, s) { if (o && (r = W.Math.degToRad(r)), void 0 === s) { e.subtract(t, i); var a = Math.sin(r) , n = Math.cos(r) , h = n * e.x - a * e.y , c = a * e.x + n * e.y; e.x = h + t, e.y = c + i } else { var l = r + Math.atan2(e.y - i, e.x - t); e.x = t + s * Math.cos(l), e.y = i + s * Math.sin(l) } return e } , W.Point.centroid = function(e, t) { if (void 0 === t && (t = new W.Point), "[object Array]" !== Object.prototype.toString.call(e)) throw new Error("Phaser.Point. Parameter 'points' must be an array"); var i = e.length; if (i < 1) throw new Error("Phaser.Point. Parameter 'points' array must not be empty"); if (1 === i) return t.copyFrom(e[0]), t; for (var r = 0; r < i; r++) W.Point.add(t, e[r], t); return t.divide(i, i), t } , W.Point.parse = function(e, t, i) { t = t || "x", i = i || "y"; var r = new W.Point; return e[t] && (r.x = parseInt(e[t], 10)), e[i] && (r.y = parseInt(e[i], 10)), r } , PIXI.Point = W.Point, W.Polygon = function() { this.area = 0, this._points = [], 0 < arguments.length && this.setTo.apply(this, arguments), this.closed = !0, this.flattened = !1, this.type = W.POLYGON } , W.Polygon.prototype = { toNumberArray: function(e) { void 0 === e && (e = []); for (var t = 0; t < this._points.length; t++) "number" == typeof this._points[t] ? (e.push(this._points[t]), e.push(this._points[t + 1]), t++) : (e.push(this._points[t].x), e.push(this._points[t].y)); return e }, flatten: function() { return this._points = this.toNumberArray(), this.flattened = !0, this }, clone: function(e) { var t = this._points.slice(); return null == e ? e = new W.Polygon(t) : e.setTo(t), e }, contains: function(e, t) { var i = !1; if (this.flattened) for (var r = -2, o = this._points.length - 2; (r += 2) < this._points.length; o = r) { var s = this._points[r] , a = this._points[r + 1] , n = this._points[o] , h = this._points[o + 1]; (a <= t && t < h || h <= t && t < a) && e < (n - s) * (t - a) / (h - a) + s && (i = !i) } else for (r = -1, o = this._points.length - 1; ++r < this._points.length; o = r) { s = this._points[r].x, a = this._points[r].y, n = this._points[o].x, h = this._points[o].y; (a <= t && t < h || h <= t && t < a) && e < (n - s) * (t - a) / (h - a) + s && (i = !i) } return i }, setTo: function(e) { if (this.area = 0, this._points = [], 0 < arguments.length) { Array.isArray(e) || (e = Array.prototype.slice.call(arguments)); for (var t = Number.MAX_VALUE, i = 0, r = e.length; i < r; i++) { if ("number" == typeof e[i]) { var o = new PIXI.Point(e[i],e[i + 1]); i++ } else if (Array.isArray(e[i])) o = new PIXI.Point(e[i][0],e[i][1]); else o = new PIXI.Point(e[i].x,e[i].y); this._points.push(o), o.y < t && (t = o.y) } this.calculateArea(t) } return this }, calculateArea: function(e) { for (var t, i, r, o, s = 0, a = this._points.length; s < a; s++) t = this._points[s], i = s === a - 1 ? this._points[0] : this._points[s + 1], r = (t.y - e + (i.y - e)) / 2, o = t.x - i.x, this.area += r * o; return this.area } }, W.Polygon.prototype.constructor = W.Polygon, Object.defineProperty(W.Polygon.prototype, "points", { get: function() { return this._points }, set: function(e) { null != e ? this.setTo(e) : this.setTo() } }), PIXI.Polygon = W.Polygon, W.Rectangle = function(e, t, i, r) { e = e || 0, t = t || 0, i = i || 0, r = r || 0, this.x = e, this.y = t, this.width = i, this.height = r, this.type = W.RECTANGLE } , W.Rectangle.prototype = { offset: function(e, t) { return this.x += e, this.y += t, this }, offsetPoint: function(e) { return this.offset(e.x, e.y) }, setTo: function(e, t, i, r) { return this.x = e, this.y = t, this.width = i, this.height = r, this }, scale: function(e, t) { return void 0 === t && (t = e), this.width *= e, this.height *= t, this }, centerOn: function(e, t) { return this.centerX = e, this.centerY = t, this }, floor: function() { this.x = Math.floor(this.x), this.y = Math.floor(this.y) }, floorAll: function() { this.x = Math.floor(this.x), this.y = Math.floor(this.y), this.width = Math.floor(this.width), this.height = Math.floor(this.height) }, ceil: function() { this.x = Math.ceil(this.x), this.y = Math.ceil(this.y) }, ceilAll: function() { this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this.width = Math.ceil(this.width), this.height = Math.ceil(this.height) }, copyFrom: function(e) { return this.setTo(e.x, e.y, e.width, e.height) }, copyTo: function(e) { return e.x = this.x, e.y = this.y, e.width = this.width, e.height = this.height, e }, inflate: function(e, t) { return W.Rectangle.inflate(this, e, t) }, size: function(e) { return W.Rectangle.size(this, e) }, resize: function(e, t) { return this.width = e, this.height = t, this }, clone: function(e) { return W.Rectangle.clone(this, e) }, contains: function(e, t) { return W.Rectangle.contains(this, e, t) }, containsRect: function(e) { return W.Rectangle.containsRect(e, this) }, equals: function(e) { return W.Rectangle.equals(this, e) }, intersection: function(e, t) { return W.Rectangle.intersection(this, e, t) }, intersects: function(e) { return W.Rectangle.intersects(this, e) }, intersectsRaw: function(e, t, i, r, o) { return W.Rectangle.intersectsRaw(this, e, t, i, r, o) }, union: function(e, t) { return W.Rectangle.union(this, e, t) }, random: function(e) { return void 0 === e && (e = new W.Point), e.x = this.randomX, e.y = this.randomY, e }, getPoint: function(e, t) { switch (void 0 === t && (t = new W.Point), e) { default: case W.TOP_LEFT: return t.set(this.x, this.y); case W.TOP_CENTER: return t.set(this.centerX, this.y); case W.TOP_RIGHT: return t.set(this.right, this.y); case W.LEFT_CENTER: return t.set(this.x, this.centerY); case W.CENTER: return t.set(this.centerX, this.centerY); case W.RIGHT_CENTER: return t.set(this.right, this.centerY); case W.BOTTOM_LEFT: return t.set(this.x, this.bottom); case W.BOTTOM_CENTER: return t.set(this.centerX, this.bottom); case W.BOTTOM_RIGHT: return t.set(this.right, this.bottom) } }, toString: function() { return "[{Rectangle (x=" + this.x + " y=" + this.y + " width=" + this.width + " height=" + this.height + " empty=" + this.empty + ")}]" } }, Object.defineProperty(W.Rectangle.prototype, "halfWidth", { get: function() { return Math.round(this.width / 2) } }), Object.defineProperty(W.Rectangle.prototype, "halfHeight", { get: function() { return Math.round(this.height / 2) } }), Object.defineProperty(W.Rectangle.prototype, "bottom", { get: function() { return this.y + this.height }, set: function(e) { e <= this.y ? this.height = 0 : this.height = e - this.y } }), Object.defineProperty(W.Rectangle.prototype, "bottomLeft", { get: function() { return new W.Point(this.x,this.bottom) }, set: function(e) { this.x = e.x, this.bottom = e.y } }), Object.defineProperty(W.Rectangle.prototype, "bottomRight", { get: function() { return new W.Point(this.right,this.bottom) }, set: function(e) { this.right = e.x, this.bottom = e.y } }), Object.defineProperty(W.Rectangle.prototype, "left", { get: function() { return this.x }, set: function(e) { e >= this.right ? this.width = 0 : this.width = this.right - e, this.x = e } }), Object.defineProperty(W.Rectangle.prototype, "right", { get: function() { return this.x + this.width }, set: function(e) { e <= this.x ? this.width = 0 : this.width = e - this.x } }), Object.defineProperty(W.Rectangle.prototype, "volume", { get: function() { return this.width * this.height } }), Object.defineProperty(W.Rectangle.prototype, "perimeter", { get: function() { return 2 * this.width + 2 * this.height } }), Object.defineProperty(W.Rectangle.prototype, "centerX", { get: function() { return this.x + this.halfWidth }, set: function(e) { this.x = e - this.halfWidth } }), Object.defineProperty(W.Rectangle.prototype, "centerY", { get: function() { return this.y + this.halfHeight }, set: function(e) { this.y = e - this.halfHeight } }), Object.defineProperty(W.Rectangle.prototype, "randomX", { get: function() { return this.x + Math.random() * this.width } }), Object.defineProperty(W.Rectangle.prototype, "randomY", { get: function() { return this.y + Math.random() * this.height } }), Object.defineProperty(W.Rectangle.prototype, "top", { get: function() { return this.y }, set: function(e) { e >= this.bottom ? (this.height = 0, this.y = e) : this.height = this.bottom - e } }), Object.defineProperty(W.Rectangle.prototype, "topLeft", { get: function() { return new W.Point(this.x,this.y) }, set: function(e) { this.x = e.x, this.y = e.y } }), Object.defineProperty(W.Rectangle.prototype, "topRight", { get: function() { return new W.Point(this.x + this.width,this.y) }, set: function(e) { this.right = e.x, this.y = e.y } }), Object.defineProperty(W.Rectangle.prototype, "empty", { get: function() { return !this.width || !this.height }, set: function(e) { !0 === e && this.setTo(0, 0, 0, 0) } }), W.Rectangle.prototype.constructor = W.Rectangle, W.Rectangle.inflate = function(e, t, i) { return e.x -= t, e.width += 2 * t, e.y -= i, e.height += 2 * i, e } , W.Rectangle.inflatePoint = function(e, t) { return W.Rectangle.inflate(e, t.x, t.y) } , W.Rectangle.size = function(e, t) { return null == t ? t = new W.Point(e.width,e.height) : t.setTo(e.width, e.height), t } , W.Rectangle.clone = function(e, t) { return null == t ? t = new W.Rectangle(e.x,e.y,e.width,e.height) : t.setTo(e.x, e.y, e.width, e.height), t } , W.Rectangle.contains = function(e, t, i) { return !(e.width <= 0 || e.height <= 0) && (t >= e.x && t < e.right && i >= e.y && i < e.bottom) } , W.Rectangle.containsRaw = function(e, t, i, r, o, s) { return e <= o && o < e + i && t <= s && s < t + r } , W.Rectangle.containsPoint = function(e, t) { return W.Rectangle.contains(e, t.x, t.y) } , W.Rectangle.containsRect = function(e, t) { return !(e.volume > t.volume) && (e.x >= t.x && e.y >= t.y && e.right < t.right && e.bottom < t.bottom) } , W.Rectangle.equals = function(e, t) { return e.x === t.x && e.y === t.y && e.width === t.width && e.height === t.height } , W.Rectangle.sameDimensions = function(e, t) { return e.width === t.width && e.height === t.height } , W.Rectangle.intersection = function(e, t, i) { return void 0 === i && (i = new W.Rectangle), W.Rectangle.intersects(e, t) && (i.x = Math.max(e.x, t.x), i.y = Math.max(e.y, t.y), i.width = Math.min(e.right, t.right) - i.x, i.height = Math.min(e.bottom, t.bottom) - i.y), i } , W.Rectangle.intersects = function(e, t) { return !(e.width <= 0 || e.height <= 0 || t.width <= 0 || t.height <= 0) && !(e.right < t.x || e.bottom < t.y || e.x > t.right || e.y > t.bottom) } , W.Rectangle.intersectsRaw = function(e, t, i, r, o, s) { return void 0 === s && (s = 0), !(t > e.right + s || i < e.left - s || r > e.bottom + s || o < e.top - s) } , W.Rectangle.union = function(e, t, i) { return void 0 === i && (i = new W.Rectangle), i.setTo(Math.min(e.x, t.x), Math.min(e.y, t.y), Math.max(e.right, t.right) - Math.min(e.left, t.left), Math.max(e.bottom, t.bottom) - Math.min(e.top, t.top)) } , W.Rectangle.aabb = function(e, t) { void 0 === t && (t = new W.Rectangle); var i = Number.NEGATIVE_INFINITY , r = Number.POSITIVE_INFINITY , o = Number.NEGATIVE_INFINITY , s = Number.POSITIVE_INFINITY; return e.forEach(function(e) { e.x > i && (i = e.x), e.x < r && (r = e.x), e.y > o && (o = e.y), e.y < s && (s = e.y) }), t.setTo(r, s, i - r, o - s), t } , PIXI.Rectangle = W.Rectangle, PIXI.EmptyRectangle = new W.Rectangle(0,0,0,0), W.RoundedRectangle = function(e, t, i, r, o) { void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === o && (o = 20), this.x = e, this.y = t, this.width = i, this.height = r, this.radius = o || 20, this.type = W.ROUNDEDRECTANGLE } , W.RoundedRectangle.prototype = { clone: function() { return new W.RoundedRectangle(this.x,this.y,this.width,this.height,this.radius) }, contains: function(e, t) { if (this.width <= 0 || this.height <= 0) return !1; var i = this.x; if (i <= e && e <= i + this.width) { var r = this.y; if (r <= t && t <= r + this.height) return !0 } return !1 } }, W.RoundedRectangle.prototype.constructor = W.RoundedRectangle, PIXI.RoundedRectangle = W.RoundedRectangle, W.Camera = function(e, t, i, r, o, s) { this.game = e, this.world = e.world, this.id = 0, this.view = new W.Rectangle(i,r,o,s), this.bounds = new W.Rectangle(i,r,o,s), this.deadzone = null, this.visible = !0, this.roundPx = !0, this.atLimit = { x: !1, y: !1 }, this.target = null, this.displayObject = null, this.scale = null, this.totalInView = 0, this.lerp = new W.Point(1,1), this.onShakeComplete = new W.Signal, this.onFlashComplete = new W.Signal, this.onFadeComplete = new W.Signal, this.fx = null, this._targetPosition = new W.Point, this._edge = 0, this._position = new W.Point, this._shake = { intensity: 0, duration: 0, horizontal: !1, vertical: !1, shakeBounds: !0, x: 0, y: 0 }, this._fxDuration = 0, this._fxType = 0 } , W.Camera.FOLLOW_LOCKON = 0, W.Camera.FOLLOW_PLATFORMER = 1, W.Camera.FOLLOW_TOPDOWN = 2, W.Camera.FOLLOW_TOPDOWN_TIGHT = 3, W.Camera.SHAKE_BOTH = 4, W.Camera.SHAKE_HORIZONTAL = 5, W.Camera.SHAKE_VERTICAL = 6, W.Camera.ENABLE_FX = !0, W.Camera.prototype = { boot: function() { this.displayObject = this.game.world, this.scale = this.game.world.scale, this.game.camera = this, W.Graphics && W.Camera.ENABLE_FX && (this.fx = new W.Graphics(this.game), this.game.stage.addChild(this.fx)) }, preUpdate: function() { this.totalInView = 0 }, follow: function(e, t, i, r) { var o; switch (void 0 === t && (t = W.Camera.FOLLOW_LOCKON), void 0 === i && (i = 1), void 0 === r && (r = 1), this.target = e, this.lerp.set(i, r), t) { case W.Camera.FOLLOW_PLATFORMER: var s = this.width / 8 , a = this.height / 3; this.deadzone = new W.Rectangle((this.width - s) / 2,(this.height - a) / 2 - .25 * a,s,a); break; case W.Camera.FOLLOW_TOPDOWN: o = Math.max(this.width, this.height) / 4, this.deadzone = new W.Rectangle((this.width - o) / 2,(this.height - o) / 2,o,o); break; case W.Camera.FOLLOW_TOPDOWN_TIGHT: o = Math.max(this.width, this.height) / 8, this.deadzone = new W.Rectangle((this.width - o) / 2,(this.height - o) / 2,o,o); break; case W.Camera.FOLLOW_LOCKON: default: this.deadzone = null } }, unfollow: function() { this.target = null }, focusOn: function(e) { this.setPosition(Math.round(e.x - this.view.halfWidth), Math.round(e.y - this.view.halfHeight)) }, focusOnXY: function(e, t) { this.setPosition(Math.round(e - this.view.halfWidth), Math.round(t - this.view.halfHeight)) }, shake: function(e, t, i, r, o) { return void 0 === e && (e = .05), void 0 === t && (t = 500), void 0 === i && (i = !0), void 0 === r && (r = W.Camera.SHAKE_BOTH), void 0 === o && (o = !0), !(!i && 0 < this._shake.duration) && (this._shake.intensity = e, this._shake.duration = t, this._shake.shakeBounds = o, this._shake.x = 0, this._shake.y = 0, this._shake.horizontal = r === W.Camera.SHAKE_BOTH || r === W.Camera.SHAKE_HORIZONTAL, this._shake.vertical = r === W.Camera.SHAKE_BOTH || r === W.Camera.SHAKE_VERTICAL, !0) }, flash: function(e, t, i) { return void 0 === e && (e = 16777215), void 0 === t && (t = 500), void 0 === i && (i = !1), !(!this.fx || !i && 0 < this._fxDuration) && (this.fx.clear(), this.fx.beginFill(e), this.fx.drawRect(0, 0, this.width, this.height), this.fx.endFill(), this.fx.alpha = 1, this._fxDuration = t, !(this._fxType = 0)) }, fade: function(e, t, i) { return void 0 === e && (e = 0), void 0 === t && (t = 500), void 0 === i && (i = !1), !(!this.fx || !i && 0 < this._fxDuration) && (this.fx.clear(), this.fx.beginFill(e), this.fx.drawRect(0, 0, this.width, this.height), this.fx.endFill(), this.fx.alpha = 0, this._fxDuration = t, this._fxType = 1, !0) }, update: function() { 0 < this._fxDuration && this.updateFX(), 0 < this._shake.duration && this.updateShake(), this.bounds && this.checkBounds(), this.roundPx && (this.view.floor(), this._shake.x = Math.floor(this._shake.x), this._shake.y = Math.floor(this._shake.y)), this.displayObject.position.x = -this.view.x, this.displayObject.position.y = -this.view.y }, updateFX: function() { 0 === this._fxType ? (this.fx.alpha -= this.game.time.elapsedMS / this._fxDuration, this.fx.alpha <= 0 && (this._fxDuration = 0, this.fx.alpha = 0, this.onFlashComplete.dispatch())) : (this.fx.alpha += this.game.time.elapsedMS / this._fxDuration, 1 <= this.fx.alpha && (this._fxDuration = 0, this.fx.alpha = 1, this.onFadeComplete.dispatch())) }, updateShake: function() { this._shake.duration -= this.game.time.elapsedMS, this._shake.duration <= 0 ? (this.onShakeComplete.dispatch(), this._shake.x = 0, this._shake.y = 0) : (this._shake.horizontal && (this._shake.x = this.game.rnd.frac() * this._shake.intensity * this.view.width * 2 - this._shake.intensity * this.view.width), this._shake.vertical && (this._shake.y = this.game.rnd.frac() * this._shake.intensity * this.view.height * 2 - this._shake.intensity * this.view.height)) }, updateTarget: function() { this._targetPosition.x = this.view.x + this.target.worldPosition.x, this._targetPosition.y = this.view.y + this.target.worldPosition.y, this.deadzone ? (this._edge = this._targetPosition.x - this.view.x, this._edge < this.deadzone.left ? this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.left, this.lerp.x) : this._edge > this.deadzone.right && (this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.deadzone.right, this.lerp.x)), this._edge = this._targetPosition.y - this.view.y, this._edge < this.deadzone.top ? this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.top, this.lerp.y) : this._edge > this.deadzone.bottom && (this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.deadzone.bottom, this.lerp.y))) : (this.view.x = this.game.math.linear(this.view.x, this._targetPosition.x - this.view.halfWidth, this.lerp.x), this.view.y = this.game.math.linear(this.view.y, this._targetPosition.y - this.view.halfHeight, this.lerp.y)), this.bounds && this.checkBounds(), this.roundPx && this.view.floor(), this.displayObject.position.x = -this.view.x, this.displayObject.position.y = -this.view.y }, setBoundsToWorld: function() { this.bounds && this.bounds.copyFrom(this.game.world.bounds) }, checkBounds: function() { this.atLimit.x = !1, this.atLimit.y = !1; var e = this.view.x + this._shake.x , t = this.view.right + this._shake.x , i = this.view.y + this._shake.y , r = this.view.bottom + this._shake.y; e <= this.bounds.x * this.scale.x && (this.atLimit.x = !0, this.view.x = this.bounds.x * this.scale.x, this._shake.shakeBounds || (this._shake.x = 0)), t >= this.bounds.right * this.scale.x && (this.atLimit.x = !0, this.view.x = this.bounds.right * this.scale.x - this.width, this._shake.shakeBounds || (this._shake.x = 0)), i <= this.bounds.top * this.scale.y && (this.atLimit.y = !0, this.view.y = this.bounds.top * this.scale.y, this._shake.shakeBounds || (this._shake.y = 0)), r >= this.bounds.bottom * this.scale.y && (this.atLimit.y = !0, this.view.y = this.bounds.bottom * this.scale.y - this.height, this._shake.shakeBounds || (this._shake.y = 0)) }, setPosition: function(e, t) { this.view.x = e, this.view.y = t, this.bounds && this.checkBounds() }, setSize: function(e, t) { this.view.width = e, this.view.height = t }, reset: function() { this.target = null, this.view.x = 0, this.view.y = 0, this._shake.duration = 0, this.resetFX() }, resetFX: function() { this.fx && (this.fx.clear(), this.fx.alpha = 0, this._fxDuration = 0) } }, W.Camera.prototype.constructor = W.Camera, Object.defineProperty(W.Camera.prototype, "x", { get: function() { return this.view.x }, set: function(e) { this.view.x = e, this.bounds && this.checkBounds() } }), Object.defineProperty(W.Camera.prototype, "y", { get: function() { return this.view.y }, set: function(e) { this.view.y = e, this.bounds && this.checkBounds() } }), Object.defineProperty(W.Camera.prototype, "position", { get: function() { return this._position.set(this.view.x, this.view.y), this._position }, set: function(e) { void 0 !== e.x && (this.view.x = e.x), void 0 !== e.y && (this.view.y = e.y), this.bounds && this.checkBounds() } }), Object.defineProperty(W.Camera.prototype, "width", { get: function() { return this.view.width }, set: function(e) { this.view.width = e } }), Object.defineProperty(W.Camera.prototype, "height", { get: function() { return this.view.height }, set: function(e) { this.view.height = e } }), Object.defineProperty(W.Camera.prototype, "shakeIntensity", { get: function() { return this._shake.intensity }, set: function(e) { this._shake.intensity = e } }), W.State = function() { this.game = null, this.key = "", this.add = null, this.make = null, this.camera = null, this.cache = null, this.input = null, this.load = null, this.math = null, this.sound = null, this.scale = null, this.stage = null, this.state = null, this.time = null, this.tweens = null, this.world = null, this.particles = null, this.physics = null, this.rnd = null } , W.State.prototype = { init: function() {}, preload: function() {}, loadUpdate: function() {}, loadRender: function() {}, create: function() {}, update: function() {}, preRender: function() {}, render: function() {}, resize: function() {}, paused: function() {}, resumed: function() {}, pauseUpdate: function() {}, shutdown: function() {} }, W.State.prototype.constructor = W.State, W.StateManager = function(e, t) { this.game = e, this.states = {}, (this._pendingState = null) != t && (this._pendingState = t), this._clearWorld = !1, this._clearCache = !1, this._created = !1, this._args = [], this.current = "", this.onStateChange = new W.Signal, this.onInitCallback = null, this.onPreloadCallback = null, this.onCreateCallback = null, this.onUpdateCallback = null, this.onRenderCallback = null, this.onResizeCallback = null, this.onPreRenderCallback = null, this.onLoadUpdateCallback = null, this.onLoadRenderCallback = null, this.onPausedCallback = null, this.onResumedCallback = null, this.onPauseUpdateCallback = null, this.onShutDownCallback = null } , W.StateManager.prototype = { boot: function() { this.game.onPause.add(this.pause, this), this.game.onResume.add(this.resume, this), null !== this._pendingState && "string" != typeof this._pendingState && this.add("default", this._pendingState, !0) }, add: function(e, t, i) { var r; return void 0 === i && (i = !1), t instanceof W.State ? r = t : "object" == typeof t ? (r = t).game = this.game : "function" == typeof t && (r = new t(this.game)), this.states[e] = r, i && (this.game.isBooted ? this.start(e) : this._pendingState = e), r }, remove: function(e) { this.current === e && (this.callbackContext = null, this.onInitCallback = null, this.onShutDownCallback = null, this.onPreloadCallback = null, this.onLoadRenderCallback = null, this.onLoadUpdateCallback = null, this.onCreateCallback = null, this.onUpdateCallback = null, this.onPreRenderCallback = null, this.onRenderCallback = null, this.onResizeCallback = null, this.onPausedCallback = null, this.onResumedCallback = null, this.onPauseUpdateCallback = null), delete this.states[e] }, start: function(e, t, i) { void 0 === t && (t = !0), void 0 === i && (i = !1), this.checkState(e) && (this._pendingState = e, this._clearWorld = t, this._clearCache = i, 3 < arguments.length && (this._args = Array.prototype.splice.call(arguments, 3))) }, restart: function(e, t) { void 0 === e && (e = !0), void 0 === t && (t = !1), this._pendingState = this.current, this._clearWorld = e, this._clearCache = t, 2 < arguments.length && (this._args = Array.prototype.slice.call(arguments, 2)) }, dummy: function() {}, preUpdate: function() { if (this._pendingState && this.game.isBooted) { var e = this.current; if (this.clearCurrentState(), this.setCurrentState(this._pendingState), this.onStateChange.dispatch(this.current, e), this.current !== this._pendingState) return; this._pendingState = null, this.onPreloadCallback ? (this.game.load.reset(!0), this.onPreloadCallback.call(this.callbackContext, this.game), 0 === this.game.load.totalQueuedFiles() && 0 === this.game.load.totalQueuedPacks() ? this.loadComplete() : this.game.load.start()) : this.loadComplete() } }, clearCurrentState: function() { this.current && (this.onShutDownCallback && this.onShutDownCallback.call(this.callbackContext, this.game), this.game.tweens.removeAll(), this.game.camera.reset(), this.game.input.reset(!0), this.game.physics.clear(), this.game.time.removeAll(), this.game.scale.reset(this._clearWorld), this.game.debug && this.game.debug.reset(), this._clearWorld && (this.game.world.shutdown(), this._clearCache && this.game.cache.destroy())) }, checkState: function(e) { return !!this.states[e] && !!(this.states[e].preload || this.states[e].create || this.states[e].update || this.states[e].render) }, link: function(e) { this.states[e].game = this.game, this.states[e].add = this.game.add, this.states[e].make = this.game.make, this.states[e].camera = this.game.camera, this.states[e].cache = this.game.cache, this.states[e].input = this.game.input, this.states[e].load = this.game.load, this.states[e].math = this.game.math, this.states[e].sound = this.game.sound, this.states[e].scale = this.game.scale, (this.states[e].state = this).states[e].stage = this.game.stage, this.states[e].time = this.game.time, this.states[e].tweens = this.game.tweens, this.states[e].world = this.game.world, this.states[e].particles = this.game.particles, this.states[e].rnd = this.game.rnd, this.states[e].physics = this.game.physics, this.states[e].key = e }, unlink: function(e) { this.states[e] && (this.states[e].game = null, this.states[e].add = null, this.states[e].make = null, this.states[e].camera = null, this.states[e].cache = null, this.states[e].input = null, this.states[e].load = null, this.states[e].math = null, this.states[e].sound = null, this.states[e].scale = null, this.states[e].state = null, this.states[e].stage = null, this.states[e].time = null, this.states[e].tweens = null, this.states[e].world = null, this.states[e].particles = null, this.states[e].rnd = null, this.states[e].physics = null) }, setCurrentState: function(e) { this.callbackContext = this.states[e], this.link(e), this.onInitCallback = this.states[e].init || this.dummy, this.onPreloadCallback = this.states[e].preload || null, this.onLoadRenderCallback = this.states[e].loadRender || null, this.onLoadUpdateCallback = this.states[e].loadUpdate || null, this.onCreateCallback = this.states[e].create || null, this.onUpdateCallback = this.states[e].update || null, this.onPreRenderCallback = this.states[e].preRender || null, this.onRenderCallback = this.states[e].render || null, this.onResizeCallback = this.states[e].resize || null, this.onPausedCallback = this.states[e].paused || null, this.onResumedCallback = this.states[e].resumed || null, this.onPauseUpdateCallback = this.states[e].pauseUpdate || null, this.onShutDownCallback = this.states[e].shutdown || this.dummy, "" !== this.current && this.game.physics.reset(), this.current = e, this._created = !1, this.onInitCallback.apply(this.callbackContext, this._args), e === this._pendingState && (this._args = []), this.game._kickstart = !0 }, getCurrentState: function() { return this.states[this.current] }, loadComplete: function() { !1 === this._created && this.onLoadUpdateCallback && this.onLoadUpdateCallback.call(this.callbackContext, this.game), !1 === this._created && this.onCreateCallback ? (this._created = !0, this.onCreateCallback.call(this.callbackContext, this.game)) : this._created = !0 }, pause: function() { this._created && this.onPausedCallback && this.onPausedCallback.call(this.callbackContext, this.game) }, resume: function() { this._created && this.onResumedCallback && this.onResumedCallback.call(this.callbackContext, this.game) }, update: function() { this._created ? this.onUpdateCallback && this.onUpdateCallback.call(this.callbackContext, this.game) : this.onLoadUpdateCallback && this.onLoadUpdateCallback.call(this.callbackContext, this.game) }, pauseUpdate: function() { this._created ? this.onPauseUpdateCallback && this.onPauseUpdateCallback.call(this.callbackContext, this.game) : this.onLoadUpdateCallback && this.onLoadUpdateCallback.call(this.callbackContext, this.game) }, preRender: function(e) { this._created && this.onPreRenderCallback && this.onPreRenderCallback.call(this.callbackContext, this.game, e) }, resize: function(e, t) { this.onResizeCallback && this.onResizeCallback.call(this.callbackContext, e, t) }, render: function() { this._created ? this.onRenderCallback && (this.game.renderType === W.CANVAS ? (this.game.context.save(), this.game.context.setTransform(1, 0, 0, 1, 0, 0), this.onRenderCallback.call(this.callbackContext, this.game), this.game.context.restore()) : this.onRenderCallback.call(this.callbackContext, this.game)) : this.onLoadRenderCallback && this.onLoadRenderCallback.call(this.callbackContext, this.game) }, destroy: function() { this._clearWorld = !0, this._clearCache = !0, this.clearCurrentState(), this.callbackContext = null, this.onInitCallback = null, this.onShutDownCallback = null, this.onPreloadCallback = null, this.onLoadRenderCallback = null, this.onLoadUpdateCallback = null, this.onCreateCallback = null, this.onUpdateCallback = null, this.onRenderCallback = null, this.onPausedCallback = null, this.onResumedCallback = null, this.onPauseUpdateCallback = null, this.game = null, this.states = {}, this._pendingState = null, this.current = "" } }, W.StateManager.prototype.constructor = W.StateManager, Object.defineProperty(W.StateManager.prototype, "created", { get: function() { return this._created } }), W.Signal = function() {} , W.Signal.prototype = { _bindings: null, _prevParams: null, memorize: !1, _shouldPropagate: !0, active: !0, _boundDispatch: !1, validateListener: function(e, t) { if ("function" != typeof e) throw new Error("Phaser.Signal: listener is a required param of {fn}() and should be a Function.".replace("{fn}", t)) }, _registerListener: function(e, t, i, r, o) { var s, a = this._indexOfListener(e, i); if (-1 !== a) { if ((s = this._bindings[a]).isOnce() !== t) throw new Error("You cannot add" + (t ? "" : "Once") + "() then add" + (t ? "Once" : "") + "() the same listener without removing the relationship first.") } else s = new W.SignalBinding(this,e,t,i,r,o), this._addBinding(s); return this.memorize && this._prevParams && s.execute(this._prevParams), s }, _addBinding: function(e) { this._bindings || (this._bindings = []); for (var t = this._bindings.length; t--, this._bindings[t] && e._priority <= this._bindings[t]._priority; ) ; this._bindings.splice(t + 1, 0, e) }, _indexOfListener: function(e, t) { if (!this._bindings) return -1; void 0 === t && (t = null); for (var i, r = this._bindings.length; r--; ) if ((i = this._bindings[r])._listener === e && i.context === t) return r; return -1 }, has: function(e, t) { return -1 !== this._indexOfListener(e, t) }, add: function(e, t, i) { this.validateListener(e, "add"); var r = []; if (3 < arguments.length) for (var o = 3; o < arguments.length; o++) r.push(arguments[o]); return this._registerListener(e, !1, t, i, r) }, addOnce: function(e, t, i) { this.validateListener(e, "addOnce"); var r = []; if (3 < arguments.length) for (var o = 3; o < arguments.length; o++) r.push(arguments[o]); return this._registerListener(e, !0, t, i, r) }, remove: function(e, t) { this.validateListener(e, "remove"); var i = this._indexOfListener(e, t); return -1 !== i && (this._bindings[i]._destroy(), this._bindings.splice(i, 1)), e }, removeAll: function(e) { if (void 0 === e && (e = null), this._bindings) { for (var t = this._bindings.length; t--; ) e ? this._bindings[t].context === e && (this._bindings[t]._destroy(), this._bindings.splice(t, 1)) : this._bindings[t]._destroy(); e || (this._bindings.length = 0) } }, getNumListeners: function() { return this._bindings ? this._bindings.length : 0 }, halt: function() { this._shouldPropagate = !1 }, dispatch: function() { if (this.active && this._bindings) { var e, t = Array.prototype.slice.call(arguments), i = this._bindings.length; if (this.memorize && (this._prevParams = t), i) for (e = this._bindings.slice(), this._shouldPropagate = !0; e[--i] && this._shouldPropagate && !1 !== e[i].execute(t); ) ; } }, forget: function() { this._prevParams && (this._prevParams = null) }, dispose: function() { this.removeAll(), this._bindings = null, this._prevParams && (this._prevParams = null) }, toString: function() { return "[Phaser.Signal active:" + this.active + " numListeners:" + this.getNumListeners() + "]" } }, Object.defineProperty(W.Signal.prototype, "boundDispatch", { get: function() { var e = this; return this._boundDispatch || (this._boundDispatch = function() { return e.dispatch.apply(e, arguments) } ) } }), W.Signal.prototype.constructor = W.Signal, W.SignalBinding = function(e, t, i, r, o, s) { this._listener = t, i && (this._isOnce = !0), null != r && (this.context = r), this._signal = e, o && (this._priority = o), s && s.length && (this._args = s) } , W.SignalBinding.prototype = { context: null, _isOnce: !1, _priority: 0, _args: null, callCount: 0, active: !0, params: null, execute: function(e) { var t, i; return this.active && this._listener && (i = this.params ? this.params.concat(e) : e, this._args && (i = i.concat(this._args)), t = this._listener.apply(this.context, i), this.callCount++, this._isOnce && this.detach()), t }, detach: function() { return this.isBound() ? this._signal.remove(this._listener, this.context) : null }, isBound: function() { return !!this._signal && !!this._listener }, isOnce: function() { return this._isOnce }, getListener: function() { return this._listener }, getSignal: function() { return this._signal }, _destroy: function() { delete this._signal, delete this._listener, delete this.context }, toString: function() { return "[Phaser.SignalBinding isOnce:" + this._isOnce + ", isBound:" + this.isBound() + ", active:" + this.active + "]" } }, W.SignalBinding.prototype.constructor = W.SignalBinding, W.Filter = function(e, t, i) { this.game = e, this.type = W.WEBGL_FILTER, this.passes = [this], this.shaders = [], this.dirty = !0, this.padding = 0, this.prevPoint = new W.Point; var r = new Date; if (this.uniforms = { resolution: { type: "2f", value: { x: 256, y: 256 } }, time: { type: "1f", value: 0 }, mouse: { type: "2f", value: { x: 0, y: 0 } }, date: { type: "4fv", value: [r.getFullYear(), r.getMonth(), r.getDate(), 60 * r.getHours() * 60 + 60 * r.getMinutes() + r.getSeconds()] }, sampleRate: { type: "1f", value: 44100 }, iChannel0: { type: "sampler2D", value: null, textureData: { repeat: !0 } }, iChannel1: { type: "sampler2D", value: null, textureData: { repeat: !0 } }, iChannel2: { type: "sampler2D", value: null, textureData: { repeat: !0 } }, iChannel3: { type: "sampler2D", value: null, textureData: { repeat: !0 } } }, t) for (var o in t) this.uniforms[o] = t[o]; this.fragmentSrc = i || "" } , W.Filter.prototype = { init: function() {}, setResolution: function(e, t) { this.uniforms.resolution.value.x = e, this.uniforms.resolution.value.y = t }, update: function(e) { if (void 0 !== e) { var t = e.x / this.game.width , i = 1 - e.y / this.game.height; t === this.prevPoint.x && i === this.prevPoint.y || (this.uniforms.mouse.value.x = t.toFixed(2), this.uniforms.mouse.value.y = i.toFixed(2), this.prevPoint.set(t, i)) } this.uniforms.time.value = this.game.time.totalElapsedSeconds() }, addToWorld: function(e, t, i, r, o, s) { void 0 === o && (o = 0), void 0 === s && (s = 0), null != i ? this.width = i : i = this.width, null != r ? this.height = r : r = this.height; var a = this.game.add.image(e, t, "__default"); return a.width = i, a.height = r, a.anchor.set(o, s), a.filters = [this], a }, destroy: function() { this.game = null } }, W.Filter.prototype.constructor = W.Filter, Object.defineProperty(W.Filter.prototype, "width", { get: function() { return this.uniforms.resolution.value.x }, set: function(e) { this.uniforms.resolution.value.x = e } }), Object.defineProperty(W.Filter.prototype, "height", { get: function() { return this.uniforms.resolution.value.y }, set: function(e) { this.uniforms.resolution.value.y = e } }), W.Plugin = function(e, t) { void 0 === t && (t = null), this.game = e, this.parent = t, this.active = !1, this.visible = !1, this.hasPreUpdate = !1, this.hasUpdate = !1, this.hasPostUpdate = !1, this.hasRender = !1, this.hasPostRender = !1 } , W.Plugin.prototype = { preUpdate: function() {}, update: function() {}, render: function() {}, postRender: function() {}, destroy: function() { this.game = null, this.parent = null, this.active = !1, this.visible = !1 } }, W.Plugin.prototype.constructor = W.Plugin, W.PluginManager = function(e) { this.game = e, this.plugins = [], this._len = 0, this._i = 0 } , W.PluginManager.prototype = { add: function(e) { var t = Array.prototype.slice.call(arguments, 1) , i = !1; return "function" == typeof e ? e = new e(this.game,this) : (e.game = this.game, e.parent = this), "function" == typeof e.preUpdate && (i = e.hasPreUpdate = !0), "function" == typeof e.update && (i = e.hasUpdate = !0), "function" == typeof e.postUpdate && (i = e.hasPostUpdate = !0), "function" == typeof e.render && (i = e.hasRender = !0), "function" == typeof e.postRender && (i = e.hasPostRender = !0), i ? ((e.hasPreUpdate || e.hasUpdate || e.hasPostUpdate) && (e.active = !0), (e.hasRender || e.hasPostRender) && (e.visible = !0), this._len = this.plugins.push(e), "function" == typeof e.init && e.init.apply(e, t), e) : null }, remove: function(e, t) { for (void 0 === t && (t = !0), this._i = this._len; this._i--; ) if (this.plugins[this._i] === e) return t && e.destroy(), this.plugins.splice(this._i, 1), void this._len-- }, removeAll: function() { for (this._i = this._len; this._i--; ) this.plugins[this._i].destroy(); this.plugins.length = 0, this._len = 0 }, preUpdate: function() { for (this._i = this._len; this._i--; ) this.plugins[this._i].active && this.plugins[this._i].hasPreUpdate && this.plugins[this._i].preUpdate() }, update: function() { for (this._i = this._len; this._i--; ) this.plugins[this._i].active && this.plugins[this._i].hasUpdate && this.plugins[this._i].update() }, postUpdate: function() { for (this._i = this._len; this._i--; ) this.plugins[this._i].active && this.plugins[this._i].hasPostUpdate && this.plugins[this._i].postUpdate() }, render: function() { for (this._i = this._len; this._i--; ) this.plugins[this._i].visible && this.plugins[this._i].hasRender && this.plugins[this._i].render() }, postRender: function() { for (this._i = this._len; this._i--; ) this.plugins[this._i].visible && this.plugins[this._i].hasPostRender && this.plugins[this._i].postRender() }, destroy: function() { this.removeAll(), this.game = null } }, W.PluginManager.prototype.constructor = W.PluginManager, W.Stage = function(e) { this.game = e, PIXI.DisplayObjectContainer.call(this), this.name = "_stage_root", this.disableVisibilityChange = !1, this.exists = !0, this.worldTransform = new PIXI.Matrix, (this.stage = this).currentRenderOrderID = 0, this._hiddenVar = "hidden", this._onChange = null, this._bgColor = { r: 0, g: 0, b: 0, a: 0, color: 0, rgba: "#000000" }, this.game.transparent || (this._bgColor.a = 1), e.config && this.parseConfig(e.config) } , W.Stage.prototype = Object.create(PIXI.DisplayObjectContainer.prototype), W.Stage.prototype.constructor = W.Stage, W.Stage.prototype.parseConfig = function(e) { e.disableVisibilityChange && (this.disableVisibilityChange = e.disableVisibilityChange), e.backgroundColor && this.setBackgroundColor(e.backgroundColor) } , W.Stage.prototype.boot = function() { W.DOM.getOffset(this.game.canvas, this.offset), W.Canvas.setUserSelect(this.game.canvas, "none"), W.Canvas.setTouchAction(this.game.canvas, "none"), this.checkVisibility() } , W.Stage.prototype.preUpdate = function() { for (var e = this.currentRenderOrderID = 0; e < this.children.length; ) { var t = this.children[e]; t.preUpdate(), this === t.parent && e++ } } , W.Stage.prototype.update = function() { for (var e = this.children.length; e--; ) this.children[e].update() } , W.Stage.prototype.postUpdate = function() { this.game.camera.update(), this.game.camera.target && (this.game.camera.target.postUpdate(), this.updateTransform(), this.game.camera.updateTarget()); for (var e = 0; e < this.children.length; e++) this.children[e].postUpdate(); this.updateTransform() } , W.Stage.prototype.updateTransform = function() { this.worldAlpha = 1; for (var e = 0; e < this.children.length; e++) this.children[e].updateTransform() } , W.Stage.prototype.checkVisibility = function() { void 0 !== document.hidden ? this._hiddenVar = "visibilitychange" : void 0 !== document.webkitHidden ? this._hiddenVar = "webkitvisibilitychange" : void 0 !== document.mozHidden ? this._hiddenVar = "mozvisibilitychange" : void 0 !== document.msHidden ? this._hiddenVar = "msvisibilitychange" : this._hiddenVar = null; var t = this; this._onChange = function(e) { return t.visibilityChange(e) } , this._onClick = function(e) { document.hasFocus() || t.visibilityChange(e) } , this._hiddenVar && document.addEventListener(this._hiddenVar, this._onChange, !1), window.onblur = this._onChange, window.onfocus = this._onChange, window.onpagehide = this._onChange, window.onpageshow = this._onChange, window.addEventListener("click", this._onClick), this.game.device.cocoonJSApp && (CocoonJS.App.onSuspended.addEventListener(function() { W.Stage.prototype.visibilityChange.call(t, { type: "pause" }) }), CocoonJS.App.onActivated.addEventListener(function() { W.Stage.prototype.visibilityChange.call(t, { type: "resume" }) })) } , W.Stage.prototype.visibilityChange = function(e) { switch (e.type) { case "blur": case "pagehide": return void this.game.focusLoss(e); case "click": case "focus": case "pageshow": return void this.game.focusGain(e) } this.disableVisibilityChange || (document.hidden || document.mozHidden || document.msHidden || document.webkitHidden || "pause" === e.type ? this.game.gamePaused(e) : this.game.gameResumed(e)) } , W.Stage.prototype.setBackgroundColor = function(e) { this.game.transparent || (W.Color.valueToColor(e, this._bgColor), W.Color.updateColor(this._bgColor), this._bgColor.r /= 255, this._bgColor.g /= 255, this._bgColor.b /= 255, this._bgColor.a = 1) } , W.Stage.prototype.destroy = function() { this._hiddenVar && document.removeEventListener(this._hiddenVar, this._onChange, !1), window.onpagehide = null, window.onpageshow = null, window.onblur = null, window.onfocus = null, window.removeEventListener("click", this._onClick) } , Object.defineProperty(W.Stage.prototype, "backgroundColor", { get: function() { return this._bgColor.color }, set: function(e) { this.setBackgroundColor(e) } }), Object.defineProperty(W.Stage.prototype, "smoothed", { get: function() { return PIXI.scaleModes.DEFAULT === PIXI.scaleModes.LINEAR }, set: function(e) { PIXI.scaleModes.DEFAULT = e ? PIXI.scaleModes.LINEAR : PIXI.scaleModes.NEAREST } }), W.Group = function(e, t, i, r, o, s) { void 0 === r && (r = !1), void 0 === o && (o = !1), void 0 === s && (s = W.Physics.ARCADE), this.game = e, void 0 === t && (t = e.world), this.name = i || "group", this.z = 0, PIXI.DisplayObjectContainer.call(this), r ? (this.game.stage.addChild(this), this.z = this.game.stage.children.length) : t && (t.addChild(this), this.z = t.children.length), this.type = W.GROUP, this.physicsType = W.GROUP, this.alive = !0, this.exists = !0, this.ignoreDestroy = !1, this.pendingDestroy = !1, this.classType = W.Sprite, this.cursor = null, this.inputEnableChildren = !1, this.onChildInputDown = new W.Signal, this.onChildInputUp = new W.Signal, this.onChildInputOver = new W.Signal, this.onChildInputOut = new W.Signal, this.enableBody = o, this.enableBodyDebug = !1, this.physicsBodyType = s, this.physicsSortDirection = null, this.onDestroy = new W.Signal, this.cursorIndex = 0, this.fixedToCamera = !1, this.cameraOffset = new W.Point, this.hash = [], this._sortProperty = "z" } , W.Group.prototype = Object.create(PIXI.DisplayObjectContainer.prototype), W.Group.prototype.constructor = W.Group, W.Group.RETURN_NONE = 0, W.Group.RETURN_TOTAL = 1, W.Group.RETURN_CHILD = 2, W.Group.RETURN_ALL = 3, W.Group.SORT_ASCENDING = -1, W.Group.SORT_DESCENDING = 1, W.Group.prototype.add = function(e, t, i) { return void 0 === t && (t = !1), e.parent === this || (e.body && e.parent && e.parent.hash && e.parent.removeFromHash(e), void 0 === i ? (e.z = this.children.length, this.addChild(e)) : (this.addChildAt(e, i), this.updateZ()), this.enableBody && e.hasOwnProperty("body") && null === e.body ? this.game.physics.enable(e, this.physicsBodyType) : e.body && this.addToHash(e), !this.inputEnableChildren || e.input && !e.inputEnabled || (e.inputEnabled = !0), !t && e.events && e.events.onAddedToGroup$dispatch(e, this), null === this.cursor && (this.cursor = e)), e } , W.Group.prototype.addAt = function(e, t, i) { this.add(e, i, t) } , W.Group.prototype.addToHash = function(e) { if (e.parent === this && -1 === this.hash.indexOf(e)) return this.hash.push(e), !0; return !1 } , W.Group.prototype.removeFromHash = function(e) { if (e) { var t = this.hash.indexOf(e); if (-1 !== t) return this.hash.splice(t, 1), !0 } return !1 } , W.Group.prototype.addMultiple = function(e, t) { if (e instanceof W.Group) e.moveAll(this, t); else if (Array.isArray(e)) for (var i = 0; i < e.length; i++) this.add(e[i], t); return e } , W.Group.prototype.getAt = function(e) { return e < 0 || e >= this.children.length ? -1 : this.getChildAt(e) } , W.Group.prototype.create = function(e, t, i, r, o, s) { void 0 === o && (o = !0); var a = new this.classType(this.game,e,t,i,r); return a.exists = o, a.visible = o, a.alive = o, this.add(a, !1, s) } , W.Group.prototype.createMultiple = function(r, e, t, o) { void 0 === t && (t = 0), void 0 === o && (o = !1), Array.isArray(e) || (e = [e]), Array.isArray(t) || (t = [t]); var s = this , a = []; return e.forEach(function(i) { t.forEach(function(e) { for (var t = 0; t < r; t++) a.push(s.create(0, 0, i, e, o)) }) }), a } , W.Group.prototype.updateZ = function() { for (var e = this.children.length; e--; ) this.children[e].z = e } , W.Group.prototype.align = function(e, t, i, r, o, s) { if (void 0 === o && (o = W.TOP_LEFT), void 0 === s && (s = 0), 0 === this.children.length || s > this.children.length || -1 === e && -1 === t) return !1; for (var a = new W.Rectangle(0,0,i,r), n = e * i, h = t * r, c = s; c < this.children.length; c++) { var l = this.children[c]; if (l.alignIn) if (l.alignIn(a, o), -1 === e) a.y += r, a.y === h && (a.x += i, a.y = 0); else if (-1 === t) a.x += i, a.x === n && (a.x = 0, a.y += r); else if (a.x += i, a.x === n && (a.x = 0, a.y += r, a.y === h)) return !0 } return !0 } , W.Group.prototype.resetCursor = function(e) { if (void 0 === e && (e = 0), e > this.children.length - 1 && (e = 0), this.cursor) return this.cursorIndex = e, this.cursor = this.children[this.cursorIndex], this.cursor } , W.Group.prototype.next = function() { if (this.cursor) return this.cursorIndex >= this.children.length - 1 ? this.cursorIndex = 0 : this.cursorIndex++, this.cursor = this.children[this.cursorIndex], this.cursor } , W.Group.prototype.previous = function() { if (this.cursor) return 0 === this.cursorIndex ? this.cursorIndex = this.children.length - 1 : this.cursorIndex--, this.cursor = this.children[this.cursorIndex], this.cursor } , W.Group.prototype.swap = function(e, t) { this.swapChildren(e, t), this.updateZ() } , W.Group.prototype.bringToTop = function(e) { return e.parent === this && this.getIndex(e) < this.children.length && (this.remove(e, !1, !0), this.add(e, !0)), e } , W.Group.prototype.sendToBack = function(e) { return e.parent === this && 0 < this.getIndex(e) && (this.remove(e, !1, !0), this.addAt(e, 0, !0)), e } , W.Group.prototype.moveUp = function(e) { if (e.parent === this && this.getIndex(e) < this.children.length - 1) { var t = this.getIndex(e) , i = this.getAt(t + 1); i && this.swap(e, i) } return e } , W.Group.prototype.moveDown = function(e) { if (e.parent === this && 0 < this.getIndex(e)) { var t = this.getIndex(e) , i = this.getAt(t - 1); i && this.swap(e, i) } return e } , W.Group.prototype.xy = function(e, t, i) { if (e < 0 || e > this.children.length) return -1; this.getChildAt(e).x = t, this.getChildAt(e).y = i } , W.Group.prototype.reverse = function() { this.children.reverse(), this.updateZ() } , W.Group.prototype.getIndex = function(e) { return this.children.indexOf(e) } , W.Group.prototype.getByName = function(e) { for (var t = 0; t < this.children.length; t++) if (this.children[t].name === e) return this.children[t]; return null } , W.Group.prototype.replace = function(e, t) { var i = this.getIndex(e); if (-1 !== i) return t.parent && (t.parent instanceof W.Group ? t.parent.remove(t) : t.parent.removeChild(t)), this.remove(e), this.addAt(t, i), e } , W.Group.prototype.hasProperty = function(e, t) { var i = t.length; return 1 === i && t[0]in e || (2 === i && t[0]in e && t[1]in e[t[0]] || (3 === i && t[0]in e && t[1]in e[t[0]] && t[2]in e[t[0]][t[1]] || 4 === i && t[0]in e && t[1]in e[t[0]] && t[2]in e[t[0]][t[1]] && t[3]in e[t[0]][t[1]][t[2]])) } , W.Group.prototype.setProperty = function(e, t, i, r, o) { if (void 0 === o && (o = !1), r = r || 0, !this.hasProperty(e, t) && (!o || 0 < r)) return !1; var s = t.length; return 1 === s ? 0 === r ? e[t[0]] = i : 1 === r ? e[t[0]] += i : 2 === r ? e[t[0]] -= i : 3 === r ? e[t[0]] *= i : 4 === r && (e[t[0]] /= i) : 2 === s ? 0 === r ? e[t[0]][t[1]] = i : 1 === r ? e[t[0]][t[1]] += i : 2 === r ? e[t[0]][t[1]] -= i : 3 === r ? e[t[0]][t[1]] *= i : 4 === r && (e[t[0]][t[1]] /= i) : 3 === s ? 0 === r ? e[t[0]][t[1]][t[2]] = i : 1 === r ? e[t[0]][t[1]][t[2]] += i : 2 === r ? e[t[0]][t[1]][t[2]] -= i : 3 === r ? e[t[0]][t[1]][t[2]] *= i : 4 === r && (e[t[0]][t[1]][t[2]] /= i) : 4 === s && (0 === r ? e[t[0]][t[1]][t[2]][t[3]] = i : 1 === r ? e[t[0]][t[1]][t[2]][t[3]] += i : 2 === r ? e[t[0]][t[1]][t[2]][t[3]] -= i : 3 === r ? e[t[0]][t[1]][t[2]][t[3]] *= i : 4 === r && (e[t[0]][t[1]][t[2]][t[3]] /= i)), !0 } , W.Group.prototype.checkProperty = function(e, t, i, r) { return void 0 === r && (r = !1), !(!W.Utils.getProperty(e, t) && r) && W.Utils.getProperty(e, t) === i } , W.Group.prototype.set = function(e, t, i, r, o, s, a) { if (void 0 === a && (a = !1), t = t.split("."), void 0 === r && (r = !1), void 0 === o && (o = !1), (!1 === r || r && e.alive) && (!1 === o || o && e.visible)) return this.setProperty(e, t, i, s, a) } , W.Group.prototype.setAll = function(e, t, i, r, o, s) { void 0 === i && (i = !1), void 0 === r && (r = !1), void 0 === s && (s = !1), e = e.split("."), o = o || 0; for (var a = 0; a < this.children.length; a++) (!i || i && this.children[a].alive) && (!r || r && this.children[a].visible) && this.setProperty(this.children[a], e, t, o, s) } , W.Group.prototype.setAllChildren = function(e, t, i, r, o, s) { void 0 === i && (i = !1), void 0 === r && (r = !1), void 0 === s && (s = !1), o = o || 0; for (var a = 0; a < this.children.length; a++) (!i || i && this.children[a].alive) && (!r || r && this.children[a].visible) && (this.children[a]instanceof W.Group ? this.children[a].setAllChildren(e, t, i, r, o, s) : this.setProperty(this.children[a], e.split("."), t, o, s)) } , W.Group.prototype.checkAll = function(e, t, i, r, o) { void 0 === i && (i = !1), void 0 === r && (r = !1), void 0 === o && (o = !1); for (var s = 0; s < this.children.length; s++) if ((!i || i && this.children[s].alive) && (!r || r && this.children[s].visible) && !this.checkProperty(this.children[s], e, t, o)) return !1; return !0 } , W.Group.prototype.addAll = function(e, t, i, r) { this.setAll(e, t, i, r, 1) } , W.Group.prototype.subAll = function(e, t, i, r) { this.setAll(e, t, i, r, 2) } , W.Group.prototype.multiplyAll = function(e, t, i, r) { this.setAll(e, t, i, r, 3) } , W.Group.prototype.divideAll = function(e, t, i, r) { this.setAll(e, t, i, r, 4) } , W.Group.prototype.callAllExists = function(e, t) { var i; if (2 < arguments.length) { i = []; for (var r = 2; r < arguments.length; r++) i.push(arguments[r]) } for (r = 0; r < this.children.length; r++) this.children[r].exists === t && this.children[r][e] && this.children[r][e].apply(this.children[r], i) } , W.Group.prototype.callbackFromArray = function(e, t, i) { if (1 === i) { if (e[t[0]]) return e[t[0]] } else if (2 === i) { if (e[t[0]][t[1]]) return e[t[0]][t[1]] } else if (3 === i) { if (e[t[0]][t[1]][t[2]]) return e[t[0]][t[1]][t[2]] } else if (4 === i) { if (e[t[0]][t[1]][t[2]][t[3]]) return e[t[0]][t[1]][t[2]][t[3]] } else if (e[t]) return e[t]; return !1 } , W.Group.prototype.callAll = function(e, t) { if (void 0 !== e) { var i, r = (e = e.split(".")).length; if (null == t || "" === t) t = null; else if ("string" == typeof t) var o = (t = t.split(".")).length; if (2 < arguments.length) { i = []; for (var s = 2; s < arguments.length; s++) i.push(arguments[s]) } var a = null , n = null; for (s = 0; s < this.children.length; s++) a = this.callbackFromArray(this.children[s], e, r), t && a ? (n = this.callbackFromArray(this.children[s], t, o), a && a.apply(n, i)) : a && a.apply(this.children[s], i) } } , W.Group.prototype.preUpdate = function() { if (this.pendingDestroy) return this.destroy(), !1; if (!this.exists || !this.parent.exists) return !(this.renderOrderID = -1); for (var e = 0; e < this.children.length; e++) this.children[e].preUpdate(); return !0 } , W.Group.prototype.update = function() { for (var e = this.children.length; e--; ) this.children[e].update() } , W.Group.prototype.postUpdate = function() { this.fixedToCamera && (this.x = this.game.camera.view.x + this.cameraOffset.x, this.y = this.game.camera.view.y + this.cameraOffset.y); for (var e = 0; e < this.children.length; e++) this.children[e].postUpdate() } , W.Group.prototype.filter = function(e, t) { for (var i = -1, r = this.children.length, o = []; ++i < r; ) { var s = this.children[i]; (!t || t && s.exists) && e(s, i, this.children) && o.push(s) } return new W.ArraySet(o) } , W.Group.prototype.forEach = function(e, t, i) { if (void 0 === i && (i = !1), arguments.length <= 3) for (var r = 0; r < this.children.length; r++) (!i || i && this.children[r].exists) && e.call(t, this.children[r]); else { var o = [null]; for (r = 3; r < arguments.length; r++) o.push(arguments[r]); for (r = 0; r < this.children.length; r++) (!i || i && this.children[r].exists) && (o[0] = this.children[r], e.apply(t, o)) } } , W.Group.prototype.forEachExists = function(e, t) { var i; if (2 < arguments.length) { i = [null]; for (var r = 2; r < arguments.length; r++) i.push(arguments[r]) } this.iterate("exists", !0, W.Group.RETURN_TOTAL, e, t, i) } , W.Group.prototype.forEachAlive = function(e, t) { var i; if (2 < arguments.length) { i = [null]; for (var r = 2; r < arguments.length; r++) i.push(arguments[r]) } this.iterate("alive", !0, W.Group.RETURN_TOTAL, e, t, i) } , W.Group.prototype.forEachDead = function(e, t) { var i; if (2 < arguments.length) { i = [null]; for (var r = 2; r < arguments.length; r++) i.push(arguments[r]) } this.iterate("alive", !1, W.Group.RETURN_TOTAL, e, t, i) } , W.Group.prototype.sort = function(e, t) { this.children.length < 2 || (void 0 === e && (e = "z"), void 0 === t && (t = W.Group.SORT_ASCENDING), this._sortProperty = e, t === W.Group.SORT_ASCENDING ? this.children.sort(this.ascendingSortHandler.bind(this)) : this.children.sort(this.descendingSortHandler.bind(this)), this.updateZ()) } , W.Group.prototype.customSort = function(e, t) { this.children.length < 2 || (this.children.sort(e.bind(t)), this.updateZ()) } , W.Group.prototype.ascendingSortHandler = function(e, t) { return e[this._sortProperty] < t[this._sortProperty] ? -1 : e[this._sortProperty] > t[this._sortProperty] ? 1 : e.z < t.z ? -1 : 1 } , W.Group.prototype.descendingSortHandler = function(e, t) { return e[this._sortProperty] < t[this._sortProperty] ? 1 : e[this._sortProperty] > t[this._sortProperty] ? -1 : 0 } , W.Group.prototype.iterate = function(e, t, i, r, o, s) { if (0 === this.children.length) { if (i === W.Group.RETURN_TOTAL) return 0; if (i === W.Group.RETURN_ALL) return [] } var a = 0; if (i === W.Group.RETURN_ALL) var n = []; for (var h = 0; h < this.children.length; h++) if (this.children[h][e] === t) { if (a++, r && (s ? (s[0] = this.children[h], r.apply(o, s)) : r.call(o, this.children[h])), i === W.Group.RETURN_CHILD) return this.children[h]; i === W.Group.RETURN_ALL && n.push(this.children[h]) } return i === W.Group.RETURN_TOTAL ? a : i === W.Group.RETURN_ALL ? n : null } , W.Group.prototype.getFirstExists = function(e, t, i, r, o, s) { void 0 === t && (t = !1), "boolean" != typeof e && (e = !0); var a = this.iterate("exists", e, W.Group.RETURN_CHILD); return null === a && t ? this.create(i, r, o, s) : this.resetChild(a, i, r, o, s) } , W.Group.prototype.getFirstAlive = function(e, t, i, r, o) { void 0 === e && (e = !1); var s = this.iterate("alive", !0, W.Group.RETURN_CHILD); return null === s && e ? this.create(t, i, r, o) : this.resetChild(s, t, i, r, o) } , W.Group.prototype.getFirstDead = function(e, t, i, r, o) { void 0 === e && (e = !1); var s = this.iterate("alive", !1, W.Group.RETURN_CHILD); return null === s && e ? this.create(t, i, r, o) : this.resetChild(s, t, i, r, o) } , W.Group.prototype.resetChild = function(e, t, i, r, o) { return null === e ? null : (void 0 === t && (t = null), void 0 === i && (i = null), null !== t && null !== i && e.reset(t, i), void 0 !== r && e.loadTexture(r, o), e) } , W.Group.prototype.getTop = function() { if (0 < this.children.length) return this.children[this.children.length - 1] } , W.Group.prototype.getBottom = function() { if (0 < this.children.length) return this.children[0] } , W.Group.prototype.getClosestTo = function(e, t, i) { for (var r = Number.MAX_VALUE, o = 0, s = null, a = 0; a < this.children.length; a++) { var n = this.children[a]; n.exists && (o = Math.abs(W.Point.distance(e, n))) < r && (!t || t.call(i, n, o)) && (r = o, s = n) } return s } , W.Group.prototype.getFurthestFrom = function(e, t, i) { for (var r = 0, o = 0, s = null, a = 0; a < this.children.length; a++) { var n = this.children[a]; n.exists && r < (o = Math.abs(W.Point.distance(e, n))) && (!t || t.call(i, n, o)) && (r = o, s = n) } return s } , W.Group.prototype.countLiving = function() { return this.iterate("alive", !0, W.Group.RETURN_TOTAL) } , W.Group.prototype.countDead = function() { return this.iterate("alive", !1, W.Group.RETURN_TOTAL) } , W.Group.prototype.getRandom = function(e, t) { return void 0 === e && (e = 0), void 0 === t && (t = this.children.length), 0 === t ? null : W.ArrayUtils.getRandomItem(this.children, e, t) } , W.Group.prototype.getRandomExists = function(e, t) { var i = this.getAll("exists", !0, e, t); return this.game.rnd.pick(i) } , W.Group.prototype.getAll = function(e, t, i, r) { void 0 === i && (i = 0), void 0 === r && (r = this.children.length); for (var o = [], s = i; s < r; s++) { var a = this.children[s]; e && a[e] === t && o.push(a) } return o } , W.Group.prototype.remove = function(e, t, i) { if (void 0 === t && (t = !1), void 0 === i && (i = !1), 0 === this.children.length || -1 === this.children.indexOf(e)) return !1; i || !e.events || e.destroyPhase || e.events.onRemovedFromGroup$dispatch(e, this); var r = this.removeChild(e); return this.removeFromHash(e), this.updateZ(), this.cursor === e && this.next(), t && r && r.destroy(!0), !0 } , W.Group.prototype.moveAll = function(e, t) { if (void 0 === t && (t = !1), 0 < this.children.length && e instanceof W.Group) { for (; e.add(this.children[0], t), 0 < this.children.length; ) ; this.hash = [], this.cursor = null } return e } , W.Group.prototype.removeAll = function(e, t, i) { if (void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === i && (i = !1), 0 !== this.children.length) { do { !t && this.children[0].events && this.children[0].events.onRemovedFromGroup$dispatch(this.children[0], this); var r = this.removeChild(this.children[0]); this.removeFromHash(r), e && r && r.destroy(!0, i) } while (0 < this.children.length); this.hash = [], this.cursor = null } } , W.Group.prototype.removeBetween = function(e, t, i, r) { if (void 0 === t && (t = this.children.length - 1), void 0 === i && (i = !1), void 0 === r && (r = !1), 0 !== this.children.length) { if (t < e || e < 0 || t > this.children.length) return !1; for (var o = t; e <= o; ) { !r && this.children[o].events && this.children[o].events.onRemovedFromGroup$dispatch(this.children[o], this); var s = this.removeChild(this.children[o]); this.removeFromHash(s), i && s && s.destroy(!0), this.cursor === this.children[o] && (this.cursor = null), o-- } this.updateZ() } } , W.Group.prototype.destroy = function(e, t) { null === this.game || this.ignoreDestroy || (void 0 === e && (e = !0), void 0 === t && (t = !1), this.onDestroy.dispatch(this, e, t), this.removeAll(e), this.cursor = null, this.filters = null, this.pendingDestroy = !1, t || (this.parent && this.parent.removeChild(this), this.game = null, this.exists = !1)) } , Object.defineProperty(W.Group.prototype, "total", { get: function() { return this.iterate("exists", !0, W.Group.RETURN_TOTAL) } }), Object.defineProperty(W.Group.prototype, "length", { get: function() { return this.children.length } }), Object.defineProperty(W.Group.prototype, "angle", { get: function() { return W.Math.radToDeg(this.rotation) }, set: function(e) { this.rotation = W.Math.degToRad(e) } }), Object.defineProperty(W.Group.prototype, "centerX", { get: function() { return this.getBounds(this.parent).centerX }, set: function(e) { var t = this.getBounds(this.parent) , i = this.x - t.x; this.x = e + i - t.halfWidth } }), Object.defineProperty(W.Group.prototype, "centerY", { get: function() { return this.getBounds(this.parent).centerY }, set: function(e) { var t = this.getBounds(this.parent) , i = this.y - t.y; this.y = e + i - t.halfHeight } }), Object.defineProperty(W.Group.prototype, "left", { get: function() { return this.getBounds(this.parent).left }, set: function(e) { var t = this.getBounds(this.parent) , i = this.x - t.x; this.x = e + i } }), Object.defineProperty(W.Group.prototype, "right", { get: function() { return this.getBounds(this.parent).right }, set: function(e) { var t = this.getBounds(this.parent) , i = this.x - t.x; this.x = e + i - t.width } }), Object.defineProperty(W.Group.prototype, "top", { get: function() { return this.getBounds(this.parent).top }, set: function(e) { var t = this.getBounds(this.parent) , i = this.y - t.y; this.y = e + i } }), Object.defineProperty(W.Group.prototype, "bottom", { get: function() { return this.getBounds(this.parent).bottom }, set: function(e) { var t = this.getBounds(this.parent) , i = this.y - t.y; this.y = e + i - t.height } }), W.World = function(e) { W.Group.call(this, e, null, "__world", !1), this.bounds = new W.Rectangle(0,0,e.width,e.height), this.camera = null, this._definedSize = !1, this._width = e.width, this._height = e.height, this.game.state.onStateChange.add(this.stateChange, this) } , W.World.prototype = Object.create(W.Group.prototype), W.World.prototype.constructor = W.World, W.World.prototype.boot = function() { this.camera = new W.Camera(this.game,0,0,0,this.game.width,this.game.height), this.game.stage.addChild(this), this.camera.boot() } , W.World.prototype.stateChange = function() { this.x = 0, this.y = 0, this.camera.reset() } , W.World.prototype.setBounds = function(e, t, i, r) { this._definedSize = !0, this._width = i, this._height = r, this.bounds.setTo(e, t, i, r), this.x = e, this.y = t, this.camera.bounds && this.camera.bounds.setTo(e, t, Math.max(i, this.game.width), Math.max(r, this.game.height)), this.game.physics.setBoundsToWorld() } , W.World.prototype.resize = function(e, t) { this._definedSize && (e < this._width && (e = this._width), t < this._height && (t = this._height)), this.bounds.width = e, this.bounds.height = t, this.game.camera.setBoundsToWorld(), this.game.physics.setBoundsToWorld() } , W.World.prototype.shutdown = function() { this.destroy(!0, !0) } , W.World.prototype.wrap = function(e, t, i, r, o) { void 0 === t && (t = 0), void 0 === i && (i = !1), void 0 === r && (r = !0), void 0 === o && (o = !0), i ? (e.getBounds(), r && (e.x + e._currentBounds.width < this.bounds.x ? e.x = this.bounds.right : e.x > this.bounds.right && (e.x = this.bounds.left)), o && (e.y + e._currentBounds.height < this.bounds.top ? e.y = this.bounds.bottom : e.y > this.bounds.bottom && (e.y = this.bounds.top))) : (r && e.x + t < this.bounds.x ? e.x = this.bounds.right + t : r && e.x - t > this.bounds.right && (e.x = this.bounds.left - t), o && e.y + t < this.bounds.top ? e.y = this.bounds.bottom + t : o && e.y - t > this.bounds.bottom && (e.y = this.bounds.top - t)) } , Object.defineProperty(W.World.prototype, "width", { get: function() { return this.bounds.width }, set: function(e) { e < this.game.width && (e = this.game.width), this.bounds.width = e, this._width = e, this._definedSize = !0 } }), Object.defineProperty(W.World.prototype, "height", { get: function() { return this.bounds.height }, set: function(e) { e < this.game.height && (e = this.game.height), this.bounds.height = e, this._height = e, this._definedSize = !0 } }), Object.defineProperty(W.World.prototype, "centerX", { get: function() { return this.bounds.halfWidth + this.bounds.x } }), Object.defineProperty(W.World.prototype, "centerY", { get: function() { return this.bounds.halfHeight + this.bounds.y } }), Object.defineProperty(W.World.prototype, "randomX", { get: function() { return this.bounds.x < 0 ? this.game.rnd.between(this.bounds.x, this.bounds.width - Math.abs(this.bounds.x)) : this.game.rnd.between(this.bounds.x, this.bounds.width) } }), Object.defineProperty(W.World.prototype, "randomY", { get: function() { return this.bounds.y < 0 ? this.game.rnd.between(this.bounds.y, this.bounds.height - Math.abs(this.bounds.y)) : this.game.rnd.between(this.bounds.y, this.bounds.height) } }), W.Game = function(e, t, i, r, o, s, a, n) { return this.id = W.GAMES.push(this) - 1, this.config = null, this.physicsConfig = n, this.parent = "", this.width = 800, this.height = 600, this.resolution = 1, this._width = 800, this._height = 600, this.transparent = !1, this.antialias = !0, this.preserveDrawingBuffer = !1, this.clearBeforeRender = !0, this.renderer = null, this.renderType = W.AUTO, this.state = null, this.isBooted = !1, this.isRunning = !1, this.raf = null, this.add = null, this.make = null, this.cache = null, this.input = null, this.load = null, this.math = null, this.net = null, this.scale = null, this.sound = null, this.stage = null, this.time = null, this.tweens = null, this.world = null, this.physics = null, this.plugins = null, this.rnd = null, this.device = W.Device, this.camera = null, this.canvas = null, this.context = null, this.debug = null, this.particles = null, this.create = null, this.lockRender = !1, this.stepping = !1, this.pendingStep = !1, this.stepCount = 0, this.onPause = null, this.onResume = null, this.onBlur = null, this.onFocus = null, this._paused = !1, this._codePaused = !1, this.currentUpdateID = 0, this.updatesThisFrame = 1, this._deltaTime = 0, this._lastCount = 0, this._spiraling = 0, this._kickstart = !0, this.fpsProblemNotifier = new W.Signal, this.forceSingleUpdate = !0, this._nextFpsNotification = 0, 1 === arguments.length && "object" == typeof e ? this.parseConfig(e) : (this.config = { enableDebug: !0 }, void 0 !== e && (this._width = e), void 0 !== t && (this._height = t), void 0 !== i && (this.renderType = i), void 0 !== r && (this.parent = r), void 0 !== s && (this.transparent = s), void 0 !== a && (this.antialias = a), this.rnd = new W.RandomDataGenerator([(Date.now() * Math.random()).toString()]), this.state = new W.StateManager(this,o)), this.device.whenReady(this.boot, this), this } , W.Game.prototype = { parseConfig: function(e) { void 0 === (this.config = e).enableDebug && (this.config.enableDebug = !0), e.width && (this._width = e.width), e.height && (this._height = e.height), e.renderer && (this.renderType = e.renderer), e.parent && (this.parent = e.parent), void 0 !== e.transparent && (this.transparent = e.transparent), void 0 !== e.antialias && (this.antialias = e.antialias), e.resolution && (this.resolution = e.resolution), void 0 !== e.preserveDrawingBuffer && (this.preserveDrawingBuffer = e.preserveDrawingBuffer), e.physicsConfig && (this.physicsConfig = e.physicsConfig); var t = [(Date.now() * Math.random()).toString()]; e.seed && (t = e.seed), this.rnd = new W.RandomDataGenerator(t); var i = null; e.state && (i = e.state), this.state = new W.StateManager(this,i) }, boot: function() { this.isBooted || (this.onPause = new W.Signal, this.onResume = new W.Signal, this.onBlur = new W.Signal, this.onFocus = new W.Signal, this.isBooted = !0, (PIXI.game = this).math = W.Math, this.scale = new W.ScaleManager(this,this._width,this._height), this.stage = new W.Stage(this), this.setUpRenderer(), this.world = new W.World(this), this.add = new W.GameObjectFactory(this), this.make = new W.GameObjectCreator(this), this.cache = new W.Cache(this), this.load = new W.Loader(this), this.time = new W.Time(this), this.tweens = new W.TweenManager(this), this.input = new W.Input(this), this.sound = new W.SoundManager(this), this.physics = new W.Physics(this,this.physicsConfig), this.particles = new W.Particles(this), this.create = new W.Create(this), this.plugins = new W.PluginManager(this), this.net = new W.Net(this), this.time.boot(), this.stage.boot(), this.world.boot(), this.scale.boot(), this.input.boot(), this.sound.boot(), this.state.boot(), this.config.enableDebug ? (this.debug = new W.Utils.Debug(this), this.debug.boot()) : this.debug = { preUpdate: function() {}, update: function() {}, reset: function() {} }, this.showDebugHeader(), this.isRunning = !0, this.config && this.config.forceSetTimeOut ? this.raf = new W.RequestAnimationFrame(this,this.config.forceSetTimeOut) : this.raf = new W.RequestAnimationFrame(this,!1), this._kickstart = !0, window.focus && (!window.PhaserGlobal || window.PhaserGlobal && !window.PhaserGlobal.stopFocus) && window.focus(), this.raf.start()) }, showDebugHeader: function() { if (!window.PhaserGlobal || !window.PhaserGlobal.hideBanner) { var e = W.VERSION , t = "Canvas" , i = "HTML Audio" , r = 1; if (this.renderType === W.WEBGL ? (t = "WebGL", r++) : this.renderType === W.HEADLESS && (t = "Headless"), this.device.webAudio && (i = "WebAudio", r++), this.device.chrome) for (var o = ["%c %c %c @azerion/phaser v" + e + " | Pixi.js | " + t + " | " + i + " %c %c %c https://github.com/azerion / https://www.azerion.com %c♥%c♥%c♥", "background: #7ab3eb", "background: #378ce1", "color: #ffffff; background: #207cd8;", "background: #378ce1", "background: #7ab3eb", "background: #ffffff"], s = 0; s < 3; s++) s < r ? o.push("color: #ff2424; background: #fff") : o.push("color: #959595; background: #fff"); else window.console } }, setUpRenderer: function() { if (this.config.canvas ? this.canvas = this.config.canvas : this.canvas = W.Canvas.create(this, this.width, this.height, this.config.canvasID, !0), this.config.canvasStyle ? this.canvas.style = this.config.canvasStyle : this.canvas.style["-webkit-full-screen"] = "width: 100%; height: 100%", this.renderType === W.HEADLESS || this.renderType === W.CANVAS || this.renderType === W.AUTO && !this.device.webGL) { if (!this.device.canvas) throw new Error("Phaser.Game - Cannot create Canvas or WebGL context, aborting."); this.renderType = W.CANVAS, this.renderer = new PIXI.CanvasRenderer(this), this.context = this.renderer.context } else this.renderType = W.WEBGL, this.renderer = new PIXI.WebGLRenderer(this), this.context = null, this.canvas.addEventListener("webglcontextlost", this.contextLost.bind(this), !1), this.canvas.addEventListener("webglcontextrestored", this.contextRestored.bind(this), !1); this.device.cocoonJS && (this.canvas.screencanvas = this.renderType === W.CANVAS), this.renderType !== W.HEADLESS && (this.stage.smoothed = this.antialias, W.Canvas.addToDOM(this.canvas, this.parent, !1), W.Canvas.setTouchAction(this.canvas)) }, contextLost: function(e) { e.preventDefault(), this.renderer.contextLost = !0 }, contextRestored: function() { this.renderer.initContext(), this.cache.clearGLTextures(), this.renderer.contextLost = !1 }, update: function(e) { if (this.time.update(e), this._kickstart) return this.updateLogic(this.time.desiredFpsMult), this.updateRender(this.time.slowMotion * this.time.desiredFps), void (this._kickstart = !1); if (1 < this._spiraling && !this.forceSingleUpdate) this.time.time > this._nextFpsNotification && (this._nextFpsNotification = this.time.time + 1e4, this.fpsProblemNotifier.dispatch()), this._deltaTime = 0, this._spiraling = 0, this.updateRender(this.time.slowMotion * this.time.desiredFps); else { var t = 1e3 * this.time.slowMotion / this.time.desiredFps; this._deltaTime += Math.max(Math.min(3 * t, this.time.elapsed), 0); var i = 0; for (this.updatesThisFrame = Math.floor(this._deltaTime / t), this.forceSingleUpdate && (this.updatesThisFrame = Math.min(1, this.updatesThisFrame)); this._deltaTime >= t && (this._deltaTime -= t, this.currentUpdateID = i, this.updateLogic(this.time.desiredFpsMult), i++, !this.forceSingleUpdate || 1 !== i); ) this.time.refresh(); i > this._lastCount ? this._spiraling++ : i < this._lastCount && (this._spiraling = 0), this._lastCount = i, this.updateRender(this._deltaTime / t) } }, updateLogic: function(e) { this._paused || this.pendingStep ? (this.scale.pauseUpdate(), this.state.pauseUpdate(), this.debug.preUpdate()) : (this.stepping && (this.pendingStep = !0), this.scale.preUpdate(), this.debug.preUpdate(), this.camera.preUpdate(), this.physics.preUpdate(), this.state.preUpdate(e), this.plugins.preUpdate(e), this.stage.preUpdate(), this.state.update(), this.stage.update(), this.tweens.update(), this.sound.update(), this.input.update(), this.physics.update(), this.particles.update(), this.plugins.update(), this.stage.postUpdate(), this.plugins.postUpdate()), this.stage.updateTransform() }, updateRender: function(e) { this.lockRender || (this.state.preRender(e), this.renderType !== W.HEADLESS && (this.renderer.render(this.stage), this.plugins.render(e), this.state.render(e)), this.plugins.postRender(e)) }, enableStep: function() { this.stepping = !0, this.pendingStep = !1, this.stepCount = 0 }, disableStep: function() { this.stepping = !1, this.pendingStep = !1 }, step: function() { this.pendingStep = !1, this.stepCount++ }, destroy: function() { this.raf.stop(), this.state.destroy(), this.sound.destroy(), this.scale.destroy(), this.stage.destroy(), this.input.destroy(), this.physics.destroy(), this.plugins.destroy(), this.state = null, this.sound = null, this.scale = null, this.stage = null, this.input = null, this.physics = null, this.plugins = null, this.cache = null, this.load = null, this.time = null, this.world = null, this.isBooted = !1, this.renderer.destroy(!1), W.Canvas.removeFromDOM(this.canvas), PIXI.defaultRenderer = null, W.GAMES[this.id] = null }, gamePaused: function(e) { this._paused || (this._paused = !0, this.time.gamePaused(), this.sound.muteOnPause && this.sound.setMute(), this.onPause.dispatch(e), this.device.cordova && this.device.iOS && (this.lockRender = !0)) }, gameResumed: function(e) { this._paused && !this._codePaused && (this._paused = !1, this.time.gameResumed(), this.input.reset(), this.sound.muteOnPause && this.sound.unsetMute(), this.onResume.dispatch(e), this.device.cordova && this.device.iOS && (this.lockRender = !1)) }, focusLoss: function(e) { this.onBlur.dispatch(e), this.stage.disableVisibilityChange || this.gamePaused(e) }, focusGain: function(e) { this.onFocus.dispatch(e), this.stage.disableVisibilityChange || this.gameResumed(e) } }, W.Game.prototype.constructor = W.Game, Object.defineProperty(W.Game.prototype, "paused", { get: function() { return this._paused }, set: function(e) { !0 === e ? (!1 === this._paused && (this._paused = !0, this.sound.setMute(), this.time.gamePaused(), this.onPause.dispatch(this)), this._codePaused = !0) : (this._paused && (this._paused = !1, this.input.reset(), this.sound.unsetMute(), this.time.gameResumed(), this.onResume.dispatch(this)), this._codePaused = !1) } }), W.Input = function(e) { this.game = e, this.hitCanvas = null, this.hitContext = null, this.moveCallbacks = [], this.customCandidateHandler = null, this.customCandidateHandlerContext = null, this.pollRate = 0, this.enabled = !0, this.multiInputOverride = W.Input.MOUSE_TOUCH_COMBINE, this.position = null, this.speed = null, this.circle = null, this.scale = null, this.maxPointers = -1, this.tapRate = 200, this.doubleTapRate = 300, this.holdRate = 2e3, this.justPressedRate = 200, this.justReleasedRate = 200, this.recordPointerHistory = !1, this.recordRate = 100, this.recordLimit = 100, this.pointer1 = null, this.pointer2 = null, this.pointer3 = null, this.pointer4 = null, this.pointer5 = null, this.pointer6 = null, this.pointer7 = null, this.pointer8 = null, this.pointer9 = null, this.pointer10 = null, this.pointers = [], this.activePointer = null, this.mousePointer = null, this.mouse = null, this.keyboard = null, this.touch = null, this.mspointer = null, this.gamepad = null, this.resetLocked = !1, this.onDown = null, this.onUp = null, this.onTap = null, this.onHold = null, this.minPriorityID = 0, this.interactiveItems = new W.ArraySet, this._localPoint = new W.Point, this._pollCounter = 0, this._oldPosition = null, this._x = 0, this._y = 0 } , W.Input.MOUSE_OVERRIDES_TOUCH = 0, W.Input.TOUCH_OVERRIDES_MOUSE = 1, W.Input.MOUSE_TOUCH_COMBINE = 2, W.Input.MAX_POINTERS = 10, W.Input.prototype = { boot: function() { this.mousePointer = new W.Pointer(this.game,0,W.PointerMode.CURSOR), this.addPointer(), this.addPointer(), this.mouse = new W.Mouse(this.game), this.touch = new W.Touch(this.game), this.mspointer = new W.MSPointer(this.game), W.Keyboard && (this.keyboard = new W.Keyboard(this.game)), W.Gamepad && (this.gamepad = new W.Gamepad(this.game)), this.onDown = new W.Signal, this.onUp = new W.Signal, this.onTap = new W.Signal, this.onHold = new W.Signal, this.scale = new W.Point(1,1), this.speed = new W.Point, this.position = new W.Point, this._oldPosition = new W.Point, this.circle = new W.Circle(0,0,45), this.activePointer = this.mousePointer, this.hitCanvas = PIXI.CanvasPool.create(this, 1, 1), this.hitContext = this.hitCanvas.getContext("2d"), this.game.device.mspointer ? this.mspointer.start() : this.game.device.touch && this.touch.start(), this.mspointer.active || this.mouse.start(), this.mousePointer.active = !0, this.keyboard && this.keyboard.start(); var t = this; this._onClickTrampoline = function(e) { t.onClickTrampoline(e) } , this.game.canvas.addEventListener("click", this._onClickTrampoline, !1) }, destroy: function() { this.mouse.stop(), this.touch.stop(), this.mspointer.stop(), this.keyboard && this.keyboard.stop(), this.gamepad && this.gamepad.stop(), this.moveCallbacks = [], PIXI.CanvasPool.remove(this), this.game.canvas.removeEventListener("click", this._onClickTrampoline) }, setInteractiveCandidateHandler: function(e, t) { this.customCandidateHandler = e, this.customCandidateHandlerContext = t }, addMoveCallback: function(e, t) { this.moveCallbacks.push({ callback: e, context: t }) }, deleteMoveCallback: function(e, t) { for (var i = this.moveCallbacks.length; i--; ) if (this.moveCallbacks[i].callback === e && this.moveCallbacks[i].context === t) return void this.moveCallbacks.splice(i, 1) }, addPointer: function() { if (this.pointers.length >= W.Input.MAX_POINTERS) return null; var e = this.pointers.length + 1 , t = new W.Pointer(this.game,e,W.PointerMode.TOUCH); return this.pointers.push(t), this["pointer" + e] = t }, update: function() { if (this.keyboard && this.keyboard.update(), 0 < this.pollRate && this._pollCounter < this.pollRate) this._pollCounter++; else { this.speed.x = this.position.x - this._oldPosition.x, this.speed.y = this.position.y - this._oldPosition.y, this._oldPosition.copyFrom(this.position), this.mousePointer.update(), this.gamepad && this.gamepad.active && this.gamepad.update(); for (var e = 0; e < this.pointers.length; e++) this.pointers[e].update(); this._pollCounter = 0 } }, reset: function(e) { if (this.game.isBooted && !this.resetLocked) { void 0 === e && (e = !1), this.mousePointer.reset(), this.keyboard && this.keyboard.reset(e), this.gamepad && this.gamepad.reset(); for (var t = 0; t < this.pointers.length; t++) this.pointers[t].reset(); "none" !== this.game.canvas.style.cursor && (this.game.canvas.style.cursor = "inherit"), e && (this.onDown.dispose(), this.onUp.dispose(), this.onTap.dispose(), this.onHold.dispose(), this.onDown = new W.Signal, this.onUp = new W.Signal, this.onTap = new W.Signal, this.onHold = new W.Signal, this.moveCallbacks = []), this._pollCounter = 0 } }, resetSpeed: function(e, t) { this._oldPosition.setTo(e, t), this.speed.setTo(0, 0) }, startPointer: function(e) { if (0 <= this.maxPointers && this.countActivePointers(this.maxPointers) >= this.maxPointers) return null; if (!this.pointer1.active) return this.pointer1.start(e); if (!this.pointer2.active) return this.pointer2.start(e); for (var t = 2; t < this.pointers.length; t++) { var i = this.pointers[t]; if (!i.active) return i.start(e) } return null }, updatePointer: function(e) { if (this.pointer1.active && this.pointer1.identifier === e.identifier) return this.pointer1.move(e); if (this.pointer2.active && this.pointer2.identifier === e.identifier) return this.pointer2.move(e); for (var t = 2; t < this.pointers.length; t++) { var i = this.pointers[t]; if (i.active && i.identifier === e.identifier) return i.move(e) } return null }, stopPointer: function(e) { if (this.pointer1.active && this.pointer1.identifier === e.identifier) return this.pointer1.stop(e); if (this.pointer2.active && this.pointer2.identifier === e.identifier) return this.pointer2.stop(e); for (var t = 2; t < this.pointers.length; t++) { var i = this.pointers[t]; if (i.active && i.identifier === e.identifier) return i.stop(e) } return null }, countActivePointers: function(e) { void 0 === e && (e = this.pointers.length); for (var t = e, i = 0; i < this.pointers.length && 0 < t; i++) { this.pointers[i].active && t-- } return e - t }, getPointer: function(e) { void 0 === e && (e = !1); for (var t = 0; t < this.pointers.length; t++) { var i = this.pointers[t]; if (i.active === e) return i } return null }, getPointerFromIdentifier: function(e) { for (var t = 0; t < this.pointers.length; t++) { var i = this.pointers[t]; if (i.identifier === e) return i } return null }, getPointerFromId: function(e) { for (var t = 0; t < this.pointers.length; t++) { var i = this.pointers[t]; if (i.pointerId === e) return i } return null }, getLocalPosition: function(e, t, i) { void 0 === i && (i = new W.Point); var r = e.worldTransform , o = 1 / (r.a * r.d + r.c * -r.b); return i.setTo(r.d * o * t.x + -r.c * o * t.y + (r.ty * r.c - r.tx * r.d) * o, r.a * o * t.y + -r.b * o * t.x + (-r.ty * r.a + r.tx * r.b) * o) }, hitTest: function(e, t, i) { if (!e.worldVisible) return !1; if (this.getLocalPosition(e, t, this._localPoint), i.copyFrom(this._localPoint), e.hitArea && e.hitArea.contains) return e.hitArea.contains(this._localPoint.x, this._localPoint.y); if (e instanceof W.TileSprite) { var r = e.width , o = e.height , s = -r * e.anchor.x; if (this._localPoint.x >= s && this._localPoint.x < s + r) { var a = -o * e.anchor.y; if (this._localPoint.y >= a && this._localPoint.y < a + o) return !0 } } else if (e instanceof PIXI.Sprite) { r = e.texture.frame.width, o = e.texture.frame.height, s = -r * e.anchor.x; if (this._localPoint.x >= s && this._localPoint.x < s + r) { a = -o * e.anchor.y; if (this._localPoint.y >= a && this._localPoint.y < a + o) return !0 } } else if (W.Graphics && e instanceof W.Graphics) for (var n = 0; n < e.graphicsData.length; n++) { var h = e.graphicsData[n]; if (h.fill && (h.shape && h.shape.contains(this._localPoint.x, this._localPoint.y))) return !0 } for (n = 0; n < e.children.length; n++) if (this.hitTest(e.children[n], t, i)) return !0; return !1 }, onClickTrampoline: function() { this.activePointer.processClickTrampolines() } }, W.Input.prototype.constructor = W.Input, Object.defineProperty(W.Input.prototype, "x", { get: function() { return this._x }, set: function(e) { this._x = Math.floor(e) } }), Object.defineProperty(W.Input.prototype, "y", { get: function() { return this._y }, set: function(e) { this._y = Math.floor(e) } }), Object.defineProperty(W.Input.prototype, "pollLocked", { get: function() { return 0 < this.pollRate && this._pollCounter < this.pollRate } }), Object.defineProperty(W.Input.prototype, "totalInactivePointers", { get: function() { return this.pointers.length - this.countActivePointers() } }), Object.defineProperty(W.Input.prototype, "totalActivePointers", { get: function() { return this.countActivePointers() } }), Object.defineProperty(W.Input.prototype, "worldX", { get: function() { return this.game.camera.view.x + this.x } }), Object.defineProperty(W.Input.prototype, "worldY", { get: function() { return this.game.camera.view.y + this.y } }), W.Mouse = function(e) { this.game = e, this.input = e.input, this.callbackContext = this.game, this.mouseDownCallback = null, this.mouseUpCallback = null, this.mouseOutCallback = null, this.mouseOverCallback = null, this.mouseWheelCallback = null, this.capture = !1, this.button = -1, this.wheelDelta = 0, this.enabled = !0, this.locked = !1, this.stopOnGameOut = !1, this.pointerLock = new W.Signal, this.event = null, this._onMouseDown = null, this._onMouseMove = null, this._onMouseUp = null, this._onMouseOut = null, this._onMouseOver = null, this._onMouseWheel = null, this._wheelEvent = null } , W.Mouse.NO_BUTTON = -1, W.Mouse.LEFT_BUTTON = 0, W.Mouse.MIDDLE_BUTTON = 1, W.Mouse.RIGHT_BUTTON = 2, W.Mouse.BACK_BUTTON = 3, W.Mouse.FORWARD_BUTTON = 4, W.Mouse.WHEEL_UP = 1, W.Mouse.WHEEL_DOWN = -1, W.Mouse.prototype = { start: function() { if ((!this.game.device.android || !1 !== this.game.device.chrome) && null === this._onMouseDown) { var t = this; this._onMouseDown = function(e) { return t.onMouseDown(e) } , this._onMouseMove = function(e) { return t.onMouseMove(e) } , this._onMouseUp = function(e) { return t.onMouseUp(e) } , this._onMouseUpGlobal = function(e) { return t.onMouseUpGlobal(e) } , this._onMouseOutGlobal = function(e) { return t.onMouseOutGlobal(e) } , this._onMouseOut = function(e) { return t.onMouseOut(e) } , this._onMouseOver = function(e) { return t.onMouseOver(e) } , this._onMouseWheel = function(e) { return t.onMouseWheel(e) } ; var e = this.game.canvas; e.addEventListener("mousedown", this._onMouseDown, !0), e.addEventListener("mousemove", this._onMouseMove, !0), e.addEventListener("mouseup", this._onMouseUp, !0), this.game.device.cocoonJS || (window.addEventListener("mouseup", this._onMouseUpGlobal, !0), window.addEventListener("mouseout", this._onMouseOutGlobal, !0), e.addEventListener("mouseover", this._onMouseOver, !0), e.addEventListener("mouseout", this._onMouseOut, !0)); var i = this.game.device.wheelEvent; i && (e.addEventListener(i, this._onMouseWheel, !0), "mousewheel" === i ? this._wheelEvent = new r(-.025,1) : "DOMMouseScroll" === i && (this._wheelEvent = new r(1,1))) } }, onMouseDown: function(e) { this.event = e, this.capture && e.preventDefault(), this.mouseDownCallback && this.mouseDownCallback.call(this.callbackContext, e), this.input.enabled && this.enabled && (e.identifier = 0, this.input.mousePointer.start(e)) }, onMouseMove: function(e) { this.event = e, this.capture && e.preventDefault(), this.mouseMoveCallback && this.mouseMoveCallback.call(this.callbackContext, e), this.input.enabled && this.enabled && (e.identifier = 0, this.input.mousePointer.move(e)) }, onMouseUp: function(e) { this.event = e, this.capture && e.preventDefault(), this.mouseUpCallback && this.mouseUpCallback.call(this.callbackContext, e), this.input.enabled && this.enabled && (e.identifier = 0, this.input.mousePointer.stop(e)) }, onMouseUpGlobal: function(e) { this.input.mousePointer.withinGame || (this.mouseUpCallback && this.mouseUpCallback.call(this.callbackContext, e), e.identifier = 0, this.input.mousePointer.stop(e)) }, onMouseOutGlobal: function(e) { this.event = e, this.capture && e.preventDefault(), this.input.mousePointer.withinGame = !1, this.input.enabled && this.enabled && (this.input.mousePointer.stop(e), this.input.mousePointer.leftButton.stop(e), this.input.mousePointer.rightButton.stop(e)) }, onMouseOut: function(e) { this.event = e, this.capture && e.preventDefault(), this.input.mousePointer.withinGame = !1, this.mouseOutCallback && this.mouseOutCallback.call(this.callbackContext, e), this.input.enabled && this.enabled && this.stopOnGameOut && (e.identifier = 0, this.input.mousePointer.stop(e)) }, onMouseOver: function(e) { this.event = e, this.capture && e.preventDefault(), this.input.mousePointer.withinGame = !0, this.mouseOverCallback && this.mouseOverCallback.call(this.callbackContext, e) }, onMouseWheel: function(e) { this._wheelEvent && (e = this._wheelEvent.bindEvent(e)), this.event = e, this.capture && e.preventDefault(), this.wheelDelta = W.Math.clamp(-e.deltaY, -1, 1), this.mouseWheelCallback && this.mouseWheelCallback.call(this.callbackContext, e) }, requestPointerLock: function() { if (this.game.device.pointerLock) { var e = this.game.canvas; e.requestPointerLock = e.requestPointerLock || e.mozRequestPointerLock || e.webkitRequestPointerLock, e.requestPointerLock(); var t = this; this._pointerLockChange = function(e) { return t.pointerLockChange(e) } , document.addEventListener("pointerlockchange", this._pointerLockChange, !0), document.addEventListener("mozpointerlockchange", this._pointerLockChange, !0), document.addEventListener("webkitpointerlockchange", this._pointerLockChange, !0) } }, pointerLockChange: function(e) { var t = this.game.canvas; document.pointerLockElement === t || document.mozPointerLockElement === t || document.webkitPointerLockElement === t ? (this.locked = !0, this.pointerLock.dispatch(!0, e)) : (this.locked = !1, this.pointerLock.dispatch(!1, e)) }, releasePointerLock: function() { document.exitPointerLock = document.exitPointerLock || document.mozExitPointerLock || document.webkitExitPointerLock, document.exitPointerLock(), document.removeEventListener("pointerlockchange", this._pointerLockChange, !0), document.removeEventListener("mozpointerlockchange", this._pointerLockChange, !0), document.removeEventListener("webkitpointerlockchange", this._pointerLockChange, !0) }, stop: function() { var e = this.game.canvas; e.removeEventListener("mousedown", this._onMouseDown, !0), e.removeEventListener("mousemove", this._onMouseMove, !0), e.removeEventListener("mouseup", this._onMouseUp, !0), e.removeEventListener("mouseover", this._onMouseOver, !0), e.removeEventListener("mouseout", this._onMouseOut, !0); var t = this.game.device.wheelEvent; t && e.removeEventListener(t, this._onMouseWheel, !0), window.removeEventListener("mouseup", this._onMouseUpGlobal, !0), window.removeEventListener("mouseout", this._onMouseOutGlobal, !0), document.removeEventListener("pointerlockchange", this._pointerLockChange, !0), document.removeEventListener("mozpointerlockchange", this._pointerLockChange, !0), document.removeEventListener("webkitpointerlockchange", this._pointerLockChange, !0) } }, W.Mouse.prototype.constructor = W.Mouse, ((r.prototype = {}).constructor = r).prototype.bindEvent = function(e) { if (!r._stubsGenerated && e) { var t = function(t) { return function() { var e = this.originalEvent[t]; return "function" != typeof e ? e : e.bind(this.originalEvent) } }; for (var i in e) i in r.prototype || Object.defineProperty(r.prototype, i, { get: t(i) }); r._stubsGenerated = !0 } return this.originalEvent = e, this } , Object.defineProperties(r.prototype, { type: { value: "wheel" }, deltaMode: { get: function() { return this._deltaMode } }, deltaY: { get: function() { return this._scaleFactor * (this.originalEvent.wheelDelta || this.originalEvent.detail) || 0 } }, deltaX: { get: function() { return this._scaleFactor * this.originalEvent.wheelDeltaX || 0 } }, deltaZ: { value: 0 } }), W.MSPointer = function(e) { this.game = e, this.input = e.input, this.callbackContext = this.game, this.pointerDownCallback = null, this.pointerMoveCallback = null, this.pointerUpCallback = null, this.capture = !1, this.event = null, this.active = !1, this.enabled = !0, this._onMSPointerDown = null, this._onMSPointerMove = null, this._onMSPointerUp = null, this._onMSPointerUpGlobal = null, this._onMSPointerOut = null, this._onMSPointerOver = null } , W.MSPointer.prototype = { start: function() { if (!this.game.device.mspointer) return !1; if (null !== this._onMSPointerDown) return !1; var t = this; this._onMSPointerDown = function(e) { return t.onPointerDown(e) } , this._onMSPointerMove = function(e) { return t.onPointerMove(e) } , this._onMSPointerUp = function(e) { return t.onPointerUp(e) } , this._onMSPointerUpGlobal = function(e) { return t.onPointerUpGlobal(e) } , this._onMSPointerOut = function(e) { return t.onPointerOut(e) } , this._onMSPointerOver = function(e) { return t.onPointerOver(e) } ; var e = this.game.canvas; return e.addEventListener("MSPointerDown", this._onMSPointerDown, !1), e.addEventListener("MSPointerMove", this._onMSPointerMove, !1), e.addEventListener("MSPointerUp", this._onMSPointerUp, !1), e.addEventListener("pointerdown", this._onMSPointerDown, !1), e.addEventListener("pointermove", this._onMSPointerMove, !1), e.addEventListener("pointerup", this._onMSPointerUp, !1), e.style["-ms-content-zooming"] = "none", e.style["-ms-touch-action"] = "none", this.game.device.cocoonJS || (window.addEventListener("MSPointerUp", this._onMSPointerUpGlobal, !0), e.addEventListener("MSPointerOver", this._onMSPointerOver, !0), e.addEventListener("MSPointerOut", this._onMSPointerOut, !0), window.addEventListener("pointerup", this._onMSPointerUpGlobal, !0), e.addEventListener("pointerover", this._onMSPointerOver, !0), e.addEventListener("pointerout", this._onMSPointerOut, !0)), this.active = !0 }, onPointerDown: function(e) { this.event = e, this.capture && e.preventDefault(), this.pointerDownCallback && this.pointerDownCallback.call(this.callbackContext, e), this.input.enabled && this.enabled && (e.identifier = e.pointerId, "mouse" === e.pointerType || 4 === e.pointerType ? this.input.mousePointer.start(e) : this.input.startPointer(e)) }, onPointerMove: function(e) { this.event = e, this.capture && e.preventDefault(), this.pointerMoveCallback && this.pointerMoveCallback.call(this.callbackContext, e), this.input.enabled && this.enabled && (e.identifier = e.pointerId, "mouse" === e.pointerType || 4 === e.pointerType ? this.input.mousePointer.move(e) : this.input.updatePointer(e)) }, onPointerUp: function(e) { this.event = e, this.capture && e.preventDefault(), this.pointerUpCallback && this.pointerUpCallback.call(this.callbackContext, e), this.input.enabled && this.enabled && (e.identifier = e.pointerId, "mouse" === e.pointerType || 4 === e.pointerType ? this.input.mousePointer.stop(e) : this.input.stopPointer(e)) }, onPointerUpGlobal: function(e) { if ("mouse" !== e.pointerType && 4 !== e.pointerType || this.input.mousePointer.withinGame) { var t = this.input.getPointerFromIdentifier(e.identifier); t && t.withinGame && this.onPointerUp(e) } else this.onPointerUp(e) }, onPointerOut: function(e) { if (this.event = e, this.capture && e.preventDefault(), "mouse" === e.pointerType || 4 === e.pointerType) this.input.mousePointer.withinGame = !1; else { var t = this.input.getPointerFromIdentifier(e.identifier); t && (t.withinGame = !1) } this.input.mouse.mouseOutCallback && this.input.mouse.mouseOutCallback.call(this.input.mouse.callbackContext, e), this.input.enabled && this.enabled && this.input.mouse.stopOnGameOut && (e.identifier = 0, t ? t.stop(e) : this.input.mousePointer.stop(e)) }, onPointerOver: function(e) { if (this.event = e, this.capture && e.preventDefault(), "mouse" === e.pointerType || 4 === e.pointerType) this.input.mousePointer.withinGame = !0; else { var t = this.input.getPointerFromIdentifier(e.identifier); t && (t.withinGame = !0) } this.input.mouse.mouseOverCallback && this.input.mouse.mouseOverCallback.call(this.input.mouse.callbackContext, e) }, stop: function() { var e = this.game.canvas; e.removeEventListener("MSPointerDown", this._onMSPointerDown, !1), e.removeEventListener("MSPointerMove", this._onMSPointerMove, !1), e.removeEventListener("MSPointerUp", this._onMSPointerUp, !1), e.removeEventListener("pointerdown", this._onMSPointerDown, !1), e.removeEventListener("pointermove", this._onMSPointerMove, !1), e.removeEventListener("pointerup", this._onMSPointerUp, !1), window.removeEventListener("MSPointerUp", this._onMSPointerUpGlobal, !0), e.removeEventListener("MSPointerOver", this._onMSPointerOver, !0), e.removeEventListener("MSPointerOut", this._onMSPointerOut, !0), window.removeEventListener("pointerup", this._onMSPointerUpGlobal, !0), e.removeEventListener("pointerover", this._onMSPointerOver, !0), e.removeEventListener("pointerout", this._onMSPointerOut, !0), this.active = !1 } }, W.MSPointer.prototype.constructor = W.MSPointer, W.DeviceButton = function(e, t) { this.parent = e, this.game = e.game, this.event = null, this.isDown = !1, this.isUp = !0, this.timeDown = 0, this.timeUp = 0, this.repeats = 0, this.altKey = !1, this.shiftKey = !1, this.ctrlKey = !1, this.value = 0, this.buttonCode = t, this.onDown = new W.Signal, this.onUp = new W.Signal, this.onFloat = new W.Signal } , W.DeviceButton.prototype = { start: function(e, t) { this.isDown || (this.isDown = !0, this.isUp = !1, this.timeDown = this.game.time.time, this.repeats = 0, this.event = e, this.value = t, e && (this.altKey = e.altKey, this.shiftKey = e.shiftKey, this.ctrlKey = e.ctrlKey), this.onDown.dispatch(this, t)) }, stop: function(e, t) { this.isUp || (this.isDown = !1, this.isUp = !0, this.timeUp = this.game.time.time, this.event = e, this.value = t, e && (this.altKey = e.altKey, this.shiftKey = e.shiftKey, this.ctrlKey = e.ctrlKey), this.onUp.dispatch(this, t)) }, padFloat: function(e) { this.value = e, this.onFloat.dispatch(this, e) }, justPressed: function(e) { return e = e || 250, this.isDown && this.timeDown + e > this.game.time.time }, justReleased: function(e) { return e = e || 250, this.isUp && this.timeUp + e > this.game.time.time }, reset: function() { this.isDown = !1, this.isUp = !0, this.timeDown = this.game.time.time, this.repeats = 0, this.altKey = !1, this.shiftKey = !1, this.ctrlKey = !1 }, destroy: function() { this.onDown.dispose(), this.onUp.dispose(), this.onFloat.dispose(), this.parent = null, this.game = null } }, W.DeviceButton.prototype.constructor = W.DeviceButton, Object.defineProperty(W.DeviceButton.prototype, "duration", { get: function() { return this.isUp ? -1 : this.game.time.time - this.timeDown } }), W.Pointer = function(e, t, i) { this.game = e, this.id = t, this.type = W.POINTER, this.exists = !0, this.identifier = 0, this.pointerId = null, this.pointerMode = i || W.PointerMode.CURSOR | W.PointerMode.CONTACT, this.target = null, this.button = null, this.leftButton = new W.DeviceButton(this,W.Pointer.LEFT_BUTTON), this.middleButton = new W.DeviceButton(this,W.Pointer.MIDDLE_BUTTON), this.rightButton = new W.DeviceButton(this,W.Pointer.RIGHT_BUTTON), this.backButton = new W.DeviceButton(this,W.Pointer.BACK_BUTTON), this.forwardButton = new W.DeviceButton(this,W.Pointer.FORWARD_BUTTON), this.eraserButton = new W.DeviceButton(this,W.Pointer.ERASER_BUTTON), this._holdSent = !1, this._history = [], this._nextDrop = 0, this._stateReset = !1, this.withinGame = !1, this.clientX = -1, this.clientY = -1, this.pageX = -1, this.pageY = -1, this.screenX = -1, this.screenY = -1, this.rawMovementX = 0, this.rawMovementY = 0, this.movementX = 0, this.movementY = 0, this.x = -1, this.y = -1, this.isMouse = 0 === t, this.isDown = !1, this.isUp = !0, this.timeDown = 0, this.timeUp = 0, this.previousTapTime = 0, this.totalTouches = 0, this.msSinceLastClick = Number.MAX_VALUE, this.targetObject = null, this.interactiveCandidates = [], this.active = !1, this.dirty = !1, this.position = new W.Point, this.positionDown = new W.Point, this.positionUp = new W.Point, this.circle = new W.Circle(0,0,44), this._clickTrampolines = null, this._trampolineTargetObject = null } , W.Pointer.NO_BUTTON = 0, W.Pointer.LEFT_BUTTON = 1, W.Pointer.RIGHT_BUTTON = 2, W.Pointer.MIDDLE_BUTTON = 4, W.Pointer.BACK_BUTTON = 8, W.Pointer.FORWARD_BUTTON = 16, W.Pointer.ERASER_BUTTON = 32, W.Pointer.prototype = { resetButtons: function() { this.isDown = !1, this.isUp = !0, this.isMouse && (this.leftButton.reset(), this.middleButton.reset(), this.rightButton.reset(), this.backButton.reset(), this.forwardButton.reset(), this.eraserButton.reset()) }, processButtonsDown: function(e, t) { W.Pointer.LEFT_BUTTON & e && this.leftButton.start(t), W.Pointer.RIGHT_BUTTON & e && this.rightButton.start(t), W.Pointer.MIDDLE_BUTTON & e && this.middleButton.start(t), W.Pointer.BACK_BUTTON & e && this.backButton.start(t), W.Pointer.FORWARD_BUTTON & e && this.forwardButton.start(t), W.Pointer.ERASER_BUTTON & e && this.eraserButton.start(t) }, processButtonsUp: function(e, t) { e === W.Mouse.LEFT_BUTTON && this.leftButton.stop(t), e === W.Mouse.RIGHT_BUTTON && this.rightButton.stop(t), e === W.Mouse.MIDDLE_BUTTON && this.middleButton.stop(t), e === W.Mouse.BACK_BUTTON && this.backButton.stop(t), e === W.Mouse.FORWARD_BUTTON && this.forwardButton.stop(t), 5 === e && this.eraserButton.stop(t) }, updateButtons: function(e) { this.button = e.button; var t = "down" === e.type.toLowerCase().substr(-4); void 0 !== e.buttons ? t ? this.processButtonsDown(e.buttons, e) : this.processButtonsUp(e.button, e) : t ? this.leftButton.start(e) : (this.leftButton.stop(e), this.rightButton.stop(e)), 1 === e.buttons && e.ctrlKey && this.leftButton.isDown && (this.leftButton.stop(e), this.rightButton.start(e)), this.isUp = !0, this.isDown = !1, (this.leftButton.isDown || this.rightButton.isDown || this.middleButton.isDown || this.backButton.isDown || this.forwardButton.isDown || this.eraserButton.isDown) && (this.isUp = !1, this.isDown = !0) }, start: function(e) { var t = this.game.input; return e.pointerId && (this.pointerId = e.pointerId), this.identifier = e.identifier, this.target = e.target, this.isMouse ? this.updateButtons(e) : (this.isDown = !0, this.isUp = !1), this.active = !0, this.withinGame = !0, this.dirty = !1, this._history = [], this._clickTrampolines = null, this._trampolineTargetObject = null, this.msSinceLastClick = this.game.time.time - this.timeDown, this.timeDown = this.game.time.time, this._holdSent = !1, this.move(e, !0), this.positionDown.setTo(this.x, this.y), (t.multiInputOverride === W.Input.MOUSE_OVERRIDES_TOUCH || t.multiInputOverride === W.Input.MOUSE_TOUCH_COMBINE || t.multiInputOverride === W.Input.TOUCH_OVERRIDES_MOUSE && 0 === t.totalActivePointers) && (t.x = this.x, t.y = this.y, t.position.setTo(this.x, this.y), t.onDown.dispatch(this, e), t.resetSpeed(this.x, this.y)), this._stateReset = !1, this.totalTouches++, null !== this.targetObject && this.targetObject._touchedHandler(this), this }, update: function() { var e = this.game.input; this.active && (this.dirty && (0 < e.interactiveItems.total && this.processInteractiveObjects(!1), this.dirty = !1), !1 === this._holdSent && this.duration >= e.holdRate && ((e.multiInputOverride === W.Input.MOUSE_OVERRIDES_TOUCH || e.multiInputOverride === W.Input.MOUSE_TOUCH_COMBINE || e.multiInputOverride === W.Input.TOUCH_OVERRIDES_MOUSE && 0 === e.totalActivePointers) && e.onHold.dispatch(this), this._holdSent = !0), e.recordPointerHistory && this.game.time.time >= this._nextDrop && (this._nextDrop = this.game.time.time + e.recordRate, this._history.push({ x: this.position.x, y: this.position.y }), this._history.length > e.recordLimit && this._history.shift())) }, move: function(e, t) { var i = this.game.input; if (!i.pollLocked) { void 0 === t && (t = !1), void 0 !== e.button && (this.button = e.button), t && this.isMouse && this.updateButtons(e), this.clientX = e.clientX, this.clientY = e.clientY, this.pageX = e.pageX, this.pageY = e.pageY, this.screenX = e.screenX, this.screenY = e.screenY, this.isMouse && i.mouse.locked && !t && (this.rawMovementX = e.movementX || e.mozMovementX || e.webkitMovementX || 0, this.rawMovementY = e.movementY || e.mozMovementY || e.webkitMovementY || 0, this.movementX += this.rawMovementX, this.movementY += this.rawMovementY), this.x = (this.pageX - this.game.scale.offset.x) * i.scale.x, this.y = (this.pageY - this.game.scale.offset.y) * i.scale.y, this.position.setTo(this.x, this.y), this.circle.x = this.x, this.circle.y = this.y, (i.multiInputOverride === W.Input.MOUSE_OVERRIDES_TOUCH || i.multiInputOverride === W.Input.MOUSE_TOUCH_COMBINE || i.multiInputOverride === W.Input.TOUCH_OVERRIDES_MOUSE && 0 === i.totalActivePointers) && (i.activePointer = this, i.x = this.x, i.y = this.y, i.position.setTo(i.x, i.y), i.circle.x = i.x, i.circle.y = i.y), this.withinGame = this.game.scale.bounds.contains(this.pageX, this.pageY); for (var r = i.moveCallbacks.length; r--; ) i.moveCallbacks[r].callback.call(i.moveCallbacks[r].context, this, this.x, this.y, t); return null !== this.targetObject && !0 === this.targetObject.isDragged ? !1 === this.targetObject.update(this) && (this.targetObject = null) : 0 < i.interactiveItems.total && this.processInteractiveObjects(t), this } }, processInteractiveObjects: function(e) { var t = 0 , i = -1 , r = null , o = this.game.input.interactiveItems.first; for (this.interactiveCandidates = []; o; ) o.checked = !1, o.validForInput(i, t, !1) && (o.checked = !0, (e && o.checkPointerDown(this, !0) || !e && o.checkPointerOver(this, !0)) && (t = o.sprite.renderOrderID, i = o.priorityID, r = o, this.interactiveCandidates.push(o))), o = this.game.input.interactiveItems.next; for (o = this.game.input.interactiveItems.first; o; ) !o.checked && o.validForInput(i, t, !0) && (e && o.checkPointerDown(this, !1) || !e && o.checkPointerOver(this, !1)) && (t = o.sprite.renderOrderID, i = o.priorityID, r = o, this.interactiveCandidates.push(o)), o = this.game.input.interactiveItems.next; return this.game.input.customCandidateHandler && (r = this.game.input.customCandidateHandler.call(this.game.input.customCandidateHandlerContext, this, this.interactiveCandidates, r)), this.swapTarget(r, !1), null !== this.targetObject }, swapTarget: function(e, t) { void 0 === t && (t = !1), null === e ? this.targetObject && (this.targetObject._pointerOutHandler(this, t), this.targetObject = null) : null === this.targetObject ? (this.targetObject = e)._pointerOverHandler(this, t) : this.targetObject === e ? !1 === e.update(this) && (this.targetObject = null) : (this.targetObject._pointerOutHandler(this, t), this.targetObject = e, this.targetObject._pointerOverHandler(this, t)) }, leave: function(e) { this.withinGame = !1, this.move(e, !1) }, stop: function(e) { var t = this.game.input; if (!this._stateReset || !this.withinGame) return this.timeUp = this.game.time.time, (t.multiInputOverride === W.Input.MOUSE_OVERRIDES_TOUCH || t.multiInputOverride === W.Input.MOUSE_TOUCH_COMBINE || t.multiInputOverride === W.Input.TOUCH_OVERRIDES_MOUSE && 0 === t.totalActivePointers) && (t.onUp.dispatch(this, e), 0 <= this.duration && this.duration <= t.tapRate && (this.timeUp - this.previousTapTime < t.doubleTapRate ? t.onTap.dispatch(this, !0) : t.onTap.dispatch(this, !1), this.previousTapTime = this.timeUp)), this.isMouse ? this.updateButtons(e) : (this.isDown = !1, this.isUp = !0), 0 < this.id && (this.active = !1), this.withinGame = this.game.scale.bounds.contains(e.pageX, e.pageY), this.pointerId = null, this.identifier = null, this.positionUp.setTo(this.x, this.y), !1 === this.isMouse && t.currentPointers--, t.interactiveItems.callAll("_releasedHandler", this), this._clickTrampolines && (this._trampolineTargetObject = this.targetObject), this.targetObject = null, this; e.preventDefault() }, justPressed: function(e) { return e = e || this.game.input.justPressedRate, !0 === this.isDown && this.timeDown + e > this.game.time.time }, justReleased: function(e) { return e = e || this.game.input.justReleasedRate, this.isUp && this.timeUp + e > this.game.time.time }, addClickTrampoline: function(e, t, i, r) { if (this.isDown) { for (var o = this._clickTrampolines = this._clickTrampolines || [], s = 0; s < o.length; s++) if (o[s].name === e) { o.splice(s, 1); break } o.push({ name: e, targetObject: this.targetObject, callback: t, callbackContext: i, callbackArgs: r }) } }, processClickTrampolines: function() { var e = this._clickTrampolines; if (e) { for (var t = 0; t < e.length; t++) { var i = e[t]; i.targetObject === this._trampolineTargetObject && i.callback.apply(i.callbackContext, i.callbackArgs) } this._clickTrampolines = null, this._trampolineTargetObject = null } }, reset: function() { !1 === this.isMouse && (this.active = !1), this.pointerId = null, this.identifier = null, this.dirty = !1, this.totalTouches = 0, this._holdSent = !1, this._history.length = 0, this._stateReset = !0, this.resetButtons(), this.targetObject && this.targetObject._releasedHandler(this), this.targetObject = null }, resetMovement: function() { this.movementX = 0, this.movementY = 0 } }, W.Pointer.prototype.constructor = W.Pointer, Object.defineProperty(W.Pointer.prototype, "duration", { get: function() { return this.isUp ? -1 : this.game.time.time - this.timeDown } }), Object.defineProperty(W.Pointer.prototype, "worldX", { get: function() { return this.game.world.camera.x + this.x } }), Object.defineProperty(W.Pointer.prototype, "worldY", { get: function() { return this.game.world.camera.y + this.y } }), W.PointerMode = { CURSOR: 1, CONTACT: 2 }, W.Touch = function(e) { this.game = e, this.enabled = !0, this.touchLockCallbacks = [], this.callbackContext = this.game, this.touchStartCallback = null, this.touchMoveCallback = null, this.touchEndCallback = null, this.touchEnterCallback = null, this.touchLeaveCallback = null, this.touchCancelCallback = null, this.preventDefault = !0, this.event = null, this._onTouchStart = null, this._onTouchMove = null, this._onTouchEnd = null, this._onTouchEnter = null, this._onTouchLeave = null, this._onTouchCancel = null, this._onTouchMove = null } , W.Touch.prototype = { start: function() { if (null === this._onTouchStart) { var t = this; this.game.device.touch && (this._onTouchStart = function(e) { return t.onTouchStart(e) } , this._onTouchMove = function(e) { return t.onTouchMove(e) } , this._onTouchEnd = function(e) { return t.onTouchEnd(e) } , this._onTouchEnter = function(e) { return t.onTouchEnter(e) } , this._onTouchLeave = function(e) { return t.onTouchLeave(e) } , this._onTouchCancel = function(e) { return t.onTouchCancel(e) } , this.game.canvas.addEventListener("touchstart", this._onTouchStart, !1), this.game.canvas.addEventListener("touchmove", this._onTouchMove, !1), this.game.canvas.addEventListener("touchend", this._onTouchEnd, !1), this.game.canvas.addEventListener("touchcancel", this._onTouchCancel, !1), this.game.device.cocoonJS || (this.game.canvas.addEventListener("touchenter", this._onTouchEnter, !1), this.game.canvas.addEventListener("touchleave", this._onTouchLeave, !1))) } }, consumeDocumentTouches: function() { this._documentTouchMove = function(e) { e.preventDefault() } , document.addEventListener("touchmove", this._documentTouchMove, !1) }, addTouchLockCallback: function(e, t, i) { void 0 === i && (i = !1), this.touchLockCallbacks.push({ callback: e, context: t, onEnd: i }) }, removeTouchLockCallback: function(e, t) { for (var i = this.touchLockCallbacks.length; i--; ) if (this.touchLockCallbacks[i].callback === e && this.touchLockCallbacks[i].context === t) return this.touchLockCallbacks.splice(i, 1), !0; return !1 }, onTouchStart: function(e) { for (var t = this.touchLockCallbacks.length; t--; ) { var i = this.touchLockCallbacks[t]; !i.onEnd && i.callback.call(i.context, this, e) && this.touchLockCallbacks.splice(t, 1) } if (this.event = e, this.game.input.enabled && this.enabled) { this.touchStartCallback && this.touchStartCallback.call(this.callbackContext, e), this.preventDefault && e.preventDefault(); for (t = 0; t < e.changedTouches.length; t++) this.game.input.startPointer(e.changedTouches[t]) } }, onTouchCancel: function(e) { if (this.event = e, this.touchCancelCallback && this.touchCancelCallback.call(this.callbackContext, e), this.game.input.enabled && this.enabled) { this.preventDefault && e.preventDefault(); for (var t = 0; t < e.changedTouches.length; t++) this.game.input.stopPointer(e.changedTouches[t]) } }, onTouchEnter: function(e) { this.event = e, this.touchEnterCallback && this.touchEnterCallback.call(this.callbackContext, e), this.game.input.enabled && this.enabled && this.preventDefault && e.preventDefault() }, onTouchLeave: function(e) { this.event = e, this.touchLeaveCallback && this.touchLeaveCallback.call(this.callbackContext, e), this.preventDefault && e.preventDefault() }, onTouchMove: function(e) { this.event = e, this.touchMoveCallback && this.touchMoveCallback.call(this.callbackContext, e), this.preventDefault && e.preventDefault(); for (var t = 0; t < e.changedTouches.length; t++) this.game.input.updatePointer(e.changedTouches[t]) }, onTouchEnd: function(e) { for (var t = this.touchLockCallbacks.length; t--; ) { var i = this.touchLockCallbacks[t]; i.onEnd && i.callback.call(i.context, this, e) && this.touchLockCallbacks.splice(t, 1) } this.event = e, this.touchEndCallback && this.touchEndCallback.call(this.callbackContext, e), this.preventDefault && e.preventDefault(); for (t = 0; t < e.changedTouches.length; t++) this.game.input.stopPointer(e.changedTouches[t]) }, stop: function() { this.game.device.touch && (this.game.canvas.removeEventListener("touchstart", this._onTouchStart), this.game.canvas.removeEventListener("touchmove", this._onTouchMove), this.game.canvas.removeEventListener("touchend", this._onTouchEnd), this.game.canvas.removeEventListener("touchenter", this._onTouchEnter), this.game.canvas.removeEventListener("touchleave", this._onTouchLeave), this.game.canvas.removeEventListener("touchcancel", this._onTouchCancel)) } }, W.Touch.prototype.constructor = W.Touch, W.InputHandler = function(e) { this.sprite = e, this.game = e.game, this.enabled = !1, this.checked = !1, this.priorityID = 0, this.useHandCursor = !1, this._setHandCursor = !1, this.isDragged = !1, this.allowHorizontalDrag = !0, this.allowVerticalDrag = !0, this.bringToTop = !1, this.snapOffset = null, this.snapOnDrag = !1, this.snapOnRelease = !1, this.snapX = 0, this.snapY = 0, this.snapOffsetX = 0, this.snapOffsetY = 0, this.pixelPerfectOver = !1, this.pixelPerfectClick = !1, this.pixelPerfectAlpha = 255, this.draggable = !1, this.boundsRect = null, this.boundsSprite = null, this.scaleLayer = !1, this.dragOffset = new W.Point, this.dragFromCenter = !1, this.dragStopBlocksInputUp = !1, this.dragStartPoint = new W.Point, this.dragDistanceThreshold = 0, this.dragTimeThreshold = 0, this.downPoint = new W.Point, this.snapPoint = new W.Point, this._dragPoint = new W.Point, this._dragPhase = !1, this._pendingDrag = !1, this._dragTimePass = !1, this._dragDistancePass = !1, this._wasEnabled = !1, this._tempPoint = new W.Point, this._pointerData = [], this._pointerData.push({ id: 0, x: 0, y: 0, camX: 0, camY: 0, isDown: !1, isUp: !1, isOver: !1, isOut: !1, timeOver: 0, timeOut: 0, timeDown: 0, timeUp: 0, downDuration: 0, isDragged: !1 }) } , W.InputHandler.prototype = { start: function(e, t) { if (e = e || 0, void 0 === t && (t = !1), !1 === this.enabled) { this.game.input.interactiveItems.add(this), this.useHandCursor = t, this.priorityID = e; for (var i = 0; i < 10; i++) this._pointerData[i] = { id: i, x: 0, y: 0, isDown: !1, isUp: !1, isOver: !1, isOut: !1, timeOver: 0, timeOut: 0, timeDown: 0, timeUp: 0, downDuration: 0, isDragged: !1 }; this.snapOffset = new W.Point, this.enabled = !0, this._wasEnabled = !0 } return this.sprite.events.onAddedToGroup.add(this.addedToGroup, this), this.sprite.events.onRemovedFromGroup.add(this.removedFromGroup, this), this.sprite }, addedToGroup: function() { this._dragPhase || this._wasEnabled && !this.enabled && this.start() }, removedFromGroup: function() { this._dragPhase || (this.enabled ? (this._wasEnabled = !0, this.stop()) : this._wasEnabled = !1) }, reset: function() { this.enabled = !1; for (var e = 0; e < 10; e++) this._pointerData[e] = { id: e, x: 0, y: 0, isDown: !1, isUp: !1, isOver: !1, isOut: !1, timeOver: 0, timeOut: 0, timeDown: 0, timeUp: 0, downDuration: 0, isDragged: !1 } }, stop: function() { !1 !== this.enabled && (this.enabled = !1, this.game.input.interactiveItems.remove(this)) }, destroy: function() { this.sprite && (this._setHandCursor && (this.game.canvas.style.cursor = "default", this._setHandCursor = !1), this.enabled = !1, this.game.input.interactiveItems.remove(this), this._pointerData.length = 0, this.boundsRect = null, this.boundsSprite = null, this.sprite = null) }, validForInput: function(e, t, i) { return void 0 === i && (i = !0), !(!this.enabled || 0 === this.sprite.scale.x || 0 === this.sprite.scale.y || this.priorityID < this.game.input.minPriorityID || this.sprite.parent && this.sprite.parent.ignoreChildInput) && (!(!i && (this.pixelPerfectClick || this.pixelPerfectOver)) && (this.priorityID > e || this.priorityID === e && this.sprite.renderOrderID > t)) }, isPixelPerfect: function() { return this.pixelPerfectClick || this.pixelPerfectOver }, pointerX: function(e) { return e = e || 0, this._pointerData[e].x }, pointerY: function(e) { return e = e || 0, this._pointerData[e].y }, pointerDown: function(e) { return e = e || 0, this._pointerData[e].isDown }, pointerUp: function(e) { return e = e || 0, this._pointerData[e].isUp }, pointerTimeDown: function(e) { return e = e || 0, this._pointerData[e].timeDown }, pointerTimeUp: function(e) { return e = e || 0, this._pointerData[e].timeUp }, pointerOver: function(e) { if (!this.enabled) return !1; if (void 0 !== e) return this._pointerData[e].isOver; for (var t = 0; t < 10; t++) if (this._pointerData[t].isOver) return !0; return !1 }, pointerOut: function(e) { if (!this.enabled) return !1; if (void 0 !== e) return this._pointerData[e].isOut; for (var t = 0; t < 10; t++) if (this._pointerData[t].isOut) return !0 }, pointerTimeOver: function(e) { return e = e || 0, this._pointerData[e].timeOver }, pointerTimeOut: function(e) { return e = e || 0, this._pointerData[e].timeOut }, pointerDragged: function(e) { return e = e || 0, this._pointerData[e].isDragged }, checkPointerDown: function(e, t) { return !!(e.isDown && this.enabled && this.sprite && this.sprite.parent && this.sprite.visible && this.sprite.parent.visible && 0 !== this.sprite.worldScale.x && 0 !== this.sprite.worldScale.y) && (!!this.game.input.hitTest(this.sprite, e, this._tempPoint) && (void 0 === t && (t = !1), !(!t && this.pixelPerfectClick) || this.checkPixel(this._tempPoint.x, this._tempPoint.y))) }, checkPointerOver: function(e, t) { return !!(this.enabled && this.sprite && this.sprite.parent && this.sprite.visible && this.sprite.parent.visible && 0 !== this.sprite.worldScale.x && 0 !== this.sprite.worldScale.y) && (!!this.game.input.hitTest(this.sprite, e, this._tempPoint) && (void 0 === t && (t = !1), !(!t && this.pixelPerfectOver) || this.checkPixel(this._tempPoint.x, this._tempPoint.y))) }, checkPixel: function(e, t, i) { if (this.sprite.texture.baseTexture.source) { if (null === e && null === t) { this.game.input.getLocalPosition(this.sprite, i, this._tempPoint); e = this._tempPoint.x, t = this._tempPoint.y } if (0 !== this.sprite.anchor.x && (e -= -this.sprite.texture.frame.width * this.sprite.anchor.x), 0 !== this.sprite.anchor.y && (t -= -this.sprite.texture.frame.height * this.sprite.anchor.y), e += this.sprite.texture.frame.x, t += this.sprite.texture.frame.y, this.sprite.texture.trim && (e -= this.sprite.texture.trim.x, t -= this.sprite.texture.trim.y, e < this.sprite.texture.crop.x || e > this.sprite.texture.crop.right || t < this.sprite.texture.crop.y || t > this.sprite.texture.crop.bottom)) return this._dx = e, this._dy = t, !1; if (this._dx = e, this._dy = t, this.game.input.hitContext.clearRect(0, 0, 1, 1), this.game.input.hitContext.drawImage(this.sprite.texture.baseTexture.source, e, t, 1, 1, 0, 0, 1, 1), this.game.input.hitContext.getImageData(0, 0, 1, 1).data[3] >= this.pixelPerfectAlpha) return !0 } return !1 }, update: function(e) { if (null !== this.sprite && void 0 !== this.sprite.parent) return this.enabled && this.sprite.visible && this.sprite.parent.visible ? this._pendingDrag ? (this._dragDistancePass || (this._dragDistancePass = W.Math.distance(e.x, e.y, this.downPoint.x, this.downPoint.y) >= this.dragDistanceThreshold), this._dragDistancePass && this._dragTimePass && this.startDrag(e), !0) : this.draggable && this._draggedPointerID === e.id ? this.updateDrag(e, !1) : this._pointerData[e.id].isOver ? this.checkPointerOver(e) ? (this._pointerData[e.id].x = e.x - this.sprite.x, this._pointerData[e.id].y = e.y - this.sprite.y, !0) : (this._pointerOutHandler(e), !1) : void 0 : (this._pointerOutHandler(e), !1) }, _pointerOverHandler: function(e, t) { if (null !== this.sprite) { var i = this._pointerData[e.id]; if (!1 === i.isOver || e.dirty) { var r = !1 === i.isOver; i.isOver = !0, i.isOut = !1, i.timeOver = this.game.time.time, i.x = e.x - this.sprite.x, i.y = e.y - this.sprite.y, this.useHandCursor && !1 === i.isDragged && (this.game.canvas.style.cursor = "pointer", this._setHandCursor = !0), !t && r && this.sprite && this.sprite.events && this.sprite.events.onInputOver$dispatch(this.sprite, e), this.sprite.parent && this.sprite.parent.type === W.GROUP && this.sprite.parent.onChildInputOver.dispatch(this.sprite, e) } } }, _pointerOutHandler: function(e, t) { if (null !== this.sprite) { var i = this._pointerData[e.id]; i.isOver = !1, i.isOut = !0, i.timeOut = this.game.time.time, this.useHandCursor && !1 === i.isDragged && (this.game.canvas.style.cursor = "default", this._setHandCursor = !1), !t && this.sprite && this.sprite.events && (this.sprite.events.onInputOut$dispatch(this.sprite, e), this.sprite && this.sprite.parent && this.sprite.parent.type === W.GROUP && this.sprite.parent.onChildInputOut.dispatch(this.sprite, e)) } }, _touchedHandler: function(e) { if (null !== this.sprite) { var t = this._pointerData[e.id]; if (!t.isDown && t.isOver) { if (this.pixelPerfectClick && !this.checkPixel(null, null, e)) return; if (t.isDown = !0, t.isUp = !1, t.timeDown = this.game.time.time, this.downPoint.set(e.x, e.y), e.dirty = !0, this.sprite && this.sprite.events && (this.sprite.events.onInputDown$dispatch(this.sprite, e), this.sprite && this.sprite.parent && this.sprite.parent.type === W.GROUP && this.sprite.parent.onChildInputDown.dispatch(this.sprite, e), null === this.sprite)) return; this.draggable && !1 === this.isDragged && (0 === this.dragTimeThreshold && 0 === this.dragDistanceThreshold ? this.startDrag(e) : (this._pendingDrag = !0, this._dragDistancePass = 0 === this.dragDistanceThreshold, 0 < this.dragTimeThreshold ? (this._dragTimePass = !1, this.game.time.events.add(this.dragTimeThreshold, this.dragTimeElapsed, this, e)) : this._dragTimePass = !0)), this.bringToTop && this.sprite.bringToTop() } } }, dragTimeElapsed: function(e) { this._dragTimePass = !0, this._pendingDrag && this.sprite && this._dragDistancePass && this.startDrag(e) }, _releasedHandler: function(e) { if (null !== this.sprite) { var t = this._pointerData[e.id]; if (t.isDown && e.isUp) { t.isDown = !1, t.isUp = !0, t.timeUp = this.game.time.time, t.downDuration = t.timeUp - t.timeDown; var i = this.checkPointerOver(e); this.sprite && this.sprite.events && (this.dragStopBlocksInputUp && (!this.dragStopBlocksInputUp || this.draggable && this.isDragged && this._draggedPointerID === e.id) || this.sprite.events.onInputUp$dispatch(this.sprite, e, i), this.sprite && this.sprite.parent && this.sprite.parent.type === W.GROUP && this.sprite.parent.onChildInputUp.dispatch(this.sprite, e, i), i && (i = this.checkPointerOver(e))), !(t.isOver = i) && this.useHandCursor && (this.game.canvas.style.cursor = "default", this._setHandCursor = !1), e.dirty = !0, this._pendingDrag = !1, this.draggable && this.isDragged && this._draggedPointerID === e.id && this.stopDrag(e) } } }, updateDrag: function(e, t) { if (void 0 === t && (t = !1), e.isUp) return this.stopDrag(e), !1; var i = this.globalToLocalX(e.x) + this._dragPoint.x + this.dragOffset.x , r = this.globalToLocalY(e.y) + this._dragPoint.y + this.dragOffset.y; if (this.sprite.fixedToCamera) this.allowHorizontalDrag && (this.sprite.cameraOffset.x = i), this.allowVerticalDrag && (this.sprite.cameraOffset.y = r), this.boundsRect && this.checkBoundsRect(), this.boundsSprite && this.checkBoundsSprite(), this.snapOnDrag && (this.sprite.cameraOffset.x = Math.round((this.sprite.cameraOffset.x - this.snapOffsetX % this.snapX) / this.snapX) * this.snapX + this.snapOffsetX % this.snapX, this.sprite.cameraOffset.y = Math.round((this.sprite.cameraOffset.y - this.snapOffsetY % this.snapY) / this.snapY) * this.snapY + this.snapOffsetY % this.snapY, this.snapPoint.set(this.sprite.cameraOffset.x, this.sprite.cameraOffset.y)); else { var o = this.game.camera.x - this._pointerData[e.id].camX , s = this.game.camera.y - this._pointerData[e.id].camY; this.allowHorizontalDrag && (this.sprite.x = i + o), this.allowVerticalDrag && (this.sprite.y = r + s), this.boundsRect && this.checkBoundsRect(), this.boundsSprite && this.checkBoundsSprite(), this.snapOnDrag && (this.sprite.x = Math.round((this.sprite.x - this.snapOffsetX % this.snapX) / this.snapX) * this.snapX + this.snapOffsetX % this.snapX, this.sprite.y = Math.round((this.sprite.y - this.snapOffsetY % this.snapY) / this.snapY) * this.snapY + this.snapOffsetY % this.snapY, this.snapPoint.set(this.sprite.x, this.sprite.y)) } return this.sprite.events.onDragUpdate.dispatch(this.sprite, e, i, r, this.snapPoint, t), !0 }, justOver: function(e, t) { return e = e || 0, t = t || 500, this._pointerData[e].isOver && this.overDuration(e) < t }, justOut: function(e, t) { return e = e || 0, t = t || 500, this._pointerData[e].isOut && this.game.time.time - this._pointerData[e].timeOut < t }, justPressed: function(e, t) { return e = e || 0, t = t || 500, this._pointerData[e].isDown && this.downDuration(e) < t }, justReleased: function(e, t) { return e = e || 0, t = t || 500, this._pointerData[e].isUp && this.game.time.time - this._pointerData[e].timeUp < t }, overDuration: function(e) { return e = e || 0, this._pointerData[e].isOver ? this.game.time.time - this._pointerData[e].timeOver : -1 }, downDuration: function(e) { return e = e || 0, this._pointerData[e].isDown ? this.game.time.time - this._pointerData[e].timeDown : -1 }, enableDrag: function(e, t, i, r, o, s) { void 0 === e && (e = !1), void 0 === t && (t = !1), void 0 === i && (i = !1), void 0 === r && (r = 255), void 0 === o && (o = null), void 0 === s && (s = null), this._dragPoint = new W.Point, this.draggable = !0, this.bringToTop = t, this.dragOffset = new W.Point, this.dragFromCenter = e, this.pixelPerfectClick = i, this.pixelPerfectAlpha = r, o && (this.boundsRect = o), s && (this.boundsSprite = s) }, disableDrag: function() { if (this._pointerData) for (var e = 0; e < 10; e++) this._pointerData[e].isDragged = !1; this.draggable = !1, this.isDragged = !1, this._draggedPointerID = -1, this._pendingDrag = !1 }, startDrag: function(e) { var t = this.sprite.x , i = this.sprite.y; if (this.isDragged = !0, this._draggedPointerID = e.id, this._pointerData[e.id].camX = this.game.camera.x, this._pointerData[e.id].camY = this.game.camera.y, this._pointerData[e.id].isDragged = !0, this.sprite.fixedToCamera) { if (this.dragFromCenter) { var r = this.sprite.getBounds(); this.sprite.cameraOffset.x = this.globalToLocalX(e.x) + (this.sprite.cameraOffset.x - r.centerX), this.sprite.cameraOffset.y = this.globalToLocalY(e.y) + (this.sprite.cameraOffset.y - r.centerY) } this._dragPoint.setTo(this.sprite.cameraOffset.x - e.x, this.sprite.cameraOffset.y - e.y) } else { if (this.dragFromCenter) { r = this.sprite.getBounds(); this.sprite.x = this.globalToLocalX(e.x) + (this.sprite.x - r.centerX), this.sprite.y = this.globalToLocalY(e.y) + (this.sprite.y - r.centerY) } this._dragPoint.setTo(this.sprite.x - this.globalToLocalX(e.x), this.sprite.y - this.globalToLocalY(e.y)) } this.updateDrag(e, !0), this.bringToTop && (this._dragPhase = !0, this.sprite.bringToTop()), this.dragStartPoint.set(t, i), this.sprite.events.onDragStart$dispatch(this.sprite, e, t, i), this._pendingDrag = !1 }, globalToLocalX: function(e) { return this.scaleLayer && (e -= this.game.scale.grid.boundsFluid.x, e *= this.game.scale.grid.scaleFluidInversed.x), e }, globalToLocalY: function(e) { return this.scaleLayer && (e -= this.game.scale.grid.boundsFluid.y, e *= this.game.scale.grid.scaleFluidInversed.y), e }, stopDrag: function(e) { this.isDragged = !1, this._draggedPointerID = -1, this._pointerData[e.id].isDragged = !1, this._dragPhase = !1, this._pendingDrag = !1, this.snapOnRelease && (this.sprite.fixedToCamera ? (this.sprite.cameraOffset.x = Math.round((this.sprite.cameraOffset.x - this.snapOffsetX % this.snapX) / this.snapX) * this.snapX + this.snapOffsetX % this.snapX, this.sprite.cameraOffset.y = Math.round((this.sprite.cameraOffset.y - this.snapOffsetY % this.snapY) / this.snapY) * this.snapY + this.snapOffsetY % this.snapY) : (this.sprite.x = Math.round((this.sprite.x - this.snapOffsetX % this.snapX) / this.snapX) * this.snapX + this.snapOffsetX % this.snapX, this.sprite.y = Math.round((this.sprite.y - this.snapOffsetY % this.snapY) / this.snapY) * this.snapY + this.snapOffsetY % this.snapY)), this.sprite.events.onDragStop$dispatch(this.sprite, e), !1 === this.checkPointerOver(e) && this._pointerOutHandler(e) }, setDragLock: function(e, t) { void 0 === e && (e = !0), void 0 === t && (t = !0), this.allowHorizontalDrag = e, this.allowVerticalDrag = t }, enableSnap: function(e, t, i, r, o, s) { void 0 === i && (i = !0), void 0 === r && (r = !1), void 0 === o && (o = 0), void 0 === s && (s = 0), this.snapX = e, this.snapY = t, this.snapOffsetX = o, this.snapOffsetY = s, this.snapOnDrag = i, this.snapOnRelease = r }, disableSnap: function() { this.snapOnDrag = !1, this.snapOnRelease = !1 }, checkBoundsRect: function() { this.sprite.fixedToCamera ? (this.sprite.cameraOffset.x < this.boundsRect.left ? this.sprite.cameraOffset.x = this.boundsRect.left : this.sprite.cameraOffset.x + this.sprite.width > this.boundsRect.right && (this.sprite.cameraOffset.x = this.boundsRect.right - this.sprite.width), this.sprite.cameraOffset.y < this.boundsRect.top ? this.sprite.cameraOffset.y = this.boundsRect.top : this.sprite.cameraOffset.y + this.sprite.height > this.boundsRect.bottom && (this.sprite.cameraOffset.y = this.boundsRect.bottom - this.sprite.height)) : (this.sprite.left < this.boundsRect.left ? this.sprite.x = this.boundsRect.x + this.sprite.offsetX : this.sprite.right > this.boundsRect.right && (this.sprite.x = this.boundsRect.right - (this.sprite.width - this.sprite.offsetX)), this.sprite.top < this.boundsRect.top ? this.sprite.y = this.boundsRect.top + this.sprite.offsetY : this.sprite.bottom > this.boundsRect.bottom && (this.sprite.y = this.boundsRect.bottom - (this.sprite.height - this.sprite.offsetY))) }, checkBoundsSprite: function() { this.sprite.fixedToCamera && this.boundsSprite.fixedToCamera ? (this.sprite.cameraOffset.x < this.boundsSprite.cameraOffset.x ? this.sprite.cameraOffset.x = this.boundsSprite.cameraOffset.x : this.sprite.cameraOffset.x + this.sprite.width > this.boundsSprite.cameraOffset.x + this.boundsSprite.width && (this.sprite.cameraOffset.x = this.boundsSprite.cameraOffset.x + this.boundsSprite.width - this.sprite.width), this.sprite.cameraOffset.y < this.boundsSprite.cameraOffset.y ? this.sprite.cameraOffset.y = this.boundsSprite.cameraOffset.y : this.sprite.cameraOffset.y + this.sprite.height > this.boundsSprite.cameraOffset.y + this.boundsSprite.height && (this.sprite.cameraOffset.y = this.boundsSprite.cameraOffset.y + this.boundsSprite.height - this.sprite.height)) : (this.sprite.left < this.boundsSprite.left ? this.sprite.x = this.boundsSprite.left + this.sprite.offsetX : this.sprite.right > this.boundsSprite.right && (this.sprite.x = this.boundsSprite.right - (this.sprite.width - this.sprite.offsetX)), this.sprite.top < this.boundsSprite.top ? this.sprite.y = this.boundsSprite.top + this.sprite.offsetY : this.sprite.bottom > this.boundsSprite.bottom && (this.sprite.y = this.boundsSprite.bottom - (this.sprite.height - this.sprite.offsetY))) } }, W.InputHandler.prototype.constructor = W.InputHandler, W.Gamepad = function(e) { this.game = e, this._gamepadIndexMap = {}, this._rawPads = [], this._active = !1, this.enabled = !0, this._gamepadSupportAvailable = !!navigator.webkitGetGamepads || !!navigator.webkitGamepads || -1 !== navigator.userAgent.indexOf("Firefox/") || !!navigator.getGamepads, this._prevRawGamepadTypes = [], this._prevTimestamps = [], (this.callbackContext = this).onConnectCallback = null, this.onDisconnectCallback = null, this.onDownCallback = null, this.onUpCallback = null, this.onAxisCallback = null, this.onFloatCallback = null, this._ongamepadconnected = null, this._gamepaddisconnected = null, this._gamepads = [new W.SinglePad(e,this), new W.SinglePad(e,this), new W.SinglePad(e,this), new W.SinglePad(e,this)] } , W.Gamepad.prototype = { addCallbacks: function(e, t) { void 0 !== t && (this.onConnectCallback = "function" == typeof t.onConnect ? t.onConnect : this.onConnectCallback, this.onDisconnectCallback = "function" == typeof t.onDisconnect ? t.onDisconnect : this.onDisconnectCallback, this.onDownCallback = "function" == typeof t.onDown ? t.onDown : this.onDownCallback, this.onUpCallback = "function" == typeof t.onUp ? t.onUp : this.onUpCallback, this.onAxisCallback = "function" == typeof t.onAxis ? t.onAxis : this.onAxisCallback, this.onFloatCallback = "function" == typeof t.onFloat ? t.onFloat : this.onFloatCallback, this.callbackContext = e) }, start: function() { if (!this._active) { this._active = !0; var t = this; this._onGamepadConnected = function(e) { return t.onGamepadConnected(e) } , this._onGamepadDisconnected = function(e) { return t.onGamepadDisconnected(e) } , window.addEventListener("gamepadconnected", this._onGamepadConnected, !1), window.addEventListener("gamepaddisconnected", this._onGamepadDisconnected, !1) } }, onGamepadConnected: function(e) { var t = e.gamepad; this._rawPads.push(t), this._gamepads[t.index].connect(t) }, onGamepadDisconnected: function(e) { var t = e.gamepad; for (var i in this._rawPads) this._rawPads[i].index === t.index && this._rawPads.splice(i, 1); this._gamepads[t.index].disconnect() }, update: function() { this._pollGamepads(), this.pad1.pollStatus(), this.pad2.pollStatus(), this.pad3.pollStatus(), this.pad4.pollStatus() }, _pollGamepads: function() { if (this._active) { if (navigator.getGamepads) var e = navigator.getGamepads(); else if (navigator.webkitGetGamepads) e = navigator.webkitGetGamepads(); else if (navigator.webkitGamepads) e = navigator.webkitGamepads(); if (e) { for (var t = !(this._rawPads = []), i = 0; i < e.length && (typeof e[i] !== this._prevRawGamepadTypes[i] && (t = !0, this._prevRawGamepadTypes[i] = typeof e[i]), e[i] && this._rawPads.push(e[i]), 3 !== i); i++) ; for (var r = 0; r < this._gamepads.length; r++) this._gamepads[r]._rawPad = this._rawPads[r]; if (t) { for (var o, s = { rawIndices: {}, padIndices: {} }, a = 0; a < this._gamepads.length; a++) if ((o = this._gamepads[a]).connected) for (var n = 0; n < this._rawPads.length; n++) this._rawPads[n].index === o.index && (s.rawIndices[o.index] = !0, s.padIndices[a] = !0); for (var h = 0; h < this._gamepads.length; h++) if (o = this._gamepads[h], !s.padIndices[h]) { this._rawPads.length < 1 && o.disconnect(); for (var c = 0; c < this._rawPads.length && !s.padIndices[h]; c++) { var l = this._rawPads[c]; if (l) { if (s.rawIndices[l.index]) { o.disconnect(); continue } o.connect(l), s.rawIndices[l.index] = !0, s.padIndices[h] = !0 } else o.disconnect() } } } } } }, setDeadZones: function(e) { for (var t = 0; t < this._gamepads.length; t++) this._gamepads[t].deadZone = e }, stop: function() { this._active = !1, window.removeEventListener("gamepadconnected", this._onGamepadConnected), window.removeEventListener("gamepaddisconnected", this._onGamepadDisconnected) }, reset: function() { this.update(); for (var e = 0; e < this._gamepads.length; e++) this._gamepads[e].reset() }, justPressed: function(e, t) { for (var i = 0; i < this._gamepads.length; i++) if (!0 === this._gamepads[i].justPressed(e, t)) return !0; return !1 }, justReleased: function(e, t) { for (var i = 0; i < this._gamepads.length; i++) if (!0 === this._gamepads[i].justReleased(e, t)) return !0; return !1 }, isDown: function(e) { for (var t = 0; t < this._gamepads.length; t++) if (!0 === this._gamepads[t].isDown(e)) return !0; return !1 }, destroy: function() { this.stop(); for (var e = 0; e < this._gamepads.length; e++) this._gamepads[e].destroy() } }, W.Gamepad.prototype.constructor = W.Gamepad, Object.defineProperty(W.Gamepad.prototype, "active", { get: function() { return this._active } }), Object.defineProperty(W.Gamepad.prototype, "supported", { get: function() { return this._gamepadSupportAvailable } }), Object.defineProperty(W.Gamepad.prototype, "padsConnected", { get: function() { return this._rawPads.length } }), Object.defineProperty(W.Gamepad.prototype, "pad1", { get: function() { return this._gamepads[0] } }), Object.defineProperty(W.Gamepad.prototype, "pad2", { get: function() { return this._gamepads[1] } }), Object.defineProperty(W.Gamepad.prototype, "pad3", { get: function() { return this._gamepads[2] } }), Object.defineProperty(W.Gamepad.prototype, "pad4", { get: function() { return this._gamepads[3] } }), W.Gamepad.BUTTON_0 = 0, W.Gamepad.BUTTON_1 = 1, W.Gamepad.BUTTON_2 = 2, W.Gamepad.BUTTON_3 = 3, W.Gamepad.BUTTON_4 = 4, W.Gamepad.BUTTON_5 = 5, W.Gamepad.BUTTON_6 = 6, W.Gamepad.BUTTON_7 = 7, W.Gamepad.BUTTON_8 = 8, W.Gamepad.BUTTON_9 = 9, W.Gamepad.BUTTON_10 = 10, W.Gamepad.BUTTON_11 = 11, W.Gamepad.BUTTON_12 = 12, W.Gamepad.BUTTON_13 = 13, W.Gamepad.BUTTON_14 = 14, W.Gamepad.BUTTON_15 = 15, W.Gamepad.AXIS_0 = 0, W.Gamepad.AXIS_1 = 1, W.Gamepad.AXIS_2 = 2, W.Gamepad.AXIS_3 = 3, W.Gamepad.AXIS_4 = 4, W.Gamepad.AXIS_5 = 5, W.Gamepad.AXIS_6 = 6, W.Gamepad.AXIS_7 = 7, W.Gamepad.AXIS_8 = 8, W.Gamepad.AXIS_9 = 9, W.Gamepad.XBOX360_A = 0, W.Gamepad.XBOX360_B = 1, W.Gamepad.XBOX360_X = 2, W.Gamepad.XBOX360_Y = 3, W.Gamepad.XBOX360_LEFT_BUMPER = 4, W.Gamepad.XBOX360_RIGHT_BUMPER = 5, W.Gamepad.XBOX360_LEFT_TRIGGER = 6, W.Gamepad.XBOX360_RIGHT_TRIGGER = 7, W.Gamepad.XBOX360_BACK = 8, W.Gamepad.XBOX360_START = 9, W.Gamepad.XBOX360_STICK_LEFT_BUTTON = 10, W.Gamepad.XBOX360_STICK_RIGHT_BUTTON = 11, W.Gamepad.XBOX360_DPAD_LEFT = 14, W.Gamepad.XBOX360_DPAD_RIGHT = 15, W.Gamepad.XBOX360_DPAD_UP = 12, W.Gamepad.XBOX360_DPAD_DOWN = 13, W.Gamepad.XBOX360_STICK_LEFT_X = 0, W.Gamepad.XBOX360_STICK_LEFT_Y = 1, W.Gamepad.XBOX360_STICK_RIGHT_X = 2, W.Gamepad.XBOX360_STICK_RIGHT_Y = 3, W.Gamepad.PS3XC_X = 0, W.Gamepad.PS3XC_CIRCLE = 1, W.Gamepad.PS3XC_SQUARE = 2, W.Gamepad.PS3XC_TRIANGLE = 3, W.Gamepad.PS3XC_L1 = 4, W.Gamepad.PS3XC_R1 = 5, W.Gamepad.PS3XC_L2 = 6, W.Gamepad.PS3XC_R2 = 7, W.Gamepad.PS3XC_SELECT = 8, W.Gamepad.PS3XC_START = 9, W.Gamepad.PS3XC_STICK_LEFT_BUTTON = 10, W.Gamepad.PS3XC_STICK_RIGHT_BUTTON = 11, W.Gamepad.PS3XC_DPAD_UP = 12, W.Gamepad.PS3XC_DPAD_DOWN = 13, W.Gamepad.PS3XC_DPAD_LEFT = 14, W.Gamepad.PS3XC_DPAD_RIGHT = 15, W.Gamepad.PS3XC_STICK_LEFT_X = 0, W.Gamepad.PS3XC_STICK_LEFT_Y = 1, W.Gamepad.PS3XC_STICK_RIGHT_X = 2, W.Gamepad.PS3XC_STICK_RIGHT_Y = 3, W.SinglePad = function(e, t) { this.game = e, this.index = null, this.connected = !1, (this.callbackContext = this).onConnectCallback = null, this.onDisconnectCallback = null, this.onDownCallback = null, this.onUpCallback = null, this.onAxisCallback = null, this.onFloatCallback = null, this.deadZone = .26, this._padParent = t, this._rawPad = null, this._prevTimestamp = null, this._buttons = [], this._buttonsLen = 0, this._axes = [], this._axesLen = 0 } , W.SinglePad.prototype = { addCallbacks: function(e, t) { void 0 !== t && (this.onConnectCallback = "function" == typeof t.onConnect ? t.onConnect : this.onConnectCallback, this.onDisconnectCallback = "function" == typeof t.onDisconnect ? t.onDisconnect : this.onDisconnectCallback, this.onDownCallback = "function" == typeof t.onDown ? t.onDown : this.onDownCallback, this.onUpCallback = "function" == typeof t.onUp ? t.onUp : this.onUpCallback, this.onAxisCallback = "function" == typeof t.onAxis ? t.onAxis : this.onAxisCallback, this.onFloatCallback = "function" == typeof t.onFloat ? t.onFloat : this.onFloatCallback, this.callbackContext = e) }, getButton: function(e) { return this._buttons[e] ? this._buttons[e] : null }, pollStatus: function() { if (this.connected && this.game.input.enabled && this.game.input.gamepad.enabled && (!this._rawPad.timestamp || this._rawPad.timestamp !== this._prevTimestamp)) { for (var e = 0; e < this._buttonsLen; e++) { var t = isNaN(this._rawPad.buttons[e]) ? this._rawPad.buttons[e].value : this._rawPad.buttons[e]; t !== this._buttons[e].value && (1 === t ? this.processButtonDown(e, t) : 0 === t ? this.processButtonUp(e, t) : this.processButtonFloat(e, t)) } for (var i = 0; i < this._axesLen; i++) { var r = this._rawPad.axes[i]; 0 < r && r > this.deadZone || r < 0 && r < -this.deadZone ? this.processAxisChange(i, r) : this.processAxisChange(i, 0) } this._prevTimestamp = this._rawPad.timestamp } }, connect: function(e) { var t = !this.connected; this.connected = !0, this.index = e.index, this._rawPad = e, this._buttons = [], this._buttonsLen = e.buttons.length, this._axes = [], this._axesLen = e.axes.length; for (var i = 0; i < this._axesLen; i++) this._axes[i] = e.axes[i]; for (var r in e.buttons) r = parseInt(r, 10), this._buttons[r] = new W.DeviceButton(this,r); t && this._padParent.onConnectCallback && this._padParent.onConnectCallback.call(this._padParent.callbackContext, this.index), t && this.onConnectCallback && this.onConnectCallback.call(this.callbackContext) }, disconnect: function() { var e = this.connected , t = this.index; this.connected = !1, this.index = null, this._rawPad = void 0; for (var i = 0; i < this._buttonsLen; i++) this._buttons[i].destroy(); this._buttons = [], this._buttonsLen = 0, this._axes = [], this._axesLen = 0, e && this._padParent.onDisconnectCallback && this._padParent.onDisconnectCallback.call(this._padParent.callbackContext, t), e && this.onDisconnectCallback && this.onDisconnectCallback.call(this.callbackContext) }, destroy: function() { this._rawPad = void 0; for (var e = 0; e < this._buttonsLen; e++) this._buttons[e].destroy(); this._buttons = [], this._buttonsLen = 0, this._axes = [], this._axesLen = 0, this.onConnectCallback = null, this.onDisconnectCallback = null, this.onDownCallback = null, this.onUpCallback = null, this.onAxisCallback = null, this.onFloatCallback = null }, processAxisChange: function(e, t) { this._axes[e] !== t && (this._axes[e] = t, this._padParent.onAxisCallback && this._padParent.onAxisCallback.call(this._padParent.callbackContext, this, e, t), this.onAxisCallback && this.onAxisCallback.call(this.callbackContext, this, e, t)) }, processButtonDown: function(e, t) { this._buttons[e] && this._buttons[e].start(null, t), this._padParent.onDownCallback && this._padParent.onDownCallback.call(this._padParent.callbackContext, e, t, this.index), this.onDownCallback && this.onDownCallback.call(this.callbackContext, e, t) }, processButtonUp: function(e, t) { this._padParent.onUpCallback && this._padParent.onUpCallback.call(this._padParent.callbackContext, e, t, this.index), this.onUpCallback && this.onUpCallback.call(this.callbackContext, e, t), this._buttons[e] && this._buttons[e].stop(null, t) }, processButtonFloat: function(e, t) { this._padParent.onFloatCallback && this._padParent.onFloatCallback.call(this._padParent.callbackContext, e, t, this.index), this.onFloatCallback && this.onFloatCallback.call(this.callbackContext, e, t), this._buttons[e] && this._buttons[e].padFloat(t) }, axis: function(e) { return !!this._axes[e] && this._axes[e] }, isDown: function(e) { return !!this._buttons[e] && this._buttons[e].isDown }, isUp: function(e) { return !!this._buttons[e] && this._buttons[e].isUp }, justReleased: function(e, t) { if (this._buttons[e]) return this._buttons[e].justReleased(t) }, justPressed: function(e, t) { if (this._buttons[e]) return this._buttons[e].justPressed(t) }, buttonValue: function(e) { return this._buttons[e] ? this._buttons[e].value : null }, reset: function() { for (var e = 0; e < this._axes.length; e++) this._axes[e] = 0 } }, W.SinglePad.prototype.constructor = W.SinglePad, W.Key = function(e, t) { this.game = e, this._enabled = !0, this.event = null, this.isDown = !1, this.isUp = !0, this.altKey = !1, this.ctrlKey = !1, this.shiftKey = !1, this.timeDown = 0, this.duration = 0, this.timeUp = -2500, this.repeats = 0, this.keyCode = t, this.onDown = new W.Signal, this.onHoldCallback = null, this.onHoldContext = null, this.onUp = new W.Signal, this._justDown = !1, this._justUp = !1 } , W.Key.prototype = { update: function() { this._enabled && this.isDown && (this.duration = this.game.time.time - this.timeDown, this.repeats++, this.onHoldCallback && this.onHoldCallback.call(this.onHoldContext, this)) }, processKeyDown: function(e) { this._enabled && (this.event = e, this.isDown || (this.altKey = e.altKey, this.ctrlKey = e.ctrlKey, this.shiftKey = e.shiftKey, this.isDown = !0, this.isUp = !1, this.timeDown = this.game.time.time, this.duration = 0, this.repeats = 0, this._justDown = !0, this.onDown.dispatch(this))) }, processKeyUp: function(e) { this._enabled && (this.event = e, this.isUp || (this.isDown = !1, this.isUp = !0, this.timeUp = this.game.time.time, this.duration = this.game.time.time - this.timeDown, this._justUp = !0, this.onUp.dispatch(this))) }, reset: function(e) { void 0 === e && (e = !0), this.isDown = !1, this.isUp = !0, this.timeUp = this.game.time.time, this.duration = 0, this._enabled = !0, this._justDown = !1, this._justUp = !1, e && (this.onDown.removeAll(), this.onUp.removeAll(), this.onHoldCallback = null, this.onHoldContext = null) }, downDuration: function(e) { return void 0 === e && (e = 50), this.isDown && this.duration < e }, upDuration: function(e) { return void 0 === e && (e = 50), !this.isDown && this.game.time.time - this.timeUp < e } }, Object.defineProperty(W.Key.prototype, "justDown", { get: function() { var e = this._justDown; return this._justDown = !1, e } }), Object.defineProperty(W.Key.prototype, "justUp", { get: function() { var e = this._justUp; return this._justUp = !1, e } }), Object.defineProperty(W.Key.prototype, "enabled", { get: function() { return this._enabled }, set: function(e) { (e = !!e) !== this._enabled && (e || this.reset(!1), this._enabled = e) } }), W.Key.prototype.constructor = W.Key, W.Keyboard = function(e) { this.game = e, this.enabled = !0, this.event = null, this.pressEvent = null, (this.callbackContext = this).onDownCallback = null, this.onPressCallback = null, this.onUpCallback = null, this._keys = [], this._capture = [], this._onKeyDown = null, this._onKeyPress = null, this._onKeyUp = null, this._i = 0, this._k = 0 } , W.Keyboard.prototype = { addCallbacks: function(e, t, i, r) { this.callbackContext = e, null != t && (this.onDownCallback = t), null != i && (this.onUpCallback = i), null != r && (this.onPressCallback = r) }, addKey: function(e) { return this._keys[e] || (this._keys[e] = new W.Key(this.game,e), this.addKeyCapture(e)), this._keys[e] }, addKeys: function(e) { var t = {}; for (var i in e) t[i] = this.addKey(e[i]); return t }, removeKey: function(e) { this._keys[e] && (this._keys[e] = null, this.removeKeyCapture(e)) }, createCursorKeys: function() { return this.addKeys({ up: W.KeyCode.UP, down: W.KeyCode.DOWN, left: W.KeyCode.LEFT, right: W.KeyCode.RIGHT }) }, start: function() { if (!this.game.device.cocoonJS && null === this._onKeyDown) { var t = this; this._onKeyDown = function(e) { return t.processKeyDown(e) } , this._onKeyUp = function(e) { return t.processKeyUp(e) } , this._onKeyPress = function(e) { return t.processKeyPress(e) } , window.addEventListener("keydown", this._onKeyDown, !1), window.addEventListener("keyup", this._onKeyUp, !1), window.addEventListener("keypress", this._onKeyPress, !1) } }, stop: function() { window.removeEventListener("keydown", this._onKeyDown), window.removeEventListener("keyup", this._onKeyUp), window.removeEventListener("keypress", this._onKeyPress), this._onKeyDown = null, this._onKeyUp = null, this._onKeyPress = null }, destroy: function() { this.stop(), this.clearCaptures(), this._keys.length = 0, this._i = 0 }, addKeyCapture: function(e) { if ("object" == typeof e) for (var t in e) this._capture[e[t]] = !0; else this._capture[e] = !0 }, removeKeyCapture: function(e) { delete this._capture[e] }, clearCaptures: function() { this._capture = {} }, update: function() { for (this._i = this._keys.length; this._i--; ) this._keys[this._i] && this._keys[this._i].update() }, processKeyDown: function(e) { if (this.event = e, this.game.input.enabled && this.enabled) { var t = e.keyCode; this._capture[t] && e.preventDefault(), this._keys[t] || (this._keys[t] = new W.Key(this.game,t)), this._keys[t].processKeyDown(e), this._k = t, this.onDownCallback && this.onDownCallback.call(this.callbackContext, e) } }, processKeyPress: function(e) { this.pressEvent = e, this.game.input.enabled && this.enabled && this.onPressCallback && this.onPressCallback.call(this.callbackContext, String.fromCharCode(e.charCode), e) }, processKeyUp: function(e) { if (this.event = e, this.game.input.enabled && this.enabled) { var t = e.keyCode; this._capture[t] && e.preventDefault(), this._keys[t] || (this._keys[t] = new W.Key(this.game,t)), this._keys[t].processKeyUp(e), this.onUpCallback && this.onUpCallback.call(this.callbackContext, e) } }, reset: function(e) { void 0 === e && (e = !0), this.event = null; for (var t = this._keys.length; t--; ) this._keys[t] && this._keys[t].reset(e) }, downDuration: function(e, t) { return this._keys[e] ? this._keys[e].downDuration(t) : null }, upDuration: function(e, t) { return this._keys[e] ? this._keys[e].upDuration(t) : null }, isDown: function(e) { return this._keys[e] ? this._keys[e].isDown : null } }, Object.defineProperty(W.Keyboard.prototype, "lastChar", { get: function() { return 32 === this.event.charCode ? "" : String.fromCharCode(this.pressEvent.charCode) } }), Object.defineProperty(W.Keyboard.prototype, "lastKey", { get: function() { return this._keys[this._k] } }), W.Keyboard.prototype.constructor = W.Keyboard, W.KeyCode = { A: "A".charCodeAt(0), B: "B".charCodeAt(0), C: "C".charCodeAt(0), D: "D".charCodeAt(0), E: "E".charCodeAt(0), F: "F".charCodeAt(0), G: "G".charCodeAt(0), H: "H".charCodeAt(0), I: "I".charCodeAt(0), J: "J".charCodeAt(0), K: "K".charCodeAt(0), L: "L".charCodeAt(0), M: "M".charCodeAt(0), N: "N".charCodeAt(0), O: "O".charCodeAt(0), P: "P".charCodeAt(0), Q: "Q".charCodeAt(0), R: "R".charCodeAt(0), S: "S".charCodeAt(0), T: "T".charCodeAt(0), U: "U".charCodeAt(0), V: "V".charCodeAt(0), W: "W".charCodeAt(0), X: "X".charCodeAt(0), Y: "Y".charCodeAt(0), Z: "Z".charCodeAt(0), ZERO: "0".charCodeAt(0), ONE: "1".charCodeAt(0), TWO: "2".charCodeAt(0), THREE: "3".charCodeAt(0), FOUR: "4".charCodeAt(0), FIVE: "5".charCodeAt(0), SIX: "6".charCodeAt(0), SEVEN: "7".charCodeAt(0), EIGHT: "8".charCodeAt(0), NINE: "9".charCodeAt(0), NUMPAD_0: 96, NUMPAD_1: 97, NUMPAD_2: 98, NUMPAD_3: 99, NUMPAD_4: 100, NUMPAD_5: 101, NUMPAD_6: 102, NUMPAD_7: 103, NUMPAD_8: 104, NUMPAD_9: 105, NUMPAD_MULTIPLY: 106, NUMPAD_ADD: 107, NUMPAD_ENTER: 108, NUMPAD_SUBTRACT: 109, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, F1: 112, F2: 113, F3: 114, F4: 115, F5: 116, F6: 117, F7: 118, F8: 119, F9: 120, F10: 121, F11: 122, F12: 123, F13: 124, F14: 125, F15: 126, COLON: 186, EQUALS: 187, COMMA: 188, UNDERSCORE: 189, PERIOD: 190, QUESTION_MARK: 191, TILDE: 192, OPEN_BRACKET: 219, BACKWARD_SLASH: 220, CLOSED_BRACKET: 221, QUOTES: 222, BACKSPACE: 8, TAB: 9, CLEAR: 12, ENTER: 13, SHIFT: 16, CONTROL: 17, ALT: 18, CAPS_LOCK: 20, ESC: 27, SPACEBAR: 32, PAGE_UP: 33, PAGE_DOWN: 34, END: 35, HOME: 36, LEFT: 37, UP: 38, RIGHT: 39, DOWN: 40, PLUS: 43, MINUS: 44, INSERT: 45, DELETE: 46, HELP: 47, NUM_LOCK: 144 }, W.KeyCode) W.KeyCode.hasOwnProperty(i) && !i.match(/[a-z]/) && (W.Keyboard[i] = W.KeyCode[i]); for (var o in W.Component = function() {} , W.Component.Angle = function() {} , W.Component.Angle.prototype = { angle: { get: function() { return W.Math.wrapAngle(W.Math.radToDeg(this.rotation)) }, set: function(e) { this.rotation = W.Math.degToRad(W.Math.wrapAngle(e)) } } }, W.Component.Animation = function() {} , W.Component.Animation.prototype = { play: function(e, t, i, r) { if (this.animations) return this.animations.play(e, t, i, r) } }, W.Component.AutoCull = function() {} , W.Component.AutoCull.prototype = { autoCull: !1, inCamera: { get: function() { return this.autoCull || this.checkWorldBounds || (this._bounds.copyFrom(this.getBounds()), this._bounds.x += this.game.camera.view.x, this._bounds.y += this.game.camera.view.y), this.game.world.camera.view.intersects(this._bounds) } } }, W.Component.Bounds = function() {} , W.Component.Bounds.prototype = { offsetX: { get: function() { return this.anchor.x * this.width } }, offsetY: { get: function() { return this.anchor.y * this.height } }, centerX: { get: function() { return this.x - this.offsetX + .5 * this.width }, set: function(e) { this.x = e + this.offsetX - .5 * this.width } }, centerY: { get: function() { return this.y - this.offsetY + .5 * this.height }, set: function(e) { this.y = e + this.offsetY - .5 * this.height } }, left: { get: function() { return this.x - this.offsetX }, set: function(e) { this.x = e + this.offsetX } }, right: { get: function() { return this.x + this.width - this.offsetX }, set: function(e) { this.x = e - this.width + this.offsetX } }, top: { get: function() { return this.y - this.offsetY }, set: function(e) { this.y = e + this.offsetY } }, bottom: { get: function() { return this.y + this.height - this.offsetY }, set: function(e) { this.y = e - this.height + this.offsetY } }, alignIn: function(e, t, i, r) { switch (void 0 === i && (i = 0), void 0 === r && (r = 0), t) { default: case W.TOP_LEFT: this.left = e.left - i, this.top = e.top - r; break; case W.TOP_CENTER: this.centerX = e.centerX + i, this.top = e.top - r; break; case W.TOP_RIGHT: this.right = e.right + i, this.top = e.top - r; break; case W.LEFT_CENTER: this.left = e.left - i, this.centerY = e.centerY + r; break; case W.CENTER: this.centerX = e.centerX + i, this.centerY = e.centerY + r; break; case W.RIGHT_CENTER: this.right = e.right + i, this.centerY = e.centerY + r; break; case W.BOTTOM_LEFT: this.left = e.left - i, this.bottom = e.bottom + r; break; case W.BOTTOM_CENTER: this.centerX = e.centerX + i, this.bottom = e.bottom + r; break; case W.BOTTOM_RIGHT: this.right = e.right + i, this.bottom = e.bottom + r } return this }, alignTo: function(e, t, i, r) { switch (void 0 === i && (i = 0), void 0 === r && (r = 0), t) { default: case W.TOP_LEFT: this.left = e.left - i, this.bottom = e.top - r; break; case W.TOP_CENTER: this.centerX = e.centerX + i, this.bottom = e.top - r; break; case W.TOP_RIGHT: this.right = e.right + i, this.bottom = e.top - r; break; case W.LEFT_TOP: this.right = e.left - i, this.top = e.top - r; break; case W.LEFT_CENTER: this.right = e.left - i, this.centerY = e.centerY + r; break; case W.LEFT_BOTTOM: this.right = e.left - i, this.bottom = e.bottom + r; break; case W.RIGHT_TOP: this.left = e.right + i, this.top = e.top - r; break; case W.RIGHT_CENTER: this.left = e.right + i, this.centerY = e.centerY + r; break; case W.RIGHT_BOTTOM: this.left = e.right + i, this.bottom = e.bottom + r; break; case W.BOTTOM_LEFT: this.left = e.left - i, this.top = e.bottom + r; break; case W.BOTTOM_CENTER: this.centerX = e.centerX + i, this.top = e.bottom + r; break; case W.BOTTOM_RIGHT: this.right = e.right + i, this.top = e.bottom + r } return this } }, W.Group.prototype.alignIn = W.Component.Bounds.prototype.alignIn, W.Group.prototype.alignTo = W.Component.Bounds.prototype.alignTo, W.Component.BringToTop = function() {} , W.Component.BringToTop.prototype.bringToTop = function() { return this.parent && this.parent.bringToTop(this), this } , W.Component.BringToTop.prototype.sendToBack = function() { return this.parent && this.parent.sendToBack(this), this } , W.Component.BringToTop.prototype.moveUp = function() { return this.parent && this.parent.moveUp(this), this } , W.Component.BringToTop.prototype.moveDown = function() { return this.parent && this.parent.moveDown(this), this } , W.Component.Core = function() {} , W.Component.Core.install = function(e) { W.Utils.mixinPrototype(this, W.Component.Core.prototype), this.components = {}; for (var t = 0; t < e.length; t++) { var i = e[t] , r = !1; "Destroy" === i && (r = !0), W.Utils.mixinPrototype(this, W.Component[i].prototype, r), this.components[i] = !0 } } , W.Component.Core.init = function(e, t, i, r, o) { this.game = e, this.key = r, this.data = {}, this.position.set(t, i), this.world = new W.Point(t,i), this.previousPosition = new W.Point(t,i), this.events = new W.Events(this), this._bounds = new W.Rectangle, this.components.PhysicsBody && (this.body = this.body), this.components.Animation && (this.animations = new W.AnimationManager(this)), this.components.LoadTexture && null !== r && this.loadTexture(r, o), this.components.FixedToCamera && (this.cameraOffset = new W.Point(t,i)) } , W.Component.Core.preUpdate = function() { if (!this.pendingDestroy) { if (this.previousPosition.set(this.world.x, this.world.y), this.previousRotation = this.rotation, !this.exists || !this.parent.exists) return !(this.renderOrderID = -1); this.world.setTo(this.game.camera.x + this.worldTransform.tx, this.game.camera.y + this.worldTransform.ty), this.visible && (this.renderOrderID = this.game.stage.currentRenderOrderID++), this.animations && this.animations.update(), this.body && this.body.preUpdate(); for (var e = 0; e < this.children.length; e++) this.children[e].preUpdate(); return !0 } this.destroy() } , W.Component.Core.prototype = { game: null, name: "", data: {}, components: {}, z: 0, events: void 0, animations: void 0, key: "", world: null, debug: !1, previousPosition: null, previousRotation: 0, renderOrderID: 0, fresh: !0, pendingDestroy: !1, _bounds: null, _exists: !0, exists: { get: function() { return this._exists }, set: function(e) { e ? (this._exists = !0, this.body && this.body.type === W.Physics.P2JS && this.body.addToWorld(), this.visible = !0) : (this._exists = !1, this.body && this.body.type === W.Physics.P2JS && this.body.removeFromWorld(), this.visible = !1) } }, update: function() {}, postUpdate: function() { this.customRender && this.key.render(), this.components.PhysicsBody && W.Component.PhysicsBody.postUpdate.call(this), this.components.FixedToCamera && W.Component.FixedToCamera.postUpdate.call(this); for (var e = 0; e < this.children.length; e++) this.children[e].postUpdate() } }, W.Component.Crop = function() {} , W.Component.Crop.prototype = { cropRect: null, _crop: null, crop: function(e, t) { void 0 === t && (t = !1), e ? (t && null !== this.cropRect ? this.cropRect.setTo(e.x, e.y, e.width, e.height) : t && null === this.cropRect ? this.cropRect = new W.Rectangle(e.x,e.y,e.width,e.height) : this.cropRect = e, this.updateCrop()) : (this._crop = null, this.cropRect = null, this.resetFrame()) }, updateCrop: function() { if (this.cropRect) { var e = this.texture.crop.x , t = this.texture.crop.y , i = this.texture.crop.width , r = this.texture.crop.height; this._crop = W.Rectangle.clone(this.cropRect, this._crop), this._crop.x += this._frame.x, this._crop.y += this._frame.y; var o = Math.max(this._frame.x, this._crop.x) , s = Math.max(this._frame.y, this._crop.y) , a = Math.min(this._frame.right, this._crop.right) - o , n = Math.min(this._frame.bottom, this._crop.bottom) - s; this.texture.crop.x = o, this.texture.crop.y = s, this.texture.crop.width = a, this.texture.crop.height = n, this.texture.frame.width = Math.min(a, this.cropRect.width), this.texture.frame.height = Math.min(n, this.cropRect.height), this.texture.width = this.texture.frame.width, this.texture.height = this.texture.frame.height, this.texture._updateUvs(), 16777215 === this.tint || e === o && t === s && i === a && r === n || (this.texture.requiresReTint = !0) } } }, W.Component.Delta = function() {} , W.Component.Delta.prototype = { deltaX: { get: function() { return this.world.x - this.previousPosition.x } }, deltaY: { get: function() { return this.world.y - this.previousPosition.y } }, deltaZ: { get: function() { return this.rotation - this.previousRotation } } }, W.Component.Destroy = function() {} , W.Component.Destroy.prototype = { destroyPhase: !1, destroy: function(e, t) { if (null !== this.game && !this.destroyPhase) { void 0 === e && (e = !0), void 0 === t && (t = !1), this.destroyPhase = !0, this.events && this.events.onDestroy$dispatch(this), this.parent && (this.parent instanceof W.Group ? this.parent.remove(this) : this.parent.removeChild(this)), this.input && this.input.destroy(), this.animations && this.animations.destroy(), this.body && this.body.destroy(), this.events && this.events.destroy(), this.game.tweens.removeFrom(this); var i = this.children.length; if (e) for (; i--; ) this.children[i].destroy(e); else for (; i--; ) this.removeChild(this.children[i]); this._crop && (this._crop = null, this.cropRect = null), this._frame && (this._frame = null), W.Video && this.key instanceof W.Video && this.key.onChangeSource.remove(this.resizeFrame, this), W.BitmapText && this._glyphs && (this._glyphs = []), this.alive = !1, this.exists = !1, this.visible = !1, this.filters = null, this.mask = null, this.game = null, this.data = {}, this.renderable = !1, this.transformCallback && (this.transformCallback = null, this.transformCallbackContext = null), this.hitArea = null, this.parent = null, this.stage = null, this.worldTransform = null, this.filterArea = null, this._bounds = null, this._currentBounds = null, this._mask = null, this._destroyCachedSprite(), t && this.texture.destroy(!0), this.destroyPhase = !1, this.pendingDestroy = !1 } } }, W.Events = function(e) { this.parent = e } , W.Events.prototype = { destroy: function() { this._parent = null, this._onDestroy && this._onDestroy.dispose(), this._onAddedToGroup && this._onAddedToGroup.dispose(), this._onRemovedFromGroup && this._onRemovedFromGroup.dispose(), this._onRemovedFromWorld && this._onRemovedFromWorld.dispose(), this._onKilled && this._onKilled.dispose(), this._onRevived && this._onRevived.dispose(), this._onEnterBounds && this._onEnterBounds.dispose(), this._onOutOfBounds && this._onOutOfBounds.dispose(), this._onInputOver && this._onInputOver.dispose(), this._onInputOut && this._onInputOut.dispose(), this._onInputDown && this._onInputDown.dispose(), this._onInputUp && this._onInputUp.dispose(), this._onDragStart && this._onDragStart.dispose(), this._onDragUpdate && this._onDragUpdate.dispose(), this._onDragStop && this._onDragStop.dispose(), this._onAnimationStart && this._onAnimationStart.dispose(), this._onAnimationComplete && this._onAnimationComplete.dispose(), this._onAnimationLoop && this._onAnimationLoop.dispose() }, onAddedToGroup: null, onRemovedFromGroup: null, onRemovedFromWorld: null, onDestroy: null, onKilled: null, onRevived: null, onOutOfBounds: null, onEnterBounds: null, onInputOver: null, onInputOut: null, onInputDown: null, onInputUp: null, onDragStart: null, onDragUpdate: null, onDragStop: null, onAnimationStart: null, onAnimationComplete: null, onAnimationLoop: null }, W.Events.prototype.constructor = W.Events, W.Events.prototype) W.Events.prototype.hasOwnProperty(o) && 0 === o.indexOf("on") && null === W.Events.prototype[o] && function(e, t) { "use strict"; Object.defineProperty(W.Events.prototype, e, { get: function() { return this[t] || (this[t] = new W.Signal) } }), W.Events.prototype[e + "$dispatch"] = function() { return this[t] ? this[t].dispatch.apply(this[t], arguments) : null } }(o, "_" + o); W.Component.FixedToCamera = function() {} , W.Component.FixedToCamera.postUpdate = function() { this.fixedToCamera && (this.position.x = (this.game.camera.view.x + this.cameraOffset.x) / this.game.camera.scale.x, this.position.y = (this.game.camera.view.y + this.cameraOffset.y) / this.game.camera.scale.y) } , W.Component.FixedToCamera.prototype = { _fixedToCamera: !1, fixedToCamera: { get: function() { return this._fixedToCamera }, set: function(e) { e ? (this._fixedToCamera = !0, this.cameraOffset.set(this.x, this.y)) : this._fixedToCamera = !1 } }, cameraOffset: new W.Point }, W.Component.Health = function() {} , W.Component.Health.prototype = { health: 1, maxHealth: 100, damage: function(e) { return this.alive && (this.health -= e, this.health <= 0 && this.kill()), this }, setHealth: function(e) { return this.health = e, this.health > this.maxHealth && (this.health = this.maxHealth), this }, heal: function(e) { return this.alive && (this.health += e, this.health > this.maxHealth && (this.health = this.maxHealth)), this } }, W.Component.InCamera = function() {} , W.Component.InCamera.prototype = { inCamera: { get: function() { return this.game.world.camera.view.intersects(this._bounds) } } }, W.Component.InputEnabled = function() {} , W.Component.InputEnabled.prototype = { input: null, inputEnabled: { get: function() { return this.input && this.input.enabled }, set: function(e) { e ? null === this.input ? (this.input = new W.InputHandler(this), this.input.start()) : this.input && !this.input.enabled && this.input.start() : this.input && this.input.enabled && this.input.stop() } } }, W.Component.InWorld = function() {} , W.Component.InWorld.preUpdate = function() { if (this.autoCull || this.checkWorldBounds) { if (this._bounds.copyFrom(this.getBounds()), this._bounds.x += this.game.camera.view.x, this._bounds.y += this.game.camera.view.y, this.autoCull) if (this.game.world.camera.view.intersects(this._bounds)) this.renderable = !0, this.game.world.camera.totalInView++; else if (this.renderable = !1, this.outOfCameraBoundsKill) return this.kill(), !1; if (this.checkWorldBounds) if (this._outOfBoundsFired && this.game.world.bounds.intersects(this._bounds)) this._outOfBoundsFired = !1, this.events.onEnterBounds$dispatch(this); else if (!this._outOfBoundsFired && !this.game.world.bounds.intersects(this._bounds) && (this._outOfBoundsFired = !0, this.events.onOutOfBounds$dispatch(this), this.outOfBoundsKill)) return this.kill(), !1 } return !0 } , W.Component.InWorld.prototype = { checkWorldBounds: !1, outOfBoundsKill: !1, outOfCameraBoundsKill: !1, _outOfBoundsFired: !1, inWorld: { get: function() { return this.game.world.bounds.intersects(this.getBounds()) } } }, W.Component.LifeSpan = function() {} , W.Component.LifeSpan.preUpdate = function() { return !(0 < this.lifespan && (this.lifespan -= this.game.time.physicsElapsedMS, this.lifespan <= 0)) || (this.kill(), !1) } , W.Component.LifeSpan.prototype = { alive: !0, lifespan: 0, revive: function(e) { return void 0 === e && (e = 100), this.alive = !0, this.exists = !0, this.visible = !0, "function" == typeof this.setHealth && this.setHealth(e), this.events && this.events.onRevived$dispatch(this), this }, kill: function() { return this.alive = !1, this.exists = !1, this.visible = !1, this.events && this.events.onKilled$dispatch(this), this } }, W.Component.LoadTexture = function() {} , W.Component.LoadTexture.prototype = { customRender: !1, _frame: null, loadTexture: function(e, t, i) { t = e === W.PENDING_ATLAS ? (e = t, 0) : t || 0, (i || void 0 === i) && this.animations && this.animations.stop(), this.key = e, this.customRender = !1; var r = this.game.cache , o = !0 , s = !this.texture.baseTexture.scaleMode; if (W.RenderTexture && e instanceof W.RenderTexture) this.key = e.key, this.setTexture(e); else if (W.BitmapData && e instanceof W.BitmapData) this.customRender = !0, this.setTexture(e.texture), o = r.hasFrameData(e.key, W.Cache.BITMAPDATA) ? !this.animations.loadFrameData(r.getFrameData(e.key, W.Cache.BITMAPDATA), t) : !this.animations.loadFrameData(e.frameData, 0); else if (W.Video && e instanceof W.Video) { this.customRender = !0; var a = e.texture.valid; this.setTexture(e.texture), this.setFrame(e.texture.frame.clone()), e.onChangeSource.add(this.resizeFrame, this), this.texture.valid = a } else if (W.Tilemap && e instanceof W.TilemapLayer) this.setTexture(PIXI.Texture.fromCanvas(e.canvas)); else if (e instanceof PIXI.Texture) this.setTexture(e); else { var n = r.getImage(e, !0); this.key = n.key, this.setTexture(new PIXI.Texture(n.base)), this.texture.baseTexture.skipRender = "__default" === e, o = !this.animations.loadFrameData(n.frameData, t) } o && (this._frame = W.Rectangle.clone(this.texture.frame)), s || (this.texture.baseTexture.scaleMode = 1) }, setFrame: function(e) { this._frame = e, this.texture.frame.x = e.x, this.texture.frame.y = e.y, this.texture.frame.width = e.width, this.texture.frame.height = e.height, this.texture.crop.x = e.x, this.texture.crop.y = e.y, this.texture.crop.width = e.width, this.texture.crop.height = e.height, e.trimmed ? (this.texture.trim ? (this.texture.trim.x = e.spriteSourceSizeX, this.texture.trim.y = e.spriteSourceSizeY, this.texture.trim.width = e.sourceSizeW, this.texture.trim.height = e.sourceSizeH) : this.texture.trim = { x: e.spriteSourceSizeX, y: e.spriteSourceSizeY, width: e.sourceSizeW, height: e.sourceSizeH }, this.texture.width = e.sourceSizeW, this.texture.height = e.sourceSizeH, this.texture.frame.width = e.sourceSizeW, this.texture.frame.height = e.sourceSizeH) : !e.trimmed && this.texture.trim && (this.texture.trim = null), this.cropRect && this.updateCrop(), this.texture.requiresReTint = !0, this.texture._updateUvs(), this.tilingTexture && (this.refreshTexture = !0) }, resizeFrame: function(e, t, i) { this.texture.frame.resize(t, i), this.texture.setFrame(this.texture.frame) }, resetFrame: function() { this._frame && this.setFrame(this._frame) }, frame: { get: function() { return this.animations.frame }, set: function(e) { this.animations.frame = e } }, frameName: { get: function() { return this.animations.frameName }, set: function(e) { this.animations.frameName = e } } }, W.Component.Overlap = function() {} , W.Component.Overlap.prototype = { overlap: function(e) { return W.Rectangle.intersects(this.getBounds(), e.getBounds()) } }, W.Component.PhysicsBody = function() {} , W.Component.PhysicsBody.preUpdate = function() { return this.fresh && this.exists ? (this.world.setTo(this.parent.position.x + this.position.x, this.parent.position.y + this.position.y), this.worldTransform.tx = this.world.x, this.worldTransform.ty = this.world.y, this.previousPosition.set(this.world.x, this.world.y), this.previousRotation = this.rotation, this.body && this.body.preUpdate(), this.fresh = !1) : (this.previousPosition.set(this.world.x, this.world.y), this.previousRotation = this.rotation, !(!this._exists || !this.parent.exists) || !(this.renderOrderID = -1)) } , W.Component.PhysicsBody.postUpdate = function() { this.exists && this.body && this.body.postUpdate() } , W.Component.PhysicsBody.prototype = { body: null, x: { get: function() { return this.position.x }, set: function(e) { this.position.x = e, this.body && !this.body.dirty && (this.body._reset = !0) } }, y: { get: function() { return this.position.y }, set: function(e) { this.position.y = e, this.body && !this.body.dirty && (this.body._reset = !0) } } }, W.Component.Reset = function() {} , W.Component.Reset.prototype.reset = function(e, t, i) { return void 0 === i && (i = 1), this.world.set(e, t), this.position.set(e, t), this.fresh = !0, this.exists = !0, this.visible = !0, this.renderable = !0, this.components.InWorld && (this._outOfBoundsFired = !1), this.components.LifeSpan && (this.alive = !0, this.health = i), this.components.PhysicsBody && this.body && this.body.reset(e, t, !1, !1), this } , W.Component.ScaleMinMax = function() {} , W.Component.ScaleMinMax.prototype = { transformCallback: null, transformCallbackContext: this, scaleMin: null, scaleMax: null, checkTransform: function(e) { this.scaleMin && (e.a < this.scaleMin.x && (e.a = this.scaleMin.x), e.d < this.scaleMin.y && (e.d = this.scaleMin.y)), this.scaleMax && (e.a > this.scaleMax.x && (e.a = this.scaleMax.x), e.d > this.scaleMax.y && (e.d = this.scaleMax.y)) }, setScaleMinMax: function(e, t, i, r) { void 0 === t ? t = i = r = e : void 0 === i && (i = r = t, t = e), null === e ? this.scaleMin = null : this.scaleMin ? this.scaleMin.set(e, t) : this.scaleMin = new W.Point(e,t), null === i ? this.scaleMax = null : this.scaleMax ? this.scaleMax.set(i, r) : this.scaleMax = new W.Point(i,r), null === this.scaleMin ? this.transformCallback = null : (this.transformCallback = this.checkTransform, this.transformCallbackContext = this) } }, W.Component.Smoothed = function() {} , W.Component.Smoothed.prototype = { smoothed: { get: function() { return !this.texture.baseTexture.scaleMode }, set: function(e) { e ? this.texture && (this.texture.baseTexture.scaleMode = 0) : this.texture && (this.texture.baseTexture.scaleMode = 1) } } }, W.GameObjectFactory = function(e) { this.game = e, this.world = this.game.world } , W.GameObjectFactory.prototype = { existing: function(e) { return this.world.add(e) }, weapon: function(e, t, i, r) { var o = this.game.plugins.add(W.Weapon); return o.createBullets(e, t, i, r), o }, image: function(e, t, i, r, o) { return void 0 === o && (o = this.world), o.add(new W.Image(this.game,e,t,i,r)) }, sprite: function(e, t, i, r, o) { return void 0 === o && (o = this.world), o.create(e, t, i, r) }, creature: function(e, t, i, r, o) { void 0 === o && (o = this.world); var s = new W.Creature(this.game,e,t,i,r); return o.add(s), s }, tween: function(e) { return this.game.tweens.create(e) }, group: function(e, t, i, r, o) { return new W.Group(this.game,e,t,i,r,o) }, physicsGroup: function(e, t, i, r) { return new W.Group(this.game,t,i,r,!0,e) }, spriteBatch: function(e, t, i) { return void 0 === e && (e = null), void 0 === t && (t = "group"), void 0 === i && (i = !1), new W.SpriteBatch(this.game,e,t,i) }, audio: function(e, t, i, r) { return this.game.sound.add(e, t, i, r) }, sound: function(e, t, i, r) { return this.game.sound.add(e, t, i, r) }, audioSprite: function(e) { return this.game.sound.addSprite(e) }, tileSprite: function(e, t, i, r, o, s, a) { return void 0 === a && (a = this.world), a.add(new W.TileSprite(this.game,e,t,i,r,o,s)) }, rope: function(e, t, i, r, o, s) { return void 0 === s && (s = this.world), s.add(new W.Rope(this.game,e,t,i,r,o)) }, text: function(e, t, i, r, o) { return void 0 === o && (o = this.world), o.add(new W.Text(this.game,e,t,i,r)) }, button: function(e, t, i, r, o, s, a, n, h, c) { return void 0 === c && (c = this.world), c.add(new W.Button(this.game,e,t,i,r,o,s,a,n,h)) }, graphics: function(e, t, i) { return void 0 === i && (i = this.world), i.add(new W.Graphics(this.game,e,t)) }, emitter: function(e, t, i) { return this.game.particles.add(new W.Particles.Arcade.Emitter(this.game,e,t,i)) }, retroFont: function(e, t, i, r, o, s, a, n, h) { return new W.RetroFont(this.game,e,t,i,r,o,s,a,n,h) }, bitmapText: function(e, t, i, r, o, s) { return void 0 === s && (s = this.world), s.add(new W.BitmapText(this.game,e,t,i,r,o)) }, tilemap: function(e, t, i, r, o) { return new W.Tilemap(this.game,e,t,i,r,o) }, renderTexture: function(e, t, i, r) { void 0 !== i && "" !== i || (i = this.game.rnd.uuid()), void 0 === r && (r = !1); var o = new W.RenderTexture(this.game,e,t,i); return r && this.game.cache.addRenderTexture(i, o), o }, video: function(e, t) { return new W.Video(this.game,e,t) }, bitmapData: function(e, t, i, r) { void 0 === r && (r = !1), void 0 !== i && "" !== i || (i = this.game.rnd.uuid()); var o = new W.BitmapData(this.game,i,e,t); return r && this.game.cache.addBitmapData(i, o), o }, filter: function(e) { var t = Array.prototype.slice.call(arguments, 1); return (e = new W.Filter[e](this.game)).init.apply(e, t), e }, plugin: function(e) { return this.game.plugins.add(e) } }, W.GameObjectFactory.prototype.constructor = W.GameObjectFactory, W.GameObjectCreator = function(e) { this.game = e, this.world = this.game.world } , W.GameObjectCreator.prototype = { image: function(e, t, i, r) { return new W.Image(this.game,e,t,i,r) }, sprite: function(e, t, i, r) { return new W.Sprite(this.game,e,t,i,r) }, tween: function(e) { return new W.Tween(e,this.game,this.game.tweens) }, group: function(e, t, i, r, o) { return new W.Group(this.game,e,t,i,r,o) }, spriteBatch: function(e, t, i) { return void 0 === t && (t = "group"), void 0 === i && (i = !1), new W.SpriteBatch(this.game,e,t,i) }, audio: function(e, t, i, r) { return this.game.sound.add(e, t, i, r) }, audioSprite: function(e) { return this.game.sound.addSprite(e) }, sound: function(e, t, i, r) { return this.game.sound.add(e, t, i, r) }, tileSprite: function(e, t, i, r, o, s) { return new W.TileSprite(this.game,e,t,i,r,o,s) }, rope: function(e, t, i, r, o) { return new W.Rope(this.game,e,t,i,r,o) }, text: function(e, t, i, r) { return new W.Text(this.game,e,t,i,r) }, button: function(e, t, i, r, o, s, a, n, h) { return new W.Button(this.game,e,t,i,r,o,s,a,n,h) }, graphics: function(e, t) { return new W.Graphics(this.game,e,t) }, emitter: function(e, t, i) { return new W.Particles.Arcade.Emitter(this.game,e,t,i) }, retroFont: function(e, t, i, r, o, s, a, n, h) { return new W.RetroFont(this.game,e,t,i,r,o,s,a,n,h) }, bitmapText: function(e, t, i, r, o, s) { return new W.BitmapText(this.game,e,t,i,r,o,s) }, tilemap: function(e, t, i, r, o) { return new W.Tilemap(this.game,e,t,i,r,o) }, renderTexture: function(e, t, i, r) { void 0 !== i && "" !== i || (i = this.game.rnd.uuid()), void 0 === r && (r = !1); var o = new W.RenderTexture(this.game,e,t,i); return r && this.game.cache.addRenderTexture(i, o), o }, bitmapData: function(e, t, i, r) { void 0 === r && (r = !1), void 0 !== i && "" !== i || (i = this.game.rnd.uuid()); var o = new W.BitmapData(this.game,i,e,t); return r && this.game.cache.addBitmapData(i, o), o }, filter: function(e) { var t = Array.prototype.slice.call(arguments, 1); return (e = new W.Filter[e](this.game)).init.apply(e, t), e } }, W.GameObjectCreator.prototype.constructor = W.GameObjectCreator, W.Sprite = function(e, t, i, r, o) { t = t || 0, i = i || 0, r = r || null, o = o || null, this.type = W.SPRITE, this.physicsType = W.SPRITE, PIXI.Sprite.call(this, W.Cache.DEFAULT), W.Component.Core.init.call(this, e, t, i, r, o) } , W.Sprite.prototype = Object.create(PIXI.Sprite.prototype), W.Sprite.prototype.constructor = W.Sprite, W.Component.Core.install.call(W.Sprite.prototype, ["Angle", "Animation", "AutoCull", "Bounds", "BringToTop", "Crop", "Delta", "Destroy", "FixedToCamera", "Health", "InCamera", "InputEnabled", "InWorld", "LifeSpan", "LoadTexture", "Overlap", "PhysicsBody", "Reset", "ScaleMinMax", "Smoothed"]), W.Sprite.prototype.preUpdatePhysics = W.Component.PhysicsBody.preUpdate, W.Sprite.prototype.preUpdateLifeSpan = W.Component.LifeSpan.preUpdate, W.Sprite.prototype.preUpdateInWorld = W.Component.InWorld.preUpdate, W.Sprite.prototype.preUpdateCore = W.Component.Core.preUpdate, W.Sprite.prototype.preUpdate = function() { return !!(this.preUpdatePhysics() && this.preUpdateLifeSpan() && this.preUpdateInWorld()) && this.preUpdateCore() } , W.Image = function(e, t, i, r, o) { t = t || 0, i = i || 0, r = r || null, o = o || null, this.type = W.IMAGE, PIXI.Sprite.call(this, W.Cache.DEFAULT), W.Component.Core.init.call(this, e, t, i, r, o) } , W.Image.prototype = Object.create(PIXI.Sprite.prototype), W.Image.prototype.constructor = W.Image, W.Component.Core.install.call(W.Image.prototype, ["Angle", "Animation", "AutoCull", "Bounds", "BringToTop", "Crop", "Destroy", "FixedToCamera", "InputEnabled", "LifeSpan", "LoadTexture", "Overlap", "Reset", "ScaleMinMax", "Smoothed"]), W.Image.prototype.preUpdateInWorld = W.Component.InWorld.preUpdate, W.Image.prototype.preUpdateCore = W.Component.Core.preUpdate, W.Image.prototype.preUpdate = function() { return !!this.preUpdateInWorld() && this.preUpdateCore() } , W.Button = function(e, t, i, r, o, s, a, n, h, c) { t = t || 0, i = i || 0, r = r || null, o = o || null, s = s || this, W.Image.call(this, e, t, i, r, n), this.type = W.BUTTON, this.physicsType = W.SPRITE, this._onOverFrame = null, this._onOutFrame = null, this._onDownFrame = null, this._onUpFrame = null, this.onOverSound = null, this.onOutSound = null, this.onDownSound = null, this.onUpSound = null, this.onOverSoundMarker = "", this.onOutSoundMarker = "", this.onDownSoundMarker = "", this.onUpSoundMarker = "", this.onInputOver = new W.Signal, this.onInputOut = new W.Signal, this.onInputDown = new W.Signal, this.onInputUp = new W.Signal, this.onOverMouseOnly = !0, this.justReleasedPreventsOver = W.PointerMode.TOUCH, this.freezeFrames = !1, this.forceOut = !1, this.inputEnabled = !0, this.input.start(0, !0), this.input.useHandCursor = !0, this.setFrames(a, n, h, c), null !== o && this.onInputUp.add(o, s), this.events.onInputOver.add(this.onInputOverHandler, this), this.events.onInputOut.add(this.onInputOutHandler, this), this.events.onInputDown.add(this.onInputDownHandler, this), this.events.onInputUp.add(this.onInputUpHandler, this), this.events.onRemovedFromWorld.add(this.removedFromWorld, this) } , W.Button.prototype = Object.create(W.Image.prototype), W.Button.prototype.constructor = W.Button; var h = "Over" , c = "Out" , l = "Down" , m = "Up"; W.Button.prototype.clearFrames = function() { this.setFrames(null, null, null, null) } , W.Button.prototype.removedFromWorld = function() { this.inputEnabled = !1 } , W.Button.prototype.setStateFrame = function(e, t, i) { var r = "_on" + e + "Frame"; null !== t ? (this[r] = t, i && this.changeStateFrame(e)) : this[r] = null } , W.Button.prototype.changeStateFrame = function(e) { if (this.freezeFrames) return !1; var t = this["_on" + e + "Frame"]; return "string" == typeof t ? (this.frameName = t, !0) : "number" == typeof t && (this.frame = t, !0) } , W.Button.prototype.setFrames = function(e, t, i, r) { this.setStateFrame(h, e, this.input.pointerOver()), this.setStateFrame(c, t, !this.input.pointerOver()), this.setStateFrame(l, i, this.input.pointerDown()), this.setStateFrame(m, r, this.input.pointerUp()) } , W.Button.prototype.setStateSound = function(e, t, i) { var r = "on" + e + "Sound" , o = "on" + e + "SoundMarker"; t instanceof W.Sound || t instanceof W.AudioSprite ? (this[r] = t, this[o] = "string" == typeof i ? i : "") : (this[r] = null, this[o] = "") } , W.Button.prototype.playStateSound = function(e) { var t = this["on" + e + "Sound"]; if (t) { var i = this["on" + e + "SoundMarker"]; return t.play(i), !0 } return !1 } , W.Button.prototype.setSounds = function(e, t, i, r, o, s, a, n) { this.setStateSound(h, e, t), this.setStateSound(c, o, s), this.setStateSound(l, i, r), this.setStateSound(m, a, n) } , W.Button.prototype.setOverSound = function(e, t) { this.setStateSound(h, e, t) } , W.Button.prototype.setOutSound = function(e, t) { this.setStateSound(c, e, t) } , W.Button.prototype.setDownSound = function(e, t) { this.setStateSound(l, e, t) } , W.Button.prototype.setUpSound = function(e, t) { this.setStateSound(m, e, t) } , W.Button.prototype.onInputOverHandler = function(e, t) { t.justReleased() && (this.justReleasedPreventsOver & t.pointerMode) === t.pointerMode || (this.changeStateFrame(h), this.onOverMouseOnly && !t.isMouse || (this.playStateSound(h), this.onInputOver && this.onInputOver.dispatch(this, t))) } , W.Button.prototype.onInputOutHandler = function(e, t) { this.changeStateFrame(c), this.playStateSound(c), this.onInputOut && this.onInputOut.dispatch(this, t) } , W.Button.prototype.onInputDownHandler = function(e, t) { this.changeStateFrame(l), this.playStateSound(l), this.onInputDown && this.onInputDown.dispatch(this, t) } , W.Button.prototype.onInputUpHandler = function(e, t, i) { (this.playStateSound(m), this.onInputUp && this.onInputUp.dispatch(this, t, i), this.freezeFrames) || (!0 === this.forceOut || (this.forceOut & t.pointerMode) === t.pointerMode ? this.changeStateFrame(c) : this.changeStateFrame(m) || (i ? this.changeStateFrame(h) : this.changeStateFrame(c))) } , W.SpriteBatch = function(e, t, i, r) { null == t && (t = e.world), PIXI.SpriteBatch.call(this), W.Group.call(this, e, t, i, r), this.type = W.SPRITEBATCH } , W.SpriteBatch.prototype = W.Utils.extend(!0, W.SpriteBatch.prototype, PIXI.SpriteBatch.prototype, W.Group.prototype), W.SpriteBatch.prototype.constructor = W.SpriteBatch, W.BitmapData = function(e, t, i, r, o) { void 0 !== i && 0 !== i || (i = 256), void 0 !== r && 0 !== r || (r = 256), void 0 === o && (o = !1), this.game = e, this.key = t, this.width = i, this.height = r, this.canvas = W.Canvas.create(this, i, r, null, o), this.context = this.canvas.getContext("2d", { alpha: !0 }), this.ctx = this.context, this.smoothProperty = e.renderType === W.CANVAS ? e.renderer.renderSession.smoothProperty : W.Canvas.getSmoothingPrefix(this.context), this.imageData = this.context.getImageData(0, 0, i, r), this.data = null, this.imageData && (this.data = this.imageData.data), this.pixels = null, this.data && (this.imageData.data.buffer ? (this.buffer = this.imageData.data.buffer, this.pixels = new Uint32Array(this.buffer)) : window.ArrayBuffer ? (this.buffer = new ArrayBuffer(this.imageData.data.length), this.pixels = new Uint32Array(this.buffer)) : this.pixels = this.imageData.data), this.baseTexture = new PIXI.BaseTexture(this.canvas), this.texture = new PIXI.Texture(this.baseTexture), this.frameData = new W.FrameData, this.textureFrame = this.frameData.addFrame(new W.Frame(0,0,0,i,r,"bitmapData")), this.texture.frame = this.textureFrame, this.type = W.BITMAPDATA, this.disableTextureUpload = !1, this.dirty = !1, this.cls = this.clear, this._image = null, this._pos = new W.Point, this._size = new W.Point, this._scale = new W.Point, this._rotate = 0, this._alpha = { prev: 1, current: 1 }, this._anchor = new W.Point, this._tempR = 0, this._tempG = 0, this._tempB = 0, this._circle = new W.Circle, this._swapCanvas = void 0 } , W.BitmapData.prototype = { move: function(e, t, i) { return 0 !== e && this.moveH(e, i), 0 !== t && this.moveV(t, i), this }, moveH: function(e, t) { void 0 === t && (t = !0), void 0 === this._swapCanvas && (this._swapCanvas = PIXI.CanvasPool.create(this, this.width, this.height)); var i = this._swapCanvas.getContext("2d") , r = this.height , o = this.canvas; if (i.clearRect(0, 0, this.width, this.height), e < 0) { e = Math.abs(e); var s = this.width - e; t && i.drawImage(o, 0, 0, e, r, s, 0, e, r), i.drawImage(o, e, 0, s, r, 0, 0, s, r) } else { s = this.width - e; t && i.drawImage(o, s, 0, e, r, 0, 0, e, r), i.drawImage(o, 0, 0, s, r, e, 0, s, r) } return this.clear(), this.copy(this._swapCanvas) }, moveV: function(e, t) { void 0 === t && (t = !0), void 0 === this._swapCanvas && (this._swapCanvas = PIXI.CanvasPool.create(this, this.width, this.height)); var i = this._swapCanvas.getContext("2d") , r = this.width , o = this.canvas; if (i.clearRect(0, 0, this.width, this.height), e < 0) { e = Math.abs(e); var s = this.height - e; t && i.drawImage(o, 0, 0, r, e, 0, s, r, e), i.drawImage(o, 0, e, r, s, 0, 0, r, s) } else { s = this.height - e; t && i.drawImage(o, 0, s, r, e, 0, 0, r, e), i.drawImage(o, 0, 0, r, s, 0, e, r, s) } return this.clear(), this.copy(this._swapCanvas) }, add: function(e) { if (Array.isArray(e)) for (var t = 0; t < e.length; t++) e[t].loadTexture && e[t].loadTexture(this); else e.loadTexture(this); return this }, load: function(e) { if ("string" == typeof e && (e = this.game.cache.getImage(e)), e) return this.resize(e.width, e.height), this.cls(), this.draw(e), this.update(), this }, clear: function(e, t, i, r) { return void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = this.width), void 0 === r && (r = this.height), this.context.clearRect(e, t, i, r), this.dirty = !0, this }, fill: function(e, t, i, r) { return void 0 === r && (r = 1), this.context.fillStyle = "rgba(" + e + "," + t + "," + i + "," + r + ")", this.context.fillRect(0, 0, this.width, this.height), this.dirty = !0, this }, generateTexture: function(e) { var t = new Image; t.src = this.canvas.toDataURL("image/png"); var i = this.game.cache.addImage(e, "", t); return new PIXI.Texture(i.base) }, resize: function(e, t) { return e === this.width && t === this.height || (this.width = e, this.height = t, this.canvas.width = e, this.canvas.height = t, void 0 !== this._swapCanvas && (this._swapCanvas.width = e, this._swapCanvas.height = t), this.baseTexture.width = e, this.baseTexture.height = t, this.textureFrame.width = e, this.textureFrame.height = t, this.texture.width = e, this.texture.height = t, this.texture.crop.width = e, this.texture.crop.height = t, this.update(), this.dirty = !0), this }, update: function(e, t, i, r) { return void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = Math.max(1, this.width)), void 0 === r && (r = Math.max(1, this.height)), this.imageData = this.context.getImageData(e, t, i, r), this.data = this.imageData.data, this.imageData.data.buffer ? (this.buffer = this.imageData.data.buffer, this.pixels = new Uint32Array(this.buffer)) : window.ArrayBuffer ? (this.buffer = new ArrayBuffer(this.imageData.data.length), this.pixels = new Uint32Array(this.buffer)) : this.pixels = this.imageData.data, this }, processPixelRGB: function(e, t, i, r, o, s) { void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === o && (o = this.width), void 0 === s && (s = this.height); for (var a = i + o, n = r + s, h = W.Color.createColor(), c = { r: 0, g: 0, b: 0, a: 0 }, l = !1, m = r; m < n; m++) for (var u = i; u < a; u++) W.Color.unpackPixel(this.getPixel32(u, m), h), !1 !== (c = e.call(t, h, u, m)) && null != c && (this.setPixel32(u, m, c.r, c.g, c.b, c.a, !1), l = !0); return l && (this.context.putImageData(this.imageData, 0, 0), this.dirty = !0), this }, processPixel: function(e, t, i, r, o, s) { void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === o && (o = this.width), void 0 === s && (s = this.height); for (var a = i + o, n = r + s, h = 0, c = 0, l = !1, m = r; m < n; m++) for (var u = i; u < a; u++) h = this.getPixel32(u, m), (c = e.call(t, h, u, m)) !== h && (this.pixels[m * this.width + u] = c, l = !0); return l && (this.context.putImageData(this.imageData, 0, 0), this.dirty = !0), this }, replaceRGB: function(e, t, i, r, o, s, a, n, h) { var c = 0 , l = 0 , m = this.width , u = this.height , d = W.Color.packPixel(e, t, i, r); void 0 !== h && h instanceof W.Rectangle && (c = h.x, l = h.y, m = h.width, u = h.height); for (var p = 0; p < u; p++) for (var f = 0; f < m; f++) this.getPixel32(c + f, l + p) === d && this.setPixel32(c + f, l + p, o, s, a, n, !1); return this.context.putImageData(this.imageData, 0, 0), this.dirty = !0, this }, setHSL: function(e, t, i, r) { var o = e || 0 === e , s = t || 0 === t , a = i || 0 === i; if (o || s || a) { void 0 === r && (r = new W.Rectangle(0,0,this.width,this.height)); for (var n = W.Color.createColor(), h = r.y; h < r.bottom; h++) for (var c = r.x; c < r.right; c++) W.Color.unpackPixel(this.getPixel32(c, h), n, !0), o && (n.h = e), s && (n.s = t), a && (n.l = i), W.Color.HSLtoRGB(n.h, n.s, n.l, n), this.setPixel32(c, h, n.r, n.g, n.b, n.a, !1); return this.context.putImageData(this.imageData, 0, 0), this.dirty = !0, this } }, shiftHSL: function(e, t, i, r) { if (null == e && (e = !1), null == t && (t = !1), null == i && (i = !1), e || t || i) { void 0 === r && (r = new W.Rectangle(0,0,this.width,this.height)); for (var o = W.Color.createColor(), s = r.y; s < r.bottom; s++) for (var a = r.x; a < r.right; a++) W.Color.unpackPixel(this.getPixel32(a, s), o, !0), e && (o.h = this.game.math.wrap(o.h + e, 0, 1)), t && (o.s = this.game.math.clamp(o.s + t, 0, 1)), i && (o.l = this.game.math.clamp(o.l + i, 0, 1)), W.Color.HSLtoRGB(o.h, o.s, o.l, o), this.setPixel32(a, s, o.r, o.g, o.b, o.a, !1); return this.context.putImageData(this.imageData, 0, 0), this.dirty = !0, this } }, setPixel32: function(e, t, i, r, o, s, a) { return void 0 === a && (a = !0), 0 <= e && e <= this.width && 0 <= t && t <= this.height && (W.Device.LITTLE_ENDIAN ? this.pixels[t * this.width + e] = s << 24 | o << 16 | r << 8 | i : this.pixels[t * this.width + e] = i << 24 | r << 16 | o << 8 | s, a && (this.context.putImageData(this.imageData, 0, 0), this.dirty = !0)), this }, setPixel: function(e, t, i, r, o, s) { return this.setPixel32(e, t, i, r, o, 255, s) }, getPixel: function(e, t, i) { i || (i = W.Color.createColor()); var r = ~~(e + t * this.width); return r *= 4, i.r = this.data[r], i.g = this.data[++r], i.b = this.data[++r], i.a = this.data[++r], i }, getPixel32: function(e, t) { if (0 <= e && e <= this.width && 0 <= t && t <= this.height) return this.pixels[t * this.width + e] }, getPixelRGB: function(e, t, i, r, o) { return W.Color.unpackPixel(this.getPixel32(e, t), i, r, o) }, getPixels: function(e) { return this.context.getImageData(e.x, e.y, e.width, e.height) }, getFirstPixel: function(e) { void 0 === e && (e = 0); var t = W.Color.createColor() , i = 0 , r = 0 , o = 1 , s = !1; for (1 === e ? (o = -1, r = this.height) : 3 === e && (o = -1, i = this.width); W.Color.unpackPixel(this.getPixel32(i, r), t), 0 === e || 1 === e ? ++i === this.width && (i = 0, ((r += o) >= this.height || r <= 0) && (s = !0)) : 2 !== e && 3 !== e || ++r === this.height && (r = 0, ((i += o) >= this.width || i <= 0) && (s = !0)), 0 === t.a && !s; ) ; return t.x = i, t.y = r, t }, getBounds: function(e) { return void 0 === e && (e = new W.Rectangle), e.x = this.getFirstPixel(2).x, e.x === this.width ? e.setTo(0, 0, 0, 0) : (e.y = this.getFirstPixel(0).y, e.width = this.getFirstPixel(3).x - e.x + 1, e.height = this.getFirstPixel(1).y - e.y + 1, e) }, addToWorld: function(e, t, i, r, o, s) { o = o || 1, s = s || 1; var a = this.game.add.image(e, t, this); return a.anchor.set(i, r), a.scale.set(o, s), a }, copy: function(e, t, i, r, o, s, a, n, h, c, l, m, u, d, p, f, y) { if (null == e && (e = this), (e instanceof W.RenderTexture || e instanceof PIXI.RenderTexture) && (e = e.getCanvas()), (this._image = e)instanceof W.Sprite || e instanceof W.Image || e instanceof W.Text || e instanceof PIXI.Sprite) this._pos.set(e.texture.crop.x, e.texture.crop.y), this._size.set(e.texture.crop.width, e.texture.crop.height), this._scale.set(e.scale.x, e.scale.y), this._anchor.set(e.anchor.x, e.anchor.y), this._rotate = e.rotation, this._alpha.current = e.alpha, e.texture instanceof W.RenderTexture || e.texture instanceof PIXI.RenderTexture ? this._image = e.texture.getCanvas() : this._image = e.texture.baseTexture.source, null == s && (s = e.x), null == a && (a = e.y), e.texture.trim && (s += e.texture.trim.x - e.anchor.x * e.texture.trim.width, a += e.texture.trim.y - e.anchor.y * e.texture.trim.height), 16777215 !== e.tint && (e.cachedTint !== e.tint && (e.cachedTint = e.tint, e.tintedTexture = PIXI.CanvasTinter.getTintedTexture(e, e.tint)), this._image = e.tintedTexture, this._pos.set(0)); else { if (this._pos.set(0), this._scale.set(1), this._anchor.set(0), this._rotate = 0, this._alpha.current = 1, e instanceof W.BitmapData) this._image = e.canvas; else if ("string" == typeof e) { if (null === (e = this.game.cache.getImage(e))) return; this._image = e } this._size.set(this._image.width, this._image.height) } if (null == t && (t = 0), null == i && (i = 0), r && (this._size.x = r), o && (this._size.y = o), null == s && (s = t), null == a && (a = i), null == n && (n = this._size.x), null == h && (h = this._size.y), "number" == typeof c && (this._rotate = c), "number" == typeof l && (this._anchor.x = l), "number" == typeof m && (this._anchor.y = m), "number" == typeof u && (this._scale.x = u), "number" == typeof d && (this._scale.y = d), "number" == typeof p && (this._alpha.current = p), void 0 === f && (f = null), void 0 === y && (y = !1), !(this._alpha.current <= 0 || 0 === this._scale.x || 0 === this._scale.y || 0 === this._size.x || 0 === this._size.y)) { var S = this.context; return this._alpha.prev = S.globalAlpha, S.save(), S.globalAlpha = this._alpha.current, f && (this.op = f), y && (s |= 0, a |= 0), S.translate(s, a), S.scale(this._scale.x, this._scale.y), S.rotate(this._rotate), S.drawImage(this._image, this._pos.x + t, this._pos.y + i, this._size.x, this._size.y, -n * this._anchor.x, -h * this._anchor.y, n, h), S.restore(), S.globalAlpha = this._alpha.prev, this.dirty = !0, this } }, copyTransform: function(e, t, i) { if (void 0 === t && (t = null), void 0 === i && (i = !1), !e.hasOwnProperty("worldTransform") || !e.worldVisible || 0 === e.worldAlpha) return this; var r = e.worldTransform; if (this._pos.set(e.texture.crop.x, e.texture.crop.y), this._size.set(e.texture.crop.width, e.texture.crop.height), 0 === r.a || 0 === r.d || 0 === this._size.x || 0 === this._size.y) return this; e.texture instanceof W.RenderTexture || e.texture instanceof PIXI.RenderTexture ? this._image = e.texture.getCanvas() : this._image = e.texture.baseTexture.source; var o = r.tx , s = r.ty; e.texture.trim && (o += e.texture.trim.x - e.anchor.x * e.texture.trim.width, s += e.texture.trim.y - e.anchor.y * e.texture.trim.height), 16777215 !== e.tint && (e.cachedTint !== e.tint && (e.cachedTint = e.tint, e.tintedTexture = PIXI.CanvasTinter.getTintedTexture(e, e.tint)), this._image = e.tintedTexture, this._pos.set(0)), i && (o |= 0, s |= 0); var a = this.context; return this._alpha.prev = a.globalAlpha, a.save(), a.globalAlpha = this._alpha.current, t && (this.op = t), a[this.smoothProperty] = e.texture.baseTexture.scaleMode === PIXI.scaleModes.LINEAR, a.setTransform(r.a, r.b, r.c, r.d, o, s), a.drawImage(this._image, this._pos.x, this._pos.y, this._size.x, this._size.y, -this._size.x * e.anchor.x, -this._size.y * e.anchor.y, this._size.x, this._size.y), a.restore(), a.globalAlpha = this._alpha.prev, this.dirty = !0, this }, copyRect: function(e, t, i, r, o, s, a) { return this.copy(e, t.x, t.y, t.width, t.height, i, r, t.width, t.height, 0, 0, 0, 1, 1, o, s, a) }, draw: function(e, t, i, r, o, s, a) { return this.copy(e, null, null, null, null, t, i, r, o, null, null, null, null, null, null, s, a) }, drawGroup: function(e, t, i) { return 0 < e.total && e.forEachExists(this.drawGroupProxy, this, t, i), this }, drawGroupProxy: function(e, t, i) { if (e.hasOwnProperty("texture") && this.copyTransform(e, t, i), e.type === W.GROUP && e.exists) this.drawGroup(e, t, i); else if (e.hasOwnProperty("children") && 0 < e.children.length) for (var r = 0; r < e.children.length; r++) e.children[r].exists && this.copyTransform(e.children[r], t, i) }, drawFull: function(e, t, i) { if (!1 === e.worldVisible || 0 === e.worldAlpha || e.hasOwnProperty("exists") && !1 === e.exists) return this; if (e.type !== W.GROUP && e.type !== W.EMITTER && e.type !== W.BITMAPTEXT) if (e.type === W.GRAPHICS) { var r = e.getBounds(); this.ctx.save(), this.ctx.translate(r.x, r.y), PIXI.CanvasGraphics.renderGraphics(e, this.ctx), this.ctx.restore() } else this.copy(e, null, null, null, null, e.worldPosition.x, e.worldPosition.y, null, null, e.worldRotation, null, null, e.worldScale.x, e.worldScale.y, e.worldAlpha, t, i); if (e.children) for (var o = 0; o < e.children.length; o++) this.drawFull(e.children[o], t, i); return this }, shadow: function(e, t, i, r) { var o = this.context; return null == e ? o.shadowColor = "rgba(0,0,0,0)" : (o.shadowColor = e, o.shadowBlur = t || 5, o.shadowOffsetX = i || 10, o.shadowOffsetY = r || 10), this }, alphaMask: function(e, t, i, r) { return null == r ? this.draw(t).blendSourceAtop() : this.draw(t, r.x, r.y, r.width, r.height).blendSourceAtop(), null == i ? this.draw(e).blendReset() : this.draw(e, i.x, i.y, i.width, i.height).blendReset(), this }, extract: function(r, o, s, a, n, e, h, c, l) { return void 0 === n && (n = 255), void 0 === e && (e = !1), void 0 === h && (h = o), void 0 === c && (c = s), void 0 === l && (l = a), e && r.resize(this.width, this.height), this.processPixelRGB(function(e, t, i) { return e.r === o && e.g === s && e.b === a && r.setPixel32(t, i, h, c, l, n, !1), !1 }, this), r.context.putImageData(r.imageData, 0, 0), r.dirty = !0, r }, rect: function(e, t, i, r, o) { return void 0 !== o && (this.context.fillStyle = o), this.context.fillRect(e, t, i, r), this }, text: function(e, t, i, r, o, s) { void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = "14px Courier"), void 0 === o && (o = "rgb(255,255,255)"), void 0 === s && (s = !0); var a = this.context , n = a.font; return a.font = r, s && (a.fillStyle = "rgb(0,0,0)", a.fillText(e, t + 1, i + 1)), a.fillStyle = o, a.fillText(e, t, i), a.font = n, this }, circle: function(e, t, i, r) { var o = this.context; return void 0 !== r && (o.fillStyle = r), o.beginPath(), o.arc(e, t, i, 0, 2 * Math.PI, !1), o.closePath(), o.fill(), this }, line: function(e, t, i, r, o, s) { void 0 === o && (o = "#fff"), void 0 === s && (s = 1); var a = this.context; return a.beginPath(), a.moveTo(e, t), a.lineTo(i, r), a.lineWidth = s, a.strokeStyle = o, a.stroke(), a.closePath(), this }, textureLine: function(e, t, i) { if (void 0 === i && (i = "repeat-x"), "string" != typeof t || (t = this.game.cache.getImage(t))) { var r = e.length; "no-repeat" === i && r > t.width && (r = t.width); var o = this.context; return o.fillStyle = o.createPattern(t, i), this._circle = new W.Circle(e.start.x,e.start.y,t.height), this._circle.circumferencePoint(e.angle - 1.5707963267948966, !1, this._pos), o.save(), o.translate(this._pos.x, this._pos.y), o.rotate(e.angle), o.fillRect(0, 0, r, t.height), o.restore(), this.dirty = !0, this } }, render: function() { return !this.disableTextureUpload && this.dirty && (this.baseTexture.dirty(), this.dirty = !1), this }, destroy: function() { this.frameData.destroy(), this.texture.destroy(!0), PIXI.CanvasPool.remove(this) }, blendReset: function() { return this.op = "source-over", this }, blendSourceOver: function() { return this.op = "source-over", this }, blendSourceIn: function() { return this.op = "source-in", this }, blendSourceOut: function() { return this.op = "source-out", this }, blendSourceAtop: function() { return this.op = "source-atop", this }, blendDestinationOver: function() { return this.op = "destination-over", this }, blendDestinationIn: function() { return this.op = "destination-in", this }, blendDestinationOut: function() { return this.op = "destination-out", this }, blendDestinationAtop: function() { return this.op = "destination-atop", this }, blendXor: function() { return this.op = "xor", this }, blendAdd: function() { return this.op = "lighter", this }, blendMultiply: function() { return this.op = "multiply", this }, blendScreen: function() { return this.op = "screen", this }, blendOverlay: function() { return this.op = "overlay", this }, blendDarken: function() { return this.op = "darken", this }, blendLighten: function() { return this.op = "lighten", this }, blendColorDodge: function() { return this.op = "color-dodge", this }, blendColorBurn: function() { return this.op = "color-burn", this }, blendHardLight: function() { return this.op = "hard-light", this }, blendSoftLight: function() { return this.op = "soft-light", this }, blendDifference: function() { return this.op = "difference", this }, blendExclusion: function() { return this.op = "exclusion", this }, blendHue: function() { return this.op = "hue", this }, blendSaturation: function() { return this.op = "saturation", this }, blendColor: function() { return this.op = "color", this }, blendLuminosity: function() { return this.op = "luminosity", this } }, Object.defineProperty(W.BitmapData.prototype, "smoothed", { get: function() { W.Canvas.getSmoothingEnabled(this.context) }, set: function(e) { W.Canvas.setSmoothingEnabled(this.context, e) } }), Object.defineProperty(W.BitmapData.prototype, "op", { get: function() { return this.context.globalCompositeOperation }, set: function(e) { this.context.globalCompositeOperation = e } }), W.BitmapData.getTransform = function(e, t, i, r, o, s) { return "number" != typeof e && (e = 0), "number" != typeof t && (t = 0), "number" != typeof i && (i = 1), "number" != typeof r && (r = 1), "number" != typeof o && (o = 0), "number" != typeof s && (s = 0), { sx: i, sy: r, scaleX: i, scaleY: r, skewX: o, skewY: s, translateX: e, translateY: t, tx: e, ty: t } } , W.BitmapData.prototype.constructor = W.BitmapData, PIXI.Graphics = function() { PIXI.DisplayObjectContainer.call(this), this.renderable = !0, this.fillAlpha = 1, this.lineWidth = 0, this.lineColor = 0, this.graphicsData = [], this.tint = 16777215, this.blendMode = PIXI.blendModes.NORMAL, this.currentPath = null, this._webGL = [], this.isMask = !1, this.boundsPadding = 0, this._localBounds = new PIXI.Rectangle(0,0,1,1), this.dirty = !0, this._boundsDirty = !1, this.webGLDirty = !1, this.cachedSpriteDirty = !1 } , PIXI.Graphics.prototype = Object.create(PIXI.DisplayObjectContainer.prototype), PIXI.Graphics.prototype.constructor = PIXI.Graphics, PIXI.Graphics.prototype.lineStyle = function(e, t, i) { return this.lineWidth = e || 0, this.lineColor = t || 0, this.lineAlpha = void 0 === i ? 1 : i, this.currentPath && (this.currentPath.shape.points.length ? this.drawShape(new PIXI.Polygon(this.currentPath.shape.points.slice(-2))) : (this.currentPath.lineWidth = this.lineWidth, this.currentPath.lineColor = this.lineColor, this.currentPath.lineAlpha = this.lineAlpha)), this } , PIXI.Graphics.prototype.moveTo = function(e, t) { return this.drawShape(new PIXI.Polygon([e, t])), this } , PIXI.Graphics.prototype.lineTo = function(e, t) { return this.currentPath || this.moveTo(0, 0), this.currentPath.shape.points.push(e, t), this.dirty = !0, this._boundsDirty = !0, this } , PIXI.Graphics.prototype.quadraticCurveTo = function(e, t, i, r) { this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0); var o, s, a = this.currentPath.shape.points; 0 === a.length && this.moveTo(0, 0); for (var n = a[a.length - 2], h = a[a.length - 1], c = 0, l = 1; l <= 20; ++l) o = n + (e - n) * (c = l / 20), s = h + (t - h) * c, a.push(o + (e + (i - e) * c - o) * c, s + (t + (r - t) * c - s) * c); return this.dirty = !0, this._boundsDirty = !0, this } , PIXI.Graphics.prototype.bezierCurveTo = function(e, t, i, r, o, s) { this.currentPath ? 0 === this.currentPath.shape.points.length && (this.currentPath.shape.points = [0, 0]) : this.moveTo(0, 0); for (var a, n, h, c, l, m = this.currentPath.shape.points, u = m[m.length - 2], d = m[m.length - 1], p = 0, f = 1; f <= 20; ++f) h = (n = (a = 1 - (p = f / 20)) * a) * a, l = (c = p * p) * p, m.push(h * u + 3 * n * p * e + 3 * a * c * i + l * o, h * d + 3 * n * p * t + 3 * a * c * r + l * s); return this.dirty = !0, this._boundsDirty = !0, this } , PIXI.Graphics.prototype.arcTo = function(e, t, i, r, o) { this.currentPath ? 0 === this.currentPath.shape.points.length && this.currentPath.shape.points.push(e, t) : this.moveTo(e, t); var s = this.currentPath.shape.points , a = s[s.length - 2] , n = s[s.length - 1] - t , h = a - e , c = r - t , l = i - e , m = Math.abs(n * l - h * c); if (m < 1e-8 || 0 === o) s[s.length - 2] === e && s[s.length - 1] === t || s.push(e, t); else { var u = n * n + h * h , d = c * c + l * l , p = n * c + h * l , f = o * Math.sqrt(u) / m , y = o * Math.sqrt(d) / m , S = f * p / u , w = y * p / d , g = f * l + y * h , x = f * c + y * n , b = h * (y + S) , v = n * (y + S) , z = l * (f + w) , C = c * (f + w) , T = Math.atan2(v - x, b - g) , P = Math.atan2(C - x, z - g); this.arc(g + e, x + t, o, T, P, l * n < h * c) } return this.dirty = !0, this._boundsDirty = !0, this } , PIXI.Graphics.prototype.arc = function(e, t, i, r, o, s, a) { if (r === o) return this; void 0 === s && (s = !1), void 0 === a && (a = 40), !s && o <= r ? o += 2 * Math.PI : s && r <= o && (r += 2 * Math.PI); var n = s ? -1 * (r - o) : o - r , h = Math.ceil(Math.abs(n) / (2 * Math.PI)) * a; if (0 === n) return this; var c = e + Math.cos(r) * i , l = t + Math.sin(r) * i; s && this.filling ? this.moveTo(e, t) : this.moveTo(c, l); for (var m = this.currentPath.shape.points, u = n / (2 * h), d = 2 * u, p = Math.cos(u), f = Math.sin(u), y = h - 1, S = y % 1 / y, w = 0; w <= y; w++) { var g = u + r + d * (w + S * w) , x = Math.cos(g) , b = -Math.sin(g); m.push((p * x + f * b) * i + e, (p * -b + f * x) * i + t) } return this.dirty = !0, this._boundsDirty = !0, this } , PIXI.Graphics.prototype.beginFill = function(e, t) { return this.filling = !0, this.fillColor = e || 0, this.fillAlpha = void 0 === t ? 1 : t, this.currentPath && this.currentPath.shape.points.length <= 2 && (this.currentPath.fill = this.filling, this.currentPath.fillColor = this.fillColor, this.currentPath.fillAlpha = this.fillAlpha), this } , PIXI.Graphics.prototype.endFill = function() { return this.filling = !1, this.fillColor = null, this.fillAlpha = 1, this } , PIXI.Graphics.prototype.drawRect = function(e, t, i, r) { return this.drawShape(new PIXI.Rectangle(e,t,i,r)), this } , PIXI.Graphics.prototype.drawRoundedRect = function(e, t, i, r, o) { return this.drawShape(new PIXI.RoundedRectangle(e,t,i,r,o)), this } , PIXI.Graphics.prototype.drawCircle = function(e, t, i) { return this.drawShape(new PIXI.Circle(e,t,i)), this } , PIXI.Graphics.prototype.drawEllipse = function(e, t, i, r) { return this.drawShape(new PIXI.Ellipse(e,t,i,r)), this } , PIXI.Graphics.prototype.drawPolygon = function(e) { (e instanceof W.Polygon || e instanceof PIXI.Polygon) && (e = e.points); var t = e; if (!Array.isArray(t)) { t = new Array(arguments.length); for (var i = 0; i < t.length; ++i) t[i] = arguments[i] } return this.drawShape(new W.Polygon(t)), this } , PIXI.Graphics.prototype.clear = function() { return this.lineWidth = 0, this.filling = !1, this.dirty = !0, this._boundsDirty = !0, this.clearDirty = !0, this.graphicsData = [], this.updateLocalBounds(), this } , PIXI.Graphics.prototype.generateTexture = function(e, t, i) { void 0 === e && (e = 1), void 0 === t && (t = PIXI.scaleModes.DEFAULT), void 0 === i && (i = 0); var r = this.getBounds(); r.width += i, r.height += i; var o = new PIXI.CanvasBuffer(r.width * e,r.height * e) , s = PIXI.Texture.fromCanvas(o.canvas, t); return s.baseTexture.resolution = e, o.context.scale(e, e), o.context.translate(-r.x, -r.y), PIXI.CanvasGraphics.renderGraphics(this, o.context), s } , PIXI.Graphics.prototype._renderWebGL = function(e) { if (!1 !== this.visible && 0 !== this.alpha && !0 !== this.isMask) { if (this._cacheAsBitmap) return (this.dirty || this.cachedSpriteDirty) && (this._generateCachedSprite(), this.updateCachedSpriteTexture(), this.cachedSpriteDirty = !1, this.dirty = !1), this._cachedSprite.worldAlpha = this.worldAlpha, void PIXI.Sprite.prototype._renderWebGL.call(this._cachedSprite, e); if (e.spriteBatch.stop(), e.blendModeManager.setBlendMode(this.blendMode), this._mask && e.maskManager.pushMask(this._mask, e), this._filters && e.filterManager.pushFilter(this._filterBlock), this.blendMode !== e.spriteBatch.currentBlendMode) { e.spriteBatch.currentBlendMode = this.blendMode; var t = PIXI.blendModesWebGL[e.spriteBatch.currentBlendMode]; e.spriteBatch.gl.blendFunc(t[0], t[1]) } if (this.webGLDirty && (this.dirty = !0, this.webGLDirty = !1), PIXI.WebGLGraphics.renderGraphics(this, e), this.children.length) { e.spriteBatch.start(); for (var i = 0; i < this.children.length; i++) this.children[i]._renderWebGL(e); e.spriteBatch.stop() } this._filters && e.filterManager.popFilter(), this._mask && e.maskManager.popMask(this.mask, e), e.drawCount++, e.spriteBatch.start() } } , PIXI.Graphics.prototype._renderCanvas = function(e) { if (!1 !== this.visible && 0 !== this.alpha && !0 !== this.isMask) { if (this._prevTint !== this.tint && (this.dirty = !0, this._prevTint = this.tint), this._cacheAsBitmap) return (this.dirty || this.cachedSpriteDirty) && (this._generateCachedSprite(), this.updateCachedSpriteTexture(), this.cachedSpriteDirty = !1, this.dirty = !1), this._cachedSprite.alpha = this.alpha, void PIXI.Sprite.prototype._renderCanvas.call(this._cachedSprite, e); var t = e.context , i = this.worldTransform; this.blendMode !== e.currentBlendMode && (e.currentBlendMode = this.blendMode, t.globalCompositeOperation = PIXI.blendModesCanvas[e.currentBlendMode]), this._mask && e.maskManager.pushMask(this._mask, e); var r = e.resolution , o = i.tx * e.resolution + e.shakeX , s = i.ty * e.resolution + e.shakeY; t.setTransform(i.a * r, i.b * r, i.c * r, i.d * r, o, s), PIXI.CanvasGraphics.renderGraphics(this, t); for (var a = 0; a < this.children.length; a++) this.children[a]._renderCanvas(e); this._mask && e.maskManager.popMask(e) } } , PIXI.Graphics.prototype.getBounds = function(e) { if (!this._currentBounds) { if (!this.renderable) return PIXI.EmptyRectangle; this.dirty && (this.updateLocalBounds(), this.webGLDirty = !0, this.cachedSpriteDirty = !0, this.dirty = !1); var t = this._localBounds , i = t.x , r = t.width + t.x , o = t.y , s = t.height + t.y , a = e || this.worldTransform , n = a.a , h = a.b , c = a.c , l = a.d , m = a.tx , u = a.ty , d = n * r + c * s + m , p = l * s + h * r + u , f = n * i + c * s + m , y = l * s + h * i + u , S = n * i + c * o + m , w = l * o + h * i + u , g = n * r + c * o + m , x = l * o + h * r + u , b = d , v = p , z = d , C = p; z = g < (z = S < (z = f < z ? f : z) ? S : z) ? g : z, C = x < (C = w < (C = y < C ? y : C) ? w : C) ? x : C, b = (b = (b = b < f ? f : b) < S ? S : b) < g ? g : b, v = (v = (v = v < y ? y : v) < w ? w : v) < x ? x : v, this._bounds.x = z, this._bounds.width = b - z, this._bounds.y = C, this._bounds.height = v - C, this._currentBounds = this._bounds } return this._currentBounds } , PIXI.Graphics.prototype.getLocalBounds = function() { var e = this.worldTransform; this.worldTransform = PIXI.identityMatrix; for (var t = 0; t < this.children.length; t++) this.children[t].updateTransform(); var i = this.getBounds(); for (this.worldTransform = e, t = 0; t < this.children.length; t++) this.children[t].updateTransform(); return i } , PIXI.Graphics.prototype.containsPoint = function(e) { this.worldTransform.applyInverse(e, tempPoint); for (var t = this.graphicsData, i = 0; i < t.length; i++) { var r = t[i]; if (r.fill && (r.shape && r.shape.contains(tempPoint.x, tempPoint.y))) return !0 } return !1 } , PIXI.Graphics.prototype.updateLocalBounds = function() { var e = 1 / 0 , t = -1 / 0 , i = 1 / 0 , r = -1 / 0; if (this.graphicsData.length) for (var o, s, a, n, h, c, l = 0; l < this.graphicsData.length; l++) { var m = this.graphicsData[l] , u = m.type , d = m.lineWidth; if (o = m.shape, u === PIXI.Graphics.RECT || u === PIXI.Graphics.RREC) a = o.x - d / 2, n = o.y - d / 2, e = a < e ? a : e, t = t < a + (h = o.width + d) ? a + h : t, i = n < i ? n : i, r = r < n + (c = o.height + d) ? n + c : r; else if (u === PIXI.Graphics.CIRC) a = o.x, n = o.y, e = a - (h = o.radius + d / 2) < e ? a - h : e, t = t < a + h ? a + h : t, i = n - (c = o.radius + d / 2) < i ? n - c : i, r = r < n + c ? n + c : r; else if (u === PIXI.Graphics.ELIP) a = o.x, n = o.y, e = a - (h = o.width + d / 2) < e ? a - h : e, t = t < a + h ? a + h : t, i = n - (c = o.height + d / 2) < i ? n - c : i, r = r < n + c ? n + c : r; else { s = o.points; for (var p = 0; p < s.length; p++) s[p]instanceof W.Point ? (a = s[p].x, n = s[p].y) : (a = s[p], n = s[p + 1], p < s.length - 1 && p++), e = a - d < e ? a - d : e, t = t < a + d ? a + d : t, i = n - d < i ? n - d : i, r = r < n + d ? n + d : r } } else r = i = t = e = 0; var f = this.boundsPadding; this._localBounds.x = e - f, this._localBounds.width = t - e + 2 * f, this._localBounds.y = i - f, this._localBounds.height = r - i + 2 * f } , PIXI.Graphics.prototype._generateCachedSprite = function() { var e = this.getLocalBounds(); if (this._cachedSprite) this._cachedSprite.buffer.resize(e.width, e.height); else { var t = new PIXI.CanvasBuffer(e.width,e.height) , i = PIXI.Texture.fromCanvas(t.canvas); this._cachedSprite = new PIXI.Sprite(i), this._cachedSprite.buffer = t, this._cachedSprite.worldTransform = this.worldTransform } this._cachedSprite.anchor.x = -e.x / e.width, this._cachedSprite.anchor.y = -e.y / e.height, this._cachedSprite.buffer.context.translate(-e.x, -e.y), this.worldAlpha = 1, PIXI.CanvasGraphics.renderGraphics(this, this._cachedSprite.buffer.context), this._cachedSprite.alpha = this.alpha } , PIXI.Graphics.prototype.updateCachedSpriteTexture = function() { var e = this._cachedSprite , t = e.texture , i = e.buffer.canvas; t.baseTexture.width = i.width, t.baseTexture.height = i.height, t.crop.width = t.frame.width = i.width, t.crop.height = t.frame.height = i.height, e._width = i.width, e._height = i.height, t.baseTexture.dirty() } , PIXI.Graphics.prototype.destroyCachedSprite = function() { this._cachedSprite.texture.destroy(!0), this._cachedSprite = null } , PIXI.Graphics.prototype.drawShape = function(e) { this.currentPath && this.currentPath.shape.points.length <= 2 && this.graphicsData.pop(), this.currentPath = null, e instanceof W.Polygon && (e = e.clone()).flatten(); var t = new PIXI.GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.filling,e); return this.graphicsData.push(t), t.type === PIXI.Graphics.POLY && (t.shape.closed = this.filling, this.currentPath = t), this.dirty = !0, this._boundsDirty = !0, t } , Object.defineProperty(PIXI.Graphics.prototype, "cacheAsBitmap", { get: function() { return this._cacheAsBitmap }, set: function(e) { this._cacheAsBitmap = e, this._cacheAsBitmap ? this._generateCachedSprite() : this.destroyCachedSprite(), this.dirty = !0, this.webGLDirty = !0 } }), PIXI.GraphicsData = function(e, t, i, r, o, s, a) { this.lineWidth = e, this.lineColor = t, this.lineAlpha = i, this._lineTint = t, this.fillColor = r, this.fillAlpha = o, this._fillTint = r, this.fill = s, this.shape = a, this.type = a.type } , PIXI.GraphicsData.prototype.constructor = PIXI.GraphicsData, PIXI.GraphicsData.prototype.clone = function() { return new GraphicsData(this.lineWidth,this.lineColor,this.lineAlpha,this.fillColor,this.fillAlpha,this.fill,this.shape) } , PIXI.EarCut = {}, PIXI.EarCut.Triangulate = function(e, t, i) { i = i || 2; var r, o, s, a, n, h, c, l = t && t.length, m = l ? t[0] * i : e.length, u = PIXI.EarCut.linkedList(e, 0, m, i, !0), d = []; if (!u) return d; if (l && (u = PIXI.EarCut.eliminateHoles(e, t, u, i)), e.length > 80 * i) { r = s = e[0], o = a = e[1]; for (var p = i; p < m; p += i) (n = e[p]) < r && (r = n), (h = e[p + 1]) < o && (o = h), s < n && (s = n), a < h && (a = h); c = Math.max(s - r, a - o) } return PIXI.EarCut.earcutLinked(u, d, i, r, o, c), d } , PIXI.EarCut.linkedList = function(e, t, i, r, o) { var s, a, n, h = 0; for (s = t, a = i - r; s < i; s += r) h += (e[a] - e[s]) * (e[s + 1] + e[a + 1]), a = s; if (o === 0 < h) for (s = t; s < i; s += r) n = PIXI.EarCut.insertNode(s, e[s], e[s + 1], n); else for (s = i - r; t <= s; s -= r) n = PIXI.EarCut.insertNode(s, e[s], e[s + 1], n); return n } , PIXI.EarCut.filterPoints = function(e, t) { if (!e) return e; t || (t = e); var i, r = e; do { if (i = !1, r.steiner || !PIXI.EarCut.equals(r, r.next) && 0 !== PIXI.EarCut.area(r.prev, r, r.next)) r = r.next; else { if (PIXI.EarCut.removeNode(r), (r = t = r.prev) === r.next) return null; i = !0 } } while (i || r !== t); return t } , PIXI.EarCut.earcutLinked = function(e, t, i, r, o, s, a) { if (e) { !a && s && PIXI.EarCut.indexCurve(e, r, o, s); for (var n, h, c = e; e.prev !== e.next; ) if (n = e.prev, h = e.next, s ? PIXI.EarCut.isEarHashed(e, r, o, s) : PIXI.EarCut.isEar(e)) t.push(n.i / i), t.push(e.i / i), t.push(h.i / i), PIXI.EarCut.removeNode(e), e = h.next, c = h.next; else if ((e = h) === c) { a ? 1 === a ? (e = PIXI.EarCut.cureLocalIntersections(e, t, i), PIXI.EarCut.earcutLinked(e, t, i, r, o, s, 2)) : 2 === a && PIXI.EarCut.splitEarcut(e, t, i, r, o, s) : PIXI.EarCut.earcutLinked(PIXI.EarCut.filterPoints(e), t, i, r, o, s, 1); break } } } , PIXI.EarCut.isEar = function(e) { var t = e.prev , i = e , r = e.next; if (0 <= PIXI.EarCut.area(t, i, r)) return !1; for (var o = e.next.next; o !== e.prev; ) { if (PIXI.EarCut.pointInTriangle(t.x, t.y, i.x, i.y, r.x, r.y, o.x, o.y) && 0 <= PIXI.EarCut.area(o.prev, o, o.next)) return !1; o = o.next } return !0 } , PIXI.EarCut.isEarHashed = function(e, t, i, r) { var o = e.prev , s = e , a = e.next; if (0 <= PIXI.EarCut.area(o, s, a)) return !1; for (var n = o.x < s.x ? o.x < a.x ? o.x : a.x : s.x < a.x ? s.x : a.x, h = o.y < s.y ? o.y < a.y ? o.y : a.y : s.y < a.y ? s.y : a.y, c = o.x > s.x ? o.x > a.x ? o.x : a.x : s.x > a.x ? s.x : a.x, l = o.y > s.y ? o.y > a.y ? o.y : a.y : s.y > a.y ? s.y : a.y, m = PIXI.EarCut.zOrder(n, h, t, i, r), u = PIXI.EarCut.zOrder(c, l, t, i, r), d = e.nextZ; d && d.z <= u; ) { if (d !== e.prev && d !== e.next && PIXI.EarCut.pointInTriangle(o.x, o.y, s.x, s.y, a.x, a.y, d.x, d.y) && 0 <= PIXI.EarCut.area(d.prev, d, d.next)) return !1; d = d.nextZ } for (d = e.prevZ; d && d.z >= m; ) { if (d !== e.prev && d !== e.next && PIXI.EarCut.pointInTriangle(o.x, o.y, s.x, s.y, a.x, a.y, d.x, d.y) && 0 <= PIXI.EarCut.area(d.prev, d, d.next)) return !1; d = d.prevZ } return !0 } , PIXI.EarCut.cureLocalIntersections = function(e, t, i) { var r = e; do { var o = r.prev , s = r.next.next; PIXI.EarCut.intersects(o, r, r.next, s) && PIXI.EarCut.locallyInside(o, s) && PIXI.EarCut.locallyInside(s, o) && (t.push(o.i / i), t.push(r.i / i), t.push(s.i / i), PIXI.EarCut.removeNode(r), PIXI.EarCut.removeNode(r.next), r = e = s), r = r.next } while (r !== e); return r } , PIXI.EarCut.splitEarcut = function(e, t, i, r, o, s) { var a = e; do { for (var n = a.next.next; n !== a.prev; ) { if (a.i !== n.i && PIXI.EarCut.isValidDiagonal(a, n)) { var h = PIXI.EarCut.splitPolygon(a, n); return a = PIXI.EarCut.filterPoints(a, a.next), h = PIXI.EarCut.filterPoints(h, h.next), PIXI.EarCut.earcutLinked(a, t, i, r, o, s), void PIXI.EarCut.earcutLinked(h, t, i, r, o, s) } n = n.next } a = a.next } while (a !== e) } , PIXI.EarCut.eliminateHoles = function(e, t, i, r) { var o, s, a, n, h, c = []; for (o = 0, s = t.length; o < s; o++) a = t[o] * r, n = o < s - 1 ? t[o + 1] * r : e.length, (h = PIXI.EarCut.linkedList(e, a, n, r, !1)) === h.next && (h.steiner = !0), c.push(PIXI.EarCut.getLeftmost(h)); for (c.sort(compareX), o = 0; o < c.length; o++) PIXI.EarCut.eliminateHole(c[o], i), i = PIXI.EarCut.filterPoints(i, i.next); return i } , PIXI.EarCut.compareX = function(e, t) { return e.x - t.x } , PIXI.EarCut.eliminateHole = function(e, t) { if (t = PIXI.EarCut.findHoleBridge(e, t)) { var i = PIXI.EarCut.splitPolygon(t, e); PIXI.EarCut.filterPoints(i, i.next) } } , PIXI.EarCut.findHoleBridge = function(e, t) { var i, r = t, o = e.x, s = e.y, a = -1 / 0; do { if (s <= r.y && s >= r.next.y) { var n = r.x + (s - r.y) * (r.next.x - r.x) / (r.next.y - r.y); n <= o && a < n && (a = n, i = r.x < r.next.x ? r : r.next) } r = r.next } while (r !== t); if (!i) return null; if (e.x === i.x) return i.prev; var h, c = i, l = 1 / 0; for (r = i.next; r !== c; ) o >= r.x && r.x >= i.x && PIXI.EarCut.pointInTriangle(s < i.y ? o : a, s, i.x, i.y, s < i.y ? a : o, s, r.x, r.y) && ((h = Math.abs(s - r.y) / (o - r.x)) < l || h === l && r.x > i.x) && PIXI.EarCut.locallyInside(r, e) && (i = r, l = h), r = r.next; return i } , PIXI.EarCut.indexCurve = function(e, t, i, r) { for (var o = e; null === o.z && (o.z = PIXI.EarCut.zOrder(o.x, o.y, t, i, r)), o.prevZ = o.prev, o.nextZ = o.next, (o = o.next) !== e; ) ; o.prevZ.nextZ = null, o.prevZ = null, PIXI.EarCut.sortLinked(o) } , PIXI.EarCut.sortLinked = function(e) { var t, i, r, o, s, a, n, h, c = 1; do { for (i = e, s = e = null, a = 0; i; ) { for (a++, r = i, t = n = 0; t < c && (n++, r = r.nextZ); t++) ; for (h = c; 0 < n || 0 < h && r; ) 0 === n ? (r = (o = r).nextZ, h--) : 0 !== h && r ? i.z <= r.z ? (i = (o = i).nextZ, n--) : (r = (o = r).nextZ, h--) : (i = (o = i).nextZ, n--), s ? s.nextZ = o : e = o, o.prevZ = s, s = o; i = r } s.nextZ = null, c *= 2 } while (1 < a); return e } , PIXI.EarCut.zOrder = function(e, t, i, r, o) { return (e = 1431655765 & ((e = 858993459 & ((e = 252645135 & ((e = 16711935 & ((e = 32767 * (e - i) / o) | e << 8)) | e << 4)) | e << 2)) | e << 1)) | (t = 1431655765 & ((t = 858993459 & ((t = 252645135 & ((t = 16711935 & ((t = 32767 * (t - r) / o) | t << 8)) | t << 4)) | t << 2)) | t << 1)) << 1 } , PIXI.EarCut.getLeftmost = function(e) { for (var t = e, i = e; t.x < i.x && (i = t), (t = t.next) !== e; ) ; return i } , PIXI.EarCut.pointInTriangle = function(e, t, i, r, o, s, a, n) { return 0 <= (o - a) * (t - n) - (e - a) * (s - n) && 0 <= (e - a) * (r - n) - (i - a) * (t - n) && 0 <= (i - a) * (s - n) - (o - a) * (r - n) } , PIXI.EarCut.isValidDiagonal = function(e, t) { return PIXI.EarCut.equals(e, t) || e.next.i !== t.i && e.prev.i !== t.i && !PIXI.EarCut.intersectsPolygon(e, t) && PIXI.EarCut.locallyInside(e, t) && PIXI.EarCut.locallyInside(t, e) && PIXI.EarCut.middleInside(e, t) } , PIXI.EarCut.area = function(e, t, i) { return (t.y - e.y) * (i.x - t.x) - (t.x - e.x) * (i.y - t.y) } , PIXI.EarCut.equals = function(e, t) { return e.x === t.x && e.y === t.y } , PIXI.EarCut.intersects = function(e, t, i, r) { return 0 < PIXI.EarCut.area(e, t, i) != 0 < PIXI.EarCut.area(e, t, r) && 0 < PIXI.EarCut.area(i, r, e) != 0 < PIXI.EarCut.area(i, r, t) } , PIXI.EarCut.intersectsPolygon = function(e, t) { var i = e; do { if (i.i !== e.i && i.next.i !== e.i && i.i !== t.i && i.next.i !== t.i && PIXI.EarCut.intersects(i, i.next, e, t)) return !0; i = i.next } while (i !== e); return !1 } , PIXI.EarCut.locallyInside = function(e, t) { return PIXI.EarCut.area(e.prev, e, e.next) < 0 ? 0 <= PIXI.EarCut.area(e, t, e.next) && 0 <= PIXI.EarCut.area(e, e.prev, t) : PIXI.EarCut.area(e, t, e.prev) < 0 || PIXI.EarCut.area(e, e.next, t) < 0 } , PIXI.EarCut.middleInside = function(e, t) { for (var i = e, r = !1, o = (e.x + t.x) / 2, s = (e.y + t.y) / 2; i.y > s != i.next.y > s && o < (i.next.x - i.x) * (s - i.y) / (i.next.y - i.y) + i.x && (r = !r), (i = i.next) !== e; ) ; return r } , PIXI.EarCut.splitPolygon = function(e, t) { var i = new PIXI.EarCut.Node(e.i,e.x,e.y) , r = new PIXI.EarCut.Node(t.i,t.x,t.y) , o = e.next , s = t.prev; return (e.next = t).prev = e, (i.next = o).prev = i, (r.next = i).prev = r, (s.next = r).prev = s, r } , PIXI.EarCut.insertNode = function(e, t, i, r) { var o = new PIXI.EarCut.Node(e,t,i); return r ? (o.next = r.next, (o.prev = r).next.prev = o, r.next = o) : (o.prev = o).next = o, o } , PIXI.EarCut.removeNode = function(e) { e.next.prev = e.prev, e.prev.next = e.next, e.prevZ && (e.prevZ.nextZ = e.nextZ), e.nextZ && (e.nextZ.prevZ = e.prevZ) } , PIXI.EarCut.Node = function(e, t, i) { this.i = e, this.x = t, this.y = i, this.prev = null, this.next = null, this.z = null, this.prevZ = null, this.nextZ = null, this.steiner = !1 } , PIXI.WebGLGraphics = function() {} , PIXI.WebGLGraphics.stencilBufferLimit = 6, PIXI.WebGLGraphics.renderGraphics = function(e, t) { var i, r = t.gl, o = t.projection, s = t.offset, a = t.shaderManager.primitiveShader; e.dirty && PIXI.WebGLGraphics.updateGraphics(e, r); for (var n = e._webGL[r.id], h = 0; h < n.data.length; h++) 1 === n.data[h].mode ? (i = n.data[h], t.stencilManager.pushStencil(e, i, t), r.drawElements(r.TRIANGLE_FAN, 4, r.UNSIGNED_SHORT, 2 * (i.indices.length - 4)), t.stencilManager.popStencil(e, i, t)) : (i = n.data[h], t.shaderManager.setShader(a), a = t.shaderManager.primitiveShader, r.uniformMatrix3fv(a.translationMatrix, !1, e.worldTransform.toArray(!0)), r.uniform1f(a.flipY, 1), r.uniform2f(a.projectionVector, o.x, -o.y), r.uniform2f(a.offsetVector, -s.x, -s.y), r.uniform3fv(a.tintColor, PIXI.hex2rgb(e.tint)), r.uniform1f(a.alpha, e.worldAlpha), r.bindBuffer(r.ARRAY_BUFFER, i.buffer), r.vertexAttribPointer(a.aVertexPosition, 2, r.FLOAT, !1, 24, 0), r.vertexAttribPointer(a.colorAttribute, 4, r.FLOAT, !1, 24, 8), r.bindBuffer(r.ELEMENT_ARRAY_BUFFER, i.indexBuffer), r.drawElements(r.TRIANGLE_STRIP, i.indices.length, r.UNSIGNED_SHORT, 0)) } , PIXI.WebGLGraphics.updateGraphics = function(e, t) { var i, r, o = e._webGL[t.id]; if (o || (o = e._webGL[t.id] = { lastIndex: 0, data: [], gl: t }), e.dirty = !1, e.clearDirty) { for (e.clearDirty = !1, i = 0; i < o.data.length; i++) { var s = o.data[i]; s.reset(), PIXI.WebGLGraphics.graphicsDataPool.push(s) } o.data = [], o.lastIndex = 0 } for (i = o.lastIndex; i < e.graphicsData.length; i++) { var a = e.graphicsData[i]; if (a.type === PIXI.Graphics.POLY) { if (a.points = a.shape.points.slice(), a.shape.closed && (a.points[0] === a.points[a.points.length - 2] && a.points[1] === a.points[a.points.length - 1] || a.points.push(a.points[0], a.points[1])), a.fill) if (a.points.length >= PIXI.WebGLGraphics.stencilBufferLimit) if (a.points.length < 2 * PIXI.WebGLGraphics.stencilBufferLimit) r = PIXI.WebGLGraphics.switchMode(o, 0), PIXI.WebGLGraphics.buildPoly(a, r) || (r = PIXI.WebGLGraphics.switchMode(o, 1), PIXI.WebGLGraphics.buildComplexPoly(a, r)); else r = PIXI.WebGLGraphics.switchMode(o, 1), PIXI.WebGLGraphics.buildComplexPoly(a, r); 0 < a.lineWidth && (r = PIXI.WebGLGraphics.switchMode(o, 0), PIXI.WebGLGraphics.buildLine(a, r)) } else r = PIXI.WebGLGraphics.switchMode(o, 0), a.type === PIXI.Graphics.RECT ? PIXI.WebGLGraphics.buildRectangle(a, r) : a.type === PIXI.Graphics.CIRC || a.type === PIXI.Graphics.ELIP ? PIXI.WebGLGraphics.buildCircle(a, r) : a.type === PIXI.Graphics.RREC && PIXI.WebGLGraphics.buildRoundedRectangle(a, r); o.lastIndex++ } for (i = 0; i < o.data.length; i++) (r = o.data[i]).dirty && r.upload() } , PIXI.WebGLGraphics.switchMode = function(e, t) { var i; return e.data.length && (i = e.data[e.data.length - 1]).mode === t && 1 !== t || ((i = PIXI.WebGLGraphics.graphicsDataPool.pop() || new PIXI.WebGLGraphicsData(e.gl)).mode = t, e.data.push(i)), i.dirty = !0, i } , PIXI.WebGLGraphics.buildRectangle = function(e, t) { var i = e.shape , r = i.x , o = i.y , s = i.width , a = i.height; if (e.fill) { var n = PIXI.hex2rgb(e.fillColor) , h = e.fillAlpha , c = n[0] * h , l = n[1] * h , m = n[2] * h , u = t.points , d = t.indices , p = u.length / 6; u.push(r, o), u.push(c, l, m, h), u.push(r + s, o), u.push(c, l, m, h), u.push(r, o + a), u.push(c, l, m, h), u.push(r + s, o + a), u.push(c, l, m, h), d.push(p, p, p + 1, p + 2, p + 3, p + 3) } if (e.lineWidth) { var f = e.points; e.points = [r, o, r + s, o, r + s, o + a, r, o + a, r, o], PIXI.WebGLGraphics.buildLine(e, t), e.points = f } } , PIXI.WebGLGraphics.buildRoundedRectangle = function(e, t) { var i = e.shape , r = i.x , o = i.y , s = i.width , a = i.height , n = i.radius , h = []; if (h.push(r, o + n), h = (h = (h = (h = h.concat(PIXI.WebGLGraphics.quadraticBezierCurve(r, o + a - n, r, o + a, r + n, o + a))).concat(PIXI.WebGLGraphics.quadraticBezierCurve(r + s - n, o + a, r + s, o + a, r + s, o + a - n))).concat(PIXI.WebGLGraphics.quadraticBezierCurve(r + s, o + n, r + s, o, r + s - n, o))).concat(PIXI.WebGLGraphics.quadraticBezierCurve(r + n, o, r, o, r, o + n)), e.fill) { var c = PIXI.hex2rgb(e.fillColor) , l = e.fillAlpha , m = c[0] * l , u = c[1] * l , d = c[2] * l , p = t.points , f = t.indices , y = p.length / 6 , S = PIXI.EarCut.Triangulate(h, null, 2) , w = 0; for (w = 0; w < S.length; w += 3) f.push(S[w] + y), f.push(S[w] + y), f.push(S[w + 1] + y), f.push(S[w + 2] + y), f.push(S[w + 2] + y); for (w = 0; w < h.length; w++) p.push(h[w], h[++w], m, u, d, l) } if (e.lineWidth) { var g = e.points; e.points = h, PIXI.WebGLGraphics.buildLine(e, t), e.points = g } } , PIXI.WebGLGraphics.quadraticBezierCurve = function(e, t, i, r, o, s) { var a, n, h, c, l, m, u = []; function d(e, t, i) { return e + (t - e) * i } for (var p = 0, f = 0; f <= 20; f++) a = d(e, i, p = f / 20), n = d(t, r, p), h = d(i, o, p), c = d(r, s, p), l = d(a, h, p), m = d(n, c, p), u.push(l, m); return u } , PIXI.WebGLGraphics.buildCircle = function(e, t) { var i, r, o = e.shape, s = o.x, a = o.y; r = e.type === PIXI.Graphics.CIRC ? (i = o.radius, o.radius) : (i = o.width, o.height); var n = 2 * Math.PI / 40 , h = 0; if (e.fill) { var c = PIXI.hex2rgb(e.fillColor) , l = e.fillAlpha , m = c[0] * l , u = c[1] * l , d = c[2] * l , p = t.points , f = t.indices , y = p.length / 6; for (f.push(y), h = 0; h < 41; h++) p.push(s, a, m, u, d, l), p.push(s + Math.sin(n * h) * i, a + Math.cos(n * h) * r, m, u, d, l), f.push(y++, y++); f.push(y - 1) } if (e.lineWidth) { var S = e.points; for (e.points = [], h = 0; h < 41; h++) e.points.push(s + Math.sin(n * h) * i, a + Math.cos(n * h) * r); PIXI.WebGLGraphics.buildLine(e, t), e.points = S } } , PIXI.WebGLGraphics.buildLine = function(e, t) { var i = 0 , r = e.points; if (0 !== r.length) { if (e.lineWidth % 2) for (i = 0; i < r.length; i++) r[i] += .5; var o = new PIXI.Point(r[0],r[1]) , s = new PIXI.Point(r[r.length - 2],r[r.length - 1]); if (o.x === s.x && o.y === s.y) { (r = r.slice()).pop(), r.pop(); var a = (s = new PIXI.Point(r[r.length - 2],r[r.length - 1])).x + .5 * (o.x - s.x) , n = s.y + .5 * (o.y - s.y); r.unshift(a, n), r.push(a, n) } var h, c, l, m, u, d, p, f, y, S, w, g, x, b, v, z, C, T, P, A, _, B, D = t.points, k = t.indices, E = r.length / 2, M = r.length, I = D.length / 6, L = e.lineWidth / 2, O = PIXI.hex2rgb(e.lineColor), R = e.lineAlpha, F = O[0] * R, G = O[1] * R, N = O[2] * R; for (l = r[0], m = r[1], u = r[2], y = -(m - (d = r[3])), S = l - u, y /= B = Math.sqrt(y * y + S * S), S /= B, y *= L, S *= L, D.push(l - y, m - S, F, G, N, R), D.push(l + y, m + S, F, G, N, R), i = 1; i < E - 1; i++) l = r[2 * (i - 1)], m = r[2 * (i - 1) + 1], u = r[2 * i], d = r[2 * i + 1], p = r[2 * (i + 1)], f = r[2 * (i + 1) + 1], y = -(m - d), S = l - u, y /= B = Math.sqrt(y * y + S * S), S /= B, y *= L, S *= L, w = -(d - f), g = u - p, w /= B = Math.sqrt(w * w + g * g), g /= B, C = (-y + l) * (-S + d) - (-y + u) * (-S + m), A = (-(w *= L) + p) * (-(g *= L) + d) - (-w + u) * (-g + f), _ = (v = -S + m - (-S + d)) * (P = -w + u - (-w + p)) - (T = -g + f - (-g + d)) * (z = -y + u - (-y + l)), Math.abs(_) < .1 ? (_ += 10.1, D.push(u - y, d - S, F, G, N, R), D.push(u + y, d + S, F, G, N, R)) : 19600 < ((h = (z * A - P * C) / _) - u) * (h - u) + ((c = (T * C - v * A) / _) - d) + (c - d) ? (x = y - w, b = S - g, x /= B = Math.sqrt(x * x + b * b), b /= B, x *= L, b *= L, D.push(u - x, d - b), D.push(F, G, N, R), D.push(u + x, d + b), D.push(F, G, N, R), D.push(u - x, d - b), D.push(F, G, N, R), M++) : (D.push(h, c), D.push(F, G, N, R), D.push(u - (h - u), d - (c - d)), D.push(F, G, N, R)); for (l = r[2 * (E - 2)], m = r[2 * (E - 2) + 1], u = r[2 * (E - 1)], y = -(m - (d = r[2 * (E - 1) + 1])), S = l - u, y /= B = Math.sqrt(y * y + S * S), S /= B, y *= L, S *= L, D.push(u - y, d - S), D.push(F, G, N, R), D.push(u + y, d + S), D.push(F, G, N, R), k.push(I), i = 0; i < M; i++) k.push(I++); k.push(I - 1) } } , PIXI.WebGLGraphics.buildComplexPoly = function(e, t) { var i = e.points.slice(); if (!(i.length < 6)) { var r = t.indices; t.points = i, t.alpha = e.fillAlpha, t.color = PIXI.hex2rgb(e.fillColor); for (var o, s, a = 1 / 0, n = -1 / 0, h = 1 / 0, c = -1 / 0, l = 0; l < i.length; l += 2) a = (o = i[l]) < a ? o : a, n = n < o ? o : n, h = (s = i[l + 1]) < h ? s : h, c = c < s ? s : c; i.push(a, h, n, h, n, c, a, c); var m = i.length / 2; for (l = 0; l < m; l++) r.push(l) } } , PIXI.WebGLGraphics.buildPoly = function(e, t) { var i = e.points; if (!(i.length < 6)) { var r = t.points , o = t.indices , s = i.length / 2 , a = PIXI.hex2rgb(e.fillColor) , n = e.fillAlpha , h = a[0] * n , c = a[1] * n , l = a[2] * n , m = PIXI.EarCut.Triangulate(i, null, 2); if (!m) return !1; var u = r.length / 6 , d = 0; for (d = 0; d < m.length; d += 3) o.push(m[d] + u), o.push(m[d] + u), o.push(m[d + 1] + u), o.push(m[d + 2] + u), o.push(m[d + 2] + u); for (d = 0; d < s; d++) r.push(i[2 * d], i[2 * d + 1], h, c, l, n); return !0 } } , PIXI.WebGLGraphics.graphicsDataPool = [], PIXI.WebGLGraphicsData = function(e) { this.gl = e, this.color = [0, 0, 0], this.points = [], this.indices = [], this.buffer = e.createBuffer(), this.indexBuffer = e.createBuffer(), this.mode = 1, this.alpha = 1, this.dirty = !0 } , PIXI.WebGLGraphicsData.prototype.reset = function() { this.points = [], this.indices = [] } , PIXI.WebGLGraphicsData.prototype.upload = function() { var e = this.gl; this.glPoints = new PIXI.Float32Array(this.points), e.bindBuffer(e.ARRAY_BUFFER, this.buffer), e.bufferData(e.ARRAY_BUFFER, this.glPoints, e.STATIC_DRAW), this.glIndicies = new PIXI.Uint16Array(this.indices), e.bindBuffer(e.ELEMENT_ARRAY_BUFFER, this.indexBuffer), e.bufferData(e.ELEMENT_ARRAY_BUFFER, this.glIndicies, e.STATIC_DRAW), this.dirty = !1 } , PIXI.CanvasGraphics = function() {} , PIXI.CanvasGraphics.renderGraphics = function(e, t) { var i = e.worldAlpha; e.dirty && (this.updateGraphicsTint(e), e.dirty = !1); for (var r = 0; r < e.graphicsData.length; r++) { var o = e.graphicsData[r] , s = o.shape , a = o._fillTint , n = o._lineTint; if (t.lineWidth = o.lineWidth, o.type === PIXI.Graphics.POLY) { t.beginPath(); var h = s.points; t.moveTo(h[0], h[1]); for (var c = 1; c < h.length / 2; c++) t.lineTo(h[2 * c], h[2 * c + 1]); s.closed && t.lineTo(h[0], h[1]), h[0] === h[h.length - 2] && h[1] === h[h.length - 1] && t.closePath(), o.fill && (t.globalAlpha = o.fillAlpha * i, t.fillStyle = "#" + ("00000" + (0 | a).toString(16)).substr(-6), t.fill()), o.lineWidth && (t.globalAlpha = o.lineAlpha * i, t.strokeStyle = "#" + ("00000" + (0 | n).toString(16)).substr(-6), t.stroke()) } else if (o.type === PIXI.Graphics.RECT) (o.fillColor || 0 === o.fillColor) && (t.globalAlpha = o.fillAlpha * i, t.fillStyle = "#" + ("00000" + (0 | a).toString(16)).substr(-6), t.fillRect(s.x, s.y, s.width, s.height)), o.lineWidth && (t.globalAlpha = o.lineAlpha * i, t.strokeStyle = "#" + ("00000" + (0 | n).toString(16)).substr(-6), t.strokeRect(s.x, s.y, s.width, s.height)); else if (o.type === PIXI.Graphics.CIRC) t.beginPath(), t.arc(s.x, s.y, s.radius, 0, 2 * Math.PI), t.closePath(), o.fill && (t.globalAlpha = o.fillAlpha * i, t.fillStyle = "#" + ("00000" + (0 | a).toString(16)).substr(-6), t.fill()), o.lineWidth && (t.globalAlpha = o.lineAlpha * i, t.strokeStyle = "#" + ("00000" + (0 | n).toString(16)).substr(-6), t.stroke()); else if (o.type === PIXI.Graphics.ELIP) { var l = 2 * s.width , m = 2 * s.height , u = s.x - l / 2 , d = s.y - m / 2; t.beginPath(); var p = l / 2 * .5522848 , f = m / 2 * .5522848 , y = u + l , S = d + m , w = u + l / 2 , g = d + m / 2; t.moveTo(u, g), t.bezierCurveTo(u, g - f, w - p, d, w, d), t.bezierCurveTo(w + p, d, y, g - f, y, g), t.bezierCurveTo(y, g + f, w + p, S, w, S), t.bezierCurveTo(w - p, S, u, g + f, u, g), t.closePath(), o.fill && (t.globalAlpha = o.fillAlpha * i, t.fillStyle = "#" + ("00000" + (0 | a).toString(16)).substr(-6), t.fill()), o.lineWidth && (t.globalAlpha = o.lineAlpha * i, t.strokeStyle = "#" + ("00000" + (0 | n).toString(16)).substr(-6), t.stroke()) } else if (o.type === PIXI.Graphics.RREC) { var x = s.x , b = s.y , v = s.width , z = s.height , C = s.radius , T = Math.min(v, z) / 2 | 0; C = T < C ? T : C, t.beginPath(), t.moveTo(x, b + C), t.lineTo(x, b + z - C), t.quadraticCurveTo(x, b + z, x + C, b + z), t.lineTo(x + v - C, b + z), t.quadraticCurveTo(x + v, b + z, x + v, b + z - C), t.lineTo(x + v, b + C), t.quadraticCurveTo(x + v, b, x + v - C, b), t.lineTo(x + C, b), t.quadraticCurveTo(x, b, x, b + C), t.closePath(), (o.fillColor || 0 === o.fillColor) && (t.globalAlpha = o.fillAlpha * i, t.fillStyle = "#" + ("00000" + (0 | a).toString(16)).substr(-6), t.fill()), o.lineWidth && (t.globalAlpha = o.lineAlpha * i, t.strokeStyle = "#" + ("00000" + (0 | n).toString(16)).substr(-6), t.stroke()) } } } , PIXI.CanvasGraphics.renderGraphicsMask = function(e, t) { var i = e.graphicsData.length; if (0 !== i) { t.beginPath(); for (var r = 0; r < i; r++) { var o = e.graphicsData[r] , s = o.shape; if (o.type === PIXI.Graphics.POLY) { var a = s.points; t.moveTo(a[0], a[1]); for (var n = 1; n < a.length / 2; n++) t.lineTo(a[2 * n], a[2 * n + 1]); a[0] === a[a.length - 2] && a[1] === a[a.length - 1] && t.closePath() } else if (o.type === PIXI.Graphics.RECT) t.rect(s.x, s.y, s.width, s.height), t.closePath(); else if (o.type === PIXI.Graphics.CIRC) t.arc(s.x, s.y, s.radius, 0, 2 * Math.PI), t.closePath(); else if (o.type === PIXI.Graphics.ELIP) { var h = 2 * s.width , c = 2 * s.height , l = s.x - h / 2 , m = s.y - c / 2 , u = h / 2 * .5522848 , d = c / 2 * .5522848 , p = l + h , f = m + c , y = l + h / 2 , S = m + c / 2; t.moveTo(l, S), t.bezierCurveTo(l, S - d, y - u, m, y, m), t.bezierCurveTo(y + u, m, p, S - d, p, S), t.bezierCurveTo(p, S + d, y + u, f, y, f), t.bezierCurveTo(y - u, f, l, S + d, l, S), t.closePath() } else if (o.type === PIXI.Graphics.RREC) { var w = s.x , g = s.y , x = s.width , b = s.height , v = s.radius , z = Math.min(x, b) / 2 | 0; v = z < v ? z : v, t.moveTo(w, g + v), t.lineTo(w, g + b - v), t.quadraticCurveTo(w, g + b, w + v, g + b), t.lineTo(w + x - v, g + b), t.quadraticCurveTo(w + x, g + b, w + x, g + b - v), t.lineTo(w + x, g + v), t.quadraticCurveTo(w + x, g, w + x - v, g), t.lineTo(w + v, g), t.quadraticCurveTo(w, g, w, g + v), t.closePath() } } } } , PIXI.CanvasGraphics.updateGraphicsTint = function(e) { if (16777215 !== e.tint) for (var t = (e.tint >> 16 & 255) / 255, i = (e.tint >> 8 & 255) / 255, r = (255 & e.tint) / 255, o = 0; o < e.graphicsData.length; o++) { var s = e.graphicsData[o] , a = 0 | s.fillColor , n = 0 | s.lineColor; s._fillTint = ((a >> 16 & 255) / 255 * t * 255 << 16) + ((a >> 8 & 255) / 255 * i * 255 << 8) + (255 & a) / 255 * r * 255, s._lineTint = ((n >> 16 & 255) / 255 * t * 255 << 16) + ((n >> 8 & 255) / 255 * i * 255 << 8) + (255 & n) / 255 * r * 255 } } , W.Graphics = function(e, t, i) { void 0 === t && (t = 0), void 0 === i && (i = 0), this.type = W.GRAPHICS, this.physicsType = W.SPRITE, this.anchor = new W.Point, PIXI.Graphics.call(this), W.Component.Core.init.call(this, e, t, i, "", null) } , W.Graphics.prototype = Object.create(PIXI.Graphics.prototype), W.Graphics.prototype.constructor = W.Graphics, W.Component.Core.install.call(W.Graphics.prototype, ["Angle", "AutoCull", "Bounds", "Destroy", "FixedToCamera", "InputEnabled", "InWorld", "LifeSpan", "PhysicsBody", "Reset"]), W.Graphics.prototype.preUpdatePhysics = W.Component.PhysicsBody.preUpdate, W.Graphics.prototype.preUpdateLifeSpan = W.Component.LifeSpan.preUpdate, W.Graphics.prototype.preUpdateInWorld = W.Component.InWorld.preUpdate, W.Graphics.prototype.preUpdateCore = W.Component.Core.preUpdate, W.Graphics.prototype.preUpdate = function() { return !!(this.preUpdatePhysics() && this.preUpdateLifeSpan() && this.preUpdateInWorld()) && this.preUpdateCore() } , W.Graphics.prototype.postUpdate = function() { W.Component.PhysicsBody.postUpdate.call(this), W.Component.FixedToCamera.postUpdate.call(this), this._boundsDirty && (this.updateLocalBounds(), this._boundsDirty = !1); for (var e = 0; e < this.children.length; e++) this.children[e].postUpdate() } , W.Graphics.prototype.destroy = function(e) { this.clear(), W.Component.Destroy.prototype.destroy.call(this, e) } , W.Graphics.prototype.drawTriangle = function(e, t) { void 0 === t && (t = !1); var i = new W.Polygon(e); if (t) { var r = new W.Point(this.game.camera.x - e[0].x,this.game.camera.y - e[0].y) , o = new W.Point(e[1].x - e[0].x,e[1].y - e[0].y) , s = new W.Point(e[1].x - e[2].x,e[1].y - e[2].y).cross(o); 0 < r.dot(s) && this.drawPolygon(i) } else this.drawPolygon(i) } , W.Graphics.prototype.drawTriangles = function(e, t, i) { void 0 === i && (i = !1); var r, o = new W.Point, s = new W.Point, a = new W.Point, n = []; if (t) if (e[0]instanceof W.Point) for (r = 0; r < t.length / 3; r++) n.push(e[t[3 * r]]), n.push(e[t[3 * r + 1]]), n.push(e[t[3 * r + 2]]), 3 === n.length && (this.drawTriangle(n, i), n = []); else for (r = 0; r < t.length; r++) o.x = e[2 * t[r]], o.y = e[2 * t[r] + 1], n.push(o.copyTo({})), 3 === n.length && (this.drawTriangle(n, i), n = []); else if (e[0]instanceof W.Point) for (r = 0; r < e.length / 3; r++) this.drawTriangle([e[3 * r], e[3 * r + 1], e[3 * r + 2]], i); else for (r = 0; r < e.length / 6; r++) o.x = e[6 * r + 0], o.y = e[6 * r + 1], s.x = e[6 * r + 2], s.y = e[6 * r + 3], a.x = e[6 * r + 4], a.y = e[6 * r + 5], this.drawTriangle([o, s, a], i) } , W.RenderTexture = function(e, t, i, r, o, s) { void 0 === r && (r = ""), void 0 === o && (o = W.scaleModes.DEFAULT), void 0 === s && (s = 1), this.game = e, this.key = r, this.type = W.RENDERTEXTURE, this._tempMatrix = new PIXI.Matrix, PIXI.RenderTexture.call(this, t, i, this.game.renderer, o, s), this.render = W.RenderTexture.prototype.render } , W.RenderTexture.prototype = Object.create(PIXI.RenderTexture.prototype), W.RenderTexture.prototype.constructor = W.RenderTexture, W.RenderTexture.prototype.renderXY = function(e, t, i, r) { e.updateTransform(), this._tempMatrix.copyFrom(e.worldTransform), this._tempMatrix.tx = t, this._tempMatrix.ty = i, this.renderer.type === PIXI.WEBGL_RENDERER ? this.renderWebGL(e, this._tempMatrix, r) : this.renderCanvas(e, this._tempMatrix, r) } , W.RenderTexture.prototype.renderRawXY = function(e, t, i, r) { this._tempMatrix.identity().translate(t, i), this.renderer.type === PIXI.WEBGL_RENDERER ? this.renderWebGL(e, this._tempMatrix, r) : this.renderCanvas(e, this._tempMatrix, r) } , W.RenderTexture.prototype.render = function(e, t, i) { null == t ? this._tempMatrix.copyFrom(e.worldTransform) : this._tempMatrix.copyFrom(t), this.renderer.type === PIXI.WEBGL_RENDERER ? this.renderWebGL(e, this._tempMatrix, i) : this.renderCanvas(e, this._tempMatrix, i) } , W.Text = function(e, t, i, r, o) { t = t || 0, i = i || 0, r = null == r ? "" : r.toString(), o = W.Utils.extend({}, o), this.type = W.TEXT, this.physicsType = W.SPRITE, this.padding = new W.Point, this.textBounds = null, this.canvas = PIXI.CanvasPool.create(this), this.context = this.canvas.getContext("2d"), this.colors = [], this.strokeColors = [], this.fontStyles = [], this.fontWeights = [], this.autoRound = !1, this.useAdvancedWrap = !1, this._res = e.renderer.resolution, this._text = r, this._fontComponents = null, this._lineSpacing = 0, this._charCount = 0, this._width = 0, this._height = 0, W.Sprite.call(this, e, t, i, PIXI.Texture.fromCanvas(this.canvas)), this.setStyle(o), "" !== r && this.updateText() } , W.Text.prototype = Object.create(W.Sprite.prototype), W.Text.prototype.constructor = W.Text, W.Text.prototype.preUpdate = function() { return !!(this.preUpdatePhysics() && this.preUpdateLifeSpan() && this.preUpdateInWorld()) && this.preUpdateCore() } , W.Text.prototype.update = function() {} , W.Text.prototype.destroy = function(e) { this.texture.destroy(!0), W.Component.Destroy.prototype.destroy.call(this, e) } , W.Text.prototype.setShadow = function(e, t, i, r, o, s) { return void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = "rgba(0, 0, 0, 1)"), void 0 === r && (r = 0), void 0 === o && (o = !0), void 0 === s && (s = !0), this.style.shadowOffsetX = e, this.style.shadowOffsetY = t, this.style.shadowColor = i, this.style.shadowBlur = r, this.style.shadowStroke = o, this.style.shadowFill = s, this.dirty = !0, this } , W.Text.prototype.setStyle = function(e, t) { void 0 === t && (t = !1), (e = e || {}).font = e.font || "bold 20pt Arial", e.backgroundColor = e.backgroundColor || null, e.fill = e.fill || "black", e.align = e.align || "left", e.boundsAlignH = e.boundsAlignH || "left", e.boundsAlignV = e.boundsAlignV || "top", e.stroke = e.stroke || "black", e.strokeThickness = e.strokeThickness || 0, e.wordWrap = e.wordWrap || !1, e.wordWrapWidth = e.wordWrapWidth || 100, e.maxLines = e.maxLines || 0, e.shadowOffsetX = e.shadowOffsetX || 0, e.shadowOffsetY = e.shadowOffsetY || 0, e.shadowColor = e.shadowColor || "rgba(0,0,0,0)", e.shadowBlur = e.shadowBlur || 0, e.tabs = e.tabs || 0; var i = this.fontToComponents(e.font); return e.fontStyle && (i.fontStyle = e.fontStyle), e.fontVariant && (i.fontVariant = e.fontVariant), e.fontWeight && (i.fontWeight = e.fontWeight), e.fontSize && ("number" == typeof e.fontSize && (e.fontSize = e.fontSize + "px"), i.fontSize = e.fontSize), this._fontComponents = i, e.font = this.componentsToFont(this._fontComponents), this.style = e, this.dirty = !0, t && this.updateText(), this } , W.Text.prototype.updateText = function() { this.texture.baseTexture.resolution = this._res, this.context.font = this.style.font; var e = this.text; this.style.wordWrap && (e = this.runWordWrap(this.text)); var t = e.split(/(?:\r\n|\r|\n)/) , i = this.style.tabs , r = [] , o = 0 , s = this.determineFontProperties(this.style.font) , a = t.length; 0 < this.style.maxLines && this.style.maxLines < t.length && (a = this.style.maxLines); for (var n = this._charCount = 0; n < a; n++) { if (0 === i) { var h = this.style.strokeThickness + this.padding.x; 0 < this.colors.length || 0 < this.strokeColors.length || 0 < this.fontWeights.length || 0 < this.fontStyles.length ? h += this.measureLine(t[n]) : h += this.context.measureText(t[n]).width, this.style.wordWrap && (h -= this.context.measureText(" ").width) } else { var c = t[n].split(/(?:\t)/); h = this.padding.x + this.style.strokeThickness; if (Array.isArray(i)) for (var l = 0, m = 0; m < c.length; m++) { var u = 0; u = 0 < this.colors.length || 0 < this.strokeColors.length || 0 < this.fontWeights.length || 0 < this.fontStyles.length ? this.measureLine(c[m]) : Math.ceil(this.context.measureText(c[m]).width), 0 < m && (l += i[m - 1]), h = l + u } else for (m = 0; m < c.length; m++) { 0 < this.colors.length || 0 < this.strokeColors.length || 0 < this.fontWeights.length || 0 < this.fontStyles.length ? h += this.measureLine(c[m]) : h += Math.ceil(this.context.measureText(c[m]).width), h += this.game.math.snapToCeil(h, i) - h } } r[n] = Math.ceil(h), o = Math.max(o, r[n]) } this.canvas.width = o * this._res; var d, p, f = s.fontSize + this.style.strokeThickness + this.padding.y, y = f * a, S = this._lineSpacing; for (S < 0 && Math.abs(S) > f && (S = -f), 0 !== S && (y += 0 < S ? S * t.length : S * (t.length - 1)), this.canvas.height = y * this._res, this.context.scale(this._res, this._res), navigator.isCocoonJS && this.context.clearRect(0, 0, this.canvas.width, this.canvas.height), this.style.backgroundColor && (this.context.fillStyle = this.style.backgroundColor, this.context.fillRect(0, 0, this.canvas.width, this.canvas.height)), this.context.fillStyle = this.style.fill, this.context.font = this.style.font, this.context.strokeStyle = this.style.stroke, this.context.textBaseline = "alphabetic", this.context.lineWidth = this.style.strokeThickness, this.context.lineCap = "round", this.context.lineJoin = "round", n = this._charCount = 0; n < a; n++) d = this.style.strokeThickness / 2, p = this.style.strokeThickness / 2 + n * f + s.ascent, 0 < n && (p += S * n), "right" === this.style.align ? d += o - r[n] : "center" === this.style.align && (d += (o - r[n]) / 2), this.autoRound && (d = Math.round(d), p = Math.round(p)), 0 < this.colors.length || 0 < this.strokeColors.length || 0 < this.fontWeights.length || 0 < this.fontStyles.length ? this.updateLine(t[n], d, p) : (this.style.stroke && this.style.strokeThickness && (this.updateShadow(this.style.shadowStroke), 0 === i ? this.context.strokeText(t[n], d, p) : this.renderTabLine(t[n], d, p, !1)), this.style.fill && (this.updateShadow(this.style.shadowFill), 0 === i ? this.context.fillText(t[n], d, p) : this.renderTabLine(t[n], d, p, !0))); this.updateTexture(), this.dirty = !1 } , W.Text.prototype.renderTabLine = function(e, t, i, r) { var o = e.split(/(?:\t)/) , s = this.style.tabs , a = 0; if (Array.isArray(s)) for (var n = 0, h = 0; h < o.length; h++) 0 < h && (n += s[h - 1]), a = t + n, r ? this.context.fillText(o[h], a, i) : this.context.strokeText(o[h], a, i); else for (h = 0; h < o.length; h++) { var c = Math.ceil(this.context.measureText(o[h]).width); a = this.game.math.snapToCeil(t, s), r ? this.context.fillText(o[h], a, i) : this.context.strokeText(o[h], a, i), t = a + c } } , W.Text.prototype.updateShadow = function(e) { e ? (this.context.shadowOffsetX = this.style.shadowOffsetX, this.context.shadowOffsetY = this.style.shadowOffsetY, this.context.shadowColor = this.style.shadowColor, this.context.shadowBlur = this.style.shadowBlur) : (this.context.shadowOffsetX = 0, this.context.shadowOffsetY = 0, this.context.shadowColor = 0, this.context.shadowBlur = 0) } , W.Text.prototype.measureLine = function(e) { for (var t = 0, i = 0; i < e.length; i++) { var r = e[i]; if (0 < this.fontWeights.length || 0 < this.fontStyles.length) { var o = this.fontToComponents(this.context.font); this.fontStyles[this._charCount] && (o.fontStyle = this.fontStyles[this._charCount]), this.fontWeights[this._charCount] && (o.fontWeight = this.fontWeights[this._charCount]), this.context.font = this.componentsToFont(o) } this.style.stroke && this.style.strokeThickness && (this.strokeColors[this._charCount] && (this.context.strokeStyle = this.strokeColors[this._charCount]), this.updateShadow(this.style.shadowStroke)), this.style.fill && (this.colors[this._charCount] && (this.context.fillStyle = this.colors[this._charCount]), this.updateShadow(this.style.shadowFill)), t += this.context.measureText(r).width, this._charCount++ } return Math.ceil(t) } , W.Text.prototype.updateLine = function(e, t, i) { for (var r = 0; r < e.length; r++) { var o = e[r]; if (0 < this.fontWeights.length || 0 < this.fontStyles.length) { var s = this.fontToComponents(this.context.font); this.fontStyles[this._charCount] && (s.fontStyle = this.fontStyles[this._charCount]), this.fontWeights[this._charCount] && (s.fontWeight = this.fontWeights[this._charCount]), this.context.font = this.componentsToFont(s) } this.style.stroke && this.style.strokeThickness && (this.strokeColors[this._charCount] && (this.context.strokeStyle = this.strokeColors[this._charCount]), this.updateShadow(this.style.shadowStroke), this.context.strokeText(o, t, i)), this.style.fill && (this.colors[this._charCount] && (this.context.fillStyle = this.colors[this._charCount]), this.updateShadow(this.style.shadowFill), this.context.fillText(o, t, i)), t += this.context.measureText(o).width, this._charCount++ } } , W.Text.prototype.clearColors = function() { return this.colors = [], this.strokeColors = [], this.dirty = !0, this } , W.Text.prototype.clearFontValues = function() { return this.fontStyles = [], this.fontWeights = [], this.dirty = !0, this } , W.Text.prototype.addColor = function(e, t) { return this.colors[t] = e, this.dirty = !0, this } , W.Text.prototype.addStrokeColor = function(e, t) { return this.strokeColors[t] = e, this.dirty = !0, this } , W.Text.prototype.addFontStyle = function(e, t) { return this.fontStyles[t] = e, this.dirty = !0, this } , W.Text.prototype.addFontWeight = function(e, t) { return this.fontWeights[t] = e, this.dirty = !0, this } , W.Text.prototype.precalculateWordWrap = function(e) { return this.texture.baseTexture.resolution = this._res, this.context.font = this.style.font, this.runWordWrap(e).split(/(?:\r\n|\r|\n)/) } , W.Text.prototype.runWordWrap = function(e) { return this.useAdvancedWrap ? this.advancedWordWrap(e) : this.basicWordWrap(e) } , W.Text.prototype.advancedWordWrap = function(e) { for (var t = this.context, i = this.style.wordWrapWidth, r = "", o = e.replace(/ +/gi, " ").split(/\r?\n/gi), s = o.length, a = 0; a < s; a++) { var n = o[a] , h = ""; if (n = n.replace(/^ *|\s*$/gi, ""), t.measureText(n).width < i) r += n + "\n"; else { for (var c = i, l = n.split(" "), m = 0; m < l.length; m++) { var u = l[m] , d = u + " " , p = t.measureText(d).width; if (c < p) { if (0 === m) { for (var f = d; f.length && (f = f.slice(0, -1), !((p = t.measureText(f).width) <= c)); ) ; if (!f.length) throw new Error("This text's wordWrapWidth setting is less than a single character!"); var y = u.substr(f.length); l[m] = y, h += f } var S = l[m].length ? m : m + 1 , w = l.slice(S).join(" ").replace(/[ \n]*$/gi, ""); o[a + 1] = w + " " + (o[a + 1] || ""), s = o.length; break } h += d, c -= p } r += h.replace(/[ \n]*$/gi, "") + "\n" } } return r = r.replace(/[\s|\n]*$/gi, "") } , W.Text.prototype.basicWordWrap = function(e) { for (var t = "", i = e.split("\n"), r = 0; r < i.length; r++) { for (var o = this.style.wordWrapWidth, s = i[r].split(" "), a = 0; a < s.length; a++) { var n = this.context.measureText(s[a]).width , h = n + this.context.measureText(" ").width; o < h ? (0 < a && (t += "\n"), t += s[a] + " ", o = this.style.wordWrapWidth - n) : (o -= h, t += s[a] + " ") } r < i.length - 1 && (t += "\n") } return t } , W.Text.prototype.updateFont = function(e) { var t = this.componentsToFont(e); this.style.font !== t && (this.style.font = t, this.dirty = !0, this.parent && this.updateTransform()) } , W.Text.prototype.fontToComponents = function(e) { var t = e.match(/^\s*(?:\b(normal|italic|oblique|inherit)?\b)\s*(?:\b(normal|small-caps|inherit)?\b)\s*(?:\b(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit)?\b)\s*(?:\b(xx-small|x-small|small|medium|large|x-large|xx-large|larger|smaller|0|\d*(?:[.]\d*)?(?:%|[a-z]{2,5}))?\b)\s*(.*)\s*$/); if (t) { var i = t[5].trim(); return /^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(i) || /['",]/.exec(i) || (i = "'" + i + "'"), { font: e, fontStyle: t[1] || "normal", fontVariant: t[2] || "normal", fontWeight: t[3] || "normal", fontSize: t[4] || "medium", fontFamily: i } } return { font: e } } , W.Text.prototype.componentsToFont = function(e) { var t, i = []; return (t = e.fontStyle) && "normal" !== t && i.push(t), (t = e.fontVariant) && "normal" !== t && i.push(t), (t = e.fontWeight) && "normal" !== t && i.push(t), (t = e.fontSize) && "medium" !== t && i.push(t), (t = e.fontFamily) && i.push(t), i.length || i.push(e.font), i.join(" ") } , W.Text.prototype.setText = function(e, t) { return void 0 === t && (t = !1), this.text = e.toString() || "", t ? this.updateText() : this.dirty = !0, this } , W.Text.prototype.parseList = function(e) { if (!Array.isArray(e)) return this; for (var t = "", i = 0; i < e.length; i++) Array.isArray(e[i]) ? (t += e[i].join("\t"), i < e.length - 1 && (t += "\n")) : (t += e[i], i < e.length - 1 && (t += "\t")); return this.text = t, this.dirty = !0, this } , W.Text.prototype.setTextBounds = function(e, t, i, r) { return void 0 === e ? this.textBounds = null : (this.textBounds ? this.textBounds.setTo(e, t, i, r) : this.textBounds = new W.Rectangle(e,t,i,r), this.style.wordWrapWidth > i && (this.style.wordWrapWidth = i)), this.updateTexture(), this } , W.Text.prototype.updateTexture = function() { var e = this.texture.baseTexture , t = this.texture.crop , i = this.texture.frame , r = this.canvas.width , o = this.canvas.height; if (e.width = r, e.height = o, t.width = r, t.height = o, i.width = r, i.height = o, this.texture.width = r, this.texture.height = o, this._width = r, this._height = o, this.textBounds) { var s = this.textBounds.x , a = this.textBounds.y; "right" === this.style.boundsAlignH ? s += this.textBounds.width - this.canvas.width / this.resolution : "center" === this.style.boundsAlignH && (s += this.textBounds.halfWidth - this.canvas.width / this.resolution / 2), "bottom" === this.style.boundsAlignV ? a += this.textBounds.height - this.canvas.height / this.resolution : "middle" === this.style.boundsAlignV && (a += this.textBounds.halfHeight - this.canvas.height / this.resolution / 2), this.pivot.x = -s, this.pivot.y = -a } this.renderable = 0 !== r && 0 !== o, this.texture.requiresReTint = !0, this.texture.baseTexture.dirty() } , W.Text.prototype._renderWebGL = function(e) { this.dirty && (this.updateText(), this.dirty = !1), PIXI.Sprite.prototype._renderWebGL.call(this, e) } , W.Text.prototype._renderCanvas = function(e) { this.dirty && (this.updateText(), this.dirty = !1), PIXI.Sprite.prototype._renderCanvas.call(this, e) } , W.Text.prototype.determineFontProperties = function(e) { var t = W.Text.fontPropertiesCache[e]; if (!t) { t = {}; var i = W.Text.fontPropertiesCanvas , r = W.Text.fontPropertiesContext; r.font = e; var o = Math.ceil(r.measureText("|MÉq").width) , s = Math.ceil(r.measureText("|MÉq").width) , a = 2 * s; if (s = 1.4 * s | 0, i.width = o, i.height = a, r.fillStyle = "#f00", r.fillRect(0, 0, o, a), r.font = e, r.textBaseline = "alphabetic", r.fillStyle = "#000", r.fillText("|MÉq", 0, s), !r.getImageData(0, 0, o, a)) return t.ascent = s, t.descent = s + 6, t.fontSize = t.ascent + t.descent, W.Text.fontPropertiesCache[e] = t; var n, h, c = r.getImageData(0, 0, o, a).data, l = c.length, m = 4 * o, u = 0, d = !1; for (n = 0; n < s; n++) { for (h = 0; h < m; h += 4) if (255 !== c[u + h]) { d = !0; break } if (d) break; u += m } for (t.ascent = s - n, u = l - m, d = !1, n = a; s < n; n--) { for (h = 0; h < m; h += 4) if (255 !== c[u + h]) { d = !0; break } if (d) break; u -= m } t.descent = n - s, t.descent += 6, t.fontSize = t.ascent + t.descent, W.Text.fontPropertiesCache[e] = t } return t } , W.Text.prototype.getBounds = function(e) { return this.dirty && (this.updateText(), this.dirty = !1), PIXI.Sprite.prototype.getBounds.call(this, e) } , Object.defineProperty(W.Text.prototype, "text", { get: function() { return this._text }, set: function(e) { e !== this._text && (this._text = e.toString() || "", this.dirty = !0, this.parent && this.updateTransform()) } }), Object.defineProperty(W.Text.prototype, "cssFont", { get: function() { return this.componentsToFont(this._fontComponents) }, set: function(e) { e = e || "bold 20pt Arial", this._fontComponents = this.fontToComponents(e), this.updateFont(this._fontComponents) } }), Object.defineProperty(W.Text.prototype, "font", { get: function() { return this._fontComponents.fontFamily }, set: function(e) { e = (e = e || "Arial").trim(), /^(?:inherit|serif|sans-serif|cursive|fantasy|monospace)$/.exec(e) || /['",]/.exec(e) || (e = "'" + e + "'"), this._fontComponents.fontFamily = e, this.updateFont(this._fontComponents) } }), Object.defineProperty(W.Text.prototype, "fontSize", { get: function() { var e = this._fontComponents.fontSize; return e && /(?:^0$|px$)/.exec(e) ? parseInt(e, 10) : e }, set: function(e) { "number" == typeof (e = e || "0") && (e += "px"), this._fontComponents.fontSize = e, this.updateFont(this._fontComponents) } }), Object.defineProperty(W.Text.prototype, "fontWeight", { get: function() { return this._fontComponents.fontWeight || "normal" }, set: function(e) { e = e || "normal", this._fontComponents.fontWeight = e, this.updateFont(this._fontComponents) } }), Object.defineProperty(W.Text.prototype, "fontStyle", { get: function() { return this._fontComponents.fontStyle || "normal" }, set: function(e) { e = e || "normal", this._fontComponents.fontStyle = e, this.updateFont(this._fontComponents) } }), Object.defineProperty(W.Text.prototype, "fontVariant", { get: function() { return this._fontComponents.fontVariant || "normal" }, set: function(e) { e = e || "normal", this._fontComponents.fontVariant = e, this.updateFont(this._fontComponents) } }), Object.defineProperty(W.Text.prototype, "fill", { get: function() { return this.style.fill }, set: function(e) { e !== this.style.fill && (this.style.fill = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "align", { get: function() { return this.style.align }, set: function(e) { e !== this.style.align && (this.style.align = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "resolution", { get: function() { return this._res }, set: function(e) { e !== this._res && (this._res = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "tabs", { get: function() { return this.style.tabs }, set: function(e) { e !== this.style.tabs && (this.style.tabs = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "boundsAlignH", { get: function() { return this.style.boundsAlignH }, set: function(e) { e !== this.style.boundsAlignH && (this.style.boundsAlignH = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "boundsAlignV", { get: function() { return this.style.boundsAlignV }, set: function(e) { e !== this.style.boundsAlignV && (this.style.boundsAlignV = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "stroke", { get: function() { return this.style.stroke }, set: function(e) { e !== this.style.stroke && (this.style.stroke = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "strokeThickness", { get: function() { return this.style.strokeThickness }, set: function(e) { e !== this.style.strokeThickness && (this.style.strokeThickness = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "wordWrap", { get: function() { return this.style.wordWrap }, set: function(e) { e !== this.style.wordWrap && (this.style.wordWrap = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "wordWrapWidth", { get: function() { return this.style.wordWrapWidth }, set: function(e) { e !== this.style.wordWrapWidth && (this.style.wordWrapWidth = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "lineSpacing", { get: function() { return this._lineSpacing }, set: function(e) { e !== this._lineSpacing && (this._lineSpacing = parseFloat(e), this.dirty = !0, this.parent && this.updateTransform()) } }), Object.defineProperty(W.Text.prototype, "shadowOffsetX", { get: function() { return this.style.shadowOffsetX }, set: function(e) { e !== this.style.shadowOffsetX && (this.style.shadowOffsetX = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "shadowOffsetY", { get: function() { return this.style.shadowOffsetY }, set: function(e) { e !== this.style.shadowOffsetY && (this.style.shadowOffsetY = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "shadowColor", { get: function() { return this.style.shadowColor }, set: function(e) { e !== this.style.shadowColor && (this.style.shadowColor = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "shadowBlur", { get: function() { return this.style.shadowBlur }, set: function(e) { e !== this.style.shadowBlur && (this.style.shadowBlur = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "shadowStroke", { get: function() { return this.style.shadowStroke }, set: function(e) { e !== this.style.shadowStroke && (this.style.shadowStroke = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "shadowFill", { get: function() { return this.style.shadowFill }, set: function(e) { e !== this.style.shadowFill && (this.style.shadowFill = e, this.dirty = !0) } }), Object.defineProperty(W.Text.prototype, "width", { get: function() { return this.dirty && (this.updateText(), this.dirty = !1), this.scale.x * this.texture.frame.width }, set: function(e) { this.scale.x = e / this.texture.frame.width, this._width = e } }), Object.defineProperty(W.Text.prototype, "height", { get: function() { return this.dirty && (this.updateText(), this.dirty = !1), this.scale.y * this.texture.frame.height }, set: function(e) { this.scale.y = e / this.texture.frame.height, this._height = e } }), W.Text.fontPropertiesCache = {}, W.Text.fontPropertiesCanvas = document.createElement("canvas"), W.Text.fontPropertiesContext = W.Text.fontPropertiesCanvas.getContext("2d"), W.BitmapText = function(e, t, i, r, o, s, a) { t = t || 0, i = i || 0, r = r || "", o = o || "", s = s || 32, a = a || "left", PIXI.DisplayObjectContainer.call(this), this.type = W.BITMAPTEXT, this.physicsType = W.SPRITE, this.textWidth = 0, this.textHeight = 0, this.anchor = new W.Point, this._prevAnchor = new W.Point, this._glyphs = [], this._maxWidth = 0, this._text = o.toString() || "", this._data = e.cache.getBitmapFont(r), this._font = r, this._fontSize = s, this._align = a, this._tint = 16777215, this.updateText(), this.dirty = !1, W.Component.Core.init.call(this, e, t, i, "", null) } , W.BitmapText.prototype = Object.create(PIXI.DisplayObjectContainer.prototype), W.BitmapText.prototype.constructor = W.BitmapText, W.Component.Core.install.call(W.BitmapText.prototype, ["Angle", "AutoCull", "Bounds", "Destroy", "FixedToCamera", "InputEnabled", "InWorld", "LifeSpan", "PhysicsBody", "Reset"]), W.BitmapText.prototype.preUpdatePhysics = W.Component.PhysicsBody.preUpdate, W.BitmapText.prototype.preUpdateLifeSpan = W.Component.LifeSpan.preUpdate, W.BitmapText.prototype.preUpdateInWorld = W.Component.InWorld.preUpdate, W.BitmapText.prototype.preUpdateCore = W.Component.Core.preUpdate, W.BitmapText.prototype.preUpdate = function() { return !!(this.preUpdatePhysics() && this.preUpdateLifeSpan() && this.preUpdateInWorld()) && this.preUpdateCore() } , W.BitmapText.prototype.postUpdate = function() { W.Component.PhysicsBody.postUpdate.call(this), W.Component.FixedToCamera.postUpdate.call(this), this.body && this.body.type === W.Physics.ARCADE && (this.textWidth === this.body.sourceWidth && this.textHeight === this.body.sourceHeight || this.body.setSize(this.textWidth, this.textHeight)) } , W.BitmapText.prototype.setText = function(e) { this.text = e } , W.BitmapText.prototype.scanLine = function(e, t, i) { for (var r = 0, o = 0, s = -1, a = 0, n = null, h = 0 < this._maxWidth ? this._maxWidth : null, c = [], l = 0; l < i.length; l++) { var m = l === i.length - 1; if (/(?:\r\n|\r|\n)/.test(i.charAt(l))) return { width: o, text: i.substr(0, l), end: m, chars: c }; var u, d = i.charCodeAt(l), p = e.chars[d]; void 0 === p && (d = 32, p = e.chars[d]); var f = n && p.kerning[n] ? p.kerning[n] : 0; if (/(\s)/.test(i.charAt(l)) && (s = l, a = o), u = (f + p.texture.width + p.xOffset) * t, h && h <= o + u && -1 < s) return { width: a || o, text: i.substr(0, l - (l - s)), end: m, chars: c }; o += (p.xAdvance + f) * t, c.push(r + (p.xOffset + f) * t), r += (p.xAdvance + f) * t, n = d } return { width: o, text: i, end: m, chars: c } } , W.BitmapText.prototype.cleanText = function(e, t) { void 0 === t && (t = ""); var i = this._data.font; if (!i) return ""; for (var r = e.replace(/\r\n|\n\r|\n|\r/g, "\n").split("\n"), o = 0; o < r.length; o++) { for (var s = "", a = r[o], n = 0; n < a.length; n++) s = i.chars[a.charCodeAt(n)] ? s.concat(a[n]) : s.concat(t); r[o] = s } return r.join("\n") } , W.BitmapText.prototype.updateText = function() { var e = this._data.font; if (e) { var t = this.text , i = this._fontSize / e.size , r = [] , o = 0; this.textWidth = 0; do { (l = this.scanLine(e, i, t)).y = o, r.push(l), l.width > this.textWidth && (this.textWidth = l.width), o += e.lineHeight * i, t = t.substr(l.text.length + 1) } while (!1 === l.end); this.textHeight = o; for (var s = 0, a = 0, n = this.textWidth * this.anchor.x, h = this.textHeight * this.anchor.y, c = 0; c < r.length; c++) { var l = r[c]; "right" === this._align ? a = this.textWidth - l.width : "center" === this._align && (a = (this.textWidth - l.width) / 2); for (var m = 0; m < l.text.length; m++) { var u = l.text.charCodeAt(m) , d = e.chars[u]; void 0 === d && (u = 32, d = e.chars[u]); var p = this._glyphs[s]; p ? p.texture = d.texture : ((p = new PIXI.Sprite(d.texture)).name = l.text[m], this._glyphs.push(p)), p.position.x = l.chars[m] + a - n, p.position.y = l.y + d.yOffset * i - h, p.scale.set(i), p.tint = this.tint, p.texture.requiresReTint = !0, p.parent || this.addChild(p), s++ } } for (c = s; c < this._glyphs.length; c++) this.removeChild(this._glyphs[c]) } } , W.BitmapText.prototype.purgeGlyphs = function() { for (var e = this._glyphs.length, t = [], i = 0; i < this._glyphs.length; i++) this._glyphs[i].parent !== this ? this._glyphs[i].destroy() : t.push(this._glyphs[i]); return this._glyphs = [], this._glyphs = t, this.updateText(), e - t.length } , W.BitmapText.prototype.updateTransform = function() { !this.dirty && this.anchor.equals(this._prevAnchor) || (this.updateText(), this.dirty = !1, this._prevAnchor.copyFrom(this.anchor)), PIXI.DisplayObjectContainer.prototype.updateTransform.call(this) } , Object.defineProperty(W.BitmapText.prototype, "align", { get: function() { return this._align }, set: function(e) { e === this._align || "left" !== e && "center" !== e && "right" !== e || (this._align = e, this.updateText()) } }), Object.defineProperty(W.BitmapText.prototype, "tint", { get: function() { return this._tint }, set: function(e) { e !== this._tint && (this._tint = e, this.updateText()) } }), Object.defineProperty(W.BitmapText.prototype, "font", { get: function() { return this._font }, set: function(e) { e !== this._font && (this._font = e.trim(), this._data = this.game.cache.getBitmapFont(this._font), this.updateText()) } }), Object.defineProperty(W.BitmapText.prototype, "fontSize", { get: function() { return this._fontSize }, set: function(e) { (e = parseInt(e, 10)) !== this._fontSize && 0 < e && (this._fontSize = e, this.updateText()) } }), Object.defineProperty(W.BitmapText.prototype, "text", { get: function() { return this._text }, set: function(e) { e !== this._text && (this._text = e.toString() || "", this.updateText()) } }), Object.defineProperty(W.BitmapText.prototype, "maxWidth", { get: function() { return this._maxWidth }, set: function(e) { e !== this._maxWidth && (this._maxWidth = e, this.updateText()) } }), Object.defineProperty(W.BitmapText.prototype, "smoothed", { get: function() { return !this._data.base.scaleMode }, set: function(e) { this._data.base.scaleMode = e ? 0 : 1 } }), W.RetroFont = function(e, t, i, r, o, s, a, n, h, c) { if (!e.cache.checkImageKey(t)) return !1; null == s && (s = e.cache.getImage(t).width / i), this.characterWidth = i, this.characterHeight = r, this.characterSpacingX = a || 0, this.characterSpacingY = n || 0, this.characterPerRow = s, this.offsetX = h || 0, this.offsetY = c || 0, this.align = "left", this.multiLine = !1, this.autoUpperCase = !0, this.customSpacingX = 0, this.customSpacingY = 0, this.fixedWidth = 0, this.fontSet = e.cache.getImage(t), this._text = "", this.grabData = [], this.frameData = new W.FrameData; for (var l = this.offsetX, m = this.offsetY, u = 0, d = 0; d < o.length; d++) { var p = this.frameData.addFrame(new W.Frame(d,l,m,this.characterWidth,this.characterHeight)); this.grabData[o.charCodeAt(d)] = p.index, ++u === this.characterPerRow ? (u = 0, l = this.offsetX, m += this.characterHeight + this.characterSpacingY) : l += this.characterWidth + this.characterSpacingX } e.cache.updateFrameData(t, this.frameData), this.stamp = new W.Image(e,0,0,t,0), W.RenderTexture.call(this, e, 100, 100, "", W.scaleModes.NEAREST), this.type = W.RETROFONT } , W.RetroFont.prototype = Object.create(W.RenderTexture.prototype), W.RetroFont.prototype.constructor = W.RetroFont, W.RetroFont.ALIGN_LEFT = "left", W.RetroFont.ALIGN_RIGHT = "right", W.RetroFont.ALIGN_CENTER = "center", W.RetroFont.TEXT_SET1 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~", W.RetroFont.TEXT_SET2 = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ", W.RetroFont.TEXT_SET3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ", W.RetroFont.TEXT_SET4 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789", W.RetroFont.TEXT_SET5 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789", W.RetroFont.TEXT_SET6 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' ", W.RetroFont.TEXT_SET7 = "AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39", W.RetroFont.TEXT_SET8 = "0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ", W.RetroFont.TEXT_SET9 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!", W.RetroFont.TEXT_SET10 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", W.RetroFont.TEXT_SET11 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789", W.RetroFont.prototype.setFixedWidth = function(e, t) { void 0 === t && (t = "left"), this.fixedWidth = e, this.align = t } , W.RetroFont.prototype.setText = function(e, t, i, r, o, s) { this.multiLine = t || !1, this.customSpacingX = i || 0, this.customSpacingY = r || 0, this.align = o || "left", this.autoUpperCase = !s, 0 < e.length && (this.text = e) } , W.RetroFont.prototype.buildRetroFontText = function() { var e = 0 , t = 0; if (this.clear(), this.multiLine) { var i = this._text.split("\n"); 0 < this.fixedWidth ? this.resize(this.fixedWidth, i.length * (this.characterHeight + this.customSpacingY) - this.customSpacingY, !0) : this.resize(this.getLongestLine() * (this.characterWidth + this.customSpacingX), i.length * (this.characterHeight + this.customSpacingY) - this.customSpacingY, !0); for (var r = 0; r < i.length; r++) e = 0, this.align === W.RetroFont.ALIGN_RIGHT ? e = this.width - i[r].length * (this.characterWidth + this.customSpacingX) : this.align === W.RetroFont.ALIGN_CENTER && (e = this.width / 2 - i[r].length * (this.characterWidth + this.customSpacingX) / 2, e += this.customSpacingX / 2), e < 0 && (e = 0), this.pasteLine(i[r], e, t, this.customSpacingX), t += this.characterHeight + this.customSpacingY } else 0 < this.fixedWidth ? this.resize(this.fixedWidth, this.characterHeight, !0) : this.resize(this._text.length * (this.characterWidth + this.customSpacingX), this.characterHeight, !0), e = 0, this.align === W.RetroFont.ALIGN_RIGHT ? e = this.width - this._text.length * (this.characterWidth + this.customSpacingX) : this.align === W.RetroFont.ALIGN_CENTER && (e = this.width / 2 - this._text.length * (this.characterWidth + this.customSpacingX) / 2, e += this.customSpacingX / 2), e < 0 && (e = 0), this.pasteLine(this._text, e, 0, this.customSpacingX); this.requiresReTint = !0 } , W.RetroFont.prototype.pasteLine = function(e, t, i, r) { for (var o = 0; o < e.length; o++) if (" " === e.charAt(o)) t += this.characterWidth + r; else if (0 <= this.grabData[e.charCodeAt(o)] && (this.stamp.frame = this.grabData[e.charCodeAt(o)], this.renderXY(this.stamp, t, i, !1), (t += this.characterWidth + r) > this.width)) break } , W.RetroFont.prototype.getLongestLine = function() { var e = 0; if (0 < this._text.length) for (var t = this._text.split("\n"), i = 0; i < t.length; i++) t[i].length > e && (e = t[i].length); return e } , W.RetroFont.prototype.removeUnsupportedCharacters = function(e) { for (var t = "", i = 0; i < this._text.length; i++) { var r = this._text[i] , o = r.charCodeAt(0); (0 <= this.grabData[o] || !e && "\n" === r) && (t = t.concat(r)) } return t } , W.RetroFont.prototype.updateOffset = function(e, t) { if (this.offsetX !== e || this.offsetY !== t) { for (var i = e - this.offsetX, r = t - this.offsetY, o = this.game.cache.getFrameData(this.stamp.key).getFrames(), s = o.length; s--; ) o[s].x += i, o[s].y += r; this.buildRetroFontText() } } , Object.defineProperty(W.RetroFont.prototype, "text", { get: function() { return this._text }, set: function(e) { var t; (t = this.autoUpperCase ? e.toUpperCase() : e) !== this._text && (this._text = t, this.removeUnsupportedCharacters(this.multiLine), this.buildRetroFontText()) } }), Object.defineProperty(W.RetroFont.prototype, "smoothed", { get: function() { return this.stamp.smoothed }, set: function(e) { this.stamp.smoothed = e, this.buildRetroFontText() } }), W.Rope = function(e, t, i, r, o, s) { this.points = [], this.points = s, this._hasUpdateAnimation = !1, this._updateAnimationCallback = null, t = t || 0, i = i || 0, r = r || null, o = o || null, this.type = W.ROPE, PIXI.Rope.call(this, W.Cache.DEFAULT, this.points), W.Component.Core.init.call(this, e, t, i, r, o) } , W.Rope.prototype = Object.create(PIXI.Rope.prototype), W.Rope.prototype.constructor = W.Rope, W.Component.Core.install.call(W.Rope.prototype, ["Angle", "Animation", "AutoCull", "Bounds", "BringToTop", "Crop", "Delta", "Destroy", "FixedToCamera", "InWorld", "LifeSpan", "LoadTexture", "Overlap", "PhysicsBody", "Reset", "ScaleMinMax", "Smoothed"]), W.Rope.prototype.preUpdatePhysics = W.Component.PhysicsBody.preUpdate, W.Rope.prototype.preUpdateLifeSpan = W.Component.LifeSpan.preUpdate, W.Rope.prototype.preUpdateInWorld = W.Component.InWorld.preUpdate, W.Rope.prototype.preUpdateCore = W.Component.Core.preUpdate, W.Rope.prototype.preUpdate = function() { return !!(this.preUpdatePhysics() && this.preUpdateLifeSpan() && this.preUpdateInWorld()) && this.preUpdateCore() } , W.Rope.prototype.update = function() { this._hasUpdateAnimation && this.updateAnimation.call(this) } , W.Rope.prototype.reset = function(e, t) { return W.Component.Reset.prototype.reset.call(this, e, t), this } , Object.defineProperty(W.Rope.prototype, "updateAnimation", { get: function() { return this._updateAnimation }, set: function(e) { e && "function" == typeof e ? (this._hasUpdateAnimation = !0, this._updateAnimation = e) : (this._hasUpdateAnimation = !1, this._updateAnimation = null) } }), Object.defineProperty(W.Rope.prototype, "segments", { get: function() { for (var e, t, i, r, o, s, a, n, h = [], c = 0; c < this.points.length; c++) e = 4 * c, t = this.vertices[e] * this.scale.x, i = this.vertices[e + 1] * this.scale.y, r = this.vertices[e + 4] * this.scale.x, o = this.vertices[e + 3] * this.scale.y, s = W.Math.difference(t, r), a = W.Math.difference(i, o), t += this.world.x, i += this.world.y, n = new W.Rectangle(t,i,s,a), h.push(n); return h } }), W.TileSprite = function(e, t, i, r, o, s, a) { t = t || 0, i = i || 0, r = r || 256, o = o || 256, s = s || null, a = a || null, this.type = W.TILESPRITE, this.physicsType = W.SPRITE, this._scroll = new W.Point; var n = e.cache.getImage("__default", !0); PIXI.TilingSprite.call(this, new PIXI.Texture(n.base), r, o), W.Component.Core.init.call(this, e, t, i, s, a) } , W.TileSprite.prototype = Object.create(PIXI.TilingSprite.prototype), W.TileSprite.prototype.constructor = W.TileSprite, W.Component.Core.install.call(W.TileSprite.prototype, ["Angle", "Animation", "AutoCull", "Bounds", "BringToTop", "Destroy", "FixedToCamera", "Health", "InCamera", "InputEnabled", "InWorld", "LifeSpan", "LoadTexture", "Overlap", "PhysicsBody", "Reset", "Smoothed"]), W.TileSprite.prototype.preUpdatePhysics = W.Component.PhysicsBody.preUpdate, W.TileSprite.prototype.preUpdateLifeSpan = W.Component.LifeSpan.preUpdate, W.TileSprite.prototype.preUpdateInWorld = W.Component.InWorld.preUpdate, W.TileSprite.prototype.preUpdateCore = W.Component.Core.preUpdate, W.TileSprite.prototype.preUpdate = function() { return 0 !== this._scroll.x && (this.tilePosition.x += this._scroll.x * this.game.time.physicsElapsed), 0 !== this._scroll.y && (this.tilePosition.y += this._scroll.y * this.game.time.physicsElapsed), !!(this.preUpdatePhysics() && this.preUpdateLifeSpan() && this.preUpdateInWorld()) && this.preUpdateCore() } , W.TileSprite.prototype.autoScroll = function(e, t) { this._scroll.set(e, t) } , W.TileSprite.prototype.stopScroll = function() { this._scroll.set(0, 0) } , W.TileSprite.prototype.destroy = function(e) { W.Component.Destroy.prototype.destroy.call(this, e), PIXI.TilingSprite.prototype.destroy.call(this) } , W.TileSprite.prototype.reset = function(e, t) { return W.Component.Reset.prototype.reset.call(this, e, t), this.tilePosition.x = 0, this.tilePosition.y = 0, this } , W.Device = function() { this.deviceReadyAt = 0, this.initialized = !1, this.desktop = !1, this.iOS = !1, this.iOSVersion = 0, this.cocoonJS = !1, this.cocoonJSApp = !1, this.wechatMinigame = !1, this.cordova = !1, this.node = !1, this.nodeWebkit = !1, this.electron = !1, this.ejecta = !1, this.crosswalk = !1, this.android = !1, this.chromeOS = !1, this.linux = !1, this.macOS = !1, this.windows = !1, this.windowsPhone = !1, this.canvas = !1, this.canvasBitBltShift = null, this.webGL = !1, this.file = !1, this.fileSystem = !1, this.localStorage = !1, this.worker = !1, this.css3D = !1, this.pointerLock = !1, this.typedArray = !1, this.vibration = !1, this.getUserMedia = !0, this.quirksMode = !1, this.touch = !1, this.mspointer = !1, this.wheelEvent = null, this.arora = !1, this.chrome = !1, this.chromeVersion = 0, this.epiphany = !1, this.firefox = !1, this.firefoxVersion = 0, this.ie = !1, this.ieVersion = 0, this.trident = !1, this.tridentVersion = 0, this.edge = !1, this.mobileSafari = !1, this.midori = !1, this.opera = !1, this.safari = !1, this.safariVersion = 0, this.webApp = !1, this.silk = !1, this.audioData = !1, this.webAudio = !1, this.ogg = !1, this.opus = !1, this.mp3 = !1, this.wav = !1, this.m4a = !1, this.webm = !1, this.dolby = !1, this.oggVideo = !1, this.h264Video = !1, this.mp4Video = !1, this.webmVideo = !1, this.vp9Video = !1, this.hlsVideo = !1, this.iPhone = !1, this.iPhone4 = !1, this.iPad = !1, this.pixelRatio = 0, this.littleEndian = !1, this.LITTLE_ENDIAN = !1, this.support32bit = !1, this.fullscreen = !1, this.requestFullscreen = "", this.cancelFullscreen = "", this.fullscreenKeyboard = !1 } , W.Device = new W.Device, W.Device.onInitialized = new W.Signal, W.Device.whenReady = function(e, t, i) { var r = this._readyCheck; if (this.deviceReadyAt || !r) e.call(t, this); else if (r._monitor || i) r._queue = r._queue || [], r._queue.push([e, t]); else { r._monitor = r.bind(this), r._queue = r._queue || [], r._queue.push([e, t]); var o = void 0 !== window.cordova , s = navigator.isCocoonJS; "complete" === document.readyState || "interactive" === document.readyState ? window.setTimeout(r._monitor, 0) : o && !s ? document.addEventListener("deviceready", r._monitor, !1) : (document.addEventListener("DOMContentLoaded", r._monitor, !1), window.addEventListener("load", r._monitor, !1)) } } , W.Device._readyCheck = function() { var e = this._readyCheck; if (document.body) { if (!this.deviceReadyAt) { var t; for (this.deviceReadyAt = Date.now(), document.removeEventListener("deviceready", e._monitor), document.removeEventListener("DOMContentLoaded", e._monitor), window.removeEventListener("load", e._monitor), this._initialize(), this.initialized = !0, this.onInitialized.dispatch(this); t = e._queue.shift(); ) { var i = t[0] , r = t[1]; i.call(r, this) } this._readyCheck = null, this._initialize = null, this.onInitialized = null } } else window.setTimeout(e._monitor, 20) } , W.Device._initialize = function() { var e, t, i, r, o = this; !function() { var e = navigator.userAgent; /Playstation Vita/.test(e) ? o.vita = !0 : /Kindle/.test(e) || /\bKF[A-Z][A-Z]+/.test(e) || /Silk.*Mobile Safari/.test(e) ? o.kindle = !0 : /Android/.test(e) ? o.android = !0 : /CrOS/.test(e) ? o.chromeOS = !0 : /iP[ao]d|iPhone/i.test(e) ? (o.iOS = !0, navigator.appVersion.match(/OS (\d+)/), o.iOSVersion = parseInt(RegExp.$1, 10)) : /Linux/.test(e) ? o.linux = !0 : /Mac OS/.test(e) ? o.macOS = !0 : /Windows/.test(e) && (o.windows = !0), (/Windows Phone/i.test(e) || /IEMobile/i.test(e)) && (o.android = !1, o.iOS = !1, o.macOS = !1, o.windows = !0, o.windowsPhone = !0); var t = /Silk/.test(e); (o.windows || o.macOS || o.linux && !t || o.chromeOS) && (o.desktop = !0), (o.windowsPhone || /Windows NT/i.test(e) && /Touch/i.test(e)) && (o.desktop = !1) }(), function() { var e = navigator.userAgent; if (/Arora/.test(e) ? o.arora = !0 : /Edge\/\d+/.test(e) ? o.edge = !0 : /Chrome\/(\d+)/.test(e) && !o.windowsPhone ? (o.chrome = !0, o.chromeVersion = parseInt(RegExp.$1, 10)) : /Epiphany/.test(e) ? o.epiphany = !0 : /Firefox\D+(\d+)/.test(e) ? (o.firefox = !0, o.firefoxVersion = parseInt(RegExp.$1, 10)) : /AppleWebKit/.test(e) && o.iOS ? o.mobileSafari = !0 : /MSIE (\d+\.\d+);/.test(e) ? (o.ie = !0, o.ieVersion = parseInt(RegExp.$1, 10)) : /Midori/.test(e) ? o.midori = !0 : /Opera/.test(e) ? o.opera = !0 : /Safari\/(\d+)/.test(e) && !o.windowsPhone ? (o.safari = !0, /Version\/(\d+)\./.test(e) && (o.safariVersion = parseInt(RegExp.$1, 10))) : /Trident\/(\d+\.\d+)(.*)rv:(\d+\.\d+)/.test(e) && (o.ie = !0, o.trident = !0, o.tridentVersion = parseInt(RegExp.$1, 10), o.ieVersion = parseInt(RegExp.$3, 10)), /Silk/.test(e) && (o.silk = !0), navigator.standalone && (o.webApp = !0), void 0 !== window.cordova && (o.cordova = !0), "undefined" != typeof process && "undefined" != typeof require && (o.node = !0), o.node && "object" == typeof process.versions && (o.nodeWebkit = !!process.versions["node-webkit"], o.electron = !!process.versions.electron), navigator.isCocoonJS && (o.cocoonJS = !0), void 0 !== window.wx && (o.wechatMinigame = !0), o.cocoonJS) try { o.cocoonJSApp = "undefined" != typeof CocoonJS } catch (e) { o.cocoonJSApp = !1 } void 0 !== window.ejecta && (o.ejecta = !0), /Crosswalk/.test(e) && (o.crosswalk = !0) }(), function() { o.audioData = !!window.Audio, o.webAudio = !(!window.AudioContext && !window.webkitAudioContext); var e = document.createElement("audio"); try { if (e.canPlayType && (e.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/, "") && (o.ogg = !0), (e.canPlayType('audio/ogg; codecs="opus"').replace(/^no$/, "") || e.canPlayType("audio/opus;").replace(/^no$/, "")) && (o.opus = !0), e.canPlayType("audio/mpeg;").replace(/^no$/, "") && (o.mp3 = !0), e.canPlayType('audio/wav; codecs="1"').replace(/^no$/, "") && (o.wav = !0), (e.canPlayType("audio/x-m4a;") || e.canPlayType("audio/aac;").replace(/^no$/, "")) && (o.m4a = !0), e.canPlayType('audio/webm; codecs="vorbis"').replace(/^no$/, "") && (o.webm = !0), "" !== e.canPlayType('audio/mp4;codecs="ec-3"'))) if (o.edge) o.dolby = !0; else if (o.safari && 9 <= o.safariVersion && /Mac OS X (\d+)_(\d+)/.test(navigator.userAgent)) { var t = parseInt(RegExp.$1, 10) , i = parseInt(RegExp.$2, 10); (10 === t && 11 <= i || 10 < t) && (o.dolby = !0) } } catch (e) {} }(), function() { var e = document.createElement("video"); try { e.canPlayType && (e.canPlayType('video/ogg; codecs="theora"').replace(/^no$/, "") && (o.oggVideo = !0), e.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/, "") && (o.h264Video = !0, o.mp4Video = !0), e.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/, "") && (o.webmVideo = !0), e.canPlayType('video/webm; codecs="vp9"').replace(/^no$/, "") && (o.vp9Video = !0), e.canPlayType('application/x-mpegURL; codecs="avc1.42E01E"').replace(/^no$/, "") && (o.hlsVideo = !0)) } catch (e) {} }(), function() { var e, t = document.createElement("p"), i = { webkitTransform: "-webkit-transform", OTransform: "-o-transform", msTransform: "-ms-transform", MozTransform: "-moz-transform", transform: "transform" }; for (var r in document.body.insertBefore(t, null), i) void 0 !== t.style[r] && (t.style[r] = "translate3d(1px,1px,1px)", e = window.getComputedStyle(t).getPropertyValue(i[r])); document.body.removeChild(t), o.css3D = void 0 !== e && 0 < e.length && "none" !== e }(), o.pixelRatio = window.devicePixelRatio || 1, o.iPhone = -1 !== navigator.userAgent.toLowerCase().indexOf("iphone"), o.iPhone4 = 2 === o.pixelRatio && o.iPhone, o.iPad = !!(!(r = -1 !== navigator.userAgent.toLowerCase().indexOf("ipad")) && navigator.userAgent.match(/Mac/) && navigator.maxTouchPoints && 2 < navigator.maxTouchPoints) || r, "undefined" != typeof Int8Array ? o.typedArray = !0 : o.typedArray = !1, "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8Array && "undefined" != typeof Uint32Array && (o.littleEndian = (e = new ArrayBuffer(4), t = new Uint8Array(e), i = new Uint32Array(e), t[0] = 161, t[1] = 178, t[2] = 195, t[3] = 212, 3569595041 === i[0] || 2712847316 !== i[0] && null), o.LITTLE_ENDIAN = o.littleEndian), o.support32bit = "undefined" != typeof ArrayBuffer && "undefined" != typeof Uint8ClampedArray && "undefined" != typeof Int32Array && null !== o.littleEndian && function() { if (void 0 === Uint8ClampedArray) return !1; var e = PIXI.CanvasPool.create(this, 1, 1).getContext("2d"); if (!e) return !1; var t = e.createImageData(1, 1); return PIXI.CanvasPool.remove(this), t.data instanceof Uint8ClampedArray }(), navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate, navigator.vibrate && (o.vibration = !0), function() { o.canvas = !!window.CanvasRenderingContext2D || o.cocoonJS; try { o.localStorage = !!localStorage.getItem } catch (e) { o.localStorage = !1 } o.file = !!(window.File && window.FileReader && window.FileList && window.Blob), o.fileSystem = !!window.requestFileSystem; var t = { stencil: !0 }; o.webGL = function() { try { var e = document.createElement("canvas"); return e.screencanvas = !1, !!window.WebGLRenderingContext && (e.getContext("webgl", t) || e.getContext("experimental-webgl", t)) } catch (e) { return !1 } }(), o.webGL = !!o.webGL, o.worker = !!window.Worker, o.pointerLock = "pointerLockElement"in document || "mozPointerLockElement"in document || "webkitPointerLockElement"in document, o.quirksMode = "CSS1Compat" !== document.compatMode, navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia, window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL, o.getUserMedia = o.getUserMedia && !!navigator.getUserMedia && !!window.URL, o.firefox && o.firefoxVersion < 21 && (o.getUserMedia = !1), !o.iOS && (o.ie || o.firefox || o.chrome) && (o.canvasBitBltShift = !0), (o.safari || o.mobileSafari) && (o.canvasBitBltShift = !1) }(), function() { for (var e = ["requestFullscreen", "requestFullScreen", "webkitRequestFullscreen", "webkitRequestFullScreen", "msRequestFullscreen", "msRequestFullScreen", "mozRequestFullScreen", "mozRequestFullscreen"], t = document.createElement("div"), i = 0; i < e.length; i++) if (t[e[i]]) { o.fullscreen = !0, o.requestFullscreen = e[i]; break } var r = ["cancelFullScreen", "exitFullscreen", "webkitCancelFullScreen", "webkitExitFullscreen", "msCancelFullScreen", "msExitFullscreen", "mozCancelFullScreen", "mozExitFullscreen"]; if (o.fullscreen) for (i = 0; i < r.length; i++) if (document[r[i]]) { o.cancelFullscreen = r[i]; break } window.Element && Element.ALLOW_KEYBOARD_INPUT && (o.fullscreenKeyboard = !0) }(), ("ontouchstart"in document.documentElement || window.navigator.maxTouchPoints && 1 <= window.navigator.maxTouchPoints) && (o.touch = !0), (window.PointerEvent || window.MSPointerEvent || window.navigator.msPointerEnabled || window.navigator.pointerEnabled) && (o.mspointer = !0), o.cocoonJS || ("onwheel"in window || o.ie && "WheelEvent"in window ? o.wheelEvent = "wheel" : "onmousewheel"in window ? o.wheelEvent = "mousewheel" : o.firefox && "MouseScrollEvent"in window && (o.wheelEvent = "DOMMouseScroll")) } , W.Device.canPlayAudio = function(e) { return !("mp3" !== e || !this.mp3) || (!("ogg" !== e || !this.ogg && !this.opus) || (!("m4a" !== e || !this.m4a) || (!("opus" !== e || !this.opus) || (!("wav" !== e || !this.wav) || (!("webm" !== e || !this.webm) || !("mp4" !== e || !this.dolby)))))) } , W.Device.canPlayVideo = function(e) { return !("webm" !== e || !this.webmVideo && !this.vp9Video) || (!("mp4" !== e || !this.mp4Video && !this.h264Video) || (!("ogg" !== e && "ogv" !== e || !this.oggVideo) || !("mpeg" !== e || !this.hlsVideo))) } , W.Device.isConsoleOpen = function() { return !(!window.console || !window.console.firebug) || !(!window.console || (console.clear, !console.profiles)) && 0 < console.profiles.length } , W.Device.isAndroidStockBrowser = function() { var e = window.navigator.userAgent.match(/Android.*AppleWebKit\/([\d.]+)/); return e && e[1] < 537 } , W.Canvas = { create: function(e, t, i, r, o) { t = t || 256, i = i || 256; var s = o ? document.createElement("canvas") : PIXI.CanvasPool.create(e, t, i); return "string" == typeof r && "" !== r && (s.id = r), s.width = t, s.height = i, s.style.display = "block", s }, setBackgroundColor: function(e, t) { return t = t || "rgb(0,0,0)", e.style.backgroundColor = t, e }, setTouchAction: function(e, t) { return t = t || "none", e.style.msTouchAction = t, e.style["ms-touch-action"] = t, e.style["touch-action"] = t, e }, setUserSelect: function(e, t) { return t = t || "none", e.style["-webkit-touch-callout"] = t, e.style["-webkit-user-select"] = t, e.style["-khtml-user-select"] = t, e.style["-moz-user-select"] = t, e.style["-ms-user-select"] = t, e.style["user-select"] = t, e.style["-webkit-tap-highlight-color"] = "rgba(0, 0, 0, 0)", e }, addToDOM: function(e, t, i) { var r; return void 0 === i && (i = !0), t && ("string" == typeof t ? r = document.getElementById(t) : "object" == typeof t && 1 === t.nodeType && (r = t)), r || (r = document.body), i && r.style && (r.style.overflow = "hidden"), r.appendChild(e), e }, removeFromDOM: function(e) { e.parentNode && e.parentNode.removeChild(e) }, setTransform: function(e, t, i, r, o, s, a) { return e.setTransform(r, s, a, o, t, i), e }, setSmoothingEnabled: function(e, t) { var i = W.Canvas.getSmoothingPrefix(e); return i && (e[i] = t), e }, getSmoothingPrefix: function(e) { var t = ["i", "webkitI", "msI", "mozI", "oI"]; for (var i in t) { var r = t[i] + "mageSmoothingEnabled"; if (r in e) return r } return null }, getSmoothingEnabled: function(e) { var t = W.Canvas.getSmoothingPrefix(e); if (t) return e[t] }, setImageRenderingCrisp: function(e) { for (var t = ["optimizeSpeed", "crisp-edges", "-moz-crisp-edges", "-webkit-optimize-contrast", "optimize-contrast", "pixelated"], i = 0; i < t.length; i++) e.style["image-rendering"] = t[i]; return e.style.msInterpolationMode = "nearest-neighbor", e }, setImageRenderingBicubic: function(e) { return e.style["image-rendering"] = "auto", e.style.msInterpolationMode = "bicubic", e } }, W.RequestAnimationFrame = function(e, t) { void 0 === t && (t = !1), this.game = e, this.isRunning = !1, this.forceSetTimeOut = t; for (var i = ["ms", "moz", "webkit", "o"], r = 0; r < i.length && !window.requestAnimationFrame; r++) window.requestAnimationFrame = window[i[r] + "RequestAnimationFrame"], window.cancelAnimationFrame = window[i[r] + "CancelAnimationFrame"]; this._isSetTimeOut = !1, this._onLoop = null, this._timeOutID = null } , W.RequestAnimationFrame.prototype = { start: function() { this.isRunning = !0; var t = this; !window.requestAnimationFrame || this.forceSetTimeOut ? (this._isSetTimeOut = !0, this._onLoop = function() { return t.updateSetTimeout() } , this._timeOutID = window.setTimeout(this._onLoop, 0)) : (this._isSetTimeOut = !1, this._onLoop = function(e) { return t.updateRAF(e) } , this._timeOutID = window.requestAnimationFrame(this._onLoop)) }, updateRAF: function(e) { this.isRunning && (this.game.update(Math.floor(e)), this._timeOutID = window.requestAnimationFrame(this._onLoop)) }, updateSetTimeout: function() { this.isRunning && (this.game.update(Date.now()), this._timeOutID = window.setTimeout(this._onLoop, this.game.time.timeToCall)) }, stop: function() { this._isSetTimeOut ? clearTimeout(this._timeOutID) : window.cancelAnimationFrame(this._timeOutID), this.isRunning = !1 }, isSetTimeOut: function() { return this._isSetTimeOut }, isRAF: function() { return !1 === this._isSetTimeOut } }, W.RequestAnimationFrame.prototype.constructor = W.RequestAnimationFrame, W.Math = { PI2: 2 * Math.PI, between: function(e, t) { return Math.floor(Math.random() * (t - e + 1) + e) }, fuzzyEqual: function(e, t, i) { return void 0 === i && (i = 1e-4), Math.abs(e - t) < i }, fuzzyLessThan: function(e, t, i) { return void 0 === i && (i = 1e-4), e < t + i }, fuzzyGreaterThan: function(e, t, i) { return void 0 === i && (i = 1e-4), t - i < e }, fuzzyCeil: function(e, t) { return void 0 === t && (t = 1e-4), Math.ceil(e - t) }, fuzzyFloor: function(e, t) { return void 0 === t && (t = 1e-4), Math.floor(e + t) }, average: function() { for (var e = 0, t = arguments.length, i = 0; i < t; i++) e += +arguments[i]; return e / t }, shear: function(e) { return e % 1 }, snapTo: function(e, t, i) { return void 0 === i && (i = 0), 0 === t ? e : (e -= i, i + (e = t * Math.round(e / t))) }, snapToFloor: function(e, t, i) { return void 0 === i && (i = 0), 0 === t ? e : (e -= i, i + (e = t * Math.floor(e / t))) }, snapToCeil: function(e, t, i) { return void 0 === i && (i = 0), 0 === t ? e : (e -= i, i + (e = t * Math.ceil(e / t))) }, roundTo: function(e, t, i) { void 0 === t && (t = 0), void 0 === i && (i = 10); var r = Math.pow(i, -t); return Math.round(e * r) / r }, floorTo: function(e, t, i) { void 0 === t && (t = 0), void 0 === i && (i = 10); var r = Math.pow(i, -t); return Math.floor(e * r) / r }, ceilTo: function(e, t, i) { void 0 === t && (t = 0), void 0 === i && (i = 10); var r = Math.pow(i, -t); return Math.ceil(e * r) / r }, rotateToAngle: function(e, t, i) { return void 0 === i && (i = .05), e === t || (Math.abs(t - e) <= i || Math.abs(t - e) >= W.Math.PI2 - i ? e = t : (Math.abs(t - e) > Math.PI && (t < e ? t += W.Math.PI2 : t -= W.Math.PI2), e < t ? e += i : t < e && (e -= i))), e }, getShortestAngle: function(e, t) { var i = t - e; return 0 === i ? 0 : i - 360 * Math.floor((i - -180) / 360) }, angleBetween: function(e, t, i, r) { return Math.atan2(r - t, i - e) }, angleBetweenY: function(e, t, i, r) { return Math.atan2(i - e, r - t) }, angleBetweenPoints: function(e, t) { return Math.atan2(t.y - e.y, t.x - e.x) }, angleBetweenPointsY: function(e, t) { return Math.atan2(t.x - e.x, t.y - e.y) }, reverseAngle: function(e) { return this.normalizeAngle(e + Math.PI, !0) }, normalizeAngle: function(e) { return 0 <= (e %= 2 * Math.PI) ? e : e + 2 * Math.PI }, maxAdd: function(e, t, i) { return Math.min(e + t, i) }, minSub: function(e, t, i) { return Math.max(e - t, i) }, wrap: function(e, t, i) { var r = i - t; if (r <= 0) return 0; var o = (e - t) % r; return o < 0 && (o += r), o + t }, wrapValue: function(e, t, i) { return ((e = Math.abs(e)) + (t = Math.abs(t))) % (i = Math.abs(i)) }, isOdd: function(e) { return !!(1 & e) }, isEven: function(e) { return !(1 & e) }, min: function() { if (1 === arguments.length && "object" == typeof arguments[0]) var e = arguments[0]; else e = arguments; for (var t = 1, i = 0, r = e.length; t < r; t++) e[t] < e[i] && (i = t); return e[i] }, max: function() { if (1 === arguments.length && "object" == typeof arguments[0]) var e = arguments[0]; else e = arguments; for (var t = 1, i = 0, r = e.length; t < r; t++) e[t] > e[i] && (i = t); return e[i] }, minProperty: function(e) { if (2 === arguments.length && "object" == typeof arguments[1]) var t = arguments[1]; else t = arguments.slice(1); for (var i = 1, r = 0, o = t.length; i < o; i++) t[i][e] < t[r][e] && (r = i); return t[r][e] }, maxProperty: function(e) { if (2 === arguments.length && "object" == typeof arguments[1]) var t = arguments[1]; else t = arguments.slice(1); for (var i = 1, r = 0, o = t.length; i < o; i++) t[i][e] > t[r][e] && (r = i); return t[r][e] }, wrapAngle: function(e, t) { return t ? this.wrap(e, -Math.PI, Math.PI) : this.wrap(e, -180, 180) }, linearInterpolation: function(e, t) { var i = e.length - 1 , r = i * t , o = Math.floor(r); return t < 0 ? this.linear(e[0], e[1], r) : 1 < t ? this.linear(e[i], e[i - 1], i - r) : this.linear(e[o], e[i < o + 1 ? i : o + 1], r - o) }, bezierInterpolation: function(e, t) { for (var i = 0, r = e.length - 1, o = 0; o <= r; o++) i += Math.pow(1 - t, r - o) * Math.pow(t, o) * e[o] * this.bernstein(r, o); return i }, catmullRomInterpolation: function(e, t) { var i = e.length - 1 , r = i * t , o = Math.floor(r); return e[0] === e[i] ? (t < 0 && (o = Math.floor(r = i * (1 + t))), this.catmullRom(e[(o - 1 + i) % i], e[o], e[(o + 1) % i], e[(o + 2) % i], r - o)) : t < 0 ? e[0] - (this.catmullRom(e[0], e[0], e[1], e[1], -r) - e[0]) : 1 < t ? e[i] - (this.catmullRom(e[i], e[i], e[i - 1], e[i - 1], r - i) - e[i]) : this.catmullRom(e[o ? o - 1 : 0], e[o], e[i < o + 1 ? i : o + 1], e[i < o + 2 ? i : o + 2], r - o) }, linear: function(e, t, i) { return (t - e) * i + e }, bernstein: function(e, t) { return this.factorial(e) / this.factorial(t) / this.factorial(e - t) }, factorial: function(e) { if (0 === e) return 1; for (var t = e; --e; ) t *= e; return t }, catmullRom: function(e, t, i, r, o) { var s = .5 * (i - e) , a = .5 * (r - t) , n = o * o; return (2 * t - 2 * i + s + a) * (o * n) + (-3 * t + 3 * i - 2 * s - a) * n + s * o + t }, difference: function(e, t) { return Math.abs(e - t) }, roundAwayFromZero: function(e) { return 0 < e ? Math.ceil(e) : Math.floor(e) }, sinCosGenerator: function(e, t, i, r) { void 0 === t && (t = 1), void 0 === i && (i = 1), void 0 === r && (r = 1); for (var o = t, s = i, a = r * Math.PI / e, n = [], h = [], c = 0; c < e; c++) o += (s -= o * a) * a, n[c] = s, h[c] = o; return { sin: h, cos: n, length: e } }, distance: function(e, t, i, r) { var o = e - i , s = t - r; return Math.sqrt(o * o + s * s) }, distanceSq: function(e, t, i, r) { var o = e - i , s = t - r; return o * o + s * s }, distancePow: function(e, t, i, r, o) { return void 0 === o && (o = 2), Math.sqrt(Math.pow(i - e, o) + Math.pow(r - t, o)) }, clamp: function(e, t, i) { return e < t ? t : i < e ? i : e }, clampBottom: function(e, t) { return e < t ? t : e }, within: function(e, t, i) { return Math.abs(e - t) <= i }, mapLinear: function(e, t, i, r, o) { return r + (e - t) * (o - r) / (i - t) }, smoothstep: function(e, t, i) { return (e = Math.max(0, Math.min(1, (e - t) / (i - t)))) * e * (3 - 2 * e) }, smootherstep: function(e, t, i) { return (e = Math.max(0, Math.min(1, (e - t) / (i - t)))) * e * e * (e * (6 * e - 15) + 10) }, sign: function(e) { return e < 0 ? -1 : 0 < e ? 1 : 0 }, percent: function(e, t, i) { return void 0 === i && (i = 0), t < e || t < i ? 1 : e < i || e < i ? 0 : (e - i) / t } }; var a = Math.PI / 180 , n = 180 / Math.PI; return W.Math.degToRad = function(e) { return e * a } , W.Math.radToDeg = function(e) { return e * n } , W.RandomDataGenerator = function(e) { void 0 === e && (e = []), this.c = 1, this.s0 = 0, this.s1 = 0, this.s2 = 0, "string" == typeof e ? this.state(e) : this.sow(e) } , W.RandomDataGenerator.prototype = { rnd: function() { var e = 2091639 * this.s0 + 2.3283064365386963e-10 * this.c; return this.c = 0 | e, this.s0 = this.s1, this.s1 = this.s2, this.s2 = e - this.c, this.s2 }, sow: function(e) { if (this.s0 = this.hash(" "), this.s1 = this.hash(this.s0), this.s2 = this.hash(this.s1), this.c = 1, e) for (var t = 0; t < e.length && null != e[t]; t++) { var i = e[t]; this.s0 -= this.hash(i), this.s0 += ~~(this.s0 < 0), this.s1 -= this.hash(i), this.s1 += ~~(this.s1 < 0), this.s2 -= this.hash(i), this.s2 += ~~(this.s2 < 0) } }, hash: function(e) { var t, i, r; for (r = 4022871197, e = e.toString(), i = 0; i < e.length; i++) t = .02519603282416938 * (r += e.charCodeAt(i)), t -= r = t >>> 0, r = (t *= r) >>> 0, r += 4294967296 * (t -= r); return 2.3283064365386963e-10 * (r >>> 0) }, integer: function() { return 4294967296 * this.rnd.apply(this) }, frac: function() { return this.rnd.apply(this) + 11102230246251565e-32 * (2097152 * this.rnd.apply(this) | 0) }, real: function() { return this.integer() + this.frac() }, integerInRange: function(e, t) { return Math.floor(this.realInRange(0, t - e + 1) + e) }, between: function(e, t) { return this.integerInRange(e, t) }, realInRange: function(e, t) { return this.frac() * (t - e) + e }, normal: function() { return 1 - 2 * this.frac() }, uuid: function() { var e = "" , t = ""; for (t = e = ""; e++ < 36; t += ~e % 5 | 3 * e & 4 ? (15 ^ e ? 8 ^ this.frac() * (20 ^ e ? 16 : 4) : 4).toString(16) : "-") ; return t }, pick: function(e) { return e[this.integerInRange(0, e.length - 1)] }, sign: function() { return this.pick([-1, 1]) }, weightedPick: function(e) { return e[~~(Math.pow(this.frac(), 2) * (e.length - 1) + .5)] }, timestamp: function(e, t) { return this.realInRange(e || 9466848e5, t || 1577862e6) }, angle: function() { return this.integerInRange(-180, 180) }, state: function(e) { return "string" == typeof e && e.match(/^!rnd/) && (e = e.split(","), this.c = parseFloat(e[1]), this.s0 = parseFloat(e[2]), this.s1 = parseFloat(e[3]), this.s2 = parseFloat(e[4])), ["!rnd", this.c, this.s0, this.s1, this.s2].join(",") } }, W.RandomDataGenerator.prototype.constructor = W.RandomDataGenerator, W.QuadTree = function(e, t, i, r, o, s, a) { this.maxObjects = 10, this.maxLevels = 4, this.level = 0, this.bounds = {}, this.objects = [], this.nodes = [], this._empty = [], this.reset(e, t, i, r, o, s, a) } , W.QuadTree.prototype = { reset: function(e, t, i, r, o, s, a) { this.maxObjects = o || 10, this.maxLevels = s || 4, this.level = a || 0, this.bounds = { x: Math.round(e), y: Math.round(t), width: i, height: r, subWidth: Math.floor(i / 2), subHeight: Math.floor(r / 2), right: Math.round(e) + Math.floor(i / 2), bottom: Math.round(t) + Math.floor(r / 2) }, this.objects.length = 0, this.nodes.length = 0 }, populate: function(e) { e.forEach(this.populateHandler, this, !0) }, populateHandler: function(e) { e.body && e.exists && this.insert(e.body) }, split: function() { this.nodes[0] = new W.QuadTree(this.bounds.right,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level + 1), this.nodes[1] = new W.QuadTree(this.bounds.x,this.bounds.y,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level + 1), this.nodes[2] = new W.QuadTree(this.bounds.x,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level + 1), this.nodes[3] = new W.QuadTree(this.bounds.right,this.bounds.bottom,this.bounds.subWidth,this.bounds.subHeight,this.maxObjects,this.maxLevels,this.level + 1) }, insert: function(e) { var t, i = 0; if (null == this.nodes[0] || -1 === (t = this.getIndex(e))) { if (this.objects.push(e), this.objects.length > this.maxObjects && this.level < this.maxLevels) for (null == this.nodes[0] && this.split(); i < this.objects.length; ) -1 !== (t = this.getIndex(this.objects[i])) ? this.nodes[t].insert(this.objects.splice(i, 1)[0]) : i++ } else this.nodes[t].insert(e) }, getIndex: function(e) { var t = -1; return e.x < this.bounds.right && e.right < this.bounds.right ? e.y < this.bounds.bottom && e.bottom < this.bounds.bottom ? t = 1 : e.y > this.bounds.bottom && (t = 2) : e.x > this.bounds.right && (e.y < this.bounds.bottom && e.bottom < this.bounds.bottom ? t = 0 : e.y > this.bounds.bottom && (t = 3)), t }, retrieve: function(e) { if (e instanceof W.Rectangle) var t = this.objects , i = this.getIndex(e); else { if (!e.body) return this._empty; t = this.objects, i = this.getIndex(e.body) } return this.nodes[0] && (t = -1 !== i ? t.concat(this.nodes[i].retrieve(e)) : (t = (t = (t = t.concat(this.nodes[0].retrieve(e))).concat(this.nodes[1].retrieve(e))).concat(this.nodes[2].retrieve(e))).concat(this.nodes[3].retrieve(e))), t }, clear: function() { this.objects.length = 0; for (var e = this.nodes.length; e--; ) this.nodes[e].clear(), this.nodes.splice(e, 1); this.nodes.length = 0 } }, W.QuadTree.prototype.constructor = W.QuadTree, W.Net = function(e) { this.game = e } , W.Net.prototype = { getHostName: function() { return window.location && window.location.hostname ? window.location.hostname : null }, checkDomainName: function(e) { return -1 !== window.location.hostname.indexOf(e) }, updateQueryString: function(e, t, i, r) { void 0 === i && (i = !1), void 0 !== r && "" !== r || (r = window.location.href); var o = "" , s = new RegExp("([?|&])" + e + "=.*?(&|#|$)(.*)","gi"); if (s.test(r)) o = null != t ? r.replace(s, "$1" + e + "=" + t + "$2$3") : r.replace(s, "$1$3").replace(/(&|\?)$/, ""); else if (null != t) { var a = -1 !== r.indexOf("?") ? "&" : "?" , n = r.split("#"); r = n[0] + a + e + "=" + t, n[1] && (r += "#" + n[1]), o = r } else o = r; if (!i) return o; window.location.href = o }, getQueryString: function(e) { void 0 === e && (e = ""); var t = {} , i = location.search.substring(1).split("&"); for (var r in i) { var o = i[r].split("="); if (1 < o.length) { if (e && e === this.decodeURI(o[0])) return this.decodeURI(o[1]); t[this.decodeURI(o[0])] = this.decodeURI(o[1]) } } return t }, decodeURI: function(e) { return decodeURIComponent(e.replace(/\+/g, " ")) } }, W.Net.prototype.constructor = W.Net, W.TweenManager = function(e) { this.game = e, this.frameBased = !1, this._tweens = [], this._add = [], this.easeMap = { Power0: W.Easing.Power0, Power1: W.Easing.Power1, Power2: W.Easing.Power2, Power3: W.Easing.Power3, Power4: W.Easing.Power4, Linear: W.Easing.Linear.None, Quad: W.Easing.Quadratic.Out, Cubic: W.Easing.Cubic.Out, Quart: W.Easing.Quartic.Out, Quint: W.Easing.Quintic.Out, Sine: W.Easing.Sinusoidal.Out, Expo: W.Easing.Exponential.Out, Circ: W.Easing.Circular.Out, Elastic: W.Easing.Elastic.Out, Back: W.Easing.Back.Out, Bounce: W.Easing.Bounce.Out, "Quad.easeIn": W.Easing.Quadratic.In, "Cubic.easeIn": W.Easing.Cubic.In, "Quart.easeIn": W.Easing.Quartic.In, "Quint.easeIn": W.Easing.Quintic.In, "Sine.easeIn": W.Easing.Sinusoidal.In, "Expo.easeIn": W.Easing.Exponential.In, "Circ.easeIn": W.Easing.Circular.In, "Elastic.easeIn": W.Easing.Elastic.In, "Back.easeIn": W.Easing.Back.In, "Bounce.easeIn": W.Easing.Bounce.In, "Quad.easeOut": W.Easing.Quadratic.Out, "Cubic.easeOut": W.Easing.Cubic.Out, "Quart.easeOut": W.Easing.Quartic.Out, "Quint.easeOut": W.Easing.Quintic.Out, "Sine.easeOut": W.Easing.Sinusoidal.Out, "Expo.easeOut": W.Easing.Exponential.Out, "Circ.easeOut": W.Easing.Circular.Out, "Elastic.easeOut": W.Easing.Elastic.Out, "Back.easeOut": W.Easing.Back.Out, "Bounce.easeOut": W.Easing.Bounce.Out, "Quad.easeInOut": W.Easing.Quadratic.InOut, "Cubic.easeInOut": W.Easing.Cubic.InOut, "Quart.easeInOut": W.Easing.Quartic.InOut, "Quint.easeInOut": W.Easing.Quintic.InOut, "Sine.easeInOut": W.Easing.Sinusoidal.InOut, "Expo.easeInOut": W.Easing.Exponential.InOut, "Circ.easeInOut": W.Easing.Circular.InOut, "Elastic.easeInOut": W.Easing.Elastic.InOut, "Back.easeInOut": W.Easing.Back.InOut, "Bounce.easeInOut": W.Easing.Bounce.InOut }, this.game.onPause.add(this._pauseAll, this), this.game.onResume.add(this._resumeAll, this) } , W.TweenManager.prototype = { getAll: function() { return this._tweens }, removeAll: function() { for (var e = 0; e < this._tweens.length; e++) this._tweens[e].pendingDelete = !0; this._add = [] }, removeFrom: function(e, t) { if (void 0 === t && (t = !0), Array.isArray(e)) for (i = 0, r = e.length; i < r; i++) this.removeFrom(e[i]); else if (e.type === W.GROUP && t) for (var i = 0, r = e.children.length; i < r; i++) this.removeFrom(e.children[i]); else { for (i = 0, r = this._tweens.length; i < r; i++) e === this._tweens[i].target && this.remove(this._tweens[i]); for (i = 0, r = this._add.length; i < r; i++) e === this._add[i].target && this.remove(this._add[i]) } }, add: function(e) { (e._manager = this)._add.push(e) }, create: function(e) { return new W.Tween(e,this.game,this) }, remove: function(e) { var t = this._tweens.indexOf(e); -1 !== t ? this._tweens[t].pendingDelete = !0 : -1 !== (t = this._add.indexOf(e)) && (this._add[t].pendingDelete = !0) }, update: function() { var e = this._add.length , t = this._tweens.length; if (0 === t && 0 === e) return !1; for (var i = 0; i < t; ) this._tweens[i].update(this.game.time.time) ? i++ : (this._tweens.splice(i, 1), t--); return 0 < e && (this._tweens = this._tweens.concat(this._add), this._add.length = 0), !0 }, isTweening: function(t) { return this._tweens.some(function(e) { return e.target === t }) }, _pauseAll: function() { for (var e = this._tweens.length - 1; 0 <= e; e--) this._tweens[e]._pause() }, _resumeAll: function() { for (var e = this._tweens.length - 1; 0 <= e; e--) this._tweens[e]._resume() }, pauseAll: function() { for (var e = this._tweens.length - 1; 0 <= e; e--) this._tweens[e].pause() }, resumeAll: function() { for (var e = this._tweens.length - 1; 0 <= e; e--) this._tweens[e].resume(!0) } }, W.TweenManager.prototype.constructor = W.TweenManager, W.Tween = function(e, t, i) { this.game = t, this.target = e, this.manager = i, this.timeline = [], this.reverse = !1, this.timeScale = 1, this.repeatCounter = 0, this.pendingDelete = !1, this.onStart = new W.Signal, this.onLoop = new W.Signal, this.onRepeat = new W.Signal, this.onChildComplete = new W.Signal, this.onComplete = new W.Signal, this.isRunning = !1, this.current = 0, this.properties = {}, this.chainedTween = null, this.isPaused = !1, this.frameBased = i.frameBased, this._onUpdateCallback = null, this._onUpdateCallbackContext = null, this._pausedTime = 0, this._codePaused = !1, this._hasStarted = !1 } , W.Tween.prototype = { to: function(e, t, i, r, o, s, a) { return (void 0 === t || t <= 0) && (t = 1e3), null == i && (i = W.Easing.Default), void 0 === r && (r = !1), void 0 === o && (o = 0), void 0 === s && (s = 0), void 0 === a && (a = !1), "string" == typeof i && this.manager.easeMap[i] && (i = this.manager.easeMap[i]), this.isRunning || (this.timeline.push(new W.TweenData(this).to(e, t, i, o, s, a)), r && this.start()), this }, from: function(e, t, i, r, o, s, a) { return void 0 === t && (t = 1e3), null == i && (i = W.Easing.Default), void 0 === r && (r = !1), void 0 === o && (o = 0), void 0 === s && (s = 0), void 0 === a && (a = !1), "string" == typeof i && this.manager.easeMap[i] && (i = this.manager.easeMap[i]), this.isRunning || (this.timeline.push(new W.TweenData(this).from(e, t, i, o, s, a)), r && this.start()), this }, start: function(e) { if (void 0 === e && (e = 0), null === this.game || null === this.target || 0 === this.timeline.length || this.isRunning) return this; for (var t = 0; t < this.timeline.length; t++) for (var i in this.timeline[t].vEnd) this.properties[i] = this.target[i] || 0, Array.isArray(this.properties[i]) || (this.properties[i] *= 1); for (t = 0; t < this.timeline.length; t++) this.timeline[t].loadValues(); return this.manager.add(this), this.isRunning = !0, (e < 0 || e > this.timeline.length - 1) && (e = 0), this.current = e, this.timeline[this.current].start(), this }, stop: function(e) { return void 0 === e && (e = !1), this.isRunning = !1, this._onUpdateCallback = null, this._onUpdateCallbackContext = null, e && (this.onComplete.dispatch(this.target, this), this._hasStarted = !1, this.chainedTween && this.chainedTween.start()), this.manager.remove(this), this }, updateTweenData: function(e, t, i) { if (0 === this.timeline.length) return this; if (void 0 === i && (i = 0), -1 === i) for (var r = 0; r < this.timeline.length; r++) this.timeline[r][e] = t; else this.timeline[i][e] = t; return this }, delay: function(e, t) { return this.updateTweenData("delay", e, t) }, repeat: function(e, t, i) { return void 0 === t && (t = 0), this.updateTweenData("repeatCounter", e, i), this.updateTweenData("repeatDelay", t, i) }, repeatDelay: function(e, t) { return this.updateTweenData("repeatDelay", e, t) }, yoyo: function(e, t, i) { return void 0 === t && (t = 0), this.updateTweenData("yoyo", e, i), this.updateTweenData("yoyoDelay", t, i) }, yoyoDelay: function(e, t) { return this.updateTweenData("yoyoDelay", e, t) }, easing: function(e, t) { return "string" == typeof e && this.manager.easeMap[e] && (e = this.manager.easeMap[e]), this.updateTweenData("easingFunction", e, t) }, interpolation: function(e, t, i) { return void 0 === t && (t = W.Math), this.updateTweenData("interpolationFunction", e, i), this.updateTweenData("interpolationContext", t, i) }, repeatAll: function(e) { return void 0 === e && (e = 0), this.repeatCounter = e, this }, chain: function() { for (var e = arguments.length; e--; ) 0 < e ? arguments[e - 1].chainedTween = arguments[e] : this.chainedTween = arguments[e]; return this }, loop: function(e) { return void 0 === e && (e = !0), this.repeatCounter = e ? -1 : 0, this }, onUpdateCallback: function(e, t) { return this._onUpdateCallback = e, this._onUpdateCallbackContext = t, this }, pause: function() { this.isPaused = !0, this._codePaused = !0, this._pausedTime = this.game.time.time }, _pause: function() { this._codePaused || (this.isPaused = !0, this._pausedTime = this.game.time.time) }, resume: function() { if (this.isPaused) { this.isPaused = !1, this._codePaused = !1; for (var e = 0; e < this.timeline.length; e++) this.timeline[e].isRunning || (this.timeline[e].startTime += this.game.time.time - this._pausedTime) } }, _resume: function() { this._codePaused || this.resume() }, update: function(e) { if (this.pendingDelete || !this.target) return !1; if (this.isPaused) return !0; var t = this.timeline[this.current].update(e); if (t === W.TweenData.PENDING) return !0; if (t === W.TweenData.RUNNING) return this._hasStarted || (this.onStart.dispatch(this.target, this), this._hasStarted = !0), null !== this._onUpdateCallback && this._onUpdateCallback.call(this._onUpdateCallbackContext, this, this.timeline[this.current].value, this.timeline[this.current]), this.isRunning; if (t === W.TweenData.LOOPED) return -1 === this.timeline[this.current].repeatCounter ? this.onLoop.dispatch(this.target, this) : this.onRepeat.dispatch(this.target, this), !0; if (t === W.TweenData.COMPLETE) { var i = !1; return this.reverse ? (this.current--, this.current < 0 && (this.current = this.timeline.length - 1, i = !0)) : (this.current++, this.current === this.timeline.length && (i = !(this.current = 0))), i ? -1 === this.repeatCounter ? (this.timeline[this.current].start(), this.onLoop.dispatch(this.target, this), !0) : 0 < this.repeatCounter ? (this.repeatCounter--, this.timeline[this.current].start(), this.onRepeat.dispatch(this.target, this), !0) : (this.isRunning = !1, this.onComplete.dispatch(this.target, this), this._hasStarted = !1, this.chainedTween && this.chainedTween.start(), !1) : (this.onChildComplete.dispatch(this.target, this), this.timeline[this.current].start(), !0) } }, generateData: function(e, t) { if (null === this.game || null === this.target) return null; void 0 === e && (e = 60), void 0 === t && (t = []); for (var i = 0; i < this.timeline.length; i++) for (var r in this.timeline[i].vEnd) this.properties[r] = this.target[r] || 0, Array.isArray(this.properties[r]) || (this.properties[r] *= 1); for (i = 0; i < this.timeline.length; i++) this.timeline[i].loadValues(); for (i = 0; i < this.timeline.length; i++) t = t.concat(this.timeline[i].generateData(e)); return t } }, Object.defineProperty(W.Tween.prototype, "totalDuration", { get: function() { for (var e = 0, t = 0; t < this.timeline.length; t++) e += this.timeline[t].duration; return e } }), W.Tween.prototype.constructor = W.Tween, W.TweenData = function(e) { this.parent = e, this.game = e.game, this.vStart = {}, this.vStartCache = {}, this.vEnd = {}, this.vEndCache = {}, this.duration = 1e3, this.percent = 0, this.value = 0, this.repeatCounter = 0, this.repeatDelay = 0, this.repeatTotal = 0, this.interpolate = !1, this.yoyo = !1, this.yoyoDelay = 0, this.inReverse = !1, this.delay = 0, this.dt = 0, this.startTime = null, this.easingFunction = W.Easing.Default, this.interpolationFunction = W.Math.linearInterpolation, this.interpolationContext = W.Math, this.isRunning = !1, this.isFrom = !1 } , W.TweenData.PENDING = 0, W.TweenData.RUNNING = 1, W.TweenData.LOOPED = 2, W.TweenData.COMPLETE = 3, W.TweenData.prototype = { to: function(e, t, i, r, o, s) { return this.vEnd = e, this.duration = t, this.easingFunction = i, this.delay = r, this.repeatTotal = o, this.yoyo = s, this.isFrom = !1, this }, from: function(e, t, i, r, o, s) { return this.vEnd = e, this.duration = t, this.easingFunction = i, this.delay = r, this.repeatTotal = o, this.yoyo = s, this.isFrom = !0, this }, start: function() { if (this.startTime = this.game.time.time + this.delay, this.parent.reverse ? this.dt = this.duration : this.dt = 0, 0 < this.delay ? this.isRunning = !1 : this.isRunning = !0, this.isFrom) for (var e in this.vStartCache) this.vStart[e] = this.vEndCache[e], this.vEnd[e] = this.vStartCache[e], this.parent.target[e] = this.vStart[e]; return this.value = 0, this.yoyoCounter = 0, this.repeatCounter = this.repeatTotal, this }, loadValues: function() { for (var e in this.parent.properties) { if (this.vStart[e] = this.parent.properties[e], Array.isArray(this.vEnd[e])) { if (0 === this.vEnd[e].length) continue; 0 === this.percent && (this.vEnd[e] = [this.vStart[e]].concat(this.vEnd[e])) } void 0 !== this.vEnd[e] ? ("string" == typeof this.vEnd[e] && (this.vEnd[e] = this.vStart[e] + parseFloat(this.vEnd[e], 10)), this.parent.properties[e] = this.vEnd[e]) : this.vEnd[e] = this.vStart[e], this.vStartCache[e] = this.vStart[e], this.vEndCache[e] = this.vEnd[e] } return this }, update: function(e) { if (this.isRunning) { if (e < this.startTime) return W.TweenData.RUNNING } else { if (!(e >= this.startTime)) return W.TweenData.PENDING; this.isRunning = !0 } var t = this.parent.frameBased ? this.game.time.physicsElapsedMS : this.game.time.elapsedMS; for (var i in this.parent.reverse ? (this.dt -= t * this.parent.timeScale, this.dt = Math.max(this.dt, 0)) : (this.dt += t * this.parent.timeScale, this.dt = Math.min(this.dt, this.duration)), this.percent = this.dt / this.duration, this.value = this.easingFunction(this.percent), this.vEnd) { var r = this.vStart[i] , o = this.vEnd[i]; Array.isArray(o) ? this.parent.target[i] = this.interpolationFunction.call(this.interpolationContext, o, this.value) : this.parent.target[i] = r + (o - r) * this.value } return !this.parent.reverse && 1 === this.percent || this.parent.reverse && 0 === this.percent ? this.repeat() : W.TweenData.RUNNING }, generateData: function(e) { this.parent.reverse ? this.dt = this.duration : this.dt = 0; var t = [] , i = !1 , r = 1 / e * 1e3; do { this.parent.reverse ? (this.dt -= r, this.dt = Math.max(this.dt, 0)) : (this.dt += r, this.dt = Math.min(this.dt, this.duration)), this.percent = this.dt / this.duration, this.value = this.easingFunction(this.percent); var o = {}; for (var s in this.vEnd) { var a = this.vStart[s] , n = this.vEnd[s]; Array.isArray(n) ? o[s] = this.interpolationFunction(n, this.value) : o[s] = a + (n - a) * this.value } t.push(o), (!this.parent.reverse && 1 === this.percent || this.parent.reverse && 0 === this.percent) && (i = !0) } while (!i); if (this.yoyo) { var h = t.slice(); h.reverse(), t = t.concat(h) } return t }, repeat: function() { if (this.yoyo) { if (this.inReverse && 0 === this.repeatCounter) { for (var e in this.vStartCache) this.vStart[e] = this.vStartCache[e], this.vEnd[e] = this.vEndCache[e]; return this.inReverse = !1, W.TweenData.COMPLETE } this.inReverse = !this.inReverse } else if (0 === this.repeatCounter) return W.TweenData.COMPLETE; if (this.inReverse) for (var e in this.vStartCache) this.vStart[e] = this.vEndCache[e], this.vEnd[e] = this.vStartCache[e]; else { for (var e in this.vStartCache) this.vStart[e] = this.vStartCache[e], this.vEnd[e] = this.vEndCache[e]; 0 < this.repeatCounter && this.repeatCounter-- } return this.startTime = this.game.time.time, this.yoyo && this.inReverse ? this.startTime += this.yoyoDelay : this.inReverse || (this.startTime += this.repeatDelay), this.parent.reverse ? this.dt = this.duration : this.dt = 0, W.TweenData.LOOPED } }, W.TweenData.prototype.constructor = W.TweenData, W.Easing = { Linear: { None: function(e) { return e } }, Quadratic: { In: function(e) { return e * e }, Out: function(e) { return e * (2 - e) }, InOut: function(e) { return (e *= 2) < 1 ? .5 * e * e : -.5 * (--e * (e - 2) - 1) } }, Cubic: { In: function(e) { return e * e * e }, Out: function(e) { return --e * e * e + 1 }, InOut: function(e) { return (e *= 2) < 1 ? .5 * e * e * e : .5 * ((e -= 2) * e * e + 2) } }, Quartic: { In: function(e) { return e * e * e * e }, Out: function(e) { return 1 - --e * e * e * e }, InOut: function(e) { return (e *= 2) < 1 ? .5 * e * e * e * e : -.5 * ((e -= 2) * e * e * e - 2) } }, Quintic: { In: function(e) { return e * e * e * e * e }, Out: function(e) { return --e * e * e * e * e + 1 }, InOut: function(e) { return (e *= 2) < 1 ? .5 * e * e * e * e * e : .5 * ((e -= 2) * e * e * e * e + 2) } }, Sinusoidal: { In: function(e) { return 0 === e ? 0 : 1 === e ? 1 : 1 - Math.cos(e * Math.PI / 2) }, Out: function(e) { return 0 === e ? 0 : 1 === e ? 1 : Math.sin(e * Math.PI / 2) }, InOut: function(e) { return 0 === e ? 0 : 1 === e ? 1 : .5 * (1 - Math.cos(Math.PI * e)) } }, Exponential: { In: function(e) { return 0 === e ? 0 : Math.pow(1024, e - 1) }, Out: function(e) { return 1 === e ? 1 : 1 - Math.pow(2, -10 * e) }, InOut: function(e) { return 0 === e ? 0 : 1 === e ? 1 : (e *= 2) < 1 ? .5 * Math.pow(1024, e - 1) : .5 * (2 - Math.pow(2, -10 * (e - 1))) } }, Circular: { In: function(e) { return 1 - Math.sqrt(1 - e * e) }, Out: function(e) { return Math.sqrt(1 - --e * e) }, InOut: function(e) { return (e *= 2) < 1 ? -.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1) } }, Elastic: { In: function(e) { var t, i = .1; return 0 === e ? 0 : 1 === e ? 1 : (t = !i || i < 1 ? (i = 1, .1) : .4 * Math.asin(1 / i) / (2 * Math.PI), -i * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - t) * (2 * Math.PI) / .4)) }, Out: function(e) { var t, i = .1; return 0 === e ? 0 : 1 === e ? 1 : (t = !i || i < 1 ? (i = 1, .1) : .4 * Math.asin(1 / i) / (2 * Math.PI), i * Math.pow(2, -10 * e) * Math.sin((e - t) * (2 * Math.PI) / .4) + 1) }, InOut: function(e) { var t, i = .1; return 0 === e ? 0 : 1 === e ? 1 : (t = !i || i < 1 ? (i = 1, .1) : .4 * Math.asin(1 / i) / (2 * Math.PI), (e *= 2) < 1 ? i * Math.pow(2, 10 * (e -= 1)) * Math.sin((e - t) * (2 * Math.PI) / .4) * -.5 : i * Math.pow(2, -10 * (e -= 1)) * Math.sin((e - t) * (2 * Math.PI) / .4) * .5 + 1) } }, Back: { In: function(e) { return e * e * (2.70158 * e - 1.70158) }, Out: function(e) { return --e * e * (2.70158 * e + 1.70158) + 1 }, InOut: function(e) { var t = 2.5949095; return (e *= 2) < 1 ? e * e * ((t + 1) * e - t) * .5 : .5 * ((e -= 2) * e * ((t + 1) * e + t) + 2) } }, Bounce: { In: function(e) { return 1 - W.Easing.Bounce.Out(1 - e) }, Out: function(e) { return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375 }, InOut: function(e) { return e < .5 ? .5 * W.Easing.Bounce.In(2 * e) : .5 * W.Easing.Bounce.Out(2 * e - 1) + .5 } } }, W.Easing.Default = W.Easing.Linear.None, W.Easing.Power0 = W.Easing.Linear.None, W.Easing.Power1 = W.Easing.Quadratic.Out, W.Easing.Power2 = W.Easing.Cubic.Out, W.Easing.Power3 = W.Easing.Quartic.Out, W.Easing.Power4 = W.Easing.Quintic.Out, W.Time = function(e) { this.game = e, this.time = 0, this.prevTime = 0, this.now = 0, this.elapsed = 0, this.elapsedMS = 0, this.physicsElapsed = 1 / 60, this.physicsElapsedMS = 1 / 60 * 1e3, this.desiredFpsMult = 1 / 60, this._desiredFps = 60, this.suggestedFps = this.desiredFps, this.slowMotion = 1, this.advancedTiming = !1, this.frames = 0, this.fps = 0, this.fpsMin = 1e3, this.fpsMax = 0, this.msMin = 1e3, this.msMax = 0, this.pauseDuration = 0, this.timeToCall = 0, this.timeExpected = 0, this.events = new W.Timer(this.game,!1), this._frameCount = 0, this._elapsedAccumulator = 0, this._started = 0, this._timeLastSecond = 0, this._pauseStarted = 0, this._justResumed = !1, this._timers = [] } , W.Time.prototype = { boot: function() { this._started = Date.now(), this.time = Date.now(), this.events.start(), this.timeExpected = this.time }, add: function(e) { return this._timers.push(e), e }, create: function(e) { void 0 === e && (e = !0); var t = new W.Timer(this.game,e); return this._timers.push(t), t }, removeAll: function() { for (var e = 0; e < this._timers.length; e++) this._timers[e].destroy(); this._timers = [], this.events.removeAll() }, refresh: function() { var e = this.time; this.time = Date.now(), this.elapsedMS = this.time - e }, update: function(e) { var t = this.time; this.time = Date.now(), this.elapsedMS = this.time - t, this.prevTime = this.now, this.now = e, this.elapsed = this.now - this.prevTime, this.game.raf._isSetTimeOut && (this.timeToCall = Math.floor(Math.max(0, 1e3 / this._desiredFps - (this.timeExpected - e))), this.timeExpected = e + this.timeToCall), this.advancedTiming && this.updateAdvancedTiming(), this.game.paused || (this.events.update(this.time), this._timers.length && this.updateTimers()) }, updateTimers: function() { for (var e = 0, t = this._timers.length; e < t; ) this._timers[e].update(this.time) ? e++ : (this._timers.splice(e, 1), t--) }, updateAdvancedTiming: function() { this._frameCount++, this._elapsedAccumulator += this.elapsed, this._frameCount >= 2 * this._desiredFps && (this.suggestedFps = 5 * Math.floor(200 / (this._elapsedAccumulator / this._frameCount)), this._frameCount = 0, this._elapsedAccumulator = 0), this.msMin = Math.min(this.msMin, this.elapsed), this.msMax = Math.max(this.msMax, this.elapsed), this.frames++, this.now > this._timeLastSecond + 1e3 && (this.fps = Math.round(1e3 * this.frames / (this.now - this._timeLastSecond)), this.fpsMin = Math.min(this.fpsMin, this.fps), this.fpsMax = Math.max(this.fpsMax, this.fps), this._timeLastSecond = this.now, this.frames = 0) }, gamePaused: function() { this._pauseStarted = Date.now(), this.events.pause(); for (var e = this._timers.length; e--; ) this._timers[e]._pause() }, gameResumed: function() { this.time = Date.now(), this.pauseDuration = this.time - this._pauseStarted, this.events.resume(); for (var e = this._timers.length; e--; ) this._timers[e]._resume() }, totalElapsedSeconds: function() { return .001 * (this.time - this._started) }, elapsedSince: function(e) { return this.time - e }, elapsedSecondsSince: function(e) { return .001 * (this.time - e) }, reset: function() { this._started = this.time, this.removeAll() } }, Object.defineProperty(W.Time.prototype, "desiredFps", { get: function() { return this._desiredFps }, set: function(e) { this._desiredFps = e, this.physicsElapsed = 1 / e, this.physicsElapsedMS = 1e3 * this.physicsElapsed, this.desiredFpsMult = 1 / e } }), W.Time.prototype.constructor = W.Time, W.Timer = function(e, t) { void 0 === t && (t = !0), this.game = e, this.running = !1, this.autoDestroy = t, this.expired = !1, this.elapsed = 0, this.events = [], this.onComplete = new W.Signal, this.nextTick = 0, this.timeCap = 1e3, this.paused = !1, this._codePaused = !1, this._started = 0, this._pauseStarted = 0, this._pauseTotal = 0, this._now = Date.now(), this._len = 0, this._marked = 0, this._i = 0, this._diff = 0, this._newTick = 0 } , W.Timer.MINUTE = 6e4, W.Timer.SECOND = 1e3, W.Timer.HALF = 500, W.Timer.QUARTER = 250, W.Timer.prototype = { create: function(e, t, i, r, o, s) { var a = e = Math.round(e); 0 === this._now ? a += this.game.time.time : a += this._now; var n = new W.TimerEvent(this,e,a,i,t,r,o,s); return this.events.push(n), this.order(), this.expired = !1, n }, add: function(e, t, i) { return this.create(e, !1, 0, t, i, Array.prototype.slice.call(arguments, 3)) }, repeat: function(e, t, i, r) { return this.create(e, !1, t, i, r, Array.prototype.slice.call(arguments, 4)) }, loop: function(e, t, i) { return this.create(e, !0, 0, t, i, Array.prototype.slice.call(arguments, 3)) }, start: function(e) { if (!this.running) { this._started = this.game.time.time + (e || 0), this.running = !0; for (var t = 0; t < this.events.length; t++) this.events[t].tick = this.events[t].delay + this._started } }, stop: function(e) { this.running = !1, void 0 === e && (e = !0), e && (this.events.length = 0) }, remove: function(e) { for (var t = 0; t < this.events.length; t++) if (this.events[t] === e) return this.events[t].pendingDelete = !0; return !1 }, order: function() { 0 < this.events.length && (this.events.sort(this.sortHandler), this.nextTick = this.events[0].tick) }, sortHandler: function(e, t) { return e.tick < t.tick ? -1 : e.tick > t.tick ? 1 : 0 }, clearPendingEvents: function() { for (this._i = this.events.length; this._i--; ) this.events[this._i].pendingDelete && this.events.splice(this._i, 1); this._len = this.events.length, this._i = 0 }, update: function(e) { if (this.paused) return !0; if (this.elapsed = e - this._now, this._now = e, this.elapsed > this.timeCap && this.adjustEvents(e - this.elapsed), this._marked = 0, this.clearPendingEvents(), this.running && this._now >= this.nextTick && 0 < this._len) { for (; this._i < this._len && this.running && this._now >= this.events[this._i].tick && !this.events[this._i].pendingDelete; ) this._newTick = this._now + this.events[this._i].delay - (this._now - this.events[this._i].tick), this._newTick < 0 && (this._newTick = this._now + this.events[this._i].delay), !0 === this.events[this._i].loop ? this.events[this._i].tick = this._newTick : 0 < this.events[this._i].repeatCount ? (this.events[this._i].repeatCount--, this.events[this._i].tick = this._newTick) : (this._marked++, this.events[this._i].pendingDelete = !0), this.events[this._i].callback.apply(this.events[this._i].callbackContext, this.events[this._i].args), this._i++; this.events.length > this._marked ? this.order() : (this.expired = !0, this.onComplete.dispatch(this)) } return !this.expired || !this.autoDestroy }, pause: function() { this.running && (this._codePaused = !0, this.paused || (this._pauseStarted = this.game.time.time, this.paused = !0)) }, _pause: function() { !this.paused && this.running && (this._pauseStarted = this.game.time.time, this.paused = !0) }, adjustEvents: function(e) { for (var t = 0; t < this.events.length; t++) if (!this.events[t].pendingDelete) { var i = this.events[t].tick - e; i < 0 && (i = 0), this.events[t].tick = this._now + i } var r = this.nextTick - e; this.nextTick = r < 0 ? this._now : this._now + r }, resume: function() { if (this.paused) { var e = this.game.time.time; this._pauseTotal += e - this._now, this._now = e, this.adjustEvents(this._pauseStarted), this.paused = !1, this._codePaused = !1 } }, _resume: function() { this._codePaused || this.resume() }, removeAll: function() { this.onComplete.removeAll(), this.events.length = 0, this._len = 0, this._i = 0 }, destroy: function() { this.onComplete.removeAll(), this.running = !1, this.events = [], this._len = 0, this._i = 0 } }, Object.defineProperty(W.Timer.prototype, "next", { get: function() { return this.nextTick } }), Object.defineProperty(W.Timer.prototype, "duration", { get: function() { return this.running && this.nextTick > this._now ? this.nextTick - this._now : 0 } }), Object.defineProperty(W.Timer.prototype, "length", { get: function() { return this.events.length } }), Object.defineProperty(W.Timer.prototype, "ms", { get: function() { return this.running ? this._now - this._started - this._pauseTotal : 0 } }), Object.defineProperty(W.Timer.prototype, "seconds", { get: function() { return this.running ? .001 * this.ms : 0 } }), W.Timer.prototype.constructor = W.Timer, W.TimerEvent = function(e, t, i, r, o, s, a, n) { this.timer = e, this.delay = t, this.tick = i, this.repeatCount = r - 1, this.loop = o, this.callback = s, this.callbackContext = a, this.args = n, this.pendingDelete = !1 } , W.TimerEvent.prototype.constructor = W.TimerEvent, W.AnimationManager = function(e) { this.sprite = e, this.game = e.game, this.currentFrame = null, this.currentAnim = null, this.updateIfVisible = !0, this.isLoaded = !1, this._frameData = null, this._anims = {}, this._outputFrames = [] } , W.AnimationManager.prototype = { loadFrameData: function(e, t) { if (void 0 === e) return !1; if (this.isLoaded) for (var i in this._anims) this._anims[i].updateFrameData(e); return this._frameData = e, null == t ? this.frame = 0 : "string" == typeof t ? this.frameName = t : this.frame = t, this.isLoaded = !0 }, copyFrameData: function(e, t) { if (this._frameData = e.clone(), this.isLoaded) for (var i in this._anims) this._anims[i].updateFrameData(this._frameData); return null == t ? this.frame = 0 : "string" == typeof t ? this.frameName = t : this.frame = t, this.isLoaded = !0 }, add: function(e, t, i, r, o) { return t = t || [], i = i || 60, void 0 === r && (r = !1), void 0 === o && (o = !(!t || "number" != typeof t[0])), this._outputFrames = [], this._frameData.getFrameIndexes(t, o, this._outputFrames), this._anims[e] = new W.Animation(this.game,this.sprite,e,this._frameData,this._outputFrames,i,r), this.currentAnim = this._anims[e], this.sprite.tilingTexture && (this.sprite.refreshTexture = !0), this._anims[e] }, validateFrames: function(e, t) { void 0 === t && (t = !0); for (var i = 0; i < e.length; i++) if (!0 === t) { if (e[i] > this._frameData.total) return !1 } else if (!1 === this._frameData.checkFrameName(e[i])) return !1; return !0 }, play: function(e, t, i, r) { if (this._anims[e]) return this.currentAnim === this._anims[e] ? !1 === this.currentAnim.isPlaying ? (this.currentAnim.paused = !1, this.currentAnim.play(t, i, r)) : this.currentAnim : (this.currentAnim && this.currentAnim.isPlaying && this.currentAnim.stop(), this.currentAnim = this._anims[e], this.currentAnim.paused = !1, this.currentFrame = this.currentAnim.currentFrame, this.currentAnim.play(t, i, r)) }, stop: function(e, t) { void 0 === t && (t = !1), !this.currentAnim || "string" == typeof e && e !== this.currentAnim.name || this.currentAnim.stop(t) }, update: function() { return !(this.updateIfVisible && !this.sprite.visible) && (!(!this.currentAnim || !this.currentAnim.update()) && (this.currentFrame = this.currentAnim.currentFrame, !0)) }, next: function(e) { this.currentAnim && (this.currentAnim.next(e), this.currentFrame = this.currentAnim.currentFrame) }, previous: function(e) { this.currentAnim && (this.currentAnim.previous(e), this.currentFrame = this.currentAnim.currentFrame) }, getAnimation: function(e) { return "string" == typeof e && this._anims[e] ? this._anims[e] : null }, refreshFrame: function() {}, destroy: function() { var e = null; for (var e in this._anims) this._anims.hasOwnProperty(e) && this._anims[e].destroy(); this._anims = {}, this._outputFrames = [], this._frameData = null, this.currentAnim = null, this.currentFrame = null, this.sprite = null, this.game = null } }, W.AnimationManager.prototype.constructor = W.AnimationManager, Object.defineProperty(W.AnimationManager.prototype, "frameData", { get: function() { return this._frameData } }), Object.defineProperty(W.AnimationManager.prototype, "frameTotal", { get: function() { return this._frameData.total } }), Object.defineProperty(W.AnimationManager.prototype, "paused", { get: function() { return this.currentAnim.isPaused }, set: function(e) { this.currentAnim.paused = e } }), Object.defineProperty(W.AnimationManager.prototype, "name", { get: function() { if (this.currentAnim) return this.currentAnim.name } }), Object.defineProperty(W.AnimationManager.prototype, "frame", { get: function() { if (this.currentFrame) return this.currentFrame.index }, set: function(e) { "number" == typeof e && this._frameData && null !== this._frameData.getFrame(e) && (this.currentFrame = this._frameData.getFrame(e), this.currentFrame && this.sprite.setFrame(this.currentFrame)) } }), Object.defineProperty(W.AnimationManager.prototype, "frameName", { get: function() { if (this.currentFrame) return this.currentFrame.name }, set: function(e) { "string" == typeof e && this._frameData && null !== this._frameData.getFrameByName(e) && (this.currentFrame = this._frameData.getFrameByName(e), this.currentFrame && (this._frameIndex = this.currentFrame.index, this.sprite.setFrame(this.currentFrame))) } }), W.Animation = function(e, t, i, r, o, s, a) { void 0 === a && (a = !1), this.game = e, this._parent = t, this._frameData = r, this.name = i, this._frames = [], this._frames = this._frames.concat(o), this.delay = 1e3 / s, this.loop = a, this.loopCount = 0, this.killOnComplete = !1, this.isFinished = !1, this.isPlaying = !1, this.isPaused = !1, this._pauseStartTime = 0, this._frameIndex = 0, this._frameDiff = 0, this._frameSkip = 1, this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this.onStart = new W.Signal, this.onUpdate = null, this.onComplete = new W.Signal, this.onLoop = new W.Signal, this.isReversed = !1, this.game.onPause.add(this.onPause, this), this.game.onResume.add(this.onResume, this) } , W.Animation.prototype = { play: function(e, t, i) { return "number" == typeof e && (this.delay = 1e3 / e), "boolean" == typeof t && (this.loop = t), void 0 !== i && (this.killOnComplete = i), this.isPlaying = !0, this.isFinished = !1, this.paused = !1, this.loopCount = 0, this._timeLastFrame = this.game.time.time, this._timeNextFrame = this.game.time.time + this.delay, this._frameIndex = this.isReversed ? this._frames.length - 1 : 0, this.updateCurrentFrame(!1, !0), this._parent.events.onAnimationStart$dispatch(this._parent, this), this.onStart.dispatch(this._parent, this), (this._parent.animations.currentAnim = this)._parent.animations.currentFrame = this.currentFrame, this }, restart: function() { this.isPlaying = !0, this.isFinished = !1, this.paused = !1, this.loopCount = 0, this._timeLastFrame = this.game.time.time, this._timeNextFrame = this.game.time.time + this.delay, this._frameIndex = 0, this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this._parent.setFrame(this.currentFrame), (this._parent.animations.currentAnim = this)._parent.animations.currentFrame = this.currentFrame, this.onStart.dispatch(this._parent, this) }, reverse: function() { return this.reversed = !this.reversed, this }, reverseOnce: function() { return this.onComplete.addOnce(this.reverse, this), this.reverse() }, setFrame: function(e, t) { var i; if (void 0 === t && (t = !1), "string" == typeof e) for (var r = 0; r < this._frames.length; r++) this._frameData.getFrame(this._frames[r]).name === e && (i = r); else if ("number" == typeof e) if (t) i = e; else for (r = 0; r < this._frames.length; r++) this._frames[r] === e && (i = r); i && (this._frameIndex = i - 1, this._timeNextFrame = this.game.time.time, this.update()) }, stop: function(e, t) { void 0 === e && (e = !1), void 0 === t && (t = !1), this.isPlaying = !1, this.isFinished = !0, this.paused = !1, e && (this.currentFrame = this._frameData.getFrame(this._frames[0]), this._parent.setFrame(this.currentFrame)), t && (this._parent.events.onAnimationComplete$dispatch(this._parent, this), this.onComplete.dispatch(this._parent, this)) }, onPause: function() { this.isPlaying && (this._frameDiff = this._timeNextFrame - this.game.time.time) }, onResume: function() { this.isPlaying && (this._timeNextFrame = this.game.time.time + this._frameDiff) }, update: function() { return !this.isPaused && (!!(this.isPlaying && this.game.time.time >= this._timeNextFrame) && (this._frameSkip = 1, this._frameDiff = this.game.time.time - this._timeNextFrame, this._timeLastFrame = this.game.time.time, this._frameDiff > this.delay && (this._frameSkip = Math.floor(this._frameDiff / this.delay), this._frameDiff -= this._frameSkip * this.delay), this._timeNextFrame = this.game.time.time + (this.delay - this._frameDiff), this.isReversed ? this._frameIndex -= this._frameSkip : this._frameIndex += this._frameSkip, !this.isReversed && this._frameIndex >= this._frames.length || this.isReversed && this._frameIndex <= -1 ? this.loop ? (this._frameIndex = Math.abs(this._frameIndex) % this._frames.length, this.isReversed && (this._frameIndex = this._frames.length - 1 - this._frameIndex), this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this.currentFrame && this._parent.setFrame(this.currentFrame), this.loopCount++, this._parent.events.onAnimationLoop$dispatch(this._parent, this), this.onLoop.dispatch(this._parent, this), !this.onUpdate || (this.onUpdate.dispatch(this, this.currentFrame), !!this._frameData)) : (this.complete(), !1) : this.updateCurrentFrame(!0))) }, updateCurrentFrame: function(e, t) { if (void 0 === t && (t = !1), !this._frameData) return !1; var i = this.currentFrame.index; return this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this.currentFrame && (t || !t && i !== this.currentFrame.index) && this._parent.setFrame(this.currentFrame), !this.onUpdate || !e || (this.onUpdate.dispatch(this, this.currentFrame), !!this._frameData) }, next: function(e) { void 0 === e && (e = 1); var t = this._frameIndex + e; t >= this._frames.length && (this.loop ? t %= this._frames.length : t = this._frames.length - 1), t !== this._frameIndex && (this._frameIndex = t, this.updateCurrentFrame(!0)) }, previous: function(e) { void 0 === e && (e = 1); var t = this._frameIndex - e; t < 0 && (this.loop ? t = this._frames.length + t : t++), t !== this._frameIndex && (this._frameIndex = t, this.updateCurrentFrame(!0)) }, updateFrameData: function(e) { this._frameData = e, this.currentFrame = this._frameData ? this._frameData.getFrame(this._frames[this._frameIndex % this._frames.length]) : null }, destroy: function() { this._frameData && (this.game.onPause.remove(this.onPause, this), this.game.onResume.remove(this.onResume, this), this.game = null, this._parent = null, this._frames = null, this._frameData = null, this.currentFrame = null, this.isPlaying = !1, this.onStart.dispose(), this.onLoop.dispose(), this.onComplete.dispose(), this.onUpdate && this.onUpdate.dispose()) }, complete: function() { this._frameIndex = this._frames.length - 1, this.currentFrame = this._frameData.getFrame(this._frames[this._frameIndex]), this.isPlaying = !1, this.isFinished = !0, this.paused = !1, this._parent.events.onAnimationComplete$dispatch(this._parent, this), this.onComplete.dispatch(this._parent, this), this.killOnComplete && this._parent.kill() } }, W.Animation.prototype.constructor = W.Animation, Object.defineProperty(W.Animation.prototype, "paused", { get: function() { return this.isPaused }, set: function(e) { (this.isPaused = e) ? this._pauseStartTime = this.game.time.time : this.isPlaying && (this._timeNextFrame = this.game.time.time + this.delay) } }), Object.defineProperty(W.Animation.prototype, "reversed", { get: function() { return this.isReversed }, set: function(e) { this.isReversed = e } }), Object.defineProperty(W.Animation.prototype, "frameTotal", { get: function() { return this._frames.length } }), Object.defineProperty(W.Animation.prototype, "frame", { get: function() { return null !== this.currentFrame ? this.currentFrame.index : this._frameIndex }, set: function(e) { this.currentFrame = this._frameData.getFrame(this._frames[e]), null !== this.currentFrame && (this._frameIndex = e, this._parent.setFrame(this.currentFrame), this.onUpdate && this.onUpdate.dispatch(this, this.currentFrame)) } }), Object.defineProperty(W.Animation.prototype, "speed", { get: function() { return 1e3 / this.delay }, set: function(e) { 0 < e && (this.delay = 1e3 / e) } }), Object.defineProperty(W.Animation.prototype, "enableUpdate", { get: function() { return null !== this.onUpdate }, set: function(e) { e && null === this.onUpdate ? this.onUpdate = new W.Signal : e || null === this.onUpdate || (this.onUpdate.dispose(), this.onUpdate = null) } }), W.Animation.generateFrameNames = function(e, t, i, r, o) { void 0 === r && (r = ""); var s = [] , a = ""; if (t < i) for (var n = t; n <= i; n++) a = e + (a = "number" == typeof o ? W.Utils.pad(n.toString(), o, "0", 1) : n.toString()) + r, s.push(a); else for (n = t; i <= n; n--) a = e + (a = "number" == typeof o ? W.Utils.pad(n.toString(), o, "0", 1) : n.toString()) + r, s.push(a); return s } , W.Frame = function(e, t, i, r, o, s) { this.index = e, this.x = t, this.y = i, this.width = r, this.height = o, this.name = s, this.centerX = Math.floor(r / 2), this.centerY = Math.floor(o / 2), this.distance = W.Math.distance(0, 0, r, o), this.rotated = !1, this.rotationDirection = "cw", this.trimmed = !1, this.sourceSizeW = r, this.sourceSizeH = o, this.spriteSourceSizeX = 0, this.spriteSourceSizeY = 0, this.spriteSourceSizeW = 0, this.spriteSourceSizeH = 0, this.right = this.x + this.width, this.bottom = this.y + this.height } , W.Frame.prototype = { resize: function(e, t) { this.width = e, this.height = t, this.centerX = Math.floor(e / 2), this.centerY = Math.floor(t / 2), this.distance = W.Math.distance(0, 0, e, t), this.sourceSizeW = e, this.sourceSizeH = t, this.right = this.x + e, this.bottom = this.y + t }, setTrim: function(e, t, i, r, o, s, a) { (this.trimmed = e) && (this.sourceSizeW = t, this.sourceSizeH = i, this.centerX = Math.floor(t / 2), this.centerY = Math.floor(i / 2), this.spriteSourceSizeX = r, this.spriteSourceSizeY = o, this.spriteSourceSizeW = s, this.spriteSourceSizeH = a) }, clone: function() { var e = new W.Frame(this.index,this.x,this.y,this.width,this.height,this.name); for (var t in this) this.hasOwnProperty(t) && (e[t] = this[t]); return e }, getRect: function(e) { return void 0 === e ? e = new W.Rectangle(this.x,this.y,this.width,this.height) : e.setTo(this.x, this.y, this.width, this.height), e } }, W.Frame.prototype.constructor = W.Frame, W.FrameData = function() { this._frames = [], this._frameNames = [] } , W.FrameData.prototype = { addFrame: function(e) { return e.index = this._frames.length, this._frames.push(e), "" !== e.name && (this._frameNames[e.name] = e.index), e }, getFrame: function(e) { return e >= this._frames.length && (e = 0), this._frames[e] }, getFrameByName: function(e) { return "number" == typeof this._frameNames[e] ? this._frames[this._frameNames[e]] : null }, checkFrameName: function(e) { return null != this._frameNames[e] }, clone: function() { for (var e = new W.FrameData, t = 0; t < this._frames.length; t++) e._frames.push(this._frames[t].clone()); for (var i in this._frameNames) this._frameNames.hasOwnProperty(i) && e._frameNames.push(this._frameNames[i]); return e }, getFrameRange: function(e, t, i) { void 0 === i && (i = []); for (var r = e; r <= t; r++) i.push(this._frames[r]); return i }, getFrames: function(e, t, i) { if (void 0 === t && (t = !0), void 0 === i && (i = []), void 0 === e || 0 === e.length) for (var r = 0; r < this._frames.length; r++) i.push(this._frames[r]); else for (r = 0; r < e.length; r++) t ? i.push(this.getFrame(e[r])) : i.push(this.getFrameByName(e[r])); return i }, getFrameIndexes: function(e, t, i) { if (void 0 === t && (t = !0), void 0 === i && (i = []), void 0 === e || 0 === e.length) for (var r = 0; r < this._frames.length; r++) i.push(this._frames[r].index); else for (r = 0; r < e.length; r++) t && this._frames[e[r]] ? i.push(this._frames[e[r]].index) : this.getFrameByName(e[r]) && i.push(this.getFrameByName(e[r]).index); return i }, destroy: function() { this._frames = null, this._frameNames = null } }, W.FrameData.prototype.constructor = W.FrameData, Object.defineProperty(W.FrameData.prototype, "total", { get: function() { return this._frames.length } }), W.AnimationParser = { spriteSheet: function(e, t, i, r, o, s, a) { var n = t; if ("string" == typeof t && (n = e.cache.getImage(t)), null === n) return null; var h = n.width , c = n.height; i <= 0 && (i = Math.floor(-h / Math.min(-1, i))), r <= 0 && (r = Math.floor(-c / Math.min(-1, r))); var l = Math.floor((h - s) / (i + a)) * Math.floor((c - s) / (r + a)); if (-1 !== o && (l = o), 0 === h || 0 === c || h < i || c < r || 0 === l) return null; for (var m = new W.FrameData, u = s, d = s, p = 0; p < l; p++) m.addFrame(new W.Frame(p,u,d,i,r,"")), h < (u += i + a) + i && (u = s, d += r + a); return m }, JSONData: function(e, t) { if (t.frames) { for (var i, r = new W.FrameData, o = t.frames, s = 0; s < o.length; s++) i = r.addFrame(new W.Frame(s,o[s].frame.x,o[s].frame.y,o[s].frame.w,o[s].frame.h,o[s].filename)), o[s].trimmed && i.setTrim(o[s].trimmed, o[s].sourceSize.w, o[s].sourceSize.h, o[s].spriteSourceSize.x, o[s].spriteSourceSize.y, o[s].spriteSourceSize.w, o[s].spriteSourceSize.h); return r } }, JSONDataPyxel: function(e, t) { if (["layers", "tilewidth", "tileheight", "tileswide", "tileshigh"].forEach(function(e) { t[e] }), 1 === t.layers.length) { for (var i = new W.FrameData, r = t.tileheight, o = t.tilewidth, s = t.layers[0].tiles, a = 0; a < s.length; a++) i.addFrame(new W.Frame(a,s[a].x,s[a].y,o,r,"frame_" + a)).setTrim(!1); return i } }, JSONDataHash: function(e, t) { if (t.frames) { var i, r = new W.FrameData, o = t.frames, s = 0; for (var a in o) i = r.addFrame(new W.Frame(s,o[a].frame.x,o[a].frame.y,o[a].frame.w,o[a].frame.h,a)), o[a].trimmed && i.setTrim(o[a].trimmed, o[a].sourceSize.w, o[a].sourceSize.h, o[a].spriteSourceSize.x, o[a].spriteSourceSize.y, o[a].spriteSourceSize.w, o[a].spriteSourceSize.h), s++; return r } }, XMLData: function(e, t) { if (t.getElementsByTagName("TextureAtlas")) { for (var i, r, o, s, a, n, h, c, l, m, u, d = new W.FrameData, p = t.getElementsByTagName("SubTexture"), f = 0; f < p.length; f++) r = (o = p[f].attributes).name.value, s = parseInt(o.x.value, 10), a = parseInt(o.y.value, 10), n = parseInt(o.width.value, 10), h = parseInt(o.height.value, 10), l = c = null, o.frameX && (c = Math.abs(parseInt(o.frameX.value, 10)), l = Math.abs(parseInt(o.frameY.value, 10)), m = parseInt(o.frameWidth.value, 10), u = parseInt(o.frameHeight.value, 10)), i = d.addFrame(new W.Frame(f,s,a,n,h,r)), null === c && null === l || i.setTrim(!0, n, h, c, l, m, u); return d } } }, W.Cache = function(e) { this.game = e, this.autoResolveURL = !1, this._cache = { canvas: {}, image: {}, texture: {}, sound: {}, video: {}, text: {}, json: {}, xml: {}, physics: {}, tilemap: {}, binary: {}, bitmapData: {}, bitmapFont: {}, shader: {}, renderTexture: {} }, this._urlMap = {}, this._urlResolver = new Image, this._urlTemp = null, this.onSoundUnlock = new W.Signal, this._cacheMap = [], this._cacheMap[W.Cache.CANVAS] = this._cache.canvas, this._cacheMap[W.Cache.IMAGE] = this._cache.image, this._cacheMap[W.Cache.TEXTURE] = this._cache.texture, this._cacheMap[W.Cache.SOUND] = this._cache.sound, this._cacheMap[W.Cache.TEXT] = this._cache.text, this._cacheMap[W.Cache.PHYSICS] = this._cache.physics, this._cacheMap[W.Cache.TILEMAP] = this._cache.tilemap, this._cacheMap[W.Cache.BINARY] = this._cache.binary, this._cacheMap[W.Cache.BITMAPDATA] = this._cache.bitmapData, this._cacheMap[W.Cache.BITMAPFONT] = this._cache.bitmapFont, this._cacheMap[W.Cache.JSON] = this._cache.json, this._cacheMap[W.Cache.XML] = this._cache.xml, this._cacheMap[W.Cache.VIDEO] = this._cache.video, this._cacheMap[W.Cache.SHADER] = this._cache.shader, this._cacheMap[W.Cache.RENDER_TEXTURE] = this._cache.renderTexture, this.addDefaultImage(), this.addMissingImage() } , W.Cache.CANVAS = 1, W.Cache.IMAGE = 2, W.Cache.TEXTURE = 3, W.Cache.SOUND = 4, W.Cache.TEXT = 5, W.Cache.PHYSICS = 6, W.Cache.TILEMAP = 7, W.Cache.BINARY = 8, W.Cache.BITMAPDATA = 9, W.Cache.BITMAPFONT = 10, W.Cache.JSON = 11, W.Cache.XML = 12, W.Cache.VIDEO = 13, W.Cache.SHADER = 14, W.Cache.RENDER_TEXTURE = 15, W.Cache.DEFAULT = null, W.Cache.MISSING = null, W.Cache.prototype = { addCanvas: function(e, t, i) { void 0 === i && (i = t.getContext("2d")), this._cache.canvas[e] = { canvas: t, context: i } }, addImage: function(e, t, i) { this.checkImageKey(e) && this.removeImage(e); var r = { key: e, url: t, data: i, base: new PIXI.BaseTexture(i), frame: new W.Frame(0,0,0,i.width,i.height,e), frameData: new W.FrameData }; return r.frameData.addFrame(new W.Frame(0,0,0,i.width,i.height,t)), this._cache.image[e] = r, this._resolveURL(t, r), "__default" === e ? W.Cache.DEFAULT = new PIXI.Texture(r.base) : "__missing" === e && (W.Cache.MISSING = new PIXI.Texture(r.base)), r }, addDefaultImage: function() { var e = new Image; e.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg=="; var t = this.addImage("__default", null, e); t.base.skipRender = !0, W.Cache.DEFAULT = new PIXI.Texture(t.base) }, addMissingImage: function() { var e = new Image; e.src = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg=="; var t = this.addImage("__missing", null, e); W.Cache.MISSING = new PIXI.Texture(t.base) }, addSound: function(e, t, i, r, o) { void 0 === r && (o = !(r = !0)), void 0 === o && (o = !(r = !1)); var s = !1; o && (s = !0), this._cache.sound[e] = { url: t, data: i, isDecoding: !1, decoded: s, webAudio: r, audioTag: o, locked: this.game.sound.touchLocked }, this._resolveURL(t, this._cache.sound[e]) }, addText: function(e, t, i) { this._cache.text[e] = { url: t, data: i }, this._resolveURL(t, this._cache.text[e]) }, addPhysicsData: function(e, t, i, r) { this._cache.physics[e] = { url: t, data: i, format: r }, this._resolveURL(t, this._cache.physics[e]) }, addTilemap: function(e, t, i, r) { this._cache.tilemap[e] = { url: t, data: i, format: r }, this._resolveURL(t, this._cache.tilemap[e]) }, addBinary: function(e, t) { this._cache.binary[e] = t }, addBitmapData: function(e, t, i) { return t.key = e, void 0 === i && (i = new W.FrameData).addFrame(t.textureFrame), this._cache.bitmapData[e] = { data: t, frameData: i }, t }, addBitmapFont: function(e, t, i, r, o, s, a) { var n = { url: t, data: i, font: null, base: new PIXI.BaseTexture(i) }; void 0 === s && (s = 0), void 0 === a && (a = 0), n.font = "json" === o ? W.LoaderParser.jsonBitmapFont(r, n.base, s, a) : W.LoaderParser.xmlBitmapFont(r, n.base, s, a), this._cache.bitmapFont[e] = n, this._resolveURL(t, n) }, addJSON: function(e, t, i) { this._cache.json[e] = { url: t, data: i }, this._resolveURL(t, this._cache.json[e]) }, addXML: function(e, t, i) { this._cache.xml[e] = { url: t, data: i }, this._resolveURL(t, this._cache.xml[e]) }, addVideo: function(e, t, i, r) { this._cache.video[e] = { url: t, data: i, isBlob: r, locked: !0 }, this._resolveURL(t, this._cache.video[e]) }, addShader: function(e, t, i) { this._cache.shader[e] = { url: t, data: i }, this._resolveURL(t, this._cache.shader[e]) }, addRenderTexture: function(e, t) { this._cache.renderTexture[e] = { texture: t, frame: new W.Frame(0,0,0,t.width,t.height,"","") } }, addSpriteSheet: function(e, t, i, r, o, s, a, n) { void 0 === s && (s = -1), void 0 === a && (a = 0), void 0 === n && (n = 0); var h = { key: e, url: t, data: i, frameWidth: r, frameHeight: o, margin: a, spacing: n, base: new PIXI.BaseTexture(i), frameData: W.AnimationParser.spriteSheet(this.game, i, r, o, s, a, n) }; this._cache.image[e] = h, this._resolveURL(t, h) }, addTextureAtlas: function(e, t, i, r, o) { var s = { key: e, url: t, data: i, base: new PIXI.BaseTexture(i) }; o === W.Loader.TEXTURE_ATLAS_XML_STARLING ? s.frameData = W.AnimationParser.XMLData(this.game, r, e) : o === W.Loader.TEXTURE_ATLAS_JSON_PYXEL ? s.frameData = W.AnimationParser.JSONDataPyxel(this.game, r, e) : Array.isArray(r.frames) ? s.frameData = W.AnimationParser.JSONData(this.game, r, e) : s.frameData = W.AnimationParser.JSONDataHash(this.game, r, e), this._cache.image[e] = s, this._resolveURL(t, s) }, reloadSound: function(e) { var t = this , i = this.getSound(e); i && (i.data.src = i.url, i.data.addEventListener("canplaythrough", function() { return t.reloadSoundComplete(e) }, !1), i.data.load()) }, reloadSoundComplete: function(e) { var t = this.getSound(e); t && (t.locked = !1, this.onSoundUnlock.dispatch(e)) }, updateSound: function(e, t, i) { var r = this.getSound(e); r && (r[t] = i) }, decodedSound: function(e, t) { var i = this.getSound(e); i.data = t, i.decoded = !0, i.isDecoding = !1 }, isSoundDecoded: function(e) { var t = this.getItem(e, W.Cache.SOUND, "isSoundDecoded"); if (t) return t.decoded }, isSoundReady: function(e) { var t = this.getItem(e, W.Cache.SOUND, "isSoundDecoded"); if (t) return t.decoded && !this.game.sound.touchLocked }, checkKey: function(e, t) { return !!this._cacheMap[e][t] }, checkURL: function(e) { return !!this._urlMap[this._resolveURL(e)] }, checkCanvasKey: function(e) { return this.checkKey(W.Cache.CANVAS, e) }, checkImageKey: function(e) { return this.checkKey(W.Cache.IMAGE, e) }, checkTextureKey: function(e) { return this.checkKey(W.Cache.TEXTURE, e) }, checkSoundKey: function(e) { return this.checkKey(W.Cache.SOUND, e) }, checkTextKey: function(e) { return this.checkKey(W.Cache.TEXT, e) }, checkPhysicsKey: function(e) { return this.checkKey(W.Cache.PHYSICS, e) }, checkTilemapKey: function(e) { return this.checkKey(W.Cache.TILEMAP, e) }, checkBinaryKey: function(e) { return this.checkKey(W.Cache.BINARY, e) }, checkBitmapDataKey: function(e) { return this.checkKey(W.Cache.BITMAPDATA, e) }, checkBitmapFontKey: function(e) { return this.checkKey(W.Cache.BITMAPFONT, e) }, checkJSONKey: function(e) { return this.checkKey(W.Cache.JSON, e) }, checkXMLKey: function(e) { return this.checkKey(W.Cache.XML, e) }, checkVideoKey: function(e) { return this.checkKey(W.Cache.VIDEO, e) }, checkShaderKey: function(e) { return this.checkKey(W.Cache.SHADER, e) }, checkRenderTextureKey: function(e) { return this.checkKey(W.Cache.RENDER_TEXTURE, e) }, getItem: function(e, t, i, r) { return this.checkKey(t, e) ? void 0 === r ? this._cacheMap[t][e] : this._cacheMap[t][e][r] : null }, getCanvas: function(e) { return this.getItem(e, W.Cache.CANVAS, "getCanvas", "canvas") }, getImage: function(e, t) { null == e && (e = "__default"), void 0 === t && (t = !1); var i = this.getItem(e, W.Cache.IMAGE, "getImage"); return null === i && (i = this.getItem("__missing", W.Cache.IMAGE, "getImage")), t ? i : i.data }, getTextureFrame: function(e) { return this.getItem(e, W.Cache.TEXTURE, "getTextureFrame", "frame") }, getSound: function(e) { return this.getItem(e, W.Cache.SOUND, "getSound") }, getSoundData: function(e) { return this.getItem(e, W.Cache.SOUND, "getSoundData", "data") }, getText: function(e) { return this.getItem(e, W.Cache.TEXT, "getText", "data") }, getPhysicsData: function(e, t, i) { var r = this.getItem(e, W.Cache.PHYSICS, "getPhysicsData", "data"); if (null === r || null == t) return r; if (r[t]) { var o = r[t]; if (!o || !i) return o; for (var s in o) if ((s = o[s]).fixtureKey === i) return s } return null }, getTilemapData: function(e) { return this.getItem(e, W.Cache.TILEMAP, "getTilemapData") }, getBinary: function(e) { return this.getItem(e, W.Cache.BINARY, "getBinary") }, getBitmapData: function(e) { return this.getItem(e, W.Cache.BITMAPDATA, "getBitmapData", "data") }, getBitmapFont: function(e) { return this.getItem(e, W.Cache.BITMAPFONT, "getBitmapFont") }, getJSON: function(e, t) { var i = this.getItem(e, W.Cache.JSON, "getJSON", "data"); return i ? t ? W.Utils.extend(!0, Array.isArray(i) ? [] : {}, i) : i : null }, getXML: function(e) { return this.getItem(e, W.Cache.XML, "getXML", "data") }, getVideo: function(e) { return this.getItem(e, W.Cache.VIDEO, "getVideo") }, getShader: function(e) { return this.getItem(e, W.Cache.SHADER, "getShader", "data") }, getRenderTexture: function(e) { return this.getItem(e, W.Cache.RENDER_TEXTURE, "getRenderTexture") }, getBaseTexture: function(e, t) { return void 0 === t && (t = W.Cache.IMAGE), this.getItem(e, t, "getBaseTexture", "base") }, getFrame: function(e, t) { return void 0 === t && (t = W.Cache.IMAGE), this.getItem(e, t, "getFrame", "frame") }, getFrameCount: function(e, t) { var i = this.getFrameData(e, t); return i ? i.total : 0 }, getFrameData: function(e, t) { return void 0 === t && (t = W.Cache.IMAGE), this.getItem(e, t, "getFrameData", "frameData") }, hasFrameData: function(e, t) { return void 0 === t && (t = W.Cache.IMAGE), null !== this.getItem(e, t, "", "frameData") }, updateFrameData: function(e, t, i) { void 0 === i && (i = W.Cache.IMAGE), this._cacheMap[i][e] && (this._cacheMap[i][e].frameData = t) }, getFrameByIndex: function(e, t, i) { var r = this.getFrameData(e, i); return r ? r.getFrame(t) : null }, getFrameByName: function(e, t, i) { var r = this.getFrameData(e, i); return r ? r.getFrameByName(t) : null }, getURL: function(e) { return (e = this._resolveURL(e)) ? this._urlMap[e] : null }, getKeys: function(e) { void 0 === e && (e = W.Cache.IMAGE); var t = []; if (this._cacheMap[e]) for (var i in this._cacheMap[e]) "__default" !== i && "__missing" !== i && t.push(i); return t }, removeCanvas: function(e) { delete this._cache.canvas[e] }, removeImage: function(e, t) { void 0 === t && (t = !0); var i = this.getImage(e, !0); t && i.base && i.base.destroy(), delete this._cache.image[e] }, removeSound: function(e) { delete this._cache.sound[e] }, removeText: function(e) { delete this._cache.text[e] }, removePhysics: function(e) { delete this._cache.physics[e] }, removeTilemap: function(e) { delete this._cache.tilemap[e] }, removeBinary: function(e) { delete this._cache.binary[e] }, removeBitmapData: function(e) { delete this._cache.bitmapData[e] }, removeBitmapFont: function(e) { delete this._cache.bitmapFont[e] }, removeJSON: function(e) { delete this._cache.json[e] }, removeXML: function(e) { delete this._cache.xml[e] }, removeVideo: function(e) { delete this._cache.video[e] }, removeShader: function(e) { delete this._cache.shader[e] }, removeRenderTexture: function(e) { delete this._cache.renderTexture[e] }, removeSpriteSheet: function(e) { delete this._cache.spriteSheet[e] }, removeTextureAtlas: function(e) { delete this._cache.atlas[e] }, clearGLTextures: function() { for (var e in this._cache.image) this._cache.image[e].base._glTextures = [] }, _resolveURL: function(e, t) { return this.autoResolveURL ? (this._urlResolver.src = this.game.load.baseURL + e, this._urlTemp = this._urlResolver.src, this._urlResolver.src = "", t && (this._urlMap[this._urlTemp] = t), this._urlTemp) : null }, destroy: function() { for (var e = 0; e < this._cacheMap.length; e++) { var t = this._cacheMap[e]; for (var i in t) "__default" !== i && "__missing" !== i && (t[i].destroy && t[i].destroy(), delete t[i]) } this._urlMap = null, this._urlResolver = null, this._urlTemp = null } }, W.Cache.prototype.constructor = W.Cache, W.Loader = function(e) { this.game = e, this.cache = e.cache, this.resetLocked = !1, this.isLoading = !1, this.hasLoaded = !1, this.preloadSprite = null, this.crossOrigin = !1, this.baseURL = "", this.path = "", this.headers = { requestedWith: !1, json: "application/json", xml: "application/xml" }, this.onLoadStart = new W.Signal, this.onLoadComplete = new W.Signal, this.onPackComplete = new W.Signal, this.onFileStart = new W.Signal, this.onFileComplete = new W.Signal, this.onFileError = new W.Signal, this.useXDomainRequest = !1, this._warnedAboutXDomainRequest = !1, this.enableParallel = !0, this.maxParallelDownloads = 4, this._withSyncPointDepth = 0, this._fileList = [], this._flightQueue = [], this._processingHead = 0, this._fileLoadStarted = !1, this._totalPackCount = 0, this._totalFileCount = 0, this._loadedPackCount = 0, this._loadedFileCount = 0 } , W.Loader.TEXTURE_ATLAS_JSON_ARRAY = 0, W.Loader.TEXTURE_ATLAS_JSON_HASH = 1, W.Loader.TEXTURE_ATLAS_XML_STARLING = 2, W.Loader.PHYSICS_LIME_CORONA_JSON = 3, W.Loader.PHYSICS_PHASER_JSON = 4, W.Loader.TEXTURE_ATLAS_JSON_PYXEL = 5, W.Loader.prototype = { setPreloadSprite: function(e, t) { t = t || 0, this.preloadSprite = { sprite: e, direction: t, width: e.width, height: e.height, rect: null }, this.preloadSprite.rect = 0 === t ? new W.Rectangle(0,0,1,e.height) : new W.Rectangle(0,0,e.width,1), e.crop(this.preloadSprite.rect), e.visible = !0 }, resize: function() { this.preloadSprite && this.preloadSprite.height !== this.preloadSprite.sprite.height && (this.preloadSprite.rect.height = this.preloadSprite.sprite.height) }, checkKeyExists: function(e, t) { return -1 < this.getAssetIndex(e, t) }, getAssetIndex: function(e, t) { for (var i = -1, r = 0; r < this._fileList.length; r++) { var o = this._fileList[r]; if (o.type === e && o.key === t && (i = r, !o.loaded && !o.loading)) break } return i }, getAsset: function(e, t) { var i = this.getAssetIndex(e, t); return -1 < i && { index: i, file: this._fileList[i] } }, reset: function(e, t) { void 0 === t && (t = !1), this.resetLocked || (e && (this.preloadSprite = null), this.isLoading = !1, this._processingHead = 0, this._fileList.length = 0, this._flightQueue.length = 0, this._fileLoadStarted = !1, this._totalFileCount = 0, this._totalPackCount = 0, this._loadedPackCount = 0, this._loadedFileCount = 0, t && (this.onLoadStart.removeAll(), this.onLoadComplete.removeAll(), this.onPackComplete.removeAll(), this.onFileStart.removeAll(), this.onFileComplete.removeAll(), this.onFileError.removeAll())) }, addToFileList: function(e, t, i, r, o, s) { if (void 0 === o && (o = !1), void 0 === t || "" === t) return this; if (null == i) { if (!s) return this; i = t + s } var a = { type: e, key: t, path: this.path, url: i, syncPoint: 0 < this._withSyncPointDepth, data: null, loading: !1, loaded: !1, error: !1 }; if (r) for (var n in r) a[n] = r[n]; var h = this.getAssetIndex(e, t); if (o && -1 < h) { var c = this._fileList[h]; c.loading || c.loaded ? (this._fileList.push(a), this._totalFileCount++) : this._fileList[h] = a } else -1 === h && (this._fileList.push(a), this._totalFileCount++); return this }, replaceInFileList: function(e, t, i, r) { return this.addToFileList(e, t, i, r, !0) }, pack: function(e, t, i, r) { if (void 0 === t && (t = null), void 0 === i && (i = null), void 0 === r && (r = null), !t && !i) return this; var o = { type: "packfile", key: e, url: t, path: this.path, syncPoint: !0, data: null, loading: !1, loaded: !1, error: !1, callbackContext: r }; i && ("string" == typeof i && (i = JSON.parse(i)), o.data = i || {}, o.loaded = !0); for (var s = 0; s < this._fileList.length + 1; s++) { var a = this._fileList[s]; if (!a || !a.loaded && !a.loading && "packfile" !== a.type) { this._fileList.splice(s, 0, o), this._totalPackCount++; break } } return this }, image: function(e, t, i) { return this.addToFileList("image", e, t, void 0, i, ".png") }, images: function(e, t) { if (Array.isArray(t)) for (var i = 0; i < e.length; i++) this.image(e[i], t[i]); else for (i = 0; i < e.length; i++) this.image(e[i]); return this }, text: function(e, t, i) { return this.addToFileList("text", e, t, void 0, i, ".txt") }, json: function(e, t, i) { return this.addToFileList("json", e, t, void 0, i, ".json") }, shader: function(e, t, i) { return this.addToFileList("shader", e, t, void 0, i, ".frag") }, xml: function(e, t, i) { return this.addToFileList("xml", e, t, void 0, i, ".xml") }, script: function(e, t, i, r) { return void 0 === i && (i = !1), !1 !== i && void 0 === r && (r = this), this.addToFileList("script", e, t, { syncPoint: !0, callback: i, callbackContext: r }, !1, ".js") }, binary: function(e, t, i, r) { return void 0 === i && (i = !1), !1 !== i && void 0 === r && (r = i), this.addToFileList("binary", e, t, { callback: i, callbackContext: r }, !1, ".bin") }, spritesheet: function(e, t, i, r, o, s, a) { return void 0 === o && (o = -1), void 0 === s && (s = 0), void 0 === a && (a = 0), this.addToFileList("spritesheet", e, t, { frameWidth: i, frameHeight: r, frameMax: o, margin: s, spacing: a }, !1, ".png") }, audio: function(e, t, i) { return this.game.sound.noAudio ? this : (void 0 === i && (i = !0), "string" == typeof t && (t = [t]), this.addToFileList("audio", e, t, { buffer: null, autoDecode: i })) }, audioSprite: function(e, t, i, r, o) { return this.game.sound.noAudio || (void 0 === i && (i = null), void 0 === r && (r = null), void 0 === o && (o = !0), this.audio(e, t, o), i ? this.json(e + "-audioatlas", i) : r && ("string" == typeof r && (r = JSON.parse(r)), this.cache.addJSON(e + "-audioatlas", "", r))), this }, audiosprite: function(e, t, i, r, o) { return this.audioSprite(e, t, i, r, o) }, video: function(e, t, i, r) { return void 0 === i && (i = this.game.device.firefox ? "loadeddata" : "canplaythrough"), void 0 === r && (r = !1), "string" == typeof t && (t = [t]), this.addToFileList("video", e, t, { buffer: null, asBlob: r, loadEvent: i }) }, tilemap: function(e, t, i, r) { if (void 0 === t && (t = null), void 0 === i && (i = null), void 0 === r && (r = W.Tilemap.CSV), t || i || (t = r === W.Tilemap.CSV ? e + ".csv" : e + ".json"), i) { switch (r) { case W.Tilemap.CSV: break; case W.Tilemap.TILED_JSON: "string" == typeof i && (i = JSON.parse(i)) } this.cache.addTilemap(e, null, i, r) } else this.addToFileList("tilemap", e, t, { format: r }); return this }, physics: function(e, t, i, r) { return void 0 === t && (t = null), void 0 === i && (i = null), void 0 === r && (r = W.Physics.LIME_CORONA_JSON), t || i || (t = e + ".json"), i ? ("string" == typeof i && (i = JSON.parse(i)), this.cache.addPhysicsData(e, null, i, r)) : this.addToFileList("physics", e, t, { format: r }), this }, bitmapFont: function(e, t, i, r, o, s) { if (null == t && (t = e + ".png"), void 0 === i && (i = null), void 0 === r && (r = null), null === i && null === r && (i = e + ".xml"), void 0 === o && (o = 0), void 0 === s && (s = 0), i) this.addToFileList("bitmapfont", e, t, { atlasURL: i, xSpacing: o, ySpacing: s }); else if ("string" == typeof r) { var a, n; try { a = JSON.parse(r) } catch (e) { n = this.parseXml(r) } if (!n && !a) throw new Error("Phaser.Loader. Invalid Bitmap Font atlas given"); this.addToFileList("bitmapfont", e, t, { atlasURL: null, atlasData: a || n, atlasType: a ? "json" : "xml", xSpacing: o, ySpacing: s }) } return this }, atlasJSONArray: function(e, t, i, r) { return this.atlas(e, t, i, r, W.Loader.TEXTURE_ATLAS_JSON_ARRAY) }, atlasJSONHash: function(e, t, i, r) { return this.atlas(e, t, i, r, W.Loader.TEXTURE_ATLAS_JSON_HASH) }, atlasXML: function(e, t, i, r) { return void 0 === i && (i = null), void 0 === r && (r = null), i || r || (i = e + ".xml"), this.atlas(e, t, i, r, W.Loader.TEXTURE_ATLAS_XML_STARLING) }, atlas: function(e, t, i, r, o) { if (null == t && (t = e + ".png"), void 0 === i && (i = null), void 0 === r && (r = null), void 0 === o && (o = W.Loader.TEXTURE_ATLAS_JSON_ARRAY), i || r || (i = o === W.Loader.TEXTURE_ATLAS_XML_STARLING ? e + ".xml" : e + ".json"), i) this.addToFileList("textureatlas", e, t, { atlasURL: i, format: o }); else { switch (o) { case W.Loader.TEXTURE_ATLAS_JSON_ARRAY: "string" == typeof r && (r = JSON.parse(r)); break; case W.Loader.TEXTURE_ATLAS_XML_STARLING: if ("string" == typeof r) { var s = this.parseXml(r); if (!s) throw new Error("Phaser.Loader. Invalid Texture Atlas XML given"); r = s } } this.addToFileList("textureatlas", e, t, { atlasURL: null, atlasData: r, format: o }) } return this }, withSyncPoint: function(e, t) { this._withSyncPointDepth++; try { e.call(t || this, this) } finally { this._withSyncPointDepth-- } return this }, addSyncPoint: function(e, t) { var i = this.getAsset(e, t); return i && (i.file.syncPoint = !0), this }, removeFile: function(e, t) { var i = this.getAsset(e, t); i && (i.loaded || i.loading || this._fileList.splice(i.index, 1)) }, removeAll: function() { this._fileList.length = 0, this._flightQueue.length = 0 }, start: function() { this.isLoading || (this.hasLoaded = !1, this.isLoading = !0, this.updateProgress(), this.processLoadQueue()) }, processLoadQueue: function() { if (this.isLoading) { for (var e = 0; e < this._flightQueue.length; e++) { ((r = this._flightQueue[e]).loaded || r.error) && (this._flightQueue.splice(e, 1), e--, r.loading = !1, r.requestUrl = null, r.requestObject = null, r.error && this.onFileError.dispatch(r.key, r), "packfile" !== r.type ? (this._loadedFileCount++, this.onFileComplete.dispatch(this.progress, r.key, !r.error, this._loadedFileCount, this._totalFileCount)) : "packfile" === r.type && r.error && (this._loadedPackCount++, this.onPackComplete.dispatch(r.key, !r.error, this._loadedPackCount, this._totalPackCount))) } var t = !1 , i = this.enableParallel ? W.Math.clamp(this.maxParallelDownloads, 1, 12) : 1; for (e = this._processingHead; e < this._fileList.length; e++) { var r; if ("packfile" === (r = this._fileList[e]).type && !r.error && r.loaded && e === this._processingHead && (this.processPack(r), this._loadedPackCount++, this.onPackComplete.dispatch(r.key, !r.error, this._loadedPackCount, this._totalPackCount)), r.loaded || r.error ? e === this._processingHead && (this._processingHead = e + 1) : !r.loading && this._flightQueue.length < i && ("packfile" !== r.type || r.data ? t || (this._fileLoadStarted || (this._fileLoadStarted = !0, this.onLoadStart.dispatch()), this._flightQueue.push(r), r.loading = !0, this.onFileStart.dispatch(this.progress, r.key, r.url), this.loadFile(r)) : (this._flightQueue.push(r), r.loading = !0, this.loadFile(r))), !r.loaded && r.syncPoint && (t = !0), this._flightQueue.length >= i || t && this._loadedPackCount === this._totalPackCount) break } if (this.updateProgress(), this._processingHead >= this._fileList.length) this.finishedLoading(); else if (!this._flightQueue.length) { var o = this; setTimeout(function() { o.finishedLoading(!0) }, 2e3) } } else this.finishedLoading(!0) }, finishedLoading: function(e) { this.hasLoaded || (this.hasLoaded = !0, this.isLoading = !1, e || this._fileLoadStarted || (this._fileLoadStarted = !0, this.onLoadStart.dispatch()), this.onLoadComplete.dispatch(), this.game.state.loadComplete(), this.reset()) }, asyncComplete: function(e, t) { void 0 === t && (t = ""), e.loaded = !0, e.error = !!t, t && (e.errorMessage = t), this.processLoadQueue() }, processPack: function(e) { var t = e.data[e.key]; if (t) for (var i = 0; i < t.length; i++) { var r = t[i]; switch (r.type) { case "image": this.image(r.key, r.url, r.overwrite); break; case "text": this.text(r.key, r.url, r.overwrite); break; case "json": this.json(r.key, r.url, r.overwrite); break; case "xml": this.xml(r.key, r.url, r.overwrite); break; case "script": this.script(r.key, r.url, r.callback, e.callbackContext || this); break; case "binary": this.binary(r.key, r.url, r.callback, e.callbackContext || this); break; case "spritesheet": this.spritesheet(r.key, r.url, r.frameWidth, r.frameHeight, r.frameMax, r.margin, r.spacing); break; case "video": this.video(r.key, r.urls); break; case "audio": this.audio(r.key, r.urls, r.autoDecode); break; case "audiosprite": this.audiosprite(r.key, r.urls, r.jsonURL, r.jsonData, r.autoDecode); break; case "tilemap": this.tilemap(r.key, r.url, r.data, W.Tilemap[r.format]); break; case "physics": this.physics(r.key, r.url, r.data, W.Loader[r.format]); break; case "bitmapFont": this.bitmapFont(r.key, r.textureURL, r.atlasURL, r.atlasData, r.xSpacing, r.ySpacing); break; case "atlasJSONArray": this.atlasJSONArray(r.key, r.textureURL, r.atlasURL, r.atlasData); break; case "atlasJSONHash": this.atlasJSONHash(r.key, r.textureURL, r.atlasURL, r.atlasData); break; case "atlasXML": this.atlasXML(r.key, r.textureURL, r.atlasURL, r.atlasData); break; case "atlas": this.atlas(r.key, r.textureURL, r.atlasURL, r.atlasData, W.Loader[r.format]); break; case "shader": this.shader(r.key, r.url, r.overwrite) } } }, transformUrl: function(e, t) { return !!e && (e.match(/^(?:blob:|data:|http:\/\/|https:\/\/|\/\/)/) ? e : this.baseURL + t.path + e) }, loadFile: function(e) { if (typeof e.url === 'string' || e.url instanceof String) { e.url= e.url.replace("https://cdn.fbrq.io/@orange-games/splash/assets/spine/", "kizi/"); e.url= e.url.replace("https://cdn.fbrq.io/@azerion/splash/assets/images/", "kizi/"); console.log("--fx--", e.url); } switch (e.type) { case "packfile": this.xhrLoad(e, this.transformUrl(e.url, e), "text", this.fileComplete); break; case "image": case "spritesheet": case "textureatlas": case "bitmapfont": this.loadImageTag(e); break; case "audio": e.url = this.getAudioURL(e.url), e.url ? this.game.sound.usingWebAudio ? this.xhrLoad(e, this.transformUrl(e.url, e), "arraybuffer", this.fileComplete) : this.game.sound.usingAudioTag && this.loadAudioTag(e) : this.fileError(e, null, "No supported audio URL specified or device does not have audio playback support"); break; case "video": e.url = this.getVideoURL(e.url), e.url ? e.asBlob ? this.xhrLoad(e, this.transformUrl(e.url, e), "blob", this.fileComplete) : this.loadVideoTag(e) : this.fileError(e, null, "No supported video URL specified or device does not have video playback support"); break; case "json": this.xhrLoad(e, this.transformUrl(e.url, e), "text", this.jsonLoadComplete); break; case "xml": this.xhrLoad(e, this.transformUrl(e.url, e), "text", this.xmlLoadComplete); break; case "tilemap": e.format === W.Tilemap.TILED_JSON ? this.xhrLoad(e, this.transformUrl(e.url, e), "text", this.jsonLoadComplete) : e.format === W.Tilemap.CSV ? this.xhrLoad(e, this.transformUrl(e.url, e), "text", this.csvLoadComplete) : this.asyncComplete(e, "invalid Tilemap format: " + e.format); break; case "text": case "script": case "shader": case "physics": this.xhrLoad(e, this.transformUrl(e.url, e), "text", this.fileComplete); break; case "binary": this.xhrLoad(e, this.transformUrl(e.url, e), "arraybuffer", this.fileComplete) } }, loadImageTag: function(e) { var t = this; e.data = new Image, e.data.name = e.key, this.crossOrigin && (e.data.crossOrigin = this.crossOrigin), e.data.onload = function() { e.data.onload && (e.data.onload = null, e.data.onerror = null, t.fileComplete(e)) } , e.data.onerror = function() { e.data.onload && (e.data.onload = null, e.data.onerror = null, t.fileError(e)) } , e.data.src = this.transformUrl(e.url, e), e.data.complete && e.data.width && e.data.height && (e.data.onload = null, e.data.onerror = null, this.fileComplete(e)) }, loadVideoTag: function(e) { var t = this; e.data = document.createElement("video"), e.data.name = e.key, e.data.controls = !1, e.data.autoplay = !1; var i = function() { e.data.removeEventListener(e.loadEvent, i, !1), e.data.onerror = null, e.data.canplay = !0, W.GAMES[t.game.id].load.fileComplete(e) }; e.data.onerror = function() { e.data.removeEventListener(e.loadEvent, i, !1), e.data.onerror = null, e.data.canplay = !1, t.fileError(e) } , e.data.addEventListener(e.loadEvent, i, !1), e.data.src = this.transformUrl(e.url, e), e.data.load() }, loadAudioTag: function(e) { var t = this; if (this.game.sound.touchLocked) e.data = new Audio, e.data.name = e.key, e.data.preload = "auto", e.data.src = this.transformUrl(e.url, e), this.fileComplete(e); else { e.data = new Audio, e.data.name = e.key; var i = function() { e.data.removeEventListener("canplaythrough", i, !1), e.data.onerror = null, t.fileComplete(e) }; e.data.onerror = function() { e.data.removeEventListener("canplaythrough", i, !1), e.data.onerror = null, t.fileError(e) } , e.data.preload = "auto", e.data.src = this.transformUrl(e.url, e), e.data.addEventListener("canplaythrough", i, !1), e.data.load() } }, xhrLoad: function(t, e, i, r, o) { if (this.useXDomainRequest && window.XDomainRequest) this.xhrLoadWithXDR(t, e, i, r, o); else { var s = new XMLHttpRequest; console.log("--fx--open--get--", e), s.open("GET", e, !0), s.responseType = i, !1 !== this.headers.requestedWith && s.setRequestHeader("X-Requested-With", this.headers.requestedWith), this.headers[t.type] && s.setRequestHeader("Accept", this.headers[t.type]), o = o || this.fileError; var a = this; s.onload = function() { try { return 4 === s.readyState && 400 <= s.status && s.status <= 599 ? o.call(a, t, s) : r.call(a, t, s) } catch (e) { a.hasLoaded ? window.console : a.asyncComplete(t, e.message || "Exception") } } , s.onerror = function() { try { return o.call(a, t, s) } catch (e) { a.hasLoaded ? window.console : a.asyncComplete(t, e.message || "Exception") } } , t.requestObject = s, t.requestUrl = e, s.send() } }, xhrLoadWithXDR: function(t, e, i, r, o) { this._warnedAboutXDomainRequest || this.game.device.ie && !(10 <= this.game.device.ieVersion) || (this._warnedAboutXDomainRequest = !0); var s = new window.XDomainRequest; console.log("--fx--open--xhrLoadWithXDR--", e), s.open("GET", e, !0), s.responseType = i, s.timeout = 3e3, o = o || this.fileError; var a = this; s.onerror = function() { try { return o.call(a, t, s) } catch (e) { a.asyncComplete(t, e.message || "Exception") } } , s.ontimeout = function() { try { return o.call(a, t, s) } catch (e) { a.asyncComplete(t, e.message || "Exception") } } , s.onprogress = function() {} , s.onload = function() { try { return 4 === s.readyState && 400 <= s.status && s.status <= 599 ? o.call(a, t, s) : r.call(a, t, s) } catch (e) { a.asyncComplete(t, e.message || "Exception") } } , t.requestObject = s, t.requestUrl = e, setTimeout(function() { s.send() }, 0) }, getVideoURL: function(e) { for (var t = 0; t < e.length; t++) { var i, r = e[t]; if (r.uri) { if (i = r.type, r = r.uri, this.game.device.canPlayVideo(i)) return r } else { if (0 === r.indexOf("blob:") || 0 === r.indexOf("data:")) return r; if (0 <= r.indexOf("?") && (r = r.substr(0, r.indexOf("?"))), i = r.substr((Math.max(0, r.lastIndexOf(".")) || 1 / 0) + 1).toLowerCase(), this.game.device.canPlayVideo(i)) return e[t] } } return null }, getAudioURL: function(e) { if (this.game.sound.noAudio) return null; for (var t = 0; t < e.length; t++) { var i, r = e[t]; if (r.uri) { if (i = r.type, r = r.uri, this.game.device.canPlayAudio(i)) return r } else { if (0 === r.indexOf("blob:") || 0 === r.indexOf("data:")) return r; if (0 <= r.indexOf("?") && (r = r.substr(0, r.indexOf("?"))), i = r.substr((Math.max(0, r.lastIndexOf(".")) || 1 / 0) + 1).toLowerCase(), this.game.device.canPlayAudio(i)) return e[t] } } return null }, fileError: function(e, t, i) { var r = "error loading asset from URL " + (e.requestUrl || this.transformUrl(e.url, e)); !i && t && (i = t.status), i && (r = r + " (" + i + ")"), this.asyncComplete(e, r) }, fileComplete: function(t, e) { var i = !0; switch (t.type) { case "packfile": var r = JSON.parse(e.responseText); t.data = r || {}; break; case "image": this.cache.addImage(t.key, t.url, t.data); break; case "spritesheet": this.cache.addSpriteSheet(t.key, t.url, t.data, t.frameWidth, t.frameHeight, t.frameMax, t.margin, t.spacing); break; case "textureatlas": if (null == t.atlasURL) this.cache.addTextureAtlas(t.key, t.url, t.data, t.atlasData, t.format); else if (i = !1, t.format === W.Loader.TEXTURE_ATLAS_JSON_ARRAY || t.format === W.Loader.TEXTURE_ATLAS_JSON_HASH || t.format === W.Loader.TEXTURE_ATLAS_JSON_PYXEL) this.xhrLoad(t, this.transformUrl(t.atlasURL, t), "text", this.jsonLoadComplete); else { if (t.format !== W.Loader.TEXTURE_ATLAS_XML_STARLING) throw new Error("Phaser.Loader. Invalid Texture Atlas format: " + t.format); this.xhrLoad(t, this.transformUrl(t.atlasURL, t), "text", this.xmlLoadComplete) } break; case "bitmapfont": t.atlasURL ? (i = !1, this.xhrLoad(t, this.transformUrl(t.atlasURL, t), "text", function(e, t) { var i; try { i = JSON.parse(t.responseText) } catch (e) {} i ? (e.atlasType = "json", this.jsonLoadComplete(e, t)) : (e.atlasType = "xml", this.xmlLoadComplete(e, t)) })) : this.cache.addBitmapFont(t.key, t.url, t.data, t.atlasData, t.atlasType, t.xSpacing, t.ySpacing); break; case "video": if (t.asBlob) try { t.data = e.response } catch (e) { throw new Error("Phaser.Loader. Unable to parse video file as Blob: " + t.key) } this.cache.addVideo(t.key, t.url, t.data, t.asBlob); break; case "audio": this.game.sound.usingWebAudio ? (t.data = e.response, this.cache.addSound(t.key, t.url, t.data, !0, !1), t.autoDecode && this.game.sound.decode(t.key)) : this.cache.addSound(t.key, t.url, t.data, !1, !0); break; case "text": t.data = e.responseText, this.cache.addText(t.key, t.url, t.data); break; case "shader": t.data = e.responseText, this.cache.addShader(t.key, t.url, t.data); break; case "physics": r = JSON.parse(e.responseText); this.cache.addPhysicsData(t.key, t.url, r, t.format); break; case "script": t.data = document.createElement("script"), t.data.language = "javascript", t.data.type = "text/javascript", t.data.defer = !1, t.data.text = e.responseText, document.head.appendChild(t.data), t.callback && (t.data = t.callback.call(t.callbackContext, t.key, e.responseText)); break; case "binary": t.callback ? t.data = t.callback.call(t.callbackContext, t.key, e.response) : t.data = e.response, this.cache.addBinary(t.key, t.data) } i && this.asyncComplete(t) }, jsonLoadComplete: function(e, t) { var i = JSON.parse(t.responseText); "tilemap" === e.type ? this.cache.addTilemap(e.key, e.url, i, e.format) : "bitmapfont" === e.type ? this.cache.addBitmapFont(e.key, e.url, e.data, i, e.atlasType, e.xSpacing, e.ySpacing) : "json" === e.type ? this.cache.addJSON(e.key, e.url, i) : this.cache.addTextureAtlas(e.key, e.url, e.data, i, e.format), this.asyncComplete(e) }, csvLoadComplete: function(e, t) { var i = t.responseText; this.cache.addTilemap(e.key, e.url, i, e.format), this.asyncComplete(e) }, xmlLoadComplete: function(e, t) { var i = t.responseText , r = this.parseXml(i); if (r) "bitmapfont" === e.type ? this.cache.addBitmapFont(e.key, e.url, e.data, r, e.atlasType, e.xSpacing, e.ySpacing) : "textureatlas" === e.type ? this.cache.addTextureAtlas(e.key, e.url, e.data, r, e.format) : "xml" === e.type && this.cache.addXML(e.key, e.url, r), this.asyncComplete(e); else { t.responseType || t.contentType; this.asyncComplete(e, "invalid XML") } }, parseXml: function(e) { var t; try { if (window.DOMParser) t = (new DOMParser).parseFromString(e, "text/xml"); else (t = new ActiveXObject("Microsoft.XMLDOM")).async = "false", t.loadXML(e) } catch (e) { t = null } return t && t.documentElement && !t.getElementsByTagName("parsererror").length ? t : null }, updateProgress: function() { this.preloadSprite && (0 === this.preloadSprite.direction ? this.preloadSprite.rect.width = Math.floor(this.preloadSprite.width / 100 * this.progress) : this.preloadSprite.rect.height = Math.floor(this.preloadSprite.height / 100 * this.progress), this.preloadSprite.sprite ? this.preloadSprite.sprite.updateCrop() : this.preloadSprite = null) }, totalLoadedFiles: function() { return this._loadedFileCount }, totalQueuedFiles: function() { return this._totalFileCount - this._loadedFileCount }, totalLoadedPacks: function() { return this._totalPackCount }, totalQueuedPacks: function() { return this._totalPackCount - this._loadedPackCount } }, Object.defineProperty(W.Loader.prototype, "progressFloat", { get: function() { var e = this._loadedFileCount / this._totalFileCount * 100; return W.Math.clamp(e || 0, 0, 100) } }), Object.defineProperty(W.Loader.prototype, "progress", { get: function() { return Math.round(this.progressFloat) } }), W.Loader.prototype.constructor = W.Loader, W.LoaderParser = { bitmapFont: function(e, t, i, r) { return this.xmlBitmapFont(e, t, i, r) }, xmlBitmapFont: function(e, t, i, r) { var o = {} , s = e.getElementsByTagName("info")[0] , a = e.getElementsByTagName("common")[0]; o.font = s.getAttribute("face"), o.size = parseInt(s.getAttribute("size"), 10), o.lineHeight = parseInt(a.getAttribute("lineHeight"), 10) + r, o.chars = {}; for (var n = e.getElementsByTagName("char"), h = 0; h < n.length; h++) { var c = parseInt(n[h].getAttribute("id"), 10); o.chars[c] = { x: parseInt(n[h].getAttribute("x"), 10), y: parseInt(n[h].getAttribute("y"), 10), width: parseInt(n[h].getAttribute("width"), 10), height: parseInt(n[h].getAttribute("height"), 10), xOffset: parseInt(n[h].getAttribute("xoffset"), 10), yOffset: parseInt(n[h].getAttribute("yoffset"), 10), xAdvance: parseInt(n[h].getAttribute("xadvance"), 10) + i, kerning: {} } } var l = e.getElementsByTagName("kerning"); for (h = 0; h < l.length; h++) { var m = parseInt(l[h].getAttribute("first"), 10) , u = parseInt(l[h].getAttribute("second"), 10) , d = parseInt(l[h].getAttribute("amount"), 10); o.chars[u].kerning[m] = d } return this.finalizeBitmapFont(t, o) }, jsonBitmapFont: function(e, t, i, r) { var o = { font: e.font.info._face, size: parseInt(e.font.info._size, 10), lineHeight: parseInt(e.font.common._lineHeight, 10) + r, chars: {} }; return e.font.chars.char.forEach(function(e) { var t = parseInt(e._id, 10); o.chars[t] = { x: parseInt(e._x, 10), y: parseInt(e._y, 10), width: parseInt(e._width, 10), height: parseInt(e._height, 10), xOffset: parseInt(e._xoffset, 10), yOffset: parseInt(e._yoffset, 10), xAdvance: parseInt(e._xadvance, 10) + i, kerning: {} } }), e.font.kernings && e.font.kernings.kerning && e.font.kernings.kerning.forEach(function(e) { o.chars[e._second].kerning[e._first] = parseInt(e._amount, 10) }), this.finalizeBitmapFont(t, o) }, finalizeBitmapFont: function(i, r) { return Object.keys(r.chars).forEach(function(e) { var t = r.chars[e]; t.texture = new PIXI.Texture(i,new W.Rectangle(t.x,t.y,t.width,t.height)) }), r } }, W.AudioSprite = function(e, t) { for (var i in this.game = e, this.key = t, this.config = this.game.cache.getJSON(t + "-audioatlas"), this.autoplayKey = null, this.autoplay = !1, this.sounds = {}, this.config.spritemap) { var r = this.config.spritemap[i] , o = this.game.add.sound(this.key); o.addMarker(i, r.start, r.end - r.start, null, r.loop), this.sounds[i] = o } this.config.autoplay && (this.autoplayKey = this.config.autoplay, this.play(this.autoplayKey), this.autoplay = this.sounds[this.autoplayKey]) } , W.AudioSprite.prototype = { play: function(e, t) { return void 0 === t && (t = 1), this.sounds[e].play(e, null, t) }, stop: function(e) { if (e) this.sounds[e].stop(); else for (var t in this.sounds) this.sounds[t].stop() }, get: function(e) { return this.sounds[e] } }, W.AudioSprite.prototype.constructor = W.AudioSprite, W.Sound = function(e, t, i, r, o) { void 0 === i && (i = 1), void 0 === r && (r = !1), void 0 === o && (o = e.sound.connectToMaster), this.game = e, this.name = t, this.key = t, this.loop = r, this.markers = {}, this.context = null, this.autoplay = !1, this.totalDuration = 0, this.startTime = 0, this.currentTime = 0, this.duration = 0, this.durationMS = 0, this.position = 0, this.stopTime = 0, this.paused = !1, this.pausedPosition = 0, this.pausedTime = 0, this.isPlaying = !1, this.currentMarker = "", this.fadeTween = null, this.pendingPlayback = !1, this.override = !1, this.allowMultiple = !1, this.usingWebAudio = this.game.sound.usingWebAudio, this.usingAudioTag = this.game.sound.usingAudioTag, this.externalNode = null, this.masterGainNode = null, this.gainNode = null, this._sound = null, this.usingWebAudio ? (this.context = this.game.sound.context, this.masterGainNode = this.game.sound.masterGain, void 0 === this.context.createGain ? this.gainNode = this.context.createGainNode() : this.gainNode = this.context.createGain(), this.gainNode.gain.value = i * this.game.sound.volume, o && this.gainNode.connect(this.masterGainNode)) : this.usingAudioTag && (this.game.cache.getSound(t) && this.game.cache.isSoundReady(t) ? (this._sound = this.game.cache.getSoundData(t), this.totalDuration = 0, this._sound.duration && (this.totalDuration = this._sound.duration)) : this.game.cache.onSoundUnlock.add(this.soundHasUnlocked, this)), this.onDecoded = new W.Signal, this.onPlay = new W.Signal, this.onPause = new W.Signal, this.onResume = new W.Signal, this.onLoop = new W.Signal, this.onStop = new W.Signal, this.onMute = new W.Signal, this.onMarkerComplete = new W.Signal, this.onFadeComplete = new W.Signal, this._volume = i, this._buffer = null, this._muted = !1, this._tempMarker = 0, this._tempPosition = 0, this._tempVolume = 0, this._tempPause = 0, this._muteVolume = 0, this._tempLoop = 0, this._paused = !1, this._onDecodedEventDispatched = !1 } , W.Sound.prototype = { soundHasUnlocked: function(e) { e === this.key && (this._sound = this.game.cache.getSoundData(this.key), this.totalDuration = this._sound.duration) }, addMarker: function(e, t, i, r, o) { null == i && (i = 1), null == r && (r = 1), void 0 === o && (o = !1), this.markers[e] = { name: e, start: t, stop: t + i, volume: r, duration: i, durationMS: 1e3 * i, loop: o } }, removeMarker: function(e) { delete this.markers[e] }, onEndedHandler: function() { this._sound.onended = null, this.isPlaying = !1, this.currentTime = this.durationMS, this.stop() }, update: function() { this.game.cache.checkSoundKey(this.key) ? (this.isDecoded && !this._onDecodedEventDispatched && (this.onDecoded.dispatch(this), this._onDecodedEventDispatched = !0), this.pendingPlayback && this.game.cache.isSoundReady(this.key) && (this.pendingPlayback = !1, this.play(this._tempMarker, this._tempPosition, this._tempVolume, this._tempLoop)), this.isPlaying && (this.currentTime = this.game.time.time - this.startTime, this.currentTime >= this.durationMS && (this.usingWebAudio ? this.loop ? (this.onLoop.dispatch(this), this.isPlaying = !1, "" === this.currentMarker ? (this.currentTime = 0, this.startTime = this.game.time.time, this.isPlaying = !0) : (this.onMarkerComplete.dispatch(this.currentMarker, this), this.play(this.currentMarker, 0, this.volume, !0, !0))) : "" !== this.currentMarker && this.stop() : this.loop ? (this.onLoop.dispatch(this), "" === this.currentMarker && (this.currentTime = 0, this.startTime = this.game.time.time), this.isPlaying = !1, this.play(this.currentMarker, 0, this.volume, !0, !0)) : this.stop()))) : this.destroy() }, loopFull: function(e) { return this.play(null, 0, e, !0) }, play: function(e, t, i, r, o) { if (void 0 !== e && !1 !== e && null !== e || (e = ""), void 0 === o && (o = !0), this.isPlaying && !this.allowMultiple && !o && !this.override) return this; if (this._sound && this.isPlaying && !this.allowMultiple && (this.override || o)) { if (this.usingWebAudio) { if (void 0 === this._sound.stop) this._sound.noteOff(0); else try { this._sound.stop(0) } catch (e) {} this.externalNode ? this._sound.disconnect(this.externalNode) : this.gainNode && this._sound.disconnect(this.gainNode) } else this.usingAudioTag && (this._sound.pause(), this._sound.currentTime = 0); this.isPlaying = !1 } var s = Object.keys(this.markers); if ("" === e && 1 === s.length && (e = s[0]), "" === e && 0 < s.length) return this; if ("" !== e) { if (!this.markers[e]) return this; this.currentMarker = e, this.position = this.markers[e].start, this.volume = this.markers[e].volume, this.loop = this.markers[e].loop, this.duration = this.markers[e].duration, this.durationMS = this.markers[e].durationMS, void 0 !== i && (this.volume = i), void 0 !== r && (this.loop = r), this._tempMarker = e, this._tempPosition = this.position, this._tempVolume = this.volume, this._tempLoop = this.loop } else t = t || 0, void 0 === i && (i = this._volume), void 0 === r && (r = this.loop), this.position = Math.max(0, t), this.volume = i, this.loop = r, this.duration = 0, this.durationMS = 0, this._tempMarker = e, this._tempPosition = t, this._tempVolume = i, this._tempLoop = r; return this.usingWebAudio ? this.game.cache.isSoundDecoded(this.key) ? (this._sound = this.context.createBufferSource(), this.externalNode ? this._sound.connect(this.externalNode) : this._sound.connect(this.gainNode), this._buffer = this.game.cache.getSoundData(this.key), this._sound.buffer = this._buffer, this.loop && "" === e && (this._sound.loop = !0), this.loop || "" !== e || (this._sound.onended = this.onEndedHandler.bind(this)), this.totalDuration = this._sound.buffer.duration, 0 === this.duration && (this.duration = this.totalDuration, this.durationMS = Math.ceil(1e3 * this.totalDuration)), void 0 === this._sound.start ? this._sound.noteGrainOn(0, this.position, this.duration) : this.loop && "" === e ? this._sound.start(0, 0) : this._sound.start(0, this.position, this.duration), this.isPlaying = !0, this.startTime = this.game.time.time, this.currentTime = 0, this.stopTime = this.startTime + this.durationMS, this.onPlay.dispatch(this)) : (this.pendingPlayback = !0, this.game.cache.getSound(this.key) && !1 === this.game.cache.getSound(this.key).isDecoding && this.game.sound.decode(this.key, this)) : this.game.cache.getSound(this.key) && this.game.cache.getSound(this.key).locked ? (this.game.cache.reloadSound(this.key), this.pendingPlayback = !0) : this._sound && (this.game.device.wechatMinigame || this.game.device.cocoonJS || 4 === this._sound.readyState) ? (this.loop && (this._sound.loop = !0), !this.loop && "" === e && this.game.device.wechatMinigame && this._sound.addEventListener("ended", this.onEndedHandler.bind(this)), this._sound.play(), this.totalDuration = this._sound.duration, 0 === this.duration && (this.duration = this.totalDuration, this.durationMS = 1e3 * this.totalDuration), this._sound.currentTime = this.position, this._sound.muted = this._muted, this._muted || this.game.sound.mute ? this._sound.volume = 0 : this._sound.volume = this._volume, this.isPlaying = !0, this.startTime = this.game.time.time, this.currentTime = 0, this.stopTime = this.startTime + this.durationMS, this.onPlay.dispatch(this)) : this.pendingPlayback = !0, this }, restart: function(e, t, i, r) { e = e || "", t = t || 0, i = i || 1, void 0 === r && (r = !1), this.play(e, t, i, r, !0) }, pause: function() { this.isPlaying && this._sound && (this.paused = !0, this.pausedPosition = this.currentTime, this.pausedTime = this.game.time.time, this._tempPause = this._sound.currentTime, this.onPause.dispatch(this), this.stop()) }, resume: function() { if (this.paused && this._sound) { if (this.usingWebAudio) { var e = Math.max(0, this.position + this.pausedPosition / 1e3); this._sound = this.context.createBufferSource(), this._sound.buffer = this._buffer, this.externalNode ? this._sound.connect(this.externalNode) : this._sound.connect(this.gainNode), this.loop && (this._sound.loop = !0), this.loop || "" !== this.currentMarker || (this._sound.onended = this.onEndedHandler.bind(this)); var t = this.duration - this.pausedPosition / 1e3; void 0 === this._sound.start ? this._sound.noteGrainOn(0, e, t) : this.loop && this.game.device.chrome ? 42 === this.game.device.chromeVersion ? this._sound.start(0) : this._sound.start(0, e) : this._sound.start(0, e, t) } else this._sound.currentTime = this._tempPause, this._sound.play(); this.isPlaying = !0, this.paused = !1, this.startTime += this.game.time.time - this.pausedTime, this.onResume.dispatch(this) } }, stop: function() { if (this.isPlaying && this._sound) if (this.usingWebAudio) { if (void 0 === this._sound.stop) this._sound.noteOff(0); else try { this._sound.stop(0) } catch (e) {} this.externalNode ? this._sound.disconnect(this.externalNode) : this.gainNode && this._sound.disconnect(this.gainNode) } else this.usingAudioTag && (this._sound.pause(), this._sound.currentTime = 0); if (this.pendingPlayback = !1, this.isPlaying = !1, !this.paused) { var e = this.currentMarker; "" !== this.currentMarker && this.onMarkerComplete.dispatch(this.currentMarker, this), this.currentMarker = "", null !== this.fadeTween && this.fadeTween.stop(), this.onStop.dispatch(this, e) } }, fadeIn: function(e, t, i) { void 0 === t && (t = !1), void 0 === i && (i = this.currentMarker), this.paused || (this.play(i, 0, 0, t), this.fadeTo(e, 1)) }, fadeOut: function(e) { this.fadeTo(e, 0) }, fadeTo: function(e, t) { this.isPlaying && !this.paused && t !== this.volume && (void 0 === e && (e = 1e3), void 0 !== t && (this.fadeTween = this.game.add.tween(this).to({ volume: t }, e, W.Easing.Linear.None, !0), this.fadeTween.onComplete.add(this.fadeComplete, this))) }, fadeComplete: function() { this.onFadeComplete.dispatch(this, this.volume), 0 === this.volume && this.stop() }, updateGlobalVolume: function(e) { this.usingAudioTag && this._sound && (this._sound.volume = e * this._volume) }, destroy: function(e) { void 0 === e && (e = !0), this.stop(), e ? this.game.sound.remove(this) : (this.markers = {}, this.context = null, this._buffer = null, this.externalNode = null, this.onDecoded.dispose(), this.onPlay.dispose(), this.onPause.dispose(), this.onResume.dispose(), this.onLoop.dispose(), this.onStop.dispose(), this.onMute.dispose(), this.onMarkerComplete.dispose()) } }, W.Sound.prototype.constructor = W.Sound, Object.defineProperty(W.Sound.prototype, "isDecoding", { get: function() { return this.game.cache.getSound(this.key).isDecoding } }), Object.defineProperty(W.Sound.prototype, "isDecoded", { get: function() { return this.game.cache.isSoundDecoded(this.key) } }), Object.defineProperty(W.Sound.prototype, "mute", { get: function() { return this._muted || this.game.sound.mute }, set: function(e) { (e = e || !1) !== this._muted && (e ? (this._muted = !0, this._muteVolume = this._tempVolume, this.game.device.wechatMinigame ? this._sound.pause() : this.usingWebAudio ? this.gainNode.gain.value = 0 : this.usingAudioTag && this._sound && (this._sound.volume = 0)) : (this._muted = !1, this.game.device.wechatMinigame && this.isPlaying ? this._sound.play() : this.usingWebAudio ? this.gainNode.gain.value = this._muteVolume : this.usingAudioTag && this._sound && (this._sound.volume = this._muteVolume)), this.onMute.dispatch(this)) } }), Object.defineProperty(W.Sound.prototype, "volume", { get: function() { return this._volume }, set: function(e) { this.game.device.firefox && this.usingAudioTag && (e = this.game.math.clamp(e, 0, 1)), this._muted ? this._muteVolume = e : (this._tempVolume = e, this._volume = e, this.usingWebAudio ? this.gainNode.gain.value = e : this.usingAudioTag && this._sound && (this._sound.volume = e)) } }), W.SoundManager = function(e) { this.game = e, this.onSoundDecode = new W.Signal, this.onVolumeChange = new W.Signal, this.onMute = new W.Signal, this.onUnMute = new W.Signal, this.context = null, this.usingWebAudio = !1, this.usingAudioTag = !1, this.noAudio = !1, this.connectToMaster = !0, this.touchLocked = !1, this.channels = 32, this.muteOnPause = !0, this._codeMuted = !1, this._muted = !1, this._unlockSource = null, this._volume = 1, this._sounds = [], this._watchList = new W.ArraySet, this._watching = !1, this._watchCallback = null, this._watchContext = null } , W.SoundManager.prototype = { boot: function() { if (this.game.device.iOS && !1 === this.game.device.webAudio && (this.channels = 1), window.PhaserGlobal) { if (!0 === window.PhaserGlobal.disableAudio) return this.noAudio = !0, void (this.touchLocked = !1); if (!0 === window.PhaserGlobal.disableWebAudio) return this.usingAudioTag = !0, void (this.touchLocked = !1) } if (window.PhaserGlobal && window.PhaserGlobal.audioContext) this.context = window.PhaserGlobal.audioContext; else if (window.AudioContext) try { this.context = new window.AudioContext } catch (e) { this.context = null, this.usingWebAudio = !1, this.touchLocked = !1 } else if (window.webkitAudioContext) try { this.context = new window.webkitAudioContext } catch (e) { this.context = null, this.usingWebAudio = !1, this.touchLocked = !1 } if (null === this.context) { if (void 0 === window.Audio) return void (this.noAudio = !0); this.usingAudioTag = !0 } else this.usingWebAudio = !0, void 0 === this.context.createGain ? this.masterGain = this.context.createGainNode() : this.masterGain = this.context.createGain(), this.masterGain.gain.value = 1, this.masterGain.connect(this.context.destination); this.noAudio || !this.game.device.cocoonJS && (this.game.device.chrome || this.game.device.iOS || window.PhaserGlobal && window.PhaserGlobal.fakeiOSTouchLock) && this.setTouchLock() }, setTouchLock: function() { this.noAudio || window.PhaserGlobal && !0 === window.PhaserGlobal.disableAudio || (8 < this.game.device.iOSVersion || 55 <= this.game.device.chromeVersion ? this.game.input.touch.addTouchLockCallback(this.unlock, this, !0) : this.game.input.touch.addTouchLockCallback(this.unlock, this), this.touchLocked = !0) }, unlock: function() { if (this.noAudio || !this.touchLocked || null !== this._unlockSource) return !0; if (this.usingAudioTag) this.touchLocked = !1, this._unlockSource = null; else if (this.usingWebAudio) { var e = this.context.createBuffer(1, 1, 22050); this._unlockSource = this.context.createBufferSource(), this._unlockSource.buffer = e, this._unlockSource.connect(this.context.destination), void 0 === this._unlockSource.start ? this._unlockSource.noteOn(0) : this._unlockSource.start(0), "suspended" === this._unlockSource.context.state && this._unlockSource.context.resume() } return !0 }, stopAll: function() { if (!this.noAudio) for (var e = 0; e < this._sounds.length; e++) this._sounds[e] && this._sounds[e].stop() }, pauseAll: function() { if (!this.noAudio) for (var e = 0; e < this._sounds.length; e++) this._sounds[e] && this._sounds[e].pause() }, resumeAll: function() { if (!this.noAudio) for (var e = 0; e < this._sounds.length; e++) this._sounds[e] && this._sounds[e].resume() }, decode: function(t, i) { i = i || null; var e = this.game.cache.getSoundData(t); if (e && !1 === this.game.cache.isSoundDecoded(t)) { this.game.cache.updateSound(t, "isDecoding", !0); var r = this; try { this.context.decodeAudioData(e, function(e) { e && (r.game.cache.decodedSound(t, e), r.onSoundDecode.dispatch(t, i)) }) } catch (e) {} } }, setDecodedCallback: function(e, t, i) { "string" == typeof e && (e = [e]), this._watchList.reset(); for (var r = 0; r < e.length; r++) e[r]instanceof W.Sound ? this.game.cache.isSoundDecoded(e[r].key) || this._watchList.add(e[r].key) : this.game.cache.isSoundDecoded(e[r]) || this._watchList.add(e[r]); 0 === this._watchList.total ? (this._watching = !1, t.call(i)) : (this._watching = !0, this._watchCallback = t, this._watchContext = i) }, update: function() { if (!this.noAudio) { !this.touchLocked || null === this._unlockSource || this._unlockSource.playbackState !== this._unlockSource.PLAYING_STATE && this._unlockSource.playbackState !== this._unlockSource.FINISHED_STATE || (this.touchLocked = !1, this._unlockSource = null); for (var e = 0; e < this._sounds.length; e++) this._sounds[e].update(); if (this._watching) { for (var t = this._watchList.first; t; ) this.game.cache.isSoundDecoded(t) && this._watchList.remove(t), t = this._watchList.next; 0 === this._watchList.total && (this._watching = !1, this._watchCallback.call(this._watchContext)) } } }, add: function(e, t, i, r) { void 0 === t && (t = 1), void 0 === i && (i = !1), void 0 === r && (r = this.connectToMaster); var o = new W.Sound(this.game,e,t,i,r); return this._sounds.push(o), o }, addSprite: function(e) { return new W.AudioSprite(this.game,e) }, remove: function(e) { for (var t = this._sounds.length; t--; ) if (this._sounds[t] === e) return this._sounds[t].destroy(!1), this._sounds.splice(t, 1), !0; return !1 }, removeByKey: function(e) { for (var t = this._sounds.length, i = 0; t--; ) this._sounds[t].key === e && (this._sounds[t].destroy(!1), this._sounds.splice(t, 1), i++); return i }, play: function(e, t, i) { if (!this.noAudio) { var r = this.add(e, t, i); return r.play(), r } }, setMute: function() { if (!this._muted) { this._muted = !0, this.usingWebAudio && (this._muteVolume = this.masterGain.gain.value, this.masterGain.gain.value = 0); for (var e = 0; e < this._sounds.length; e++) this._sounds[e].usingAudioTag && (this._sounds[e].mute = !0); this.onMute.dispatch() } }, unsetMute: function() { if (this._muted && !this._codeMuted) { this._muted = !1, this.usingWebAudio && (this.masterGain.gain.value = this._muteVolume); for (var e = 0; e < this._sounds.length; e++) this._sounds[e].usingAudioTag && (this._sounds[e].mute = !1); this.onUnMute.dispatch() } }, destroy: function() { this.stopAll(); for (var e = 0; e < this._sounds.length; e++) this._sounds[e] && this._sounds[e].destroy(); this._sounds = [], this.onSoundDecode.dispose(), this.context && (window.PhaserGlobal ? window.PhaserGlobal.audioContext = this.context : this.context.close && this.context.close()) } }, W.SoundManager.prototype.constructor = W.SoundManager, Object.defineProperty(W.SoundManager.prototype, "mute", { get: function() { return this._muted }, set: function(e) { if (e = e || !1) { if (this._muted) return; this._codeMuted = !0, this.setMute() } else { if (!this._muted) return; this._codeMuted = !1, this.unsetMute() } } }), Object.defineProperty(W.SoundManager.prototype, "volume", { get: function() { return this._volume }, set: function(e) { if (e < 0 ? e = 0 : 1 < e && (e = 1), this._volume !== e) { if (this._volume = e, this.usingWebAudio) this.masterGain.gain.value = e; else for (var t = 0; t < this._sounds.length; t++) this._sounds[t].usingAudioTag && this._sounds[t].updateGlobalVolume(e); this.onVolumeChange.dispatch(e) } } }), W.ScaleManager = function(e, t, i) { this.game = e, this.dom = W.DOM, this.grid = null, this.width = 0, this.height = 0, this.minWidth = null, this.maxWidth = null, this.minHeight = null, this.maxHeight = null, this.offset = new W.Point, this.forceLandscape = !1, this.forcePortrait = !1, this.incorrectOrientation = !1, this._pageAlignHorizontally = !1, this._pageAlignVertically = !1, this.onOrientationChange = new W.Signal, this.enterIncorrectOrientation = new W.Signal, this.leaveIncorrectOrientation = new W.Signal, this.hasPhaserSetFullScreen = !1, this.fullScreenTarget = null, this._createdFullScreenTarget = null, this.onFullScreenInit = new W.Signal, this.onFullScreenChange = new W.Signal, this.onFullScreenError = new W.Signal, this.screenOrientation = this.dom.getScreenOrientation(), this.scaleFactor = new W.Point(1,1), this.scaleFactorInversed = new W.Point(1,1), this.margin = { left: 0, top: 0, right: 0, bottom: 0, x: 0, y: 0 }, this.bounds = new W.Rectangle, this.aspectRatio = 0, this.sourceAspectRatio = 0, this.event = null, this.windowConstraints = { right: "layout", bottom: "" }, this.compatibility = { supportsFullScreen: !1, orientationFallback: null, noMargins: !1, scrollTo: null, forceMinimumDocumentHeight: !1, canExpandParent: !0, clickTrampoline: "" }, this._scaleMode = W.ScaleManager.NO_SCALE, this._fullScreenScaleMode = W.ScaleManager.NO_SCALE, this.parentIsWindow = !1, this.parentNode = null, this.parentScaleFactor = new W.Point(1,1), this.trackParentInterval = 2e3, this.onSizeChange = new W.Signal, this.onResize = null, this.onResizeContext = null, this._pendingScaleMode = null, this._fullScreenRestore = null, this._gameSize = new W.Rectangle, this._userScaleFactor = new W.Point(1,1), this._userScaleTrim = new W.Point(0,0), this._lastUpdate = 0, this._updateThrottle = 0, this._updateThrottleReset = 100, this._parentBounds = new W.Rectangle, this._tempBounds = new W.Rectangle, this._lastReportedCanvasSize = new W.Rectangle, this._lastReportedGameSize = new W.Rectangle, this._booted = !1, e.config && this.parseConfig(e.config), this.setupScale(t, i) } , W.ScaleManager.EXACT_FIT = 0, W.ScaleManager.NO_SCALE = 1, W.ScaleManager.SHOW_ALL = 2, W.ScaleManager.RESIZE = 3, W.ScaleManager.USER_SCALE = 4, W.ScaleManager.prototype = { boot: function() { var e = this.compatibility; e.supportsFullScreen = this.game.device.fullscreen && !this.game.device.cocoonJS, this.game.device.iPad || this.game.device.webApp || this.game.device.desktop || (this.game.device.android && !this.game.device.chrome ? e.scrollTo = new W.Point(0,1) : e.scrollTo = new W.Point(0,0)), this.game.device.desktop ? (e.orientationFallback = "screen", e.clickTrampoline = "when-not-mouse") : (e.orientationFallback = "", e.clickTrampoline = ""); var t = this; this._orientationChange = function(e) { return t.orientationChange(e) } , this._windowResize = function(e) { return t.windowResize(e) } , window.addEventListener("orientationchange", this._orientationChange, !1), window.addEventListener("resize", this._windowResize, !1), this.compatibility.supportsFullScreen && (this._fullScreenChange = function(e) { return t.fullScreenChange(e) } , this._fullScreenError = function(e) { return t.fullScreenError(e) } , document.addEventListener("webkitfullscreenchange", this._fullScreenChange, !1), document.addEventListener("mozfullscreenchange", this._fullScreenChange, !1), document.addEventListener("MSFullscreenChange", this._fullScreenChange, !1), document.addEventListener("fullscreenchange", this._fullScreenChange, !1), document.addEventListener("webkitfullscreenerror", this._fullScreenError, !1), document.addEventListener("mozfullscreenerror", this._fullScreenError, !1), document.addEventListener("MSFullscreenError", this._fullScreenError, !1), document.addEventListener("fullscreenerror", this._fullScreenError, !1)), this.game.onResume.add(this._gameResumed, this), this.dom.getOffset(this.game.canvas, this.offset), this.bounds.setTo(this.offset.x, this.offset.y, this.width, this.height), this.setGameSize(this.game.width, this.game.height), this.screenOrientation = this.dom.getScreenOrientation(this.compatibility.orientationFallback), W.FlexGrid && (this.grid = new W.FlexGrid(this,this.width,this.height)), this._booted = !0, null !== this._pendingScaleMode && (this.scaleMode = this._pendingScaleMode, this._pendingScaleMode = null) }, parseConfig: function(e) { void 0 !== e.scaleMode && (this._booted ? this.scaleMode = e.scaleMode : this._pendingScaleMode = e.scaleMode), void 0 !== e.fullScreenScaleMode && (this.fullScreenScaleMode = e.fullScreenScaleMode), e.fullScreenTarget && (this.fullScreenTarget = e.fullScreenTarget) }, setupScale: function(e, t) { var i, r = new W.Rectangle; "" !== this.game.parent && ("string" == typeof this.game.parent ? i = document.getElementById(this.game.parent) : this.game.parent && 1 === this.game.parent.nodeType && (i = this.game.parent)), i ? (this.parentNode = i, this.parentIsWindow = !1, this.getParentBounds(this._parentBounds), r.width = this._parentBounds.width, r.height = this._parentBounds.height, this.offset.set(this._parentBounds.x, this._parentBounds.y)) : (this.parentNode = null, this.parentIsWindow = !0, r.width = this.dom.visualBounds.width, r.height = this.dom.visualBounds.height, this.offset.set(0, 0)); var o = 0 , s = 0; o = "number" == typeof e ? e : (this.parentScaleFactor.x = parseInt(e, 10) / 100, r.width * this.parentScaleFactor.x), s = "number" == typeof t ? t : (this.parentScaleFactor.y = parseInt(t, 10) / 100, r.height * this.parentScaleFactor.y), o = Math.floor(o), s = Math.floor(s), this._gameSize.setTo(0, 0, o, s), this.updateDimensions(o, s, !1) }, _gameResumed: function() { this.queueUpdate(!0) }, setGameSize: function(e, t) { this._gameSize.setTo(0, 0, e, t), this.currentScaleMode !== W.ScaleManager.RESIZE && this.updateDimensions(e, t, !0), this.queueUpdate(!0) }, setUserScale: function(e, t, i, r) { this._userScaleFactor.setTo(e, t), this._userScaleTrim.setTo(0 | i, 0 | r), this.queueUpdate(!0) }, setResizeCallback: function(e, t) { this.onResize = e, this.onResizeContext = t }, signalSizeChange: function() { if (!W.Rectangle.sameDimensions(this, this._lastReportedCanvasSize) || !W.Rectangle.sameDimensions(this.game, this._lastReportedGameSize)) { var e = this.width , t = this.height; this._lastReportedCanvasSize.setTo(0, 0, e, t), this._lastReportedGameSize.setTo(0, 0, this.game.width, this.game.height), this.grid && this.grid.onResize(e, t), this.onSizeChange.dispatch(this, e, t), this.currentScaleMode === W.ScaleManager.RESIZE && (this.game.state.resize(e, t), this.game.load.resize(e, t)) } }, setMinMax: function(e, t, i, r) { this.minWidth = e, this.minHeight = t, void 0 !== i && (this.maxWidth = i), void 0 !== r && (this.maxHeight = r) }, preUpdate: function() { if (!(this.game.time.time < this._lastUpdate + this._updateThrottle)) { var e = this._updateThrottle; this._updateThrottleReset = 400 <= e ? 0 : 100, this.dom.getOffset(this.game.canvas, this.offset); var t = this._parentBounds.width , i = this._parentBounds.height , r = this.getParentBounds(this._parentBounds) , o = r.width !== t || r.height !== i , s = this.updateOrientationState(); (o || s) && (this.onResize && this.onResize.call(this.onResizeContext, this, r), this.updateLayout(), this.signalSizeChange()); var a = 2 * this._updateThrottle; this._updateThrottle < e && (a = Math.min(e, this._updateThrottleReset)), this._updateThrottle = W.Math.clamp(a, 25, this.trackParentInterval), this._lastUpdate = this.game.time.time } }, pauseUpdate: function() { this.preUpdate(), this._updateThrottle = this.trackParentInterval }, updateDimensions: function(e, t, i) { this.width = e * this.parentScaleFactor.x, this.height = t * this.parentScaleFactor.y, this.game.width = this.width, this.game.height = this.height, this.sourceAspectRatio = this.width / this.height, this.updateScalingAndBounds(), i && (this.game.renderer.resize(this.width, this.height), this.game.camera.setSize(this.width, this.height), this.game.world.resize(this.width, this.height)) }, updateScalingAndBounds: function() { this.scaleFactor.x = this.game.width / this.width, this.scaleFactor.y = this.game.height / this.height, this.scaleFactorInversed.x = this.width / this.game.width, this.scaleFactorInversed.y = this.height / this.game.height, this.aspectRatio = this.width / this.height, this.game.canvas && this.dom.getOffset(this.game.canvas, this.offset), this.bounds.setTo(this.offset.x, this.offset.y, this.width, this.height), this.game.input && this.game.input.scale && this.game.input.scale.setTo(this.scaleFactor.x, this.scaleFactor.y) }, forceOrientation: function(e, t) { void 0 === t && (t = !1), this.forceLandscape = e, this.forcePortrait = t, this.queueUpdate(!0) }, classifyOrientation: function(e) { return "portrait-primary" === e || "portrait-secondary" === e ? "portrait" : "landscape-primary" === e || "landscape-secondary" === e ? "landscape" : null }, updateOrientationState: function() { var e = this.screenOrientation , t = this.incorrectOrientation; this.screenOrientation = this.dom.getScreenOrientation(this.compatibility.orientationFallback), this.incorrectOrientation = this.forceLandscape && !this.isLandscape || this.forcePortrait && !this.isPortrait; var i = e !== this.screenOrientation , r = t !== this.incorrectOrientation; return r && (this.incorrectOrientation ? this.enterIncorrectOrientation.dispatch() : this.leaveIncorrectOrientation.dispatch()), (i || r) && this.onOrientationChange.dispatch(this, e, t), i || r }, orientationChange: function(e) { this.event = e, this.queueUpdate(!0) }, windowResize: function(e) { this.event = e, this.queueUpdate(!0) }, scrollTop: function() { var e = this.compatibility.scrollTo; e && window.scrollTo(e.x, e.y) }, refresh: function() { this.scrollTop(), this.queueUpdate(!0) }, updateLayout: function() { var e = this.currentScaleMode; if (e !== W.ScaleManager.RESIZE) { if (this.scrollTop(), this.compatibility.forceMinimumDocumentHeight && (document.documentElement.style.minHeight = window.innerHeight + "px"), this.incorrectOrientation ? this.setMaximum() : e === W.ScaleManager.EXACT_FIT ? this.setExactFit() : e === W.ScaleManager.SHOW_ALL ? (this.setShowAll(!0), this.resetCanvas(), this.setShowAll()) : e === W.ScaleManager.NO_SCALE ? (this.width = this.game.width, this.height = this.game.height) : e === W.ScaleManager.USER_SCALE && (this.width = this.game.width * this._userScaleFactor.x - this._userScaleTrim.x, this.height = this.game.height * this._userScaleFactor.y - this._userScaleTrim.y), !this.compatibility.canExpandParent && (e === W.ScaleManager.SHOW_ALL || e === W.ScaleManager.USER_SCALE)) { var t = this.getParentBounds(this._tempBounds); this.width = Math.min(this.width, t.width), this.height = Math.min(this.height, t.height) } this.width = 0 | this.width, this.height = 0 | this.height, this.reflowCanvas() } else this.reflowGame() }, getParentBounds: function(e) { var t = e || new W.Rectangle , i = this.boundingParent , r = this.dom.visualBounds , o = this.dom.layoutBounds; if (i) { var s = i.getBoundingClientRect() , a = i.offsetParent ? i.offsetParent.getBoundingClientRect() : i.getBoundingClientRect(); t.setTo(s.left - a.left, s.top - a.top, s.width, s.height); var n = this.windowConstraints; if (n.right) { var h = "layout" === n.right ? o : r; t.right = Math.min(t.right, h.width) } if (n.bottom) { h = "layout" === n.bottom ? o : r; t.bottom = Math.min(t.bottom, h.height) } } else t.setTo(0, 0, r.width, r.height); return t.setTo(Math.round(t.x), Math.round(t.y), Math.round(t.width), Math.round(t.height)), t }, alignCanvas: function(e, t) { var i = this.getParentBounds(this._tempBounds) , r = this.game.canvas , o = this.margin; if (e) { o.left = o.right = 0; var s = r.getBoundingClientRect(); if (this.width < i.width && !this.incorrectOrientation) { var a = s.left - i.x , n = i.width / 2 - this.width / 2 , h = (n = Math.max(n, 0)) - a; o.left = Math.round(h) } r.style.marginLeft = o.left + "px", 0 !== o.left && (o.right = -(i.width - s.width - o.left), r.style.marginRight = o.right + "px") } if (t) { o.top = o.bottom = 0; s = r.getBoundingClientRect(); if (this.height < i.height && !this.incorrectOrientation) { a = s.top - i.y, n = i.height / 2 - this.height / 2, h = (n = Math.max(n, 0)) - a; o.top = Math.round(h) } r.style.marginTop = o.top + "px", 0 !== o.top && (o.bottom = -(i.height - s.height - o.top), r.style.marginBottom = o.bottom + "px") } o.x = o.left, o.y = o.top }, reflowGame: function() { this.resetCanvas("", ""); var e = this.getParentBounds(this._tempBounds); this.updateDimensions(e.width, e.height, !0) }, reflowCanvas: function() { this.incorrectOrientation || (this.width = W.Math.clamp(this.width, this.minWidth || 0, this.maxWidth || this.width), this.height = W.Math.clamp(this.height, this.minHeight || 0, this.maxHeight || this.height)), this.resetCanvas(), this.compatibility.noMargins || (this.isFullScreen && this._createdFullScreenTarget ? this.alignCanvas(!0, !0) : this.alignCanvas(this.pageAlignHorizontally, this.pageAlignVertically)), this.updateScalingAndBounds() }, resetCanvas: function(e, t) { void 0 === e && (e = this.width + "px"), void 0 === t && (t = this.height + "px"); var i = this.game.canvas; this.compatibility.noMargins || (i.style.marginLeft = "", i.style.marginTop = "", i.style.marginRight = "", i.style.marginBottom = ""), i.style.width = e, i.style.height = t }, queueUpdate: function(e) { e && (this._parentBounds.width = 0, this._parentBounds.height = 0), this._updateThrottle = this._updateThrottleReset }, reset: function(e) { e && this.grid && this.grid.reset() }, setMaximum: function() { this.width = this.dom.visualBounds.width, this.height = this.dom.visualBounds.height }, setShowAll: function(e) { var t, i = this.getParentBounds(this._tempBounds), r = i.width, o = i.height; t = e ? Math.max(o / this.game.height, r / this.game.width) : Math.min(o / this.game.height, r / this.game.width), this.width = Math.round(this.game.width * t), this.height = Math.round(this.game.height * t) }, setExactFit: function() { var e = this.getParentBounds(this._tempBounds); this.width = e.width, this.height = e.height, this.isFullScreen || (this.maxWidth && (this.width = Math.min(this.width, this.maxWidth)), this.maxHeight && (this.height = Math.min(this.height, this.maxHeight))) }, createFullScreenTarget: function() { var e = document.createElement("div"); return e.style.margin = "0", e.style.padding = "0", e.style.background = "#000", e }, startFullScreen: function(e, t) { if (this.isFullScreen) return !1; if (this.compatibility.supportsFullScreen) { if ("when-not-mouse" === this.compatibility.clickTrampoline) { var i = this.game.input; if (i.activePointer && i.activePointer !== i.mousePointer && (t || !1 !== t)) return void i.activePointer.addClickTrampoline("startFullScreen", this.startFullScreen, this, [e, !1]) } void 0 !== e && this.game.renderType === W.CANVAS && (this.game.stage.smoothed = e); var r = this.fullScreenTarget; r || (this.cleanupCreatedTarget(), this._createdFullScreenTarget = this.createFullScreenTarget(), r = this._createdFullScreenTarget); var o = { targetElement: r }; if (this.hasPhaserSetFullScreen = !0, this.onFullScreenInit.dispatch(this, o), this._createdFullScreenTarget) { var s = this.game.canvas; s.parentNode.insertBefore(r, s), r.appendChild(s) } return this.game.device.fullscreenKeyboard ? r[this.game.device.requestFullscreen](Element.ALLOW_KEYBOARD_INPUT) : r[this.game.device.requestFullscreen](), !0 } var a = this; setTimeout(function() { a.fullScreenError() }, 10) }, stopFullScreen: function() { return !(!this.isFullScreen || !this.compatibility.supportsFullScreen) && (this.hasPhaserSetFullScreen = !1, document[this.game.device.cancelFullscreen](), !0) }, cleanupCreatedTarget: function() { var e = this._createdFullScreenTarget; if (e && e.parentNode) { var t = e.parentNode; t.insertBefore(this.game.canvas, e), t.removeChild(e) } this._createdFullScreenTarget = null }, prepScreenMode: function(e) { var t = !!this._createdFullScreenTarget , i = this._createdFullScreenTarget || this.fullScreenTarget; e ? (t || this.fullScreenScaleMode === W.ScaleManager.EXACT_FIT) && i !== this.game.canvas && (this._fullScreenRestore = { targetWidth: i.style.width, targetHeight: i.style.height }, i.style.width = "100%", i.style.height = "100%") : (this._fullScreenRestore && (i.style.width = this._fullScreenRestore.targetWidth, i.style.height = this._fullScreenRestore.targetHeight, this._fullScreenRestore = null), this.updateDimensions(this._gameSize.width, this._gameSize.height, !0), this.resetCanvas()) }, fullScreenChange: function(e) { this.event = e, this.isFullScreen ? this.prepScreenMode(!0) : (this.prepScreenMode(!1), this.cleanupCreatedTarget()), this.updateLayout(), this.queueUpdate(!0), this.onFullScreenChange.dispatch(this, this.width, this.height) }, fullScreenError: function(e) { this.event = e, this.cleanupCreatedTarget(), this.onFullScreenError.dispatch(this) }, scaleSprite: function(e, t, i, r) { if (void 0 === t && (t = this.width), void 0 === i && (i = this.height), void 0 === r && (r = !1), !e || !e.scale) return e; if (e.scale.x = 1, e.scale.y = 1, e.width <= 0 || e.height <= 0 || t <= 0 || i <= 0) return e; var o = t , s = e.height * t / e.width , a = e.width * i / e.height , n = i , h = t < a; return (h = h ? r : !r) ? (e.width = Math.floor(o), e.height = Math.floor(s)) : (e.width = Math.floor(a), e.height = Math.floor(n)), e }, destroy: function() { this.game.onResume.remove(this._gameResumed, this), window.removeEventListener("orientationchange", this._orientationChange, !1), window.removeEventListener("resize", this._windowResize, !1), this.compatibility.supportsFullScreen && (document.removeEventListener("webkitfullscreenchange", this._fullScreenChange, !1), document.removeEventListener("mozfullscreenchange", this._fullScreenChange, !1), document.removeEventListener("MSFullscreenChange", this._fullScreenChange, !1), document.removeEventListener("fullscreenchange", this._fullScreenChange, !1), document.removeEventListener("webkitfullscreenerror", this._fullScreenError, !1), document.removeEventListener("mozfullscreenerror", this._fullScreenError, !1), document.removeEventListener("MSFullscreenError", this._fullScreenError, !1), document.removeEventListener("fullscreenerror", this._fullScreenError, !1)) } }, W.ScaleManager.prototype.constructor = W.ScaleManager, Object.defineProperty(W.ScaleManager.prototype, "boundingParent", { get: function() { return this.parentIsWindow || this.isFullScreen && this.hasPhaserSetFullScreen && !this._createdFullScreenTarget ? null : this.game.canvas && this.game.canvas.parentNode || null } }), Object.defineProperty(W.ScaleManager.prototype, "scaleMode", { get: function() { return this._scaleMode }, set: function(e) { return e !== this._scaleMode && (this.isFullScreen || (this.updateDimensions(this._gameSize.width, this._gameSize.height, !0), this.queueUpdate(!0)), this._scaleMode = e), this._scaleMode } }), Object.defineProperty(W.ScaleManager.prototype, "fullScreenScaleMode", { get: function() { return this._fullScreenScaleMode }, set: function(e) { return e !== this._fullScreenScaleMode && (this.isFullScreen ? (this.prepScreenMode(!1), this._fullScreenScaleMode = e, this.prepScreenMode(!0), this.queueUpdate(!0)) : this._fullScreenScaleMode = e), this._fullScreenScaleMode } }), Object.defineProperty(W.ScaleManager.prototype, "currentScaleMode", { get: function() { return this.isFullScreen ? this._fullScreenScaleMode : this._scaleMode } }), Object.defineProperty(W.ScaleManager.prototype, "pageAlignHorizontally", { get: function() { return this._pageAlignHorizontally }, set: function(e) { e !== this._pageAlignHorizontally && (this._pageAlignHorizontally = e, this.queueUpdate(!0)) } }), Object.defineProperty(W.ScaleManager.prototype, "pageAlignVertically", { get: function() { return this._pageAlignVertically }, set: function(e) { e !== this._pageAlignVertically && (this._pageAlignVertically = e, this.queueUpdate(!0)) } }), Object.defineProperty(W.ScaleManager.prototype, "isFullScreen", { get: function() { return !!(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement) } }), Object.defineProperty(W.ScaleManager.prototype, "isPortrait", { get: function() { return "portrait" === this.classifyOrientation(this.screenOrientation) } }), Object.defineProperty(W.ScaleManager.prototype, "isLandscape", { get: function() { return "landscape" === this.classifyOrientation(this.screenOrientation) } }), Object.defineProperty(W.ScaleManager.prototype, "isGamePortrait", { get: function() { return this.height > this.width } }), Object.defineProperty(W.ScaleManager.prototype, "isGameLandscape", { get: function() { return this.width > this.height } }), W.Utils.Debug = function(e) { this.game = e, this.sprite = null, this.bmd = null, this.canvas = null, this.context = null, this.font = "14px Courier", this.columnWidth = 100, this.lineHeight = 16, this.renderShadow = !0, this.currentX = 0, this.currentY = 0, this.currentAlpha = 1, this.dirty = !1 } , W.Utils.Debug.prototype = { boot: function() { this.game.renderType === W.CANVAS ? this.context = this.game.context : (this.bmd = new W.BitmapData(this.game,"__DEBUG",this.game.width,this.game.height,!0), this.sprite = this.game.make.image(0, 0, this.bmd), this.game.stage.addChild(this.sprite), this.game.scale.onSizeChange.add(this.resize, this), this.canvas = PIXI.CanvasPool.create(this, this.game.width, this.game.height), this.context = this.canvas.getContext("2d")) }, resize: function(e, t, i) { this.bmd.resize(t, i), this.canvas.width = t, this.canvas.height = i }, preUpdate: function() { this.dirty && this.sprite && (this.bmd.clear(), this.bmd.draw(this.canvas, 0, 0), this.context.clearRect(0, 0, this.game.width, this.game.height), this.dirty = !1) }, reset: function() { this.context && this.context.clearRect(0, 0, this.game.width, this.game.height), this.sprite && this.bmd.clear() }, start: function(e, t, i, r) { "number" != typeof e && (e = 0), "number" != typeof t && (t = 0), i = i || "rgb(255,255,255)", void 0 === r && (r = 0), this.currentX = e, this.currentY = t, this.currentColor = i, this.columnWidth = r, this.dirty = !0, this.context.save(), this.context.setTransform(1, 0, 0, 1, 0, 0), this.context.strokeStyle = i, this.context.fillStyle = i, this.context.font = this.font, this.context.globalAlpha = this.currentAlpha }, stop: function() { this.context.restore() }, line: function() { for (var e = this.currentX, t = 0; t < arguments.length; t++) this.renderShadow && (this.context.fillStyle = "rgb(0,0,0)", this.context.fillText(arguments[t], e + 1, this.currentY + 1), this.context.fillStyle = this.currentColor), this.context.fillText(arguments[t], e, this.currentY), e += this.columnWidth; this.currentY += this.lineHeight }, soundInfo: function(e, t, i, r) { this.start(t, i, r), this.line("Sound: " + e.key + " Locked: " + e.game.sound.touchLocked), this.line("Is Ready?: " + this.game.cache.isSoundReady(e.key) + " Pending Playback: " + e.pendingPlayback), this.line("Decoded: " + e.isDecoded + " Decoding: " + e.isDecoding), this.line("Total Duration: " + e.totalDuration + " Playing: " + e.isPlaying), this.line("Time: " + e.currentTime), this.line("Volume: " + e.volume + " Muted: " + e.mute), this.line("WebAudio: " + e.usingWebAudio + " Audio: " + e.usingAudioTag), "" !== e.currentMarker && (this.line("Marker: " + e.currentMarker + " Duration: " + e.duration + " (ms: " + e.durationMS + ")"), this.line("Start: " + e.markers[e.currentMarker].start + " Stop: " + e.markers[e.currentMarker].stop), this.line("Position: " + e.position)), this.stop() }, cameraInfo: function(e, t, i, r) { this.start(t, i, r), this.line("Camera (" + e.width + " x " + e.height + ")"), this.line("X: " + e.x + " Y: " + e.y), e.bounds && this.line("Bounds x: " + e.bounds.x + " Y: " + e.bounds.y + " w: " + e.bounds.width + " h: " + e.bounds.height), this.line("View x: " + e.view.x + " Y: " + e.view.y + " w: " + e.view.width + " h: " + e.view.height), this.line("Total in view: " + e.totalInView), this.stop() }, timer: function(e, t, i, r) { this.start(t, i, r), this.line("Timer (running: " + e.running + " expired: " + e.expired + ")"), this.line("Next Tick: " + e.next + " Duration: " + e.duration), this.line("Paused: " + e.paused + " Length: " + e.length), this.stop() }, pointer: function(e, t, i, r, o) { null != e && (void 0 === t && (t = !1), i = i || "rgba(0,255,0,0.5)", r = r || "rgba(255,0,0,0.5)", !0 === t && !0 === e.isUp || (this.start(e.x, e.y - 100, o), this.context.beginPath(), this.context.arc(e.x, e.y, e.circle.radius, 0, 2 * Math.PI), e.active ? this.context.fillStyle = i : this.context.fillStyle = r, this.context.fill(), this.context.closePath(), this.context.beginPath(), this.context.moveTo(e.positionDown.x, e.positionDown.y), this.context.lineTo(e.position.x, e.position.y), this.context.lineWidth = 2, this.context.stroke(), this.context.closePath(), this.line("ID: " + e.id + " Active: " + e.active), this.line("World X: " + e.worldX + " World Y: " + e.worldY), this.line("Screen X: " + e.x + " Screen Y: " + e.y + " In: " + e.withinGame), this.line("Duration: " + e.duration + " ms"), this.line("is Down: " + e.isDown + " is Up: " + e.isUp), this.stop())) }, spriteInputInfo: function(e, t, i, r) { this.start(t, i, r), this.line("Sprite Input: (" + e.width + " x " + e.height + ")"), this.line("x: " + e.input.pointerX().toFixed(1) + " y: " + e.input.pointerY().toFixed(1)), this.line("over: " + e.input.pointerOver() + " duration: " + e.input.overDuration().toFixed(0)), this.line("down: " + e.input.pointerDown() + " duration: " + e.input.downDuration().toFixed(0)), this.line("just over: " + e.input.justOver() + " just out: " + e.input.justOut()), this.stop() }, key: function(e, t, i, r) { this.start(t, i, r, 150), this.line("Key:", e.keyCode, "isDown:", e.isDown), this.line("justDown:", e.justDown, "justUp:", e.justUp), this.line("Time Down:", e.timeDown.toFixed(0), "duration:", e.duration.toFixed(0)), this.stop() }, inputInfo: function(e, t, i) { this.start(e, t, i), this.line("Input"), this.line("X: " + this.game.input.x + " Y: " + this.game.input.y), this.line("World X: " + this.game.input.worldX + " World Y: " + this.game.input.worldY), this.line("Scale X: " + this.game.input.scale.x.toFixed(1) + " Scale Y: " + this.game.input.scale.x.toFixed(1)), this.line("Screen X: " + this.game.input.activePointer.screenX + " Screen Y: " + this.game.input.activePointer.screenY), this.stop() }, spriteBounds: function(e, t, i) { var r = e.getBounds(); r.x += this.game.camera.x, r.y += this.game.camera.y, this.rectangle(r, t, i) }, ropeSegments: function(e, t, i) { var r = e.segments , o = this; r.forEach(function(e) { o.rectangle(e, t, i) }, this) }, spriteInfo: function(e, t, i, r) { this.start(t, i, r), this.line("Sprite: (" + e.width + " x " + e.height + ") anchor: " + e.anchor.x + " x " + e.anchor.y), this.line("x: " + e.x.toFixed(1) + " y: " + e.y.toFixed(1)), this.line("angle: " + e.angle.toFixed(1) + " rotation: " + e.rotation.toFixed(1)), this.line("visible: " + e.visible + " in camera: " + e.inCamera), this.line("bounds x: " + e._bounds.x.toFixed(1) + " y: " + e._bounds.y.toFixed(1) + " w: " + e._bounds.width.toFixed(1) + " h: " + e._bounds.height.toFixed(1)), this.stop() }, spriteCoords: function(e, t, i, r) { this.start(t, i, r, 100), e.name && this.line(e.name), this.line("x:", e.x.toFixed(2), "y:", e.y.toFixed(2)), this.line("pos x:", e.position.x.toFixed(2), "pos y:", e.position.y.toFixed(2)), this.line("world x:", e.world.x.toFixed(2), "world y:", e.world.y.toFixed(2)), this.stop() }, lineInfo: function(e, t, i, r) { this.start(t, i, r, 80), this.line("start.x:", e.start.x.toFixed(2), "start.y:", e.start.y.toFixed(2)), this.line("end.x:", e.end.x.toFixed(2), "end.y:", e.end.y.toFixed(2)), this.line("length:", e.length.toFixed(2), "angle:", e.angle), this.stop() }, pixel: function(e, t, i, r) { r = r || 2, this.start(), this.context.fillStyle = i, this.context.fillRect(e, t, r, r), this.stop() }, geom: function(e, t, i, r) { void 0 === i && (i = !0), void 0 === r && (r = 0), t = t || "rgba(0,255,0,0.4)", this.start(), this.context.fillStyle = t, this.context.strokeStyle = t, e instanceof W.Rectangle || 1 === r ? i ? this.context.fillRect(e.x - this.game.camera.x, e.y - this.game.camera.y, e.width, e.height) : this.context.strokeRect(e.x - this.game.camera.x, e.y - this.game.camera.y, e.width, e.height) : e instanceof W.Circle || 2 === r ? (this.context.beginPath(), this.context.arc(e.x - this.game.camera.x, e.y - this.game.camera.y, e.radius, 0, 2 * Math.PI, !1), this.context.closePath(), i ? this.context.fill() : this.context.stroke()) : e instanceof W.Point || 3 === r ? this.context.fillRect(e.x - this.game.camera.x, e.y - this.game.camera.y, 4, 4) : (e instanceof W.Line || 4 === r) && (this.context.lineWidth = 1, this.context.beginPath(), this.context.moveTo(e.start.x + .5 - this.game.camera.x, e.start.y + .5 - this.game.camera.y), this.context.lineTo(e.end.x + .5 - this.game.camera.x, e.end.y + .5 - this.game.camera.y), this.context.closePath(), this.context.stroke()), this.stop() }, rectangle: function(e, t, i) { void 0 === i && (i = !0), t = t || "rgba(0, 255, 0, 0.4)", this.start(), i ? (this.context.fillStyle = t, this.context.fillRect(e.x - this.game.camera.x, e.y - this.game.camera.y, e.width, e.height)) : (this.context.strokeStyle = t, this.context.strokeRect(e.x - this.game.camera.x, e.y - this.game.camera.y, e.width, e.height)), this.stop() }, text: function(e, t, i, r, o) { r = r || "rgb(255,255,255)", o = o || "16px Courier", this.start(), this.context.font = o, this.renderShadow && (this.context.fillStyle = "rgb(0,0,0)", this.context.fillText(e, t + 1, i + 1)), this.context.fillStyle = r, this.context.fillText(e, t, i), this.stop() }, quadTree: function(e, t) { t = t || "rgba(255,0,0,0.3)", this.start(); var i = e.bounds; if (0 === e.nodes.length) { this.context.strokeStyle = t, this.context.strokeRect(i.x, i.y, i.width, i.height), this.text("size: " + e.objects.length, i.x + 4, i.y + 16, "rgb(0,200,0)", "12px Courier"), this.context.strokeStyle = "rgb(0,255,0)"; for (var r = 0; r < e.objects.length; r++) this.context.strokeRect(e.objects[r].x, e.objects[r].y, e.objects[r].width, e.objects[r].height) } else for (r = 0; r < e.nodes.length; r++) this.quadTree(e.nodes[r]); this.stop() }, body: function(e, t, i) { e.body && (this.start(), e.body.type === W.Physics.ARCADE ? W.Physics.Arcade.Body.render(this.context, e.body, t, i) : e.body.type === W.Physics.NINJA ? W.Physics.Ninja.Body.render(this.context, e.body, t, i) : e.body.type === W.Physics.BOX2D && W.Physics.Box2D.renderBody(this.context, e.body, t), this.stop()) }, bodyInfo: function(e, t, i, r) { e.body && (this.start(t, i, r, 210), e.body.type === W.Physics.ARCADE ? W.Physics.Arcade.Body.renderBodyInfo(this, e.body) : e.body.type === W.Physics.BOX2D && this.game.physics.box2d.renderBodyInfo(this, e.body), this.stop()) }, box2dWorld: function() { this.start(), this.context.translate(-this.game.camera.view.x, -this.game.camera.view.y, 0), this.game.physics.box2d.renderDebugDraw(this.context), this.stop() }, box2dBody: function(e, t) { this.start(), W.Physics.Box2D.renderBody(this.context, e, t), this.stop() }, displayList: function(e) { if (void 0 === e && (e = this.game.world), e.hasOwnProperty("renderOrderID"), e.children && 0 < e.children.length) for (var t = 0; t < e.children.length; t++) this.game.debug.displayList(e.children[t]) }, destroy: function() { PIXI.CanvasPool.remove(this) } }, W.Utils.Debug.prototype.constructor = W.Utils.Debug, W.DOM = { getOffset: function(e, t) { t = t || new W.Point; var i = e.getBoundingClientRect() , r = W.DOM.scrollY , o = W.DOM.scrollX , s = document.documentElement.clientTop , a = document.documentElement.clientLeft; return t.x = i.left + o - a, t.y = i.top + r - s, t }, getBounds: function(e, t) { return void 0 === t && (t = 0), !(!(e = e && !e.nodeType ? e[0] : e) || 1 !== e.nodeType) && this.calibrate(e.getBoundingClientRect(), t) }, calibrate: function(e, t) { t = +t || 0; var i = { width: 0, height: 0, left: 0, right: 0, top: 0, bottom: 0 }; return i.width = (i.right = e.right + t) - (i.left = e.left - t), i.height = (i.bottom = e.bottom + t) - (i.top = e.top - t), i }, getAspectRatio: function(e) { var t = (e = null == e ? this.visualBounds : 1 === e.nodeType ? this.getBounds(e) : e).width , i = e.height; return "function" == typeof t && (t = t.call(e)), "function" == typeof i && (i = i.call(e)), t / i }, inLayoutViewport: function(e, t) { var i = this.getBounds(e, t); return !!i && 0 <= i.bottom && 0 <= i.right && i.top <= this.layoutBounds.width && i.left <= this.layoutBounds.height }, getScreenOrientation: function(e) { var t = window.screen , i = t.orientation || t.mozOrientation || t.msOrientation; if (i && "string" == typeof i.type) return i.type; if ("string" == typeof i) return i; var r = "portrait-primary" , o = "landscape-primary"; if ("screen" === e) return t.height > t.width ? r : o; if ("viewport" === e) return this.visualBounds.height > this.visualBounds.width ? r : o; if ("window.orientation" === e && "number" == typeof window.orientation) return 0 === window.orientation || 180 === window.orientation ? r : o; if (window.matchMedia) { if (window.matchMedia("(orientation: portrait)").matches) return r; if (window.matchMedia("(orientation: landscape)").matches) return o } return this.visualBounds.height > this.visualBounds.width ? r : o }, visualBounds: new W.Rectangle, layoutBounds: new W.Rectangle, documentBounds: new W.Rectangle }, W.Device.whenReady(function(e) { var t = window && "pageXOffset"in window ? function() { return window.pageXOffset } : function() { return document.documentElement.scrollLeft } , i = window && "pageYOffset"in window ? function() { return window.pageYOffset } : function() { return document.documentElement.scrollTop } ; if (Object.defineProperty(W.DOM, "scrollX", { get: t }), Object.defineProperty(W.DOM, "scrollY", { get: i }), Object.defineProperty(W.DOM.visualBounds, "x", { get: t }), Object.defineProperty(W.DOM.visualBounds, "y", { get: i }), Object.defineProperty(W.DOM.layoutBounds, "x", { value: 0 }), Object.defineProperty(W.DOM.layoutBounds, "y", { value: 0 }), e.desktop && document.documentElement.clientWidth <= window.innerWidth && document.documentElement.clientHeight <= window.innerHeight) { var r = function() { return Math.max(window.innerWidth, document.documentElement.clientWidth) } , o = function() { return Math.max(window.innerHeight, document.documentElement.clientHeight) }; Object.defineProperty(W.DOM.visualBounds, "width", { get: r }), Object.defineProperty(W.DOM.visualBounds, "height", { get: o }), Object.defineProperty(W.DOM.layoutBounds, "width", { get: r }), Object.defineProperty(W.DOM.layoutBounds, "height", { get: o }) } else Object.defineProperty(W.DOM.visualBounds, "width", { get: function() { return window.innerWidth } }), Object.defineProperty(W.DOM.visualBounds, "height", { get: function() { return window.innerHeight } }), Object.defineProperty(W.DOM.layoutBounds, "width", { get: function() { var e = document.documentElement.clientWidth , t = window.innerWidth; return e < t ? t : e } }), Object.defineProperty(W.DOM.layoutBounds, "height", { get: function() { var e = document.documentElement.clientHeight , t = window.innerHeight; return e < t ? t : e } }); Object.defineProperty(W.DOM.documentBounds, "x", { value: 0 }), Object.defineProperty(W.DOM.documentBounds, "y", { value: 0 }), Object.defineProperty(W.DOM.documentBounds, "width", { get: function() { var e = document.documentElement; return Math.max(e.clientWidth, e.offsetWidth, e.scrollWidth) } }), Object.defineProperty(W.DOM.documentBounds, "height", { get: function() { var e = document.documentElement; return Math.max(e.clientHeight, e.offsetHeight, e.scrollHeight) } }) }, null, !0), W.ArraySet = function(e) { this.position = 0, this.list = e || [] } , W.ArraySet.prototype = { add: function(e) { return this.exists(e) || this.list.push(e), e }, getIndex: function(e) { return this.list.indexOf(e) }, getByKey: function(e, t) { for (var i = this.list.length; i--; ) if (this.list[i][e] === t) return this.list[i]; return null }, exists: function(e) { return -1 < this.list.indexOf(e) }, reset: function() { this.list.length = 0 }, remove: function(e) { var t = this.list.indexOf(e); if (-1 < t) return this.list.splice(t, 1), e }, setAll: function(e, t) { for (var i = this.list.length; i--; ) this.list[i] && (this.list[i][e] = t) }, callAll: function(e) { for (var t = Array.prototype.slice.call(arguments, 1), i = this.list.length; i--; ) this.list[i] && this.list[i][e] && this.list[i][e].apply(this.list[i], t) }, removeAll: function(e) { void 0 === e && (e = !1); for (var t = this.list.length; t--; ) if (this.list[t]) { var i = this.remove(this.list[t]); e && i.destroy() } this.position = 0, this.list = [] } }, Object.defineProperty(W.ArraySet.prototype, "total", { get: function() { return this.list.length } }), Object.defineProperty(W.ArraySet.prototype, "first", { get: function() { return (this.position = 0) < this.list.length ? this.list[0] : null } }), Object.defineProperty(W.ArraySet.prototype, "next", { get: function() { return this.position < this.list.length ? (this.position++, this.list[this.position]) : null } }), W.ArraySet.prototype.constructor = W.ArraySet, W.ArrayUtils = { getRandomItem: function(e, t, i) { if (null === e) return null; void 0 === t && (t = 0), void 0 === i && (i = e.length); var r = t + Math.floor(Math.random() * i); return void 0 === e[r] ? null : e[r] }, removeRandomItem: function(e, t, i) { if (null == e) return null; void 0 === t && (t = 0), void 0 === i && (i = e.length); var r = t + Math.floor(Math.random() * i); if (r < e.length) { var o = e.splice(r, 1); return void 0 === o[0] ? null : o[0] } return null }, shuffle: function(e) { for (var t = e.length - 1; 0 < t; t--) { var i = Math.floor(Math.random() * (t + 1)) , r = e[t]; e[t] = e[i], e[i] = r } return e }, transposeMatrix: function(e) { for (var t = e.length, i = e[0].length, r = new Array(i), o = 0; o < i; o++) { r[o] = new Array(t); for (var s = t - 1; -1 < s; s--) r[o][s] = e[s][o] } return r }, rotateMatrix: function(e, t) { if ("string" != typeof t && (t = (t % 360 + 360) % 360), 90 === t || -270 === t || "rotateLeft" === t) e = (e = W.ArrayUtils.transposeMatrix(e)).reverse(); else if (-90 === t || 270 === t || "rotateRight" === t) e = e.reverse(), e = W.ArrayUtils.transposeMatrix(e); else if (180 === Math.abs(t) || "rotate180" === t) { for (var i = 0; i < e.length; i++) e[i].reverse(); e = e.reverse() } return e }, findClosest: function(e, t) { if (!t.length) return NaN; if (1 === t.length || e < t[0]) return t[0]; for (var i = 1; t[i] < e; ) i++; var r = t[i - 1] , o = i < t.length ? t[i] : Number.POSITIVE_INFINITY; return o - e <= e - r ? o : r }, rotateRight: function(e) { var t = e.pop(); return e.unshift(t), t }, rotateLeft: function(e) { var t = e.shift(); return e.push(t), t }, rotate: function(e) { var t = e.shift(); return e.push(t), t }, numberArray: function(e, t) { for (var i = [], r = e; r <= t; r++) i.push(r); return i }, numberArrayStep: function(e, t, i) { null == e && (e = 0), null == t && (t = e, e = 0), void 0 === i && (i = 1); for (var r = [], o = Math.max(W.Math.roundAwayFromZero((t - e) / (i || 1)), 0), s = 0; s < o; s++) r.push(e), e += i; return r } }, W.LinkedList = function() { this.next = null, this.prev = null, this.first = null, this.last = null, this.total = 0 } , W.LinkedList.prototype = { add: function(e) { return 0 === this.total && null === this.first && null === this.last ? (this.first = e, this.last = e, ((this.next = e).prev = this).total++) : ((this.last.next = e).prev = this.last, this.last = e, this.total++), e }, reset: function() { this.first = null, this.last = null, this.next = null, this.prev = null, this.total = 0 }, remove: function(e) { if (1 === this.total) return this.reset(), void (e.next = e.prev = null); e === this.first ? this.first = this.first.next : e === this.last && (this.last = this.last.prev), e.prev && (e.prev.next = e.next), e.next && (e.next.prev = e.prev), e.next = e.prev = null, null === this.first && (this.last = null), this.total-- }, callAll: function(e) { if (this.first && this.last) for (var t = this.first; t && t[e] && t[e].call(t), (t = t.next) !== this.last.next; ) ; } }, W.LinkedList.prototype.constructor = W.LinkedList, W.Create = function(e) { this.game = e, this.bmd = null, this.canvas = null, this.ctx = null, this.palettes = [{ 0: "#000", 1: "#9D9D9D", 2: "#FFF", 3: "#BE2633", 4: "#E06F8B", 5: "#493C2B", 6: "#A46422", 7: "#EB8931", 8: "#F7E26B", 9: "#2F484E", A: "#44891A", B: "#A3CE27", C: "#1B2632", D: "#005784", E: "#31A2F2", F: "#B2DCEF" }, { 0: "#000", 1: "#191028", 2: "#46af45", 3: "#a1d685", 4: "#453e78", 5: "#7664fe", 6: "#833129", 7: "#9ec2e8", 8: "#dc534b", 9: "#e18d79", A: "#d6b97b", B: "#e9d8a1", C: "#216c4b", D: "#d365c8", E: "#afaab9", F: "#f5f4eb" }, { 0: "#000", 1: "#2234d1", 2: "#0c7e45", 3: "#44aacc", 4: "#8a3622", 5: "#5c2e78", 6: "#aa5c3d", 7: "#b5b5b5", 8: "#5e606e", 9: "#4c81fb", A: "#6cd947", B: "#7be2f9", C: "#eb8a60", D: "#e23d69", E: "#ffd93f", F: "#fff" }, { 0: "#000", 1: "#fff", 2: "#8b4131", 3: "#7bbdc5", 4: "#8b41ac", 5: "#6aac41", 6: "#3931a4", 7: "#d5de73", 8: "#945a20", 9: "#5a4100", A: "#bd736a", B: "#525252", C: "#838383", D: "#acee8b", E: "#7b73de", F: "#acacac" }, { 0: "#000", 1: "#191028", 2: "#46af45", 3: "#a1d685", 4: "#453e78", 5: "#7664fe", 6: "#833129", 7: "#9ec2e8", 8: "#dc534b", 9: "#e18d79", A: "#d6b97b", B: "#e9d8a1", C: "#216c4b", D: "#d365c8", E: "#afaab9", F: "#fff" }] } , W.Create.PALETTE_ARNE = 0, W.Create.PALETTE_JMP = 1, W.Create.PALETTE_CGA = 2, W.Create.PALETTE_C64 = 3, W.Create.PALETTE_JAPANESE_MACHINE = 4, W.Create.prototype = { texture: function(e, t, i, r, o) { void 0 === i && (i = 8), void 0 === r && (r = i), void 0 === o && (o = 0); var s = t[0].length * i , a = t.length * r; null === this.bmd && (this.bmd = this.game.make.bitmapData(), this.canvas = this.bmd.canvas, this.ctx = this.bmd.context), this.bmd.resize(s, a), this.bmd.clear(); for (var n = 0; n < t.length; n++) for (var h = t[n], c = 0; c < h.length; c++) { var l = h[c]; "." !== l && " " !== l && (this.ctx.fillStyle = this.palettes[o][l], this.ctx.fillRect(c * i, n * r, i, r)) } return this.bmd.generateTexture(e) }, grid: function(e, t, i, r, o, s) { null === this.bmd && (this.bmd = this.game.make.bitmapData(), this.canvas = this.bmd.canvas, this.ctx = this.bmd.context), this.bmd.resize(t, i), this.ctx.fillStyle = s; for (var a = 0; a < i; a += o) this.ctx.fillRect(0, a, t, 1); for (var n = 0; n < t; n += r) this.ctx.fillRect(n, 0, 1, i); return this.bmd.generateTexture(e) } }, W.Create.prototype.constructor = W.Create, W.FlexGrid = function(e, t, i) { this.game = e.game, this.manager = e, this.width = t, this.height = i, this.boundsCustom = new W.Rectangle(0,0,t,i), this.boundsFluid = new W.Rectangle(0,0,t,i), this.boundsFull = new W.Rectangle(0,0,t,i), this.boundsNone = new W.Rectangle(0,0,t,i), this.positionCustom = new W.Point(0,0), this.positionFluid = new W.Point(0,0), this.positionFull = new W.Point(0,0), this.positionNone = new W.Point(0,0), this.scaleCustom = new W.Point(1,1), this.scaleFluid = new W.Point(1,1), this.scaleFluidInversed = new W.Point(1,1), this.scaleFull = new W.Point(1,1), this.scaleNone = new W.Point(1,1), this.customWidth = 0, this.customHeight = 0, this.customOffsetX = 0, this.customOffsetY = 0, this.ratioH = t / i, this.ratioV = i / t, this.multiplier = 0, this.layers = [] } , W.FlexGrid.prototype = { setSize: function(e, t) { this.width = e, this.height = t, this.ratioH = e / t, this.ratioV = t / e, this.scaleNone = new W.Point(1,1), this.boundsNone.width = this.width, this.boundsNone.height = this.height, this.refresh() }, createCustomLayer: function(e, t, i, r) { void 0 === r && (r = !0), this.customWidth = e, this.customHeight = t, this.boundsCustom.width = e, this.boundsCustom.height = t; var o = new W.FlexLayer(this,this.positionCustom,this.boundsCustom,this.scaleCustom); return r && this.game.world.add(o), this.layers.push(o), void 0 !== i && null !== typeof i && o.addMultiple(i), o }, createFluidLayer: function(e, t) { void 0 === t && (t = !0); var i = new W.FlexLayer(this,this.positionFluid,this.boundsFluid,this.scaleFluid); return t && this.game.world.add(i), this.layers.push(i), void 0 !== e && null !== typeof e && i.addMultiple(e), i }, createFullLayer: function(e) { var t = new W.FlexLayer(this,this.positionFull,this.boundsFull,this.scaleFluid); return this.game.world.add(t), this.layers.push(t), void 0 !== e && t.addMultiple(e), t }, createFixedLayer: function(e) { var t = new W.FlexLayer(this,this.positionNone,this.boundsNone,this.scaleNone); return this.game.world.add(t), this.layers.push(t), void 0 !== e && t.addMultiple(e), t }, reset: function() { for (var e = this.layers.length; e--; ) this.layers[e].persist || (this.layers[e].position = null, this.layers[e].scale = null, this.layers.slice(e, 1)) }, onResize: function(e, t) { this.ratioH = e / t, this.ratioV = t / e, this.refresh(e, t) }, refresh: function() { this.multiplier = Math.min(this.manager.height / this.height, this.manager.width / this.width), this.boundsFluid.width = Math.round(this.width * this.multiplier), this.boundsFluid.height = Math.round(this.height * this.multiplier), this.scaleFluid.set(this.boundsFluid.width / this.width, this.boundsFluid.height / this.height), this.scaleFluidInversed.set(this.width / this.boundsFluid.width, this.height / this.boundsFluid.height), this.scaleFull.set(this.boundsFull.width / this.width, this.boundsFull.height / this.height), this.boundsFull.width = Math.round(this.manager.width * this.scaleFluidInversed.x), this.boundsFull.height = Math.round(this.manager.height * this.scaleFluidInversed.y), this.boundsFluid.centerOn(this.manager.bounds.centerX, this.manager.bounds.centerY), this.boundsNone.centerOn(this.manager.bounds.centerX, this.manager.bounds.centerY), this.positionFluid.set(this.boundsFluid.x, this.boundsFluid.y), this.positionNone.set(this.boundsNone.x, this.boundsNone.y) }, fitSprite: function(e) { this.manager.scaleSprite(e), e.x = this.manager.bounds.centerX, e.y = this.manager.bounds.centerY }, debug: function() { this.game.debug.text(this.boundsFluid.width + " x " + this.boundsFluid.height, this.boundsFluid.x + 4, this.boundsFluid.y + 16), this.game.debug.geom(this.boundsFluid, "rgba(255,0,0,0.9", !1) } }, W.FlexGrid.prototype.constructor = W.FlexGrid, W.FlexLayer = function(e, t, i, r) { W.Group.call(this, e.game, null, "__flexLayer" + e.game.rnd.uuid(), !1), this.manager = e.manager, this.grid = e, this.persist = !1, this.position = t, this.bounds = i, this.scale = r, this.topLeft = i.topLeft, this.topMiddle = new W.Point(i.halfWidth,0), this.topRight = i.topRight, this.bottomLeft = i.bottomLeft, this.bottomMiddle = new W.Point(i.halfWidth,i.bottom), this.bottomRight = i.bottomRight } , W.FlexLayer.prototype = Object.create(W.Group.prototype), W.FlexLayer.prototype.constructor = W.FlexLayer, W.FlexLayer.prototype.resize = function() {} , W.FlexLayer.prototype.debug = function() { this.game.debug.text(this.bounds.width + " x " + this.bounds.height, this.bounds.x + 4, this.bounds.y + 16), this.game.debug.geom(this.bounds, "rgba(0,0,255,0.9", !1), this.game.debug.geom(this.topLeft, "rgba(255,255,255,0.9"), this.game.debug.geom(this.topMiddle, "rgba(255,255,255,0.9"), this.game.debug.geom(this.topRight, "rgba(255,255,255,0.9") } , W.Color = { packPixel: function(e, t, i, r) { return W.Device.LITTLE_ENDIAN ? (r << 24 | i << 16 | t << 8 | e) >>> 0 : (e << 24 | t << 16 | i << 8 | r) >>> 0 }, unpackPixel: function(e, t, i, r) { return null == t && (t = W.Color.createColor()), null == i && (i = !1), null == r && (r = !1), W.Device.LITTLE_ENDIAN ? (t.a = (4278190080 & e) >>> 24, t.b = (16711680 & e) >>> 16, t.g = (65280 & e) >>> 8, t.r = 255 & e) : (t.r = (4278190080 & e) >>> 24, t.g = (16711680 & e) >>> 16, t.b = (65280 & e) >>> 8, t.a = 255 & e), t.color = e, t.rgba = "rgba(" + t.r + "," + t.g + "," + t.b + "," + t.a / 255 + ")", i && W.Color.RGBtoHSL(t.r, t.g, t.b, t), r && W.Color.RGBtoHSV(t.r, t.g, t.b, t), t }, fromRGBA: function(e, t) { return t || (t = W.Color.createColor()), t.r = (4278190080 & e) >>> 24, t.g = (16711680 & e) >>> 16, t.b = (65280 & e) >>> 8, t.a = 255 & e, t.rgba = "rgba(" + t.r + "," + t.g + "," + t.b + "," + t.a + ")", t }, toRGBA: function(e, t, i, r) { return e << 24 | t << 16 | i << 8 | r }, toABGR: function(e, t, i, r) { return (r << 24 | i << 16 | t << 8 | e) >>> 0 }, RGBtoHSL: function(e, t, i, r) { r || (r = W.Color.createColor(e, t, i, 1)), e /= 255, t /= 255, i /= 255; var o = Math.min(e, t, i) , s = Math.max(e, t, i); if (r.h = 0, r.s = 0, r.l = (s + o) / 2, s !== o) { var a = s - o; r.s = .5 < r.l ? a / (2 - s - o) : a / (s + o), s === e ? r.h = (t - i) / a + (t < i ? 6 : 0) : s === t ? r.h = (i - e) / a + 2 : s === i && (r.h = (e - t) / a + 4), r.h /= 6 } return r }, HSLtoRGB: function(e, t, i, r) { if (r ? (r.r = i, r.g = i, r.b = i) : r = W.Color.createColor(i, i, i), 0 !== t) { var o = i < .5 ? i * (1 + t) : i + t - i * t , s = 2 * i - o; r.r = W.Color.hueToColor(s, o, e + 1 / 3), r.g = W.Color.hueToColor(s, o, e), r.b = W.Color.hueToColor(s, o, e - 1 / 3) } return r.r = Math.floor(255 * r.r | 0), r.g = Math.floor(255 * r.g | 0), r.b = Math.floor(255 * r.b | 0), W.Color.updateColor(r), r }, RGBtoHSV: function(e, t, i, r) { r || (r = W.Color.createColor(e, t, i, 255)), e /= 255, t /= 255, i /= 255; var o = Math.min(e, t, i) , s = Math.max(e, t, i) , a = s - o; return r.h = 0, r.s = 0 === s ? 0 : a / s, (r.v = s) !== o && (s === e ? r.h = (t - i) / a + (t < i ? 6 : 0) : s === t ? r.h = (i - e) / a + 2 : s === i && (r.h = (e - t) / a + 4), r.h /= 6), r }, HSVtoRGB: function(e, t, i, r) { var o, s, a; void 0 === r && (r = W.Color.createColor(0, 0, 0, 1, e, t, 0, i)); var n = Math.floor(6 * e) , h = 6 * e - n , c = i * (1 - t) , l = i * (1 - h * t) , m = i * (1 - (1 - h) * t); switch (n % 6) { case 0: o = i, s = m, a = c; break; case 1: o = l, s = i, a = c; break; case 2: o = c, s = i, a = m; break; case 3: o = c, s = l, a = i; break; case 4: o = m, s = c, a = i; break; case 5: o = i, s = c, a = l } return r.r = Math.floor(255 * o), r.g = Math.floor(255 * s), r.b = Math.floor(255 * a), W.Color.updateColor(r), r }, hueToColor: function(e, t, i) { return i < 0 && (i += 1), 1 < i && (i -= 1), i < 1 / 6 ? e + 6 * (t - e) * i : i < .5 ? t : i < 2 / 3 ? e + (t - e) * (2 / 3 - i) * 6 : e }, createColor: function(e, t, i, r, o, s, a, n) { var h = { r: e || 0, g: t || 0, b: i || 0, a: r || 1, h: o || 0, s: s || 0, l: a || 0, v: n || 0, color: 0, color32: 0, rgba: "" }; return W.Color.updateColor(h) }, updateColor: function(e) { return e.rgba = "rgba(" + e.r.toString() + "," + e.g.toString() + "," + e.b.toString() + "," + e.a.toString() + ")", e.color = W.Color.getColor(e.r, e.g, e.b), e.color32 = W.Color.getColor32(255 * e.a, e.r, e.g, e.b), e }, getColor32: function(e, t, i, r) { return e << 24 | t << 16 | i << 8 | r }, getColor: function(e, t, i) { return e << 16 | t << 8 | i }, RGBtoString: function(e, t, i, r, o) { return void 0 === r && (r = 255), void 0 === o && (o = "#"), "#" === o ? "#" + ((1 << 24) + (e << 16) + (t << 8) + i).toString(16).slice(1) : "0x" + W.Color.componentToHex(r) + W.Color.componentToHex(e) + W.Color.componentToHex(t) + W.Color.componentToHex(i) }, hexToRGB: function(e) { var t = W.Color.hexToColor(e); if (t) return W.Color.getColor32(t.a, t.r, t.g, t.b) }, hexToColor: function(e, t) { e = e.replace(/^(?:#|0x)?([a-f\d])([a-f\d])([a-f\d])$/i, function(e, t, i, r) { return t + t + i + i + r + r }); var i = /^(?:#|0x)?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e); if (i) { var r = parseInt(i[1], 16) , o = parseInt(i[2], 16) , s = parseInt(i[3], 16); t ? (t.r = r, t.g = o, t.b = s) : t = W.Color.createColor(r, o, s) } return t }, webToColor: function(e, t) { t || (t = W.Color.createColor()); var i = /^rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*(\d+(?:\.\d+)?))?\s*\)$/.exec(e); return i && (t.r = parseInt(i[1], 10), t.g = parseInt(i[2], 10), t.b = parseInt(i[3], 10), t.a = void 0 !== i[4] ? parseFloat(i[4]) : 1, W.Color.updateColor(t)), t }, valueToColor: function(e, t) { if (t || (t = W.Color.createColor()), "string" == typeof e) return 0 === e.indexOf("rgb") ? W.Color.webToColor(e, t) : (t.a = 1, W.Color.hexToColor(e, t)); if ("number" != typeof e) return t; var i = W.Color.getRGB(e); return t.r = i.r, t.g = i.g, t.b = i.b, t.a = i.a / 255, t }, componentToHex: function(e) { var t = e.toString(16); return 1 === t.length ? "0" + t : t }, HSVColorWheel: function(e, t) { void 0 === e && (e = 1), void 0 === t && (t = 1); for (var i = [], r = 0; r <= 359; r++) i.push(W.Color.HSVtoRGB(r / 359, e, t)); return i }, HSLColorWheel: function(e, t) { void 0 === e && (e = .5), void 0 === t && (t = .5); for (var i = [], r = 0; r <= 359; r++) i.push(W.Color.HSLtoRGB(r / 359, e, t)); return i }, interpolateColor: function(e, t, i, r, o) { void 0 === o && (o = 255); var s = W.Color.getRGB(e) , a = W.Color.getRGB(t) , n = (a.red - s.red) * r / i + s.red , h = (a.green - s.green) * r / i + s.green , c = (a.blue - s.blue) * r / i + s.blue; return W.Color.getColor32(o, n, h, c) }, interpolateColorWithRGB: function(e, t, i, r, o, s) { var a = W.Color.getRGB(e) , n = (t - a.red) * s / o + a.red , h = (i - a.green) * s / o + a.green , c = (r - a.blue) * s / o + a.blue; return W.Color.getColor(n, h, c) }, interpolateRGB: function(e, t, i, r, o, s, a, n) { var h = (r - e) * n / a + e , c = (o - t) * n / a + t , l = (s - i) * n / a + i; return W.Color.getColor(h, c, l) }, getRandomColor: function(e, t, i) { if (void 0 === e && (e = 0), void 0 === t && (t = 255), void 0 === i && (i = 255), 255 < t || t < e) return W.Color.getColor(255, 255, 255); var r = e + Math.round(Math.random() * (t - e)) , o = e + Math.round(Math.random() * (t - e)) , s = e + Math.round(Math.random() * (t - e)); return W.Color.getColor32(i, r, o, s) }, getRGB: function(e) { return 16777215 < e ? { alpha: e >>> 24, red: e >> 16 & 255, green: e >> 8 & 255, blue: 255 & e, a: e >>> 24, r: e >> 16 & 255, g: e >> 8 & 255, b: 255 & e } : { alpha: 255, red: e >> 16 & 255, green: e >> 8 & 255, blue: 255 & e, a: 255, r: e >> 16 & 255, g: e >> 8 & 255, b: 255 & e } }, getWebRGB: function(e) { if ("object" == typeof e) return "rgba(" + e.r.toString() + "," + e.g.toString() + "," + e.b.toString() + "," + (e.a / 255).toString() + ")"; var t = W.Color.getRGB(e); return "rgba(" + t.r.toString() + "," + t.g.toString() + "," + t.b.toString() + "," + (t.a / 255).toString() + ")" }, getAlpha: function(e) { return e >>> 24 }, getAlphaFloat: function(e) { return (e >>> 24) / 255 }, getRed: function(e) { return e >> 16 & 255 }, getGreen: function(e) { return e >> 8 & 255 }, getBlue: function(e) { return 255 & e }, blendNormal: function(e) { return e }, blendLighten: function(e, t) { return e < t ? t : e }, blendDarken: function(e, t) { return e < t ? e : t }, blendMultiply: function(e, t) { return e * t / 255 }, blendAverage: function(e, t) { return (e + t) / 2 }, blendAdd: function(e, t) { return Math.min(255, e + t) }, blendSubtract: function(e, t) { return Math.max(0, e + t - 255) }, blendDifference: function(e, t) { return Math.abs(e - t) }, blendNegation: function(e, t) { return 255 - Math.abs(255 - e - t) }, blendScreen: function(e, t) { return 255 - ((255 - e) * (255 - t) >> 8) }, blendExclusion: function(e, t) { return e + t - 2 * e * t / 255 }, blendOverlay: function(e, t) { return t < 128 ? 2 * e * t / 255 : 255 - 2 * (255 - e) * (255 - t) / 255 }, blendSoftLight: function(e, t) { return t < 128 ? 2 * (64 + (e >> 1)) * (t / 255) : 255 - 2 * (255 - (64 + (e >> 1))) * (255 - t) / 255 }, blendHardLight: function(e, t) { return W.Color.blendOverlay(t, e) }, blendColorDodge: function(e, t) { return 255 === t ? t : Math.min(255, (e << 8) / (255 - t)) }, blendColorBurn: function(e, t) { return 0 === t ? t : Math.max(0, 255 - (255 - e << 8) / t) }, blendLinearDodge: function(e, t) { return W.Color.blendAdd(e, t) }, blendLinearBurn: function(e, t) { return W.Color.blendSubtract(e, t) }, blendLinearLight: function(e, t) { return t < 128 ? W.Color.blendLinearBurn(e, 2 * t) : W.Color.blendLinearDodge(e, 2 * (t - 128)) }, blendVividLight: function(e, t) { return t < 128 ? W.Color.blendColorBurn(e, 2 * t) : W.Color.blendColorDodge(e, 2 * (t - 128)) }, blendPinLight: function(e, t) { return t < 128 ? W.Color.blendDarken(e, 2 * t) : W.Color.blendLighten(e, 2 * (t - 128)) }, blendHardMix: function(e, t) { return W.Color.blendVividLight(e, t) < 128 ? 0 : 255 }, blendReflect: function(e, t) { return 255 === t ? t : Math.min(255, e * e / (255 - t)) }, blendGlow: function(e, t) { return W.Color.blendReflect(t, e) }, blendPhoenix: function(e, t) { return Math.min(e, t) - Math.max(e, t) + 255 } }, W.Physics = function(e, t) { t = t || {}, this.game = e, this.config = t, this.arcade = null, this.p2 = null, this.ninja = null, this.box2d = null, this.chipmunk = null, this.matter = null, this.parseConfig() } , W.Physics.ARCADE = 0, W.Physics.P2JS = 1, W.Physics.NINJA = 2, W.Physics.BOX2D = 3, W.Physics.CHIPMUNK = 4, W.Physics.MATTERJS = 5, W.Physics.prototype = { parseConfig: function() { this.config.hasOwnProperty("arcade") && !0 !== this.config.arcade || !W.Physics.hasOwnProperty("Arcade") || (this.arcade = new W.Physics.Arcade(this.game)), this.config.hasOwnProperty("ninja") && !0 === this.config.ninja && W.Physics.hasOwnProperty("Ninja") && (this.ninja = new W.Physics.Ninja(this.game)), this.config.hasOwnProperty("p2") && !0 === this.config.p2 && W.Physics.hasOwnProperty("P2") && (this.p2 = new W.Physics.P2(this.game,this.config)), this.config.hasOwnProperty("box2d") && !0 === this.config.box2d && W.Physics.hasOwnProperty("BOX2D") && (this.box2d = new W.Physics.BOX2D(this.game,this.config)), this.config.hasOwnProperty("matter") && !0 === this.config.matter && W.Physics.hasOwnProperty("Matter") && (this.matter = new W.Physics.Matter(this.game,this.config)) }, startSystem: function(e) { e === W.Physics.ARCADE ? this.arcade = new W.Physics.Arcade(this.game) : e === W.Physics.P2JS ? null === this.p2 ? this.p2 = new W.Physics.P2(this.game,this.config) : this.p2.reset() : e === W.Physics.NINJA ? this.ninja = new W.Physics.Ninja(this.game) : e === W.Physics.BOX2D ? null === this.box2d ? this.box2d = new W.Physics.Box2D(this.game,this.config) : this.box2d.reset() : e === W.Physics.MATTERJS && (null === this.matter ? this.matter = new W.Physics.Matter(this.game,this.config) : this.matter.reset()) }, enable: function(e, t, i) { void 0 === t && (t = W.Physics.ARCADE), void 0 === i && (i = !1), t === W.Physics.ARCADE ? this.arcade.enable(e) : t === W.Physics.P2JS && this.p2 ? this.p2.enable(e, i) : t === W.Physics.NINJA && this.ninja ? this.ninja.enableAABB(e) : t === W.Physics.BOX2D && this.box2d ? this.box2d.enable(e) : t === W.Physics.MATTERJS && this.matter && this.matter.enable(e) }, preUpdate: function() { this.p2 && this.p2.preUpdate(), this.box2d && this.box2d.preUpdate(), this.matter && this.matter.preUpdate() }, update: function() { this.p2 && this.p2.update(), this.box2d && this.box2d.update(), this.matter && this.matter.update() }, setBoundsToWorld: function() { this.arcade && this.arcade.setBoundsToWorld(), this.ninja && this.ninja.setBoundsToWorld(), this.p2 && this.p2.setBoundsToWorld(), this.box2d && this.box2d.setBoundsToWorld(), this.matter && this.matter.setBoundsToWorld() }, clear: function() { this.p2 && this.p2.clear(), this.box2d && this.box2d.clear(), this.matter && this.matter.clear() }, reset: function() { this.p2 && this.p2.reset(), this.box2d && this.box2d.reset(), this.matter && this.matter.reset() }, destroy: function() { this.p2 && this.p2.destroy(), this.box2d && this.box2d.destroy(), this.matter && this.matter.destroy(), this.arcade = null, this.ninja = null, this.p2 = null, this.box2d = null, this.matter = null } }, W.Physics.prototype.constructor = W.Physics, W.Physics.Arcade = function(e) { this.game = e, this.gravity = new W.Point, this.bounds = new W.Rectangle(0,0,e.world.width,e.world.height), this.checkCollision = { up: !0, down: !0, left: !0, right: !0 }, this.maxObjects = 10, this.maxLevels = 4, this.OVERLAP_BIAS = 4, this.forceX = !1, this.sortDirection = W.Physics.Arcade.LEFT_RIGHT, this.skipQuadTree = !0, this.isPaused = !1, this.quadTree = new W.QuadTree(this.game.world.bounds.x,this.game.world.bounds.y,this.game.world.bounds.width,this.game.world.bounds.height,this.maxObjects,this.maxLevels), this._total = 0, this.setBoundsToWorld() } , W.Physics.Arcade.prototype.constructor = W.Physics.Arcade, W.Physics.Arcade.SORT_NONE = 0, W.Physics.Arcade.LEFT_RIGHT = 1, W.Physics.Arcade.RIGHT_LEFT = 2, W.Physics.Arcade.TOP_BOTTOM = 3, W.Physics.Arcade.BOTTOM_TOP = 4, W.Physics.Arcade.prototype = { setBounds: function(e, t, i, r) { this.bounds.setTo(e, t, i, r) }, setBoundsToWorld: function() { this.bounds.copyFrom(this.game.world.bounds) }, enable: function(e, t) { void 0 === t && (t = !0); var i = 1; if (Array.isArray(e)) for (i = e.length; i--; ) e[i]instanceof W.Group ? this.enable(e[i].children, t) : (this.enableBody(e[i]), t && e[i].hasOwnProperty("children") && 0 < e[i].children.length && this.enable(e[i], !0)); else e instanceof W.Group ? this.enable(e.children, t) : (this.enableBody(e), t && e.hasOwnProperty("children") && 0 < e.children.length && this.enable(e.children, !0)) }, enableBody: function(e) { e.hasOwnProperty("body") && null === e.body && (e.body = new W.Physics.Arcade.Body(e), e.parent && e.parent instanceof W.Group && e.parent.addToHash(e)) }, updateMotion: function(e) { var t = this.computeVelocity(0, e, e.angularVelocity, e.angularAcceleration, e.angularDrag, e.maxAngular) - e.angularVelocity; e.angularVelocity += t, e.rotation += e.angularVelocity * this.game.time.physicsElapsed, e.velocity.x = this.computeVelocity(1, e, e.velocity.x, e.acceleration.x, e.drag.x, e.maxVelocity.x), e.velocity.y = this.computeVelocity(2, e, e.velocity.y, e.acceleration.y, e.drag.y, e.maxVelocity.y) }, computeVelocity: function(e, t, i, r, o, s) { return void 0 === s && (s = 1e4), 1 === e && t.allowGravity ? i += (this.gravity.x + t.gravity.x) * this.game.time.physicsElapsed : 2 === e && t.allowGravity && (i += (this.gravity.y + t.gravity.y) * this.game.time.physicsElapsed), r ? i += r * this.game.time.physicsElapsed : o && (0 < i - (o *= this.game.time.physicsElapsed) ? i -= o : i + o < 0 ? i += o : i = 0), s < i ? i = s : i < -s && (i = -s), i }, overlap: function(e, t, i, r, o) { if (i = i || null, r = r || null, o = o || i, this._total = 0, !Array.isArray(e) && Array.isArray(t)) for (var s = 0; s < t.length; s++) this.collideHandler(e, t[s], i, r, o, !0); else if (Array.isArray(e) && !Array.isArray(t)) for (s = 0; s < e.length; s++) this.collideHandler(e[s], t, i, r, o, !0); else if (Array.isArray(e) && Array.isArray(t)) for (s = 0; s < e.length; s++) for (var a = 0; a < t.length; a++) this.collideHandler(e[s], t[a], i, r, o, !0); else this.collideHandler(e, t, i, r, o, !0); return 0 < this._total }, collide: function(e, t, i, r, o) { if (i = i || null, r = r || null, o = o || i, this._total = 0, !Array.isArray(e) && Array.isArray(t)) for (var s = 0; s < t.length; s++) this.collideHandler(e, t[s], i, r, o, !1); else if (Array.isArray(e) && !Array.isArray(t)) for (s = 0; s < e.length; s++) this.collideHandler(e[s], t, i, r, o, !1); else if (Array.isArray(e) && Array.isArray(t)) for (s = 0; s < e.length; s++) for (var a = 0; a < t.length; a++) this.collideHandler(e[s], t[a], i, r, o, !1); else this.collideHandler(e, t, i, r, o, !1); return 0 < this._total }, sortLeftRight: function(e, t) { return e.body && t.body ? e.body.x - t.body.x : 0 }, sortRightLeft: function(e, t) { return e.body && t.body ? t.body.x - e.body.x : 0 }, sortTopBottom: function(e, t) { return e.body && t.body ? e.body.y - t.body.y : 0 }, sortBottomTop: function(e, t) { return e.body && t.body ? t.body.y - e.body.y : 0 }, sort: function(e, t) { null !== e.physicsSortDirection ? t = e.physicsSortDirection : void 0 === t && (t = this.sortDirection), t === W.Physics.Arcade.LEFT_RIGHT ? e.hash.sort(this.sortLeftRight) : t === W.Physics.Arcade.RIGHT_LEFT ? e.hash.sort(this.sortRightLeft) : t === W.Physics.Arcade.TOP_BOTTOM ? e.hash.sort(this.sortTopBottom) : t === W.Physics.Arcade.BOTTOM_TOP && e.hash.sort(this.sortBottomTop) }, collideHandler: function(e, t, i, r, o, s) { if (void 0 === t && e.physicsType === W.GROUP) return this.sort(e), void this.collideGroupVsSelf(e, i, r, o, s); e && t && e.exists && t.exists && (this.sortDirection !== W.Physics.Arcade.SORT_NONE && (e.physicsType === W.GROUP && this.sort(e), t.physicsType === W.GROUP && this.sort(t)), e.physicsType === W.SPRITE ? t.physicsType === W.SPRITE ? this.collideSpriteVsSprite(e, t, i, r, o, s) : t.physicsType === W.GROUP ? this.collideSpriteVsGroup(e, t, i, r, o, s) : t.physicsType === W.TILEMAPLAYER && this.collideSpriteVsTilemapLayer(e, t, i, r, o, s) : e.physicsType === W.GROUP ? t.physicsType === W.SPRITE ? this.collideSpriteVsGroup(t, e, i, r, o, s) : t.physicsType === W.GROUP ? this.collideGroupVsGroup(e, t, i, r, o, s) : t.physicsType === W.TILEMAPLAYER && this.collideGroupVsTilemapLayer(e, t, i, r, o, s) : e.physicsType === W.TILEMAPLAYER && (t.physicsType === W.SPRITE ? this.collideSpriteVsTilemapLayer(t, e, i, r, o, s) : t.physicsType === W.GROUP && this.collideGroupVsTilemapLayer(t, e, i, r, o, s))) }, collideSpriteVsSprite: function(e, t, i, r, o, s) { return !(!e.body || !t.body) && (this.separate(e.body, t.body, r, o, s) && (i && i.call(o, e, t), this._total++), !0) }, collideSpriteVsGroup: function(e, t, i, r, o, s) { if (0 !== t.length && e.body) if (this.skipQuadTree || e.body.skipQuadTree) for (var a = {}, n = 0; n < t.hash.length; n++) { var h = t.hash[n]; if (h && h.exists && h.body) { if (a = h.body.getBounds(a), this.sortDirection === W.Physics.Arcade.LEFT_RIGHT) { if (e.body.right < a.x) break; if (a.right < e.body.x) continue } else if (this.sortDirection === W.Physics.Arcade.RIGHT_LEFT) { if (e.body.x > a.right) break; if (a.x > e.body.right) continue } else if (this.sortDirection === W.Physics.Arcade.TOP_BOTTOM) { if (e.body.bottom < a.y) break; if (a.bottom < e.body.y) continue } else if (this.sortDirection === W.Physics.Arcade.BOTTOM_TOP) { if (e.body.y > a.bottom) break; if (a.y > e.body.bottom) continue } this.collideSpriteVsSprite(e, h, i, r, o, s) } } else { this.quadTree.clear(), this.quadTree.reset(this.game.world.bounds.x, this.game.world.bounds.y, this.game.world.bounds.width, this.game.world.bounds.height, this.maxObjects, this.maxLevels), this.quadTree.populate(t); var c = this.quadTree.retrieve(e); for (n = 0; n < c.length; n++) this.separate(e.body, c[n], r, o, s) && (i && i.call(o, e, c[n].sprite), this._total++) } }, collideGroupVsSelf: function(e, t, i, r, o) { if (0 !== e.length) for (var s = 0; s < e.hash.length; s++) { var a = {} , n = e.hash[s]; if (n && n.exists && n.body) { a = n.body.getBounds(a); for (var h = s + 1; h < e.hash.length; h++) { var c = {} , l = e.hash[h]; if (l && l.exists && l.body) { if (c = l.body.getBounds(c), this.sortDirection === W.Physics.Arcade.LEFT_RIGHT) { if (a.right < c.x) break; if (c.right < a.x) continue } else if (this.sortDirection === W.Physics.Arcade.RIGHT_LEFT) { if (a.x > c.right) continue; if (c.x > a.right) break } else if (this.sortDirection === W.Physics.Arcade.TOP_BOTTOM) { if (a.bottom < c.y) continue; if (c.bottom < a.y) break } else if (this.sortDirection === W.Physics.Arcade.BOTTOM_TOP) { if (a.y > c.bottom) continue; if (c.y > n.body.bottom) break } this.collideSpriteVsSprite(n, l, t, i, r, o) } } } } }, collideGroupVsGroup: function(e, t, i, r, o, s) { if (0 !== e.length && 0 !== t.length) for (var a = 0; a < e.children.length; a++) e.children[a].exists && (e.children[a].physicsType === W.GROUP ? this.collideGroupVsGroup(e.children[a], t, i, r, o, s) : this.collideSpriteVsGroup(e.children[a], t, i, r, o, s)) }, separate: function(e, t, i, r, o) { if (!e.enable || !t.enable || e.checkCollision.none || t.checkCollision.none || !this.intersects(e, t)) return !1; if (i && !1 === i.call(r, e.sprite, t.sprite)) return !1; if (e.isCircle && t.isCircle) return this.separateCircle(e, t, o); if (e.isCircle !== t.isCircle) { var s = e.isCircle ? t : e , a = e.isCircle ? e : t , n = s.x , h = s.y , c = s.right , l = s.bottom , m = a.x + a.radius , u = a.y + a.radius; if ((u < h || l < u) && (m < n || c < m)) return this.separateCircle(e, t, o) } var d = !1 , p = !1; this.forceX || Math.abs(this.gravity.y + e.gravity.y) < Math.abs(this.gravity.x + e.gravity.x) ? (d = this.separateX(e, t, o), this.intersects(e, t) && (p = this.separateY(e, t, o))) : (p = this.separateY(e, t, o), this.intersects(e, t) && (d = this.separateX(e, t, o))); var f = d || p; return f && (o ? (e.onOverlap && e.onOverlap.dispatch(e.sprite, t.sprite), t.onOverlap && t.onOverlap.dispatch(t.sprite, e.sprite)) : (e.onCollide && e.onCollide.dispatch(e.sprite, t.sprite), t.onCollide && t.onCollide.dispatch(t.sprite, e.sprite))), f }, intersects: function(e, t) { return e !== t && (e.isCircle ? t.isCircle ? W.Math.distance(e.center.x, e.center.y, t.center.x, t.center.y) <= e.radius + t.radius : this.circleBodyIntersects(e, t) : t.isCircle ? this.circleBodyIntersects(t, e) : !(e.right <= t.position.x) && (!(e.bottom <= t.position.y) && (!(e.position.x >= t.right) && !(e.position.y >= t.bottom)))) }, circleBodyIntersects: function(e, t) { var i = W.Math.clamp(e.center.x, t.left, t.right) , r = W.Math.clamp(e.center.y, t.top, t.bottom); return (e.center.x - i) * (e.center.x - i) + (e.center.y - r) * (e.center.y - r) <= e.radius * e.radius }, separateCircle: function(e, t, i) { this.getOverlapX(e, t), this.getOverlapY(e, t); var r = t.center.x - e.center.x , o = t.center.y - e.center.y , s = Math.atan2(o, r) , a = 0; if (e.isCircle !== t.isCircle) { var n = { x: t.isCircle ? e.position.x : t.position.x, y: t.isCircle ? e.position.y : t.position.y, right: t.isCircle ? e.right : t.right, bottom: t.isCircle ? e.bottom : t.bottom } , h = { x: e.isCircle ? e.position.x + e.radius : t.position.x + t.radius, y: e.isCircle ? e.position.y + e.radius : t.position.y + t.radius, radius: e.isCircle ? e.radius : t.radius }; h.y < n.y ? h.x < n.x ? a = W.Math.distance(h.x, h.y, n.x, n.y) - h.radius : n.right < h.x && (a = W.Math.distance(h.x, h.y, n.right, n.y) - h.radius) : n.bottom < h.y && (h.x < n.x ? a = W.Math.distance(h.x, h.y, n.x, n.bottom) - h.radius : n.right < h.x && (a = W.Math.distance(h.x, h.y, n.right, n.bottom) - h.radius)), a *= -1 } else a = e.radius + t.radius - W.Math.distance(e.center.x, e.center.y, t.center.x, t.center.y); if (i || 0 === a || e.immovable && t.immovable || e.customSeparateX || t.customSeparateX) return 0 !== a && (e.onOverlap && e.onOverlap.dispatch(e.sprite, t.sprite), t.onOverlap && t.onOverlap.dispatch(t.sprite, e.sprite)), 0 !== a; var c = e.velocity.x * Math.cos(s) + e.velocity.y * Math.sin(s) , l = e.velocity.x * Math.sin(s) - e.velocity.y * Math.cos(s) , m = t.velocity.x * Math.cos(s) + t.velocity.y * Math.sin(s) , u = t.velocity.x * Math.sin(s) - t.velocity.y * Math.cos(s) , d = ((e.mass - t.mass) * c + 2 * t.mass * m) / (e.mass + t.mass) , p = (2 * e.mass * c + (t.mass - e.mass) * m) / (e.mass + t.mass); return e.immovable || (e.velocity.x = (d * Math.cos(s) - l * Math.sin(s)) * e.bounce.x, e.velocity.y = (l * Math.cos(s) + d * Math.sin(s)) * e.bounce.y), t.immovable || (t.velocity.x = (p * Math.cos(s) - u * Math.sin(s)) * t.bounce.x, t.velocity.y = (u * Math.cos(s) + p * Math.sin(s)) * t.bounce.y), Math.abs(s) < Math.PI / 2 ? 0 < e.velocity.x && !e.immovable && t.velocity.x > e.velocity.x ? e.velocity.x *= -1 : t.velocity.x < 0 && !t.immovable && e.velocity.x < t.velocity.x ? t.velocity.x *= -1 : 0 < e.velocity.y && !e.immovable && t.velocity.y > e.velocity.y ? e.velocity.y *= -1 : t.velocity.y < 0 && !t.immovable && e.velocity.y < t.velocity.y && (t.velocity.y *= -1) : Math.abs(s) > Math.PI / 2 && (e.velocity.x < 0 && !e.immovable && t.velocity.x < e.velocity.x ? e.velocity.x *= -1 : 0 < t.velocity.x && !t.immovable && e.velocity.x > t.velocity.x ? t.velocity.x *= -1 : e.velocity.y < 0 && !e.immovable && t.velocity.y < e.velocity.y ? e.velocity.y *= -1 : 0 < t.velocity.y && !t.immovable && e.velocity.x > t.velocity.y && (t.velocity.y *= -1)), e.immovable || (e.x += e.velocity.x * this.game.time.physicsElapsed - a * Math.cos(s), e.y += e.velocity.y * this.game.time.physicsElapsed - a * Math.sin(s)), t.immovable || (t.x += t.velocity.x * this.game.time.physicsElapsed + a * Math.cos(s), t.y += t.velocity.y * this.game.time.physicsElapsed + a * Math.sin(s)), e.onCollide && e.onCollide.dispatch(e.sprite, t.sprite), t.onCollide && t.onCollide.dispatch(t.sprite, e.sprite), !0 }, getOverlapX: function(e, t, i) { var r = 0 , o = e.deltaAbsX() + t.deltaAbsX() + this.OVERLAP_BIAS; return 0 === e.deltaX() && 0 === t.deltaX() ? (e.embedded = !0, t.embedded = !0) : e.deltaX() > t.deltaX() ? o < (r = e.right - t.x) && !i || !1 === e.checkCollision.right || !1 === t.checkCollision.left ? r = 0 : (e.touching.none = !1, e.touching.right = !0, t.touching.none = !1, t.touching.left = !0) : e.deltaX() < t.deltaX() && (o < -(r = e.x - t.width - t.x) && !i || !1 === e.checkCollision.left || !1 === t.checkCollision.right ? r = 0 : (e.touching.none = !1, e.touching.left = !0, t.touching.none = !1, t.touching.right = !0)), e.overlapX = r, t.overlapX = r }, getOverlapY: function(e, t, i) { var r = 0 , o = e.deltaAbsY() + t.deltaAbsY() + this.OVERLAP_BIAS; return 0 === e.deltaY() && 0 === t.deltaY() ? (e.embedded = !0, t.embedded = !0) : e.deltaY() > t.deltaY() ? o < (r = e.bottom - t.y) && !i || !1 === e.checkCollision.down || !1 === t.checkCollision.up ? r = 0 : (e.touching.none = !1, e.touching.down = !0, t.touching.none = !1, t.touching.up = !0) : e.deltaY() < t.deltaY() && (o < -(r = e.y - t.bottom) && !i || !1 === e.checkCollision.up || !1 === t.checkCollision.down ? r = 0 : (e.touching.none = !1, e.touching.up = !0, t.touching.none = !1, t.touching.down = !0)), e.overlapY = r, t.overlapY = r }, separateX: function(e, t, i) { var r = this.getOverlapX(e, t, i); if (i || 0 === r || e.immovable && t.immovable || e.customSeparateX || t.customSeparateX) return 0 !== r || e.embedded && t.embedded; var o = e.velocity.x , s = t.velocity.x; if (e.immovable || t.immovable) e.immovable ? (t.x += r, t.velocity.x = o - s * t.bounce.x, e.moves && (t.y += (e.y - e.prev.y) * e.friction.y)) : (e.x -= r, e.velocity.x = s - o * e.bounce.x, t.moves && (e.y += (t.y - t.prev.y) * t.friction.y)); else { r *= .5, e.x -= r, t.x += r; var a = Math.sqrt(s * s * t.mass / e.mass) * (0 < s ? 1 : -1) , n = Math.sqrt(o * o * e.mass / t.mass) * (0 < o ? 1 : -1) , h = .5 * (a + n); a -= h, n -= h, e.velocity.x = h + a * e.bounce.x, t.velocity.x = h + n * t.bounce.x } return !0 }, separateY: function(e, t, i) { var r = this.getOverlapY(e, t, i); if (i || 0 === r || e.immovable && t.immovable || e.customSeparateY || t.customSeparateY) return 0 !== r || e.embedded && t.embedded; var o = e.velocity.y , s = t.velocity.y; if (e.immovable || t.immovable) e.immovable ? (t.y += r, t.velocity.y = o - s * t.bounce.y, e.moves && (t.x += (e.x - e.prev.x) * e.friction.x)) : (e.y -= r, e.velocity.y = s - o * e.bounce.y, t.moves && (e.x += (t.x - t.prev.x) * t.friction.x)); else { r *= .5, e.y -= r, t.y += r; var a = Math.sqrt(s * s * t.mass / e.mass) * (0 < s ? 1 : -1) , n = Math.sqrt(o * o * e.mass / t.mass) * (0 < o ? 1 : -1) , h = .5 * (a + n); a -= h, n -= h, e.velocity.y = h + a * e.bounce.y, t.velocity.y = h + n * t.bounce.y } return !0 }, getObjectsUnderPointer: function(e, t, i, r) { if (0 !== t.length && e.exists) return this.getObjectsAtLocation(e.x, e.y, t, i, r, e) }, getObjectsAtLocation: function(e, t, i, r, o, s) { this.quadTree.clear(), this.quadTree.reset(this.game.world.bounds.x, this.game.world.bounds.y, this.game.world.bounds.width, this.game.world.bounds.height, this.maxObjects, this.maxLevels), this.quadTree.populate(i); for (var a = new W.Rectangle(e,t,1,1), n = [], h = this.quadTree.retrieve(a), c = 0; c < h.length; c++) h[c].hitTest(e, t) && (r && r.call(o, s, h[c].sprite), n.push(h[c].sprite)); return n }, moveToObject: function(e, t, i, r) { void 0 === i && (i = 60), void 0 === r && (r = 0); var o = Math.atan2(t.y - e.y, t.x - e.x); return 0 < r && (i = this.distanceBetween(e, t) / (r / 1e3)), e.body.velocity.x = Math.cos(o) * i, e.body.velocity.y = Math.sin(o) * i, o }, moveToPointer: function(e, t, i, r) { void 0 === t && (t = 60), i = i || this.game.input.activePointer, void 0 === r && (r = 0); var o = this.angleToPointer(e, i); return 0 < r && (t = this.distanceToPointer(e, i) / (r / 1e3)), e.body.velocity.x = Math.cos(o) * t, e.body.velocity.y = Math.sin(o) * t, o }, moveToXY: function(e, t, i, r, o) { void 0 === r && (r = 60), void 0 === o && (o = 0); var s = Math.atan2(i - e.y, t - e.x); return 0 < o && (r = this.distanceToXY(e, t, i) / (o / 1e3)), e.body.velocity.x = Math.cos(s) * r, e.body.velocity.y = Math.sin(s) * r, s }, velocityFromAngle: function(e, t, i) { return void 0 === t && (t = 60), (i = i || new W.Point).setTo(Math.cos(this.game.math.degToRad(e)) * t, Math.sin(this.game.math.degToRad(e)) * t) }, velocityFromRotation: function(e, t, i) { return void 0 === t && (t = 60), (i = i || new W.Point).setTo(Math.cos(e) * t, Math.sin(e) * t) }, accelerationFromRotation: function(e, t, i) { return void 0 === t && (t = 60), (i = i || new W.Point).setTo(Math.cos(e) * t, Math.sin(e) * t) }, accelerateToObject: function(e, t, i, r, o) { void 0 === i && (i = 60), void 0 === r && (r = 1e3), void 0 === o && (o = 1e3); var s = this.angleBetween(e, t); return e.body.acceleration.setTo(Math.cos(s) * i, Math.sin(s) * i), e.body.maxVelocity.setTo(r, o), s }, accelerateToPointer: function(e, t, i, r, o) { void 0 === i && (i = 60), void 0 === t && (t = this.game.input.activePointer), void 0 === r && (r = 1e3), void 0 === o && (o = 1e3); var s = this.angleToPointer(e, t); return e.body.acceleration.setTo(Math.cos(s) * i, Math.sin(s) * i), e.body.maxVelocity.setTo(r, o), s }, accelerateToXY: function(e, t, i, r, o, s) { void 0 === r && (r = 60), void 0 === o && (o = 1e3), void 0 === s && (s = 1e3); var a = this.angleToXY(e, t, i); return e.body.acceleration.setTo(Math.cos(a) * r, Math.sin(a) * r), e.body.maxVelocity.setTo(o, s), a }, distanceBetween: function(e, t, i) { void 0 === i && (i = !1); var r = i ? e.world.x - t.world.x : e.x - t.x , o = i ? e.world.y - t.world.y : e.y - t.y; return Math.sqrt(r * r + o * o) }, distanceToXY: function(e, t, i, r) { void 0 === r && (r = !1); var o = r ? e.world.x - t : e.x - t , s = r ? e.world.y - i : e.y - i; return Math.sqrt(o * o + s * s) }, distanceToPointer: function(e, t, i) { void 0 === t && (t = this.game.input.activePointer), void 0 === i && (i = !1); var r = i ? e.world.x - t.worldX : e.x - t.worldX , o = i ? e.world.y - t.worldY : e.y - t.worldY; return Math.sqrt(r * r + o * o) }, angleBetween: function(e, t, i) { return void 0 === i && (i = !1), i ? Math.atan2(t.world.y - e.world.y, t.world.x - e.world.x) : Math.atan2(t.y - e.y, t.x - e.x) }, angleBetweenCenters: function(e, t) { var i = t.centerX - e.centerX , r = t.centerY - e.centerY; return Math.atan2(r, i) }, angleToXY: function(e, t, i, r) { return void 0 === r && (r = !1), r ? Math.atan2(i - e.world.y, t - e.world.x) : Math.atan2(i - e.y, t - e.x) }, angleToPointer: function(e, t, i) { return void 0 === t && (t = this.game.input.activePointer), void 0 === i && (i = !1), i ? Math.atan2(t.worldY - e.world.y, t.worldX - e.world.x) : Math.atan2(t.worldY - e.y, t.worldX - e.x) }, worldAngleToPointer: function(e, t) { return this.angleToPointer(e, t, !0) } }, W.Physics.Arcade.Body = function(e) { this.sprite = e, this.game = e.game, this.type = W.Physics.ARCADE, this.enable = !0, this.isCircle = !1, this.radius = 0, this.offset = new W.Point, this.position = new W.Point(e.x,e.y), this.prev = new W.Point(this.position.x,this.position.y), this.allowRotation = !0, this.rotation = e.angle, this.preRotation = e.angle, this.width = e.width, this.height = e.height, this.sourceWidth = e.width, this.sourceHeight = e.height, e.texture && (this.sourceWidth = e.texture.frame.width, this.sourceHeight = e.texture.frame.height), this.halfWidth = Math.abs(e.width / 2), this.halfHeight = Math.abs(e.height / 2), this.center = new W.Point(e.x + this.halfWidth,e.y + this.halfHeight), this.velocity = new W.Point, this.newVelocity = new W.Point, this.deltaMax = new W.Point, this.acceleration = new W.Point, this.drag = new W.Point, this.allowGravity = !0, this.gravity = new W.Point, this.bounce = new W.Point, this.worldBounce = null, this.onWorldBounds = null, this.onCollide = null, this.onOverlap = null, this.maxVelocity = new W.Point(1e4,1e4), this.friction = new W.Point(1,0), this.angularVelocity = 0, this.angularAcceleration = 0, this.angularDrag = 0, this.maxAngular = 1e3, this.mass = 1, this.angle = 0, this.speed = 0, this.facing = W.NONE, this.immovable = !1, this.moves = !0, this.customSeparateX = !1, this.customSeparateY = !1, this.overlapX = 0, this.overlapY = 0, this.overlapR = 0, this.embedded = !1, this.collideWorldBounds = !1, this.checkCollision = { none: !1, any: !0, up: !0, down: !0, left: !0, right: !0 }, this.touching = { none: !0, up: !1, down: !1, left: !1, right: !1 }, this.wasTouching = { none: !0, up: !1, down: !1, left: !1, right: !1 }, this.blocked = { up: !1, down: !1, left: !1, right: !1 }, this.tilePadding = new W.Point, this.dirty = !1, this.skipQuadTree = !1, this.syncBounds = !1, this.isMoving = !1, this.stopVelocityOnCollide = !0, this.moveTimer = 0, this.moveDistance = 0, this.moveDuration = 0, this.moveTarget = null, this.moveEnd = null, this.onMoveComplete = new W.Signal, this.movementCallback = null, this.movementCallbackContext = null, this._reset = !0, this._sx = e.scale.x, this._sy = e.scale.y, this._dx = 0, this._dy = 0 } , W.Physics.Arcade.Body.prototype = { updateBounds: function() { if (this.syncBounds) { var e = this.sprite.getBounds(); e.ceilAll(), e.width === this.width && e.height === this.height || (this.width = e.width, this.height = e.height, this._reset = !0) } else { var t = Math.abs(this.sprite.scale.x) , i = Math.abs(this.sprite.scale.y); t === this._sx && i === this._sy || (this.width = this.sourceWidth * t, this.height = this.sourceHeight * i, this._sx = t, this._sy = i, this._reset = !0) } this._reset && (this.halfWidth = Math.floor(this.width / 2), this.halfHeight = Math.floor(this.height / 2), this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight)) }, preUpdate: function() { this.enable && !this.game.physics.arcade.isPaused && (this.dirty = !0, this.wasTouching.none = this.touching.none, this.wasTouching.up = this.touching.up, this.wasTouching.down = this.touching.down, this.wasTouching.left = this.touching.left, this.wasTouching.right = this.touching.right, this.touching.none = !0, this.touching.up = !1, this.touching.down = !1, this.touching.left = !1, this.touching.right = !1, this.blocked.up = !1, this.blocked.down = !1, this.blocked.left = !1, this.blocked.right = !1, this.embedded = !1, this.updateBounds(), this.position.x = this.sprite.world.x - this.sprite.anchor.x * this.sprite.width + this.sprite.scale.x * this.offset.x, this.position.x -= this.sprite.scale.x < 0 ? this.width : 0, this.position.y = this.sprite.world.y - this.sprite.anchor.y * this.sprite.height + this.sprite.scale.y * this.offset.y, this.position.y -= this.sprite.scale.y < 0 ? this.height : 0, this.rotation = this.sprite.angle, this.preRotation = this.rotation, (this._reset || this.sprite.fresh) && (this.prev.x = this.position.x, this.prev.y = this.position.y), this.moves && (this.game.physics.arcade.updateMotion(this), this.newVelocity.set(this.velocity.x * this.game.time.physicsElapsed, this.velocity.y * this.game.time.physicsElapsed), this.position.x += this.newVelocity.x, this.position.y += this.newVelocity.y, this.position.x === this.prev.x && this.position.y === this.prev.y || (this.angle = Math.atan2(this.velocity.y, this.velocity.x)), this.speed = Math.sqrt(this.velocity.x * this.velocity.x + this.velocity.y * this.velocity.y), this.collideWorldBounds && this.checkWorldBounds() && this.onWorldBounds && this.onWorldBounds.dispatch(this.sprite, this.blocked.up, this.blocked.down, this.blocked.left, this.blocked.right)), this._dx = this.deltaX(), this._dy = this.deltaY(), this._reset = !1) }, updateMovement: function() { var e = 0 , t = 0 !== this.overlapX || 0 !== this.overlapY; if (e = 0 < this.moveDuration ? (this.moveTimer += this.game.time.elapsedMS, this.moveTimer / this.moveDuration) : (this.moveTarget.end.set(this.position.x, this.position.y), this.moveTarget.length / this.moveDistance), this.movementCallback) var i = this.movementCallback.call(this.movementCallbackContext, this, this.velocity, e); return !(t || 1 <= e || void 0 !== i && !0 !== i) || (this.stopMovement(1 <= e || this.stopVelocityOnCollide && t), !1) }, stopMovement: function(e) { this.isMoving && (this.isMoving = !1, e && this.velocity.set(0), this.onMoveComplete.dispatch(this.sprite, 0 !== this.overlapX || 0 !== this.overlapY)) }, postUpdate: function() { this.enable && this.dirty && (this.isMoving && this.updateMovement(), this.dirty = !1, this.deltaX() < 0 ? this.facing = W.LEFT : 0 < this.deltaX() && (this.facing = W.RIGHT), this.deltaY() < 0 ? this.facing = W.UP : 0 < this.deltaY() && (this.facing = W.DOWN), this.moves && (this._dx = this.deltaX(), this._dy = this.deltaY(), 0 !== this.deltaMax.x && 0 !== this._dx && (this._dx < 0 && this._dx < -this.deltaMax.x ? this._dx = -this.deltaMax.x : 0 < this._dx && this._dx > this.deltaMax.x && (this._dx = this.deltaMax.x)), 0 !== this.deltaMax.y && 0 !== this._dy && (this._dy < 0 && this._dy < -this.deltaMax.y ? this._dy = -this.deltaMax.y : 0 < this._dy && this._dy > this.deltaMax.y && (this._dy = this.deltaMax.y)), this.sprite.position.x += this._dx, this.sprite.position.y += this._dy, this._reset = !0), this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight), this.allowRotation && (this.sprite.angle += this.deltaZ()), this.prev.x = this.position.x, this.prev.y = this.position.y) }, checkWorldBounds: function() { var e = this.position , t = this.game.physics.arcade.bounds , i = this.game.physics.arcade.checkCollision , r = this.worldBounce ? -this.worldBounce.x : -this.bounce.x , o = this.worldBounce ? -this.worldBounce.y : -this.bounce.y; if (this.isCircle) { var s = this.center.x - this.radius , a = this.center.y - this.radius , n = this.center.x + this.radius , h = this.center.y + this.radius; s < t.x && i.left ? (e.x = t.x - this.halfWidth + this.radius, this.velocity.x *= r, this.blocked.left = !0) : n > t.right && i.right && (e.x = t.right - this.halfWidth - this.radius, this.velocity.x *= r, this.blocked.right = !0), a < t.y && i.up ? (e.y = t.y - this.halfHeight + this.radius, this.velocity.y *= o, this.blocked.up = !0) : h > t.bottom && i.down && (e.y = t.bottom - this.halfHeight - this.radius, this.velocity.y *= o, this.blocked.down = !0) } else e.x < t.x && i.left ? (e.x = t.x, this.velocity.x *= r, this.blocked.left = !0) : this.right > t.right && i.right && (e.x = t.right - this.width, this.velocity.x *= r, this.blocked.right = !0), e.y < t.y && i.up ? (e.y = t.y, this.velocity.y *= o, this.blocked.up = !0) : this.bottom > t.bottom && i.down && (e.y = t.bottom - this.height, this.velocity.y *= o, this.blocked.down = !0); return this.blocked.up || this.blocked.down || this.blocked.left || this.blocked.right }, moveFrom: function(e, t, i) { return void 0 === t && (t = this.speed), 0 !== t && (void 0 === i ? (r = this.angle, i = this.game.math.radToDeg(r)) : r = this.game.math.degToRad(i), this.moveTimer = 0, this.moveDuration = e, 0 === i || 180 === i ? this.velocity.set(Math.cos(r) * t, 0) : 90 === i || 270 === i ? this.velocity.set(0, Math.sin(r) * t) : this.velocity.set(Math.cos(r) * t, Math.sin(r) * t), this.isMoving = !0); var r }, moveTo: function(e, t, i) { var r, o = t / (e / 1e3); return 0 !== o && (void 0 === i ? (r = this.angle, i = this.game.math.radToDeg(r)) : r = this.game.math.degToRad(i), t = Math.abs(t), this.moveDuration = 0, this.moveDistance = t, null === this.moveTarget && (this.moveTarget = new W.Line, this.moveEnd = new W.Point), this.moveTarget.fromAngle(this.x, this.y, r, t), this.moveEnd.set(this.moveTarget.end.x, this.moveTarget.end.y), this.moveTarget.setTo(this.x, this.y, this.x, this.y), 0 === i || 180 === i ? this.velocity.set(Math.cos(r) * o, 0) : 90 === i || 270 === i ? this.velocity.set(0, Math.sin(r) * o) : this.velocity.set(Math.cos(r) * o, Math.sin(r) * o), this.isMoving = !0) }, setSize: function(e, t, i, r) { void 0 === i && (i = this.offset.x), void 0 === r && (r = this.offset.y), this.sourceWidth = e, this.sourceHeight = t, this.width = this.sourceWidth * this._sx, this.height = this.sourceHeight * this._sy, this.halfWidth = Math.floor(this.width / 2), this.halfHeight = Math.floor(this.height / 2), this.offset.setTo(i, r), this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight), this.isCircle = !1, this.radius = 0 }, setCircle: function(e, t, i) { void 0 === t && (t = this.offset.x), void 0 === i && (i = this.offset.y), 0 < e ? (this.isCircle = !0, this.radius = e, this.sourceWidth = 2 * e, this.sourceHeight = 2 * e, this.width = this.sourceWidth * this._sx, this.height = this.sourceHeight * this._sy, this.halfWidth = Math.floor(this.width / 2), this.halfHeight = Math.floor(this.height / 2), this.offset.setTo(t, i), this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight)) : this.isCircle = !1 }, reset: function(e, t) { this.velocity.set(0), this.acceleration.set(0), this.speed = 0, this.angularVelocity = 0, this.angularAcceleration = 0, this.position.x = e - this.sprite.anchor.x * this.sprite.width + this.sprite.scale.x * this.offset.x, this.position.x -= this.sprite.scale.x < 0 ? this.width : 0, this.position.y = t - this.sprite.anchor.y * this.sprite.height + this.sprite.scale.y * this.offset.y, this.position.y -= this.sprite.scale.y < 0 ? this.height : 0, this.prev.x = this.position.x, this.prev.y = this.position.y, this.rotation = this.sprite.angle, this.preRotation = this.rotation, this._sx = this.sprite.scale.x, this._sy = this.sprite.scale.y, this.center.setTo(this.position.x + this.halfWidth, this.position.y + this.halfHeight) }, getBounds: function(e) { return this.isCircle ? (e.x = this.center.x - this.radius, e.y = this.center.y - this.radius, e.right = this.center.x + this.radius, e.bottom = this.center.y + this.radius) : (e.x = this.x, e.y = this.y, e.right = this.right, e.bottom = this.bottom), e }, hitTest: function(e, t) { return this.isCircle ? W.Circle.contains(this, e, t) : W.Rectangle.contains(this, e, t) }, onFloor: function() { return this.blocked.down }, onCeiling: function() { return this.blocked.up }, onWall: function() { return this.blocked.left || this.blocked.right }, deltaAbsX: function() { return 0 < this.deltaX() ? this.deltaX() : -this.deltaX() }, deltaAbsY: function() { return 0 < this.deltaY() ? this.deltaY() : -this.deltaY() }, deltaX: function() { return this.position.x - this.prev.x }, deltaY: function() { return this.position.y - this.prev.y }, deltaZ: function() { return this.rotation - this.preRotation }, destroy: function() { this.sprite.parent && this.sprite.parent instanceof W.Group && this.sprite.parent.removeFromHash(this.sprite), this.sprite.body = null, this.sprite = null } }, Object.defineProperty(W.Physics.Arcade.Body.prototype, "left", { get: function() { return this.position.x } }), Object.defineProperty(W.Physics.Arcade.Body.prototype, "right", { get: function() { return this.position.x + this.width } }), Object.defineProperty(W.Physics.Arcade.Body.prototype, "top", { get: function() { return this.position.y } }), Object.defineProperty(W.Physics.Arcade.Body.prototype, "bottom", { get: function() { return this.position.y + this.height } }), Object.defineProperty(W.Physics.Arcade.Body.prototype, "x", { get: function() { return this.position.x }, set: function(e) { this.position.x = e } }), Object.defineProperty(W.Physics.Arcade.Body.prototype, "y", { get: function() { return this.position.y }, set: function(e) { this.position.y = e } }), W.Physics.Arcade.Body.render = function(e, t, i, r) { void 0 === r && (r = !0), i = i || "rgba(0,255,0,0.4)", e.fillStyle = i, e.strokeStyle = i, t.isCircle ? (e.beginPath(), e.arc(t.center.x - t.game.camera.x, t.center.y - t.game.camera.y, t.radius, 0, 2 * Math.PI), r ? e.fill() : e.stroke()) : r ? e.fillRect(t.position.x - t.game.camera.x, t.position.y - t.game.camera.y, t.width, t.height) : e.strokeRect(t.position.x - t.game.camera.x, t.position.y - t.game.camera.y, t.width, t.height) } , W.Physics.Arcade.Body.renderBodyInfo = function(e, t) { e.line("x: " + t.x.toFixed(2), "y: " + t.y.toFixed(2), "width: " + t.width, "height: " + t.height), e.line("velocity x: " + t.velocity.x.toFixed(2), "y: " + t.velocity.y.toFixed(2), "deltaX: " + t._dx.toFixed(2), "deltaY: " + t._dy.toFixed(2)), e.line("acceleration x: " + t.acceleration.x.toFixed(2), "y: " + t.acceleration.y.toFixed(2), "speed: " + t.speed.toFixed(2), "angle: " + t.angle.toFixed(2)), e.line("gravity x: " + t.gravity.x, "y: " + t.gravity.y, "bounce x: " + t.bounce.x.toFixed(2), "y: " + t.bounce.y.toFixed(2)), e.line("touching left: " + t.touching.left, "right: " + t.touching.right, "up: " + t.touching.up, "down: " + t.touching.down), e.line("blocked left: " + t.blocked.left, "right: " + t.blocked.right, "up: " + t.blocked.up, "down: " + t.blocked.down) } , W.Physics.Arcade.Body.prototype.constructor = W.Physics.Arcade.Body, W.Physics.Arcade.TilemapCollision = function() {} , W.Physics.Arcade.TilemapCollision.prototype = { TILE_BIAS: 16, collideSpriteVsTilemapLayer: function(e, t, i, r, o, s) { if (e.body) { var a = t.getTiles(e.body.position.x - e.body.tilePadding.x, e.body.position.y - e.body.tilePadding.y, e.body.width + e.body.tilePadding.x, e.body.height + e.body.tilePadding.y, !1, !1); if (0 !== a.length) for (var n = 0; n < a.length; n++) r ? r.call(o, e, a[n]) && this.separateTile(n, e.body, a[n], t, s) && (this._total++, i && i.call(o, e, a[n])) : this.separateTile(n, e.body, a[n], t, s) && (this._total++, i && i.call(o, e, a[n])) } }, collideGroupVsTilemapLayer: function(e, t, i, r, o, s) { if (0 !== e.length) for (var a = 0; a < e.children.length; a++) e.children[a].exists && this.collideSpriteVsTilemapLayer(e.children[a], t, i, r, o, s) }, separateTile: function(e, t, i, r, o) { if (!t.enable) return !1; var s = r.fixedToCamera ? 0 : r.position.x , a = r.fixedToCamera ? 0 : r.position.y; if (!i.intersects(t.position.x - s, t.position.y - a, t.right - s, t.bottom - a)) return !1; if (o) return !0; if (i.collisionCallback && !i.collisionCallback.call(i.collisionCallbackContext, t.sprite, i)) return !1; if (void 0 !== i.layer.callbacks && i.layer.callbacks[i.index] && !i.layer.callbacks[i.index].callback.call(i.layer.callbacks[i.index].callbackContext, t.sprite, i)) return !1; if (!(i.faceLeft || i.faceRight || i.faceTop || i.faceBottom)) return !1; var n = 0 , h = 0 , c = 0 , l = 1; if (t.deltaAbsX() > t.deltaAbsY() ? c = -1 : t.deltaAbsX() < t.deltaAbsY() && (l = -1), 0 !== t.deltaX() && 0 !== t.deltaY() && (i.faceLeft || i.faceRight) && (i.faceTop || i.faceBottom) && (c = Math.min(Math.abs(t.position.x - s - i.right), Math.abs(t.right - s - i.left)), l = Math.min(Math.abs(t.position.y - a - i.bottom), Math.abs(t.bottom - a - i.top))), c < l) { if ((i.faceLeft || i.faceRight) && 0 !== (n = this.tileCheckX(t, i, r)) && !i.intersects(t.position.x - s, t.position.y - a, t.right - s, t.bottom - a)) return !0; (i.faceTop || i.faceBottom) && (h = this.tileCheckY(t, i, r)) } else { if ((i.faceTop || i.faceBottom) && 0 !== (h = this.tileCheckY(t, i, r)) && !i.intersects(t.position.x - s, t.position.y - a, t.right - s, t.bottom - a)) return !0; (i.faceLeft || i.faceRight) && (n = this.tileCheckX(t, i, r)) } return 0 !== n || 0 !== h }, tileCheckX: function(e, t, i) { var r = 0 , o = i.fixedToCamera ? 0 : i.position.x; return e.deltaX() < 0 && !e.blocked.left && t.collideRight && e.checkCollision.left ? t.faceRight && e.x - o < t.right && (r = e.x - o - t.right) < -this.TILE_BIAS && (r = 0) : 0 < e.deltaX() && !e.blocked.right && t.collideLeft && e.checkCollision.right && t.faceLeft && e.right - o > t.left && (r = e.right - o - t.left) > this.TILE_BIAS && (r = 0), 0 !== r && (e.customSeparateX ? e.overlapX = r : this.processTileSeparationX(e, r)), r }, tileCheckY: function(e, t, i) { var r = 0 , o = i.fixedToCamera ? 0 : i.position.y; return e.deltaY() < 0 && !e.blocked.up && t.collideDown && e.checkCollision.up ? t.faceBottom && e.y - o < t.bottom && (r = e.y - o - t.bottom) < -this.TILE_BIAS && (r = 0) : 0 < e.deltaY() && !e.blocked.down && t.collideUp && e.checkCollision.down && t.faceTop && e.bottom - o > t.top && (r = e.bottom - o - t.top) > this.TILE_BIAS && (r = 0), 0 !== r && (e.customSeparateY ? e.overlapY = r : this.processTileSeparationY(e, r)), r }, processTileSeparationX: function(e, t) { t < 0 ? e.blocked.left = !0 : 0 < t && (e.blocked.right = !0), e.position.x -= t, 0 === e.bounce.x ? e.velocity.x = 0 : e.velocity.x = -e.velocity.x * e.bounce.x }, processTileSeparationY: function(e, t) { t < 0 ? e.blocked.up = !0 : 0 < t && (e.blocked.down = !0), e.position.y -= t, 0 === e.bounce.y ? e.velocity.y = 0 : e.velocity.y = -e.velocity.y * e.bounce.y } }, W.Utils.mixinPrototype(W.Physics.Arcade.prototype, W.Physics.Arcade.TilemapCollision.prototype), p2.Body.prototype.parent = null, p2.Spring.prototype.parent = null, W.Physics.P2 = function(e, t) { this.game = e, void 0 === t ? t = { gravity: [0, 0], broadphase: new p2.SAPBroadphase } : (t.hasOwnProperty("gravity") || (t.gravity = [0, 0]), t.hasOwnProperty("broadphase") || (t.broadphase = new p2.SAPBroadphase)), this.config = t, this.world = new p2.World(this.config), this.frameRate = 1 / 60, this.useElapsedTime = !1, this.paused = !1, this.materials = [], this.gravity = new W.Physics.P2.InversePointProxy(this,this.world.gravity), this.walls = { left: null, right: null, top: null, bottom: null }, this.onBodyAdded = new W.Signal, this.onBodyRemoved = new W.Signal, this.onSpringAdded = new W.Signal, this.onSpringRemoved = new W.Signal, this.onConstraintAdded = new W.Signal, this.onConstraintRemoved = new W.Signal, this.onContactMaterialAdded = new W.Signal, this.onContactMaterialRemoved = new W.Signal, this.postBroadphaseCallback = null, this.callbackContext = null, this.onBeginContact = new W.Signal, this.onEndContact = new W.Signal, t.hasOwnProperty("mpx") && t.hasOwnProperty("pxm") && t.hasOwnProperty("mpxi") && t.hasOwnProperty("pxmi") && (this.mpx = t.mpx, this.mpxi = t.mpxi, this.pxm = t.pxm, this.pxmi = t.pxmi), this.world.on("beginContact", this.beginContactHandler, this), this.world.on("endContact", this.endContactHandler, this), this.collisionGroups = [], this.nothingCollisionGroup = new W.Physics.P2.CollisionGroup(1), this.boundsCollisionGroup = new W.Physics.P2.CollisionGroup(2), this.everythingCollisionGroup = new W.Physics.P2.CollisionGroup(2147483648), this.boundsCollidesWith = [], this._toRemove = [], this._collisionGroupID = 2, this._boundsLeft = !0, this._boundsRight = !0, this._boundsTop = !0, this._boundsBottom = !0, this._boundsOwnGroup = !1, this.setBoundsToWorld(!0, !0, !0, !0, !1) } , W.Physics.P2.prototype = { removeBodyNextStep: function(e) { this._toRemove.push(e) }, preUpdate: function() { for (var e = this._toRemove.length; e--; ) this.removeBody(this._toRemove[e]); this._toRemove.length = 0 }, enable: function(e, t, i) { void 0 === t && (t = !1), void 0 === i && (i = !0); var r = 1; if (Array.isArray(e)) for (r = e.length; r--; ) e[r]instanceof W.Group ? this.enable(e[r].children, t, i) : (this.enableBody(e[r], t), i && e[r].hasOwnProperty("children") && 0 < e[r].children.length && this.enable(e[r], t, !0)); else e instanceof W.Group ? this.enable(e.children, t, i) : (this.enableBody(e, t), i && e.hasOwnProperty("children") && 0 < e.children.length && this.enable(e.children, t, !0)) }, enableBody: function(e, t) { e.hasOwnProperty("body") && null === e.body && (e.body = new W.Physics.P2.Body(this.game,e,e.x,e.y,1), e.body.debug = t, void 0 !== e.anchor && e.anchor.set(.5)) }, setImpactEvents: function(e) { e ? this.world.on("impact", this.impactHandler, this) : this.world.off("impact", this.impactHandler, this) }, setPostBroadphaseCallback: function(e, t) { this.postBroadphaseCallback = e, this.callbackContext = t, null !== e ? this.world.on("postBroadphase", this.postBroadphaseHandler, this) : this.world.off("postBroadphase", this.postBroadphaseHandler, this) }, postBroadphaseHandler: function(e) { if (this.postBroadphaseCallback && 0 !== e.pairs.length) for (var t = e.pairs.length - 2; 0 <= t; t -= 2) e.pairs[t].parent && e.pairs[t + 1].parent && !this.postBroadphaseCallback.call(this.callbackContext, e.pairs[t].parent, e.pairs[t + 1].parent) && e.pairs.splice(t, 2) }, impactHandler: function(e) { if (e.bodyA.parent && e.bodyB.parent) { var t = e.bodyA.parent , i = e.bodyB.parent; t._bodyCallbacks[e.bodyB.id] && t._bodyCallbacks[e.bodyB.id].call(t._bodyCallbackContext[e.bodyB.id], t, i, e.shapeA, e.shapeB), i._bodyCallbacks[e.bodyA.id] && i._bodyCallbacks[e.bodyA.id].call(i._bodyCallbackContext[e.bodyA.id], i, t, e.shapeB, e.shapeA), t._groupCallbacks[e.shapeB.collisionGroup] && t._groupCallbacks[e.shapeB.collisionGroup].call(t._groupCallbackContext[e.shapeB.collisionGroup], t, i, e.shapeA, e.shapeB), i._groupCallbacks[e.shapeA.collisionGroup] && i._groupCallbacks[e.shapeA.collisionGroup].call(i._groupCallbackContext[e.shapeA.collisionGroup], i, t, e.shapeB, e.shapeA) } }, beginContactHandler: function(e) { e.bodyA && e.bodyB && (this.onBeginContact.dispatch(e.bodyA, e.bodyB, e.shapeA, e.shapeB, e.contactEquations), e.bodyA.parent && e.bodyA.parent.onBeginContact.dispatch(e.bodyB.parent, e.bodyB, e.shapeA, e.shapeB, e.contactEquations), e.bodyB.parent && e.bodyB.parent.onBeginContact.dispatch(e.bodyA.parent, e.bodyA, e.shapeB, e.shapeA, e.contactEquations)) }, endContactHandler: function(e) { e.bodyA && e.bodyB && (this.onEndContact.dispatch(e.bodyA, e.bodyB, e.shapeA, e.shapeB), e.bodyA.parent && e.bodyA.parent.onEndContact.dispatch(e.bodyB.parent, e.bodyB, e.shapeA, e.shapeB), e.bodyB.parent && e.bodyB.parent.onEndContact.dispatch(e.bodyA.parent, e.bodyA, e.shapeB, e.shapeA)) }, setBoundsToWorld: function(e, t, i, r, o) { this.setBounds(this.game.world.bounds.x, this.game.world.bounds.y, this.game.world.bounds.width, this.game.world.bounds.height, e, t, i, r, o) }, setWorldMaterial: function(e, t, i, r, o) { void 0 === t && (t = !0), void 0 === i && (i = !0), void 0 === r && (r = !0), void 0 === o && (o = !0), t && this.walls.left && (this.walls.left.shapes[0].material = e), i && this.walls.right && (this.walls.right.shapes[0].material = e), r && this.walls.top && (this.walls.top.shapes[0].material = e), o && this.walls.bottom && (this.walls.bottom.shapes[0].material = e) }, updateBoundsCollisionGroup: function(e) { void 0 === e && (e = !0); var t = e ? this.boundsCollisionGroup.mask : this.everythingCollisionGroup.mask; this.walls.left && (this.walls.left.shapes[0].collisionGroup = t), this.walls.right && (this.walls.right.shapes[0].collisionGroup = t), this.walls.top && (this.walls.top.shapes[0].collisionGroup = t), this.walls.bottom && (this.walls.bottom.shapes[0].collisionGroup = t), this._boundsOwnGroup = e }, setBounds: function(e, t, i, r, o, s, a, n, h) { void 0 === o && (o = this._boundsLeft), void 0 === s && (s = this._boundsRight), void 0 === a && (a = this._boundsTop), void 0 === n && (n = this._boundsBottom), void 0 === h && (h = this._boundsOwnGroup), this.setupWall(o, "left", e, t, 1.5707963267948966, h), this.setupWall(s, "right", e + i, t, -1.5707963267948966, h), this.setupWall(a, "top", e, t, -3.141592653589793, h), this.setupWall(n, "bottom", e, t + r, 0, h), this._boundsLeft = o, this._boundsRight = s, this._boundsTop = a, this._boundsBottom = n, this._boundsOwnGroup = h }, setupWall: function(e, t, i, r, o, s) { e ? (this.walls[t] ? this.walls[t].position = [this.pxmi(i), this.pxmi(r)] : (this.walls[t] = new p2.Body({ mass: 0, position: [this.pxmi(i), this.pxmi(r)], angle: o }), this.walls[t].addShape(new p2.Plane), this.world.addBody(this.walls[t])), s && (this.walls[t].shapes[0].collisionGroup = this.boundsCollisionGroup.mask)) : this.walls[t] && (this.world.removeBody(this.walls[t]), this.walls[t] = null) }, pause: function() { this.paused = !0 }, resume: function() { this.paused = !1 }, update: function() { this.paused || (this.useElapsedTime ? this.world.step(this.game.time.physicsElapsed) : this.world.step(this.frameRate)) }, reset: function() { this.world.on("beginContact", this.beginContactHandler, this), this.world.on("endContact", this.endContactHandler, this), this.nothingCollisionGroup = new W.Physics.P2.CollisionGroup(1), this.boundsCollisionGroup = new W.Physics.P2.CollisionGroup(2), this.everythingCollisionGroup = new W.Physics.P2.CollisionGroup(2147483648), this._collisionGroupID = 2, this.setBoundsToWorld(!0, !0, !0, !0, !1) }, clear: function() { this.world.time = 0, this.world.fixedStepTime = 0, this.world.solver && this.world.solver.equations.length && this.world.solver.removeAllEquations(); for (var e = this.world.constraints, t = e.length - 1; 0 <= t; t--) this.world.removeConstraint(e[t]); var i = this.world.bodies; for (t = i.length - 1; 0 <= t; t--) this.world.removeBody(i[t]); var r = this.world.springs; for (t = r.length - 1; 0 <= t; t--) this.world.removeSpring(r[t]); var o = this.world.contactMaterials; for (t = o.length - 1; 0 <= t; t--) this.world.removeContactMaterial(o[t]); this.world.off("beginContact", this.beginContactHandler, this), this.world.off("endContact", this.endContactHandler, this), this.postBroadphaseCallback = null, this.callbackContext = null, this.impactCallback = null, this.collisionGroups = [], this._toRemove = [], this.boundsCollidesWith = [], this.walls = { left: null, right: null, top: null, bottom: null } }, destroy: function() { this.clear(), this.game = null }, addBody: function(e) { return !e.data.world && (this.world.addBody(e.data), this.onBodyAdded.dispatch(e), !0) }, removeBody: function(e) { return e.data.world === this.world && (this.world.removeBody(e.data), this.onBodyRemoved.dispatch(e)), e }, addSpring: function(e) { return e instanceof W.Physics.P2.Spring || e instanceof W.Physics.P2.RotationalSpring ? this.world.addSpring(e.data) : this.world.addSpring(e), this.onSpringAdded.dispatch(e), e }, removeSpring: function(e) { return e instanceof W.Physics.P2.Spring || e instanceof W.Physics.P2.RotationalSpring ? this.world.removeSpring(e.data) : this.world.removeSpring(e), this.onSpringRemoved.dispatch(e), e }, createDistanceConstraint: function(e, t, i, r, o, s) { if (e = this.getBody(e), t = this.getBody(t), e && t) return this.addConstraint(new W.Physics.P2.DistanceConstraint(this,e,t,i,r,o,s)) }, createGearConstraint: function(e, t, i, r) { if (e = this.getBody(e), t = this.getBody(t), e && t) return this.addConstraint(new W.Physics.P2.GearConstraint(this,e,t,i,r)) }, createRevoluteConstraint: function(e, t, i, r, o, s) { if (e = this.getBody(e), i = this.getBody(i), e && i) return this.addConstraint(new W.Physics.P2.RevoluteConstraint(this,e,t,i,r,o,s)) }, createLockConstraint: function(e, t, i, r, o) { if (e = this.getBody(e), t = this.getBody(t), e && t) return this.addConstraint(new W.Physics.P2.LockConstraint(this,e,t,i,r,o)) }, createPrismaticConstraint: function(e, t, i, r, o, s, a) { if (e = this.getBody(e), t = this.getBody(t), e && t) return this.addConstraint(new W.Physics.P2.PrismaticConstraint(this,e,t,i,r,o,s,a)) }, addConstraint: function(e) { return this.world.addConstraint(e), this.onConstraintAdded.dispatch(e), e }, removeConstraint: function(e) { return this.world.removeConstraint(e), this.onConstraintRemoved.dispatch(e), e }, addContactMaterial: function(e) { return this.world.addContactMaterial(e), this.onContactMaterialAdded.dispatch(e), e }, removeContactMaterial: function(e) { return this.world.removeContactMaterial(e), this.onContactMaterialRemoved.dispatch(e), e }, getContactMaterial: function(e, t) { return this.world.getContactMaterial(e, t) }, setMaterial: function(e, t) { for (var i = t.length; i--; ) t[i].setMaterial(e) }, createMaterial: function(e, t) { e = e || ""; var i = new W.Physics.P2.Material(e); return this.materials.push(i), void 0 !== t && t.setMaterial(i), i }, createContactMaterial: function(e, t, i) { void 0 === e && (e = this.createMaterial()), void 0 === t && (t = this.createMaterial()); var r = new W.Physics.P2.ContactMaterial(e,t,i); return this.addContactMaterial(r) }, getBodies: function() { for (var e = [], t = this.world.bodies.length; t--; ) e.push(this.world.bodies[t].parent); return e }, getBody: function(e) { return e instanceof p2.Body ? e : e instanceof W.Physics.P2.Body ? e.data : e.body && e.body.type === W.Physics.P2JS ? e.body.data : null }, getSprings: function() { for (var e = [], t = this.world.springs.length; t--; ) e.push(this.world.springs[t].parent); return e }, getConstraints: function() { for (var e = [], t = this.world.constraints.length; t--; ) e.push(this.world.constraints[t]); return e }, hitTest: function(e, t, i, r) { void 0 === t && (t = this.world.bodies), void 0 === i && (i = 5), void 0 === r && (r = !1); for (var o = [this.pxmi(e.x), this.pxmi(e.y)], s = [], a = t.length; a--; ) t[a]instanceof W.Physics.P2.Body && (!r || t[a].data.type !== p2.Body.STATIC) ? s.push(t[a].data) : t[a]instanceof p2.Body && t[a].parent && (!r || t[a].type !== p2.Body.STATIC) ? s.push(t[a]) : t[a]instanceof W.Sprite && t[a].hasOwnProperty("body") && (!r || t[a].body.data.type !== p2.Body.STATIC) && s.push(t[a].body.data); return this.world.hitTest(o, s, i) }, toJSON: function() { return this.world.toJSON() }, createCollisionGroup: function(e) { var t = Math.pow(2, this._collisionGroupID); this.walls.left && (this.walls.left.shapes[0].collisionMask = this.walls.left.shapes[0].collisionMask | t), this.walls.right && (this.walls.right.shapes[0].collisionMask = this.walls.right.shapes[0].collisionMask | t), this.walls.top && (this.walls.top.shapes[0].collisionMask = this.walls.top.shapes[0].collisionMask | t), this.walls.bottom && (this.walls.bottom.shapes[0].collisionMask = this.walls.bottom.shapes[0].collisionMask | t), this._collisionGroupID++; var i = new W.Physics.P2.CollisionGroup(t); return this.collisionGroups.push(i), e && this.setCollisionGroup(e, i), i }, setCollisionGroup: function(e, t) { if (e instanceof W.Group) for (var i = 0; i < e.total; i++) e.children[i].body && e.children[i].body.type === W.Physics.P2JS && e.children[i].body.setCollisionGroup(t); else e.body.setCollisionGroup(t) }, createSpring: function(e, t, i, r, o, s, a, n, h) { if (e = this.getBody(e), t = this.getBody(t), e && t) return this.addSpring(new W.Physics.P2.Spring(this,e,t,i,r,o,s,a,n,h)) }, createRotationalSpring: function(e, t, i, r, o) { if (e = this.getBody(e), t = this.getBody(t), e && t) return this.addSpring(new W.Physics.P2.RotationalSpring(this,e,t,i,r,o)) }, createBody: function(e, t, i, r, o, s) { void 0 === r && (r = !1); var a = new W.Physics.P2.Body(this.game,null,e,t,i); if (s && !a.addPolygon(o, s)) return !1; return r && this.world.addBody(a.data), a }, createParticle: function(e, t, i, r, o, s) { void 0 === r && (r = !1); var a = new W.Physics.P2.Body(this.game,null,e,t,i); if (s && !a.addPolygon(o, s)) return !1; return r && this.world.addBody(a.data), a }, convertCollisionObjects: function(e, t, i) { void 0 === i && (i = !0); for (var r = [], o = 0, s = e.collision[t].length; o < s; o++) { var a = e.collision[t][o] , n = this.createBody(a.x, a.y, 0, i, {}, a.polyline); n && r.push(n) } return r }, clearTilemapLayerBodies: function(e, t) { t = e.getLayer(t); for (var i = e.layers[t].bodies.length; i--; ) e.layers[t].bodies[i].destroy(); e.layers[t].bodies.length = 0 }, convertTilemap: function(e, t, i, r) { t = e.getLayer(t), void 0 === i && (i = !0), void 0 === r && (r = !0), this.clearTilemapLayerBodies(e, t); for (var o = 0, s = 0, a = 0, n = 0, h = e.layers[t].height; n < h; n++) for (var c = o = 0, l = e.layers[t].width; c < l; c++) { var m = e.layers[t].data[n][c]; if (m && -1 < m.index && m.collides) if (r) { var u = e.getTileRight(t, c, n); if (0 === o && (s = m.x * m.width, a = m.y * m.height, o = m.width), u && u.collides) o += m.width; else (d = this.createBody(s, a, 0, !1)).addRectangle(o, m.height, o / 2, m.height / 2, 0), i && this.addBody(d), e.layers[t].bodies.push(d), o = 0 } else { var d; (d = this.createBody(m.x * m.width, m.y * m.height, 0, !1)).addRectangle(m.width, m.height, m.width / 2, m.height / 2, 0), i && this.addBody(d), e.layers[t].bodies.push(d) } } return e.layers[t].bodies }, mpx: function(e) { return 20 * e }, pxm: function(e) { return .05 * e }, mpxi: function(e) { return -20 * e }, pxmi: function(e) { return -.05 * e } }, Object.defineProperty(W.Physics.P2.prototype, "friction", { get: function() { return this.world.defaultContactMaterial.friction }, set: function(e) { this.world.defaultContactMaterial.friction = e } }), Object.defineProperty(W.Physics.P2.prototype, "restitution", { get: function() { return this.world.defaultContactMaterial.restitution }, set: function(e) { this.world.defaultContactMaterial.restitution = e } }), Object.defineProperty(W.Physics.P2.prototype, "contactMaterial", { get: function() { return this.world.defaultContactMaterial }, set: function(e) { this.world.defaultContactMaterial = e } }), Object.defineProperty(W.Physics.P2.prototype, "applySpringForces", { get: function() { return this.world.applySpringForces }, set: function(e) { this.world.applySpringForces = e } }), Object.defineProperty(W.Physics.P2.prototype, "applyDamping", { get: function() { return this.world.applyDamping }, set: function(e) { this.world.applyDamping = e } }), Object.defineProperty(W.Physics.P2.prototype, "applyGravity", { get: function() { return this.world.applyGravity }, set: function(e) { this.world.applyGravity = e } }), Object.defineProperty(W.Physics.P2.prototype, "solveConstraints", { get: function() { return this.world.solveConstraints }, set: function(e) { this.world.solveConstraints = e } }), Object.defineProperty(W.Physics.P2.prototype, "time", { get: function() { return this.world.time } }), Object.defineProperty(W.Physics.P2.prototype, "emitImpactEvent", { get: function() { return this.world.emitImpactEvent }, set: function(e) { this.world.emitImpactEvent = e } }), Object.defineProperty(W.Physics.P2.prototype, "sleepMode", { get: function() { return this.world.sleepMode }, set: function(e) { this.world.sleepMode = e } }), Object.defineProperty(W.Physics.P2.prototype, "total", { get: function() { return this.world.bodies.length } }), W.Physics.P2.FixtureList = function(e) { Array.isArray(e) || (e = [e]), this.rawList = e, this.init(), this.parse(this.rawList) } , W.Physics.P2.FixtureList.prototype = { init: function() { this.namedFixtures = {}, this.groupedFixtures = [], this.allFixtures = [] }, setCategory: function(t, e) { this.getFixtures(e).forEach(function(e) { e.collisionGroup = t }) }, setMask: function(t, e) { this.getFixtures(e).forEach(function(e) { e.collisionMask = t }) }, setSensor: function(t, e) { this.getFixtures(e).forEach(function(e) { e.sensor = t }) }, setMaterial: function(t, e) { this.getFixtures(e).forEach(function(e) { e.material = t }) }, getFixtures: function(e) { var t = []; if (e) { e instanceof Array || (e = [e]); var i = this; return e.forEach(function(e) { i.namedFixtures[e] && t.push(i.namedFixtures[e]) }), this.flatten(t) } return this.allFixtures }, getFixtureByKey: function(e) { return this.namedFixtures[e] }, getGroup: function(e) { return this.groupedFixtures[e] }, parse: function() { var e, t, i, r; for (e in r = [], i = this.rawList) t = i[e], isNaN(e - 0) ? this.namedFixtures[e] = this.flatten(t) : (this.groupedFixtures[e] = this.groupedFixtures[e] || [], this.groupedFixtures[e] = this.groupedFixtures[e].concat(t)), r.push(this.allFixtures = this.flatten(this.groupedFixtures)) }, flatten: function(e) { var t, i; return t = [], i = arguments.callee, e.forEach(function(e) { return Array.prototype.push.apply(t, Array.isArray(e) ? i(e) : [e]) }), t } }, W.Physics.P2.PointProxy = function(e, t) { this.world = e, this.destination = t } , W.Physics.P2.PointProxy.prototype.constructor = W.Physics.P2.PointProxy, Object.defineProperty(W.Physics.P2.PointProxy.prototype, "x", { get: function() { return this.world.mpx(this.destination[0]) }, set: function(e) { this.destination[0] = this.world.pxm(e) } }), Object.defineProperty(W.Physics.P2.PointProxy.prototype, "y", { get: function() { return this.world.mpx(this.destination[1]) }, set: function(e) { this.destination[1] = this.world.pxm(e) } }), Object.defineProperty(W.Physics.P2.PointProxy.prototype, "mx", { get: function() { return this.destination[0] }, set: function(e) { this.destination[0] = e } }), Object.defineProperty(W.Physics.P2.PointProxy.prototype, "my", { get: function() { return this.destination[1] }, set: function(e) { this.destination[1] = e } }), W.Physics.P2.InversePointProxy = function(e, t) { this.world = e, this.destination = t } , W.Physics.P2.InversePointProxy.prototype.constructor = W.Physics.P2.InversePointProxy, Object.defineProperty(W.Physics.P2.InversePointProxy.prototype, "x", { get: function() { return this.world.mpxi(this.destination[0]) }, set: function(e) { this.destination[0] = this.world.pxmi(e) } }), Object.defineProperty(W.Physics.P2.InversePointProxy.prototype, "y", { get: function() { return this.world.mpxi(this.destination[1]) }, set: function(e) { this.destination[1] = this.world.pxmi(e) } }), Object.defineProperty(W.Physics.P2.InversePointProxy.prototype, "mx", { get: function() { return this.destination[0] }, set: function(e) { this.destination[0] = -e } }), Object.defineProperty(W.Physics.P2.InversePointProxy.prototype, "my", { get: function() { return this.destination[1] }, set: function(e) { this.destination[1] = -e } }), W.Physics.P2.Body = function(e, t, i, r, o) { t = t || null, i = i || 0, r = r || 0, void 0 === o && (o = 1), this.game = e, this.world = e.physics.p2, this.sprite = t, this.type = W.Physics.P2JS, this.offset = new W.Point, this.data = new p2.Body({ position: [this.world.pxmi(i), this.world.pxmi(r)], mass: o }), (this.data.parent = this).velocity = new W.Physics.P2.InversePointProxy(this.world,this.data.velocity), this.force = new W.Physics.P2.InversePointProxy(this.world,this.data.force), this.gravity = new W.Point, this.onBeginContact = new W.Signal, this.onEndContact = new W.Signal, this.collidesWith = [], this.removeNextStep = !1, this.debugBody = null, this.dirty = !1, this._collideWorldBounds = !0, this._bodyCallbacks = {}, this._bodyCallbackContext = {}, this._groupCallbacks = {}, this._groupCallbackContext = {}, this._reset = !1, t && (this.setRectangleFromSprite(t), t.exists && this.game.physics.p2.addBody(this)) } , W.Physics.P2.Body.prototype = { createBodyCallback: function(e, t, i) { var r = -1; e.id ? r = e.id : e.body && (r = e.body.id), -1 < r && (null === t ? (delete this._bodyCallbacks[r], delete this._bodyCallbackContext[r]) : (this._bodyCallbacks[r] = t, this._bodyCallbackContext[r] = i)) }, createGroupCallback: function(e, t, i) { null === t ? (delete this._groupCallbacks[e.mask], delete this._groupCallbackContext[e.mask]) : (this._groupCallbacks[e.mask] = t, this._groupCallbackContext[e.mask] = i) }, getCollisionMask: function() { var e = 0; this._collideWorldBounds && (e = this.game.physics.p2.boundsCollisionGroup.mask); for (var t = 0; t < this.collidesWith.length; t++) e |= this.collidesWith[t].mask; return e }, updateCollisionMask: function(e) { var t = this.getCollisionMask(); if (void 0 === e) for (var i = this.data.shapes.length - 1; 0 <= i; i--) this.data.shapes[i].collisionMask = t; else e.collisionMask = t }, setCollisionGroup: function(e, t) { var i = this.getCollisionMask(); if (void 0 === t) for (var r = this.data.shapes.length - 1; 0 <= r; r--) this.data.shapes[r].collisionGroup = e.mask, this.data.shapes[r].collisionMask = i; else t.collisionGroup = e.mask, t.collisionMask = i }, clearCollision: function(e, t, i) { if (void 0 === e && (e = !0), void 0 === t && (t = !0), void 0 === i) for (var r = this.data.shapes.length - 1; 0 <= r; r--) e && (this.data.shapes[r].collisionGroup = null), t && (this.data.shapes[r].collisionMask = null); else e && (i.collisionGroup = null), t && (i.collisionMask = null); e && (this.collidesWith.length = 0) }, removeCollisionGroup: function(e, t, i) { var r; if (void 0 === t && (t = !0), Array.isArray(e)) for (var o = 0; o < e.length; o++) -1 < (r = this.collidesWith.indexOf(e[o])) && (this.collidesWith.splice(r, 1), t && (delete this._groupCallbacks[e.mask], delete this._groupCallbackContext[e.mask])); else -1 < (r = this.collidesWith.indexOf(e)) && (this.collidesWith.splice(r, 1), t && (delete this._groupCallbacks[e.mask], delete this._groupCallbackContext[e.mask])); var s = this.getCollisionMask(); if (void 0 === i) for (o = this.data.shapes.length - 1; 0 <= o; o--) this.data.shapes[o].collisionMask = s; else i.collisionMask = s }, collides: function(e, t, i, r) { if (Array.isArray(e)) for (var o = 0; o < e.length; o++) -1 === this.collidesWith.indexOf(e[o]) && (this.collidesWith.push(e[o]), t && this.createGroupCallback(e[o], t, i)); else -1 === this.collidesWith.indexOf(e) && (this.collidesWith.push(e), t && this.createGroupCallback(e, t, i)); var s = this.getCollisionMask(); if (void 0 === r) for (o = this.data.shapes.length - 1; 0 <= o; o--) this.data.shapes[o].collisionMask = s; else r.collisionMask = s }, adjustCenterOfMass: function() { this.data.adjustCenterOfMass(), this.shapeChanged() }, getVelocityAtPoint: function(e, t) { return this.data.getVelocityAtPoint(e, t) }, applyDamping: function(e) { this.data.applyDamping(e) }, applyImpulse: function(e, t, i) { this.data.applyImpulse(e, [this.world.pxmi(t), this.world.pxmi(i)]) }, applyImpulseLocal: function(e, t, i) { this.data.applyImpulseLocal(e, [this.world.pxmi(t), this.world.pxmi(i)]) }, applyForce: function(e, t, i) { this.data.applyForce(e, [this.world.pxmi(t), this.world.pxmi(i)]) }, setZeroForce: function() { this.data.setZeroForce() }, setZeroRotation: function() { this.data.angularVelocity = 0 }, setZeroVelocity: function() { this.data.velocity[0] = 0, this.data.velocity[1] = 0 }, setZeroDamping: function() { this.data.damping = 0, this.data.angularDamping = 0 }, toLocalFrame: function(e, t) { return this.data.toLocalFrame(e, t) }, toWorldFrame: function(e, t) { return this.data.toWorldFrame(e, t) }, rotateLeft: function(e) { this.data.angularVelocity = this.world.pxm(-e) }, rotateRight: function(e) { this.data.angularVelocity = this.world.pxm(e) }, moveForward: function(e) { var t = this.world.pxmi(-e) , i = this.data.angle + Math.PI / 2; this.data.velocity[0] = t * Math.cos(i), this.data.velocity[1] = t * Math.sin(i) }, moveBackward: function(e) { var t = this.world.pxmi(-e) , i = this.data.angle + Math.PI / 2; this.data.velocity[0] = -t * Math.cos(i), this.data.velocity[1] = -t * Math.sin(i) }, thrust: function(e) { var t = this.world.pxmi(-e) , i = this.data.angle + Math.PI / 2; this.data.force[0] += t * Math.cos(i), this.data.force[1] += t * Math.sin(i) }, thrustLeft: function(e) { var t = this.world.pxmi(-e) , i = this.data.angle; this.data.force[0] += t * Math.cos(i), this.data.force[1] += t * Math.sin(i) }, thrustRight: function(e) { var t = this.world.pxmi(-e) , i = this.data.angle; this.data.force[0] -= t * Math.cos(i), this.data.force[1] -= t * Math.sin(i) }, reverse: function(e) { var t = this.world.pxmi(-e) , i = this.data.angle + Math.PI / 2; this.data.force[0] -= t * Math.cos(i), this.data.force[1] -= t * Math.sin(i) }, moveLeft: function(e) { this.data.velocity[0] = this.world.pxmi(-e) }, moveRight: function(e) { this.data.velocity[0] = this.world.pxmi(e) }, moveUp: function(e) { this.data.velocity[1] = this.world.pxmi(-e) }, moveDown: function(e) { this.data.velocity[1] = this.world.pxmi(e) }, preUpdate: function() { this.dirty = !0, this.removeNextStep && (this.removeFromWorld(), this.removeNextStep = !1) }, postUpdate: function() { this.sprite.x = this.world.mpxi(this.data.position[0]) + this.offset.x, this.sprite.y = this.world.mpxi(this.data.position[1]) + this.offset.y, this.fixedRotation || (this.sprite.rotation = this.data.angle), this.debugBody && this.debugBody.updateSpriteTransform(), this.dirty = !1 }, reset: function(e, t, i, r) { void 0 === i && (i = !1), void 0 === r && (r = !1), this.setZeroForce(), this.setZeroVelocity(), this.setZeroRotation(), i && this.setZeroDamping(), r && (this.mass = 1), this.x = e, this.y = t }, addToWorld: function() { if (this.game.physics.p2._toRemove) for (var e = 0; e < this.game.physics.p2._toRemove.length; e++) this.game.physics.p2._toRemove[e] === this && this.game.physics.p2._toRemove.splice(e, 1); this.data.world !== this.game.physics.p2.world && this.game.physics.p2.addBody(this) }, removeFromWorld: function() { this.data.world === this.game.physics.p2.world && this.game.physics.p2.removeBodyNextStep(this) }, destroy: function() { this.removeFromWorld(), this.clearShapes(), this._bodyCallbacks = {}, this._bodyCallbackContext = {}, this._groupCallbacks = {}, this._groupCallbackContext = {}, this.debugBody && this.debugBody.destroy(!0, !0), this.debugBody = null, this.sprite && (this.sprite.body = null, this.sprite = null) }, clearShapes: function() { for (var e = this.data.shapes.length; e--; ) this.data.removeShape(this.data.shapes[e]); this.shapeChanged() }, addShape: function(e, t, i, r) { return void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = 0), this.data.addShape(e, [this.world.pxmi(t), this.world.pxmi(i)], r), this.shapeChanged(), e }, addCircle: function(e, t, i, r) { var o = new p2.Circle({ radius: this.world.pxm(e) }); return this.addShape(o, t, i, r) }, addRectangle: function(e, t, i, r, o) { var s = new p2.Box({ width: this.world.pxm(e), height: this.world.pxm(t) }); return this.addShape(s, i, r, o) }, addPlane: function(e, t, i) { var r = new p2.Plane; return this.addShape(r, e, t, i) }, addParticle: function(e, t, i) { var r = new p2.Particle; return this.addShape(r, e, t, i) }, addLine: function(e, t, i, r) { var o = new p2.Line({ length: this.world.pxm(e) }); return this.addShape(o, t, i, r) }, addCapsule: function(e, t, i, r, o) { var s = new p2.Capsule({ length: this.world.pxm(e), radius: this.world.pxm(t) }); return this.addShape(s, i, r, o) }, addPolygon: function(e, t) { e = e || {}, Array.isArray(t) || (t = Array.prototype.slice.call(arguments, 1)); var i = []; if (1 === t.length && Array.isArray(t[0])) i = t[0].slice(0); else if (Array.isArray(t[0])) i = t.slice(); else if ("number" == typeof t[0]) for (var r = 0, o = t.length; r < o; r += 2) i.push([t[r], t[r + 1]]); var s = i.length - 1; i[s][0] === i[0][0] && i[s][1] === i[0][1] && i.pop(); for (var a = 0; a < i.length; a++) i[a][0] = this.world.pxmi(i[a][0]), i[a][1] = this.world.pxmi(i[a][1]); var n = this.data.fromPolygon(i, e); return this.shapeChanged(), n }, removeShape: function(e) { var t = this.data.removeShape(e); return this.shapeChanged(), t }, setCircle: function(e, t, i, r) { return this.clearShapes(), this.addCircle(e, t, i, r) }, setRectangle: function(e, t, i, r, o) { return void 0 === e && (e = 16), void 0 === t && (t = 16), this.clearShapes(), this.addRectangle(e, t, i, r, o) }, setRectangleFromSprite: function(e) { return void 0 === e && (e = this.sprite), this.clearShapes(), this.addRectangle(e.width, e.height, 0, 0, e.rotation) }, setMaterial: function(e, t) { if (void 0 === t) for (var i = this.data.shapes.length - 1; 0 <= i; i--) this.data.shapes[i].material = e; else t.material = e }, shapeChanged: function() { this.debugBody && this.debugBody.draw() }, addPhaserPolygon: function(e, t) { for (var i = this.game.cache.getPhysicsData(e, t), r = [], o = 0; o < i.length; o++) { var s = i[o] , a = this.addFixture(s); r[s.filter.group] = r[s.filter.group] || [], r[s.filter.group] = r[s.filter.group].concat(a), s.fixtureKey && (r[s.fixtureKey] = a) } return this.data.aabbNeedsUpdate = !0, this.shapeChanged(), r }, addFixture: function(e) { var t = []; if (e.circle) { (c = new p2.Circle({ radius: this.world.pxm(e.circle.radius) })).collisionGroup = e.filter.categoryBits, c.collisionMask = e.filter.maskBits, c.sensor = e.isSensor; var i = p2.vec2.create(); i[0] = this.world.pxmi(e.circle.position[0] - this.sprite.width / 2), i[1] = this.world.pxmi(e.circle.position[1] - this.sprite.height / 2), this.data.addShape(c, i), t.push(c) } else for (var r = e.polygons, o = p2.vec2.create(), s = 0; s < r.length; s++) { for (var a = r[s], n = [], h = 0; h < a.length; h += 2) n.push([this.world.pxmi(a[h]), this.world.pxmi(a[h + 1])]); for (var c = new p2.Convex({ vertices: n }), l = 0; l !== c.vertices.length; l++) { var m = c.vertices[l]; p2.vec2.sub(m, m, c.centerOfMass) } p2.vec2.scale(o, c.centerOfMass, 1), o[0] -= this.world.pxmi(this.sprite.width / 2), o[1] -= this.world.pxmi(this.sprite.height / 2), c.updateTriangles(), c.updateCenterOfMass(), c.updateBoundingRadius(), c.collisionGroup = e.filter.categoryBits, c.collisionMask = e.filter.maskBits, c.sensor = e.isSensor, this.data.addShape(c, o), t.push(c) } return t }, loadPolygon: function(e, t) { if (null === e) var i = t; else i = this.game.cache.getPhysicsData(e, t); for (var r = p2.vec2.create(), o = 0; o < i.length; o++) { for (var s = [], a = 0; a < i[o].shape.length; a += 2) s.push([this.world.pxmi(i[o].shape[a]), this.world.pxmi(i[o].shape[a + 1])]); for (var n = new p2.Convex({ vertices: s }), h = 0; h !== n.vertices.length; h++) { var c = n.vertices[h]; p2.vec2.sub(c, c, n.centerOfMass) } p2.vec2.scale(r, n.centerOfMass, 1), r[0] -= this.world.pxmi(this.sprite.width / 2), r[1] -= this.world.pxmi(this.sprite.height / 2), n.updateTriangles(), n.updateCenterOfMass(), n.updateBoundingRadius(), this.data.addShape(n, r) } return this.data.aabbNeedsUpdate = !0, this.shapeChanged(), !0 } }, W.Physics.P2.Body.prototype.constructor = W.Physics.P2.Body, W.Physics.P2.Body.DYNAMIC = 1, W.Physics.P2.Body.STATIC = 2, W.Physics.P2.Body.KINEMATIC = 4, Object.defineProperty(W.Physics.P2.Body.prototype, "static", { get: function() { return this.data.type === W.Physics.P2.Body.STATIC }, set: function(e) { e && this.data.type !== W.Physics.P2.Body.STATIC ? (this.data.type = W.Physics.P2.Body.STATIC, this.mass = 0) : e || this.data.type !== W.Physics.P2.Body.STATIC || (this.data.type = W.Physics.P2.Body.DYNAMIC, this.mass = 1) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "dynamic", { get: function() { return this.data.type === W.Physics.P2.Body.DYNAMIC }, set: function(e) { e && this.data.type !== W.Physics.P2.Body.DYNAMIC ? (this.data.type = W.Physics.P2.Body.DYNAMIC, this.mass = 1) : e || this.data.type !== W.Physics.P2.Body.DYNAMIC || (this.data.type = W.Physics.P2.Body.STATIC, this.mass = 0) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "kinematic", { get: function() { return this.data.type === W.Physics.P2.Body.KINEMATIC }, set: function(e) { e && this.data.type !== W.Physics.P2.Body.KINEMATIC ? (this.data.type = W.Physics.P2.Body.KINEMATIC, this.mass = 4) : e || this.data.type !== W.Physics.P2.Body.KINEMATIC || (this.data.type = W.Physics.P2.Body.STATIC, this.mass = 0) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "allowSleep", { get: function() { return this.data.allowSleep }, set: function(e) { e !== this.data.allowSleep && (this.data.allowSleep = e) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "angle", { get: function() { return W.Math.wrapAngle(W.Math.radToDeg(this.data.angle)) }, set: function(e) { this.data.angle = W.Math.degToRad(W.Math.wrapAngle(e)) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "angularDamping", { get: function() { return this.data.angularDamping }, set: function(e) { this.data.angularDamping = e } }), Object.defineProperty(W.Physics.P2.Body.prototype, "angularForce", { get: function() { return this.data.angularForce }, set: function(e) { this.data.angularForce = e } }), Object.defineProperty(W.Physics.P2.Body.prototype, "angularVelocity", { get: function() { return this.data.angularVelocity }, set: function(e) { this.data.angularVelocity = e } }), Object.defineProperty(W.Physics.P2.Body.prototype, "damping", { get: function() { return this.data.damping }, set: function(e) { this.data.damping = e } }), Object.defineProperty(W.Physics.P2.Body.prototype, "fixedRotation", { get: function() { return this.data.fixedRotation }, set: function(e) { e !== this.data.fixedRotation && (this.data.fixedRotation = e) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "inertia", { get: function() { return this.data.inertia }, set: function(e) { this.data.inertia = e } }), Object.defineProperty(W.Physics.P2.Body.prototype, "mass", { get: function() { return this.data.mass }, set: function(e) { e !== this.data.mass && (this.data.mass = e, this.data.updateMassProperties()) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "motionState", { get: function() { return this.data.type }, set: function(e) { e !== this.data.type && (this.data.type = e) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "rotation", { get: function() { return this.data.angle }, set: function(e) { this.data.angle = e } }), Object.defineProperty(W.Physics.P2.Body.prototype, "sleepSpeedLimit", { get: function() { return this.data.sleepSpeedLimit }, set: function(e) { this.data.sleepSpeedLimit = e } }), Object.defineProperty(W.Physics.P2.Body.prototype, "x", { get: function() { return this.world.mpxi(this.data.position[0]) }, set: function(e) { this.data.position[0] = this.world.pxmi(e) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "y", { get: function() { return this.world.mpxi(this.data.position[1]) }, set: function(e) { this.data.position[1] = this.world.pxmi(e) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "id", { get: function() { return this.data.id } }), Object.defineProperty(W.Physics.P2.Body.prototype, "debug", { get: function() { return null !== this.debugBody }, set: function(e) { e && !this.debugBody ? this.debugBody = new W.Physics.P2.BodyDebug(this.game,this.data) : !e && this.debugBody && (this.debugBody.destroy(), this.debugBody = null) } }), Object.defineProperty(W.Physics.P2.Body.prototype, "collideWorldBounds", { get: function() { return this._collideWorldBounds }, set: function(e) { e && !this._collideWorldBounds ? (this._collideWorldBounds = !0, this.updateCollisionMask()) : !e && this._collideWorldBounds && (this._collideWorldBounds = !1, this.updateCollisionMask()) } }), W.Physics.P2.BodyDebug = function(e, t, i) { W.Group.call(this, e); var r = { pixelsPerLengthUnit: e.physics.p2.mpx(1), debugPolygons: !1, lineWidth: 1, alpha: .5 }; this.settings = W.Utils.extend(r, i), this.ppu = this.settings.pixelsPerLengthUnit, this.ppu = -1 * this.ppu, this.body = t, this.canvas = new W.Graphics(e), this.canvas.alpha = this.settings.alpha, this.add(this.canvas), this.draw(), this.updateSpriteTransform() } , W.Physics.P2.BodyDebug.prototype = Object.create(W.Group.prototype), W.Physics.P2.BodyDebug.prototype.constructor = W.Physics.P2.BodyDebug, W.Utils.extend(W.Physics.P2.BodyDebug.prototype, { updateSpriteTransform: function() { this.position.x = this.body.position[0] * this.ppu, this.position.y = this.body.position[1] * this.ppu, this.rotation = this.body.angle }, draw: function() { var e, t, i, r, o, s, a, n, h, c, l, m, u, d, p; if (n = this.body, (c = this.canvas).clear(), i = parseInt(this.randomPastelHex(), 16), s = 16711680, a = this.lineWidth, n instanceof p2.Body && n.shapes.length) { var f = n.shapes.length; for (r = 0; r !== f; ) { if (h = (t = n.shapes[r]).position || 0, e = t.angle || 0, t instanceof p2.Circle) this.drawCircle(c, h[0] * this.ppu, h[1] * this.ppu, e, t.radius * this.ppu, i, a); else if (t instanceof p2.Capsule) this.drawCapsule(c, h[0] * this.ppu, h[1] * this.ppu, e, t.length * this.ppu, t.radius * this.ppu, s, i, a); else if (t instanceof p2.Plane) this.drawPlane(c, h[0] * this.ppu, -h[1] * this.ppu, i, s, 5 * a, 10 * a, 10 * a, 100 * this.ppu, e); else if (t instanceof p2.Line) this.drawLine(c, t.length * this.ppu, s, a); else if (t instanceof p2.Box) this.drawRectangle(c, h[0] * this.ppu, h[1] * this.ppu, e, t.width * this.ppu, t.height * this.ppu, s, i, a); else if (t instanceof p2.Convex) { for (m = [], u = p2.vec2.create(), o = d = 0, p = t.vertices.length; 0 <= p ? d < p : p < d; o = 0 <= p ? ++d : --d) l = t.vertices[o], p2.vec2.rotate(u, l, e), m.push([(u[0] + h[0]) * this.ppu, -(u[1] + h[1]) * this.ppu]); this.drawConvex(c, m, t.triangles, s, i, a, this.settings.debugPolygons, [h[0] * this.ppu, -h[1] * this.ppu]) } r++ } } }, drawRectangle: function(e, t, i, r, o, s, a, n, h) { void 0 === h && (h = 1), void 0 === a && (a = 0), e.lineStyle(h, a, 1), e.beginFill(n), e.drawRect(t - o / 2, i - s / 2, o, s) }, drawCircle: function(e, t, i, r, o, s, a) { void 0 === a && (a = 1), void 0 === s && (s = 16777215), e.lineStyle(a, 0, 1), e.beginFill(s, 1), e.drawCircle(t, i, 2 * -o), e.endFill(), e.moveTo(t, i), e.lineTo(t + o * Math.cos(-r), i + o * Math.sin(-r)) }, drawLine: function(e, t, i, r) { void 0 === r && (r = 1), void 0 === i && (i = 0), e.lineStyle(5 * r, i, 1), e.moveTo(-t / 2, 0), e.lineTo(t / 2, 0) }, drawConvex: function(e, t, i, r, o, s, a, n) { var h, c, l, m, u, d, p, f, y, S, w; if (void 0 === s && (s = 1), void 0 === r && (r = 0), a) { for (h = [16711680, 65280, 255], c = 0; c !== t.length + 1; ) m = t[c % t.length], u = t[(c + 1) % t.length], p = m[0], S = m[1], f = u[0], w = u[1], e.lineStyle(s, h[c % h.length], 1), e.moveTo(p, -S), e.lineTo(f, -w), e.drawCircle(p, -S, 2 * s), c++; return e.lineStyle(s, 0, 1), e.drawCircle(n[0], n[1], 2 * s) } for (e.lineStyle(s, r, 1), e.beginFill(o), c = 0; c !== t.length; ) d = (l = t[c])[0], y = l[1], 0 === c ? e.moveTo(d, -y) : e.lineTo(d, -y), c++; if (e.endFill(), 2 < t.length) return e.moveTo(t[t.length - 1][0], -t[t.length - 1][1]), e.lineTo(t[0][0], -t[0][1]) }, drawPath: function(e, t, i, r, o) { var s, a, n, h, c, l, m, u, d, p, f; for (void 0 === o && (o = 1), void 0 === i && (i = 0), e.lineStyle(o, i, 1), "number" == typeof r && e.beginFill(r), n = a = null, s = 0; s < t.length; ) p = (d = t[s])[0], f = d[1], p === a && f === n || (0 === s ? e.moveTo(p, f) : (h = a, c = n, l = p, m = f, u = t[(s + 1) % t.length][0], 0 !== (l - h) * (t[(s + 1) % t.length][1] - c) - (u - h) * (m - c) && e.lineTo(p, f)), a = p, n = f), s++; "number" == typeof r && e.endFill(), 2 < t.length && "number" == typeof r && (e.moveTo(t[t.length - 1][0], t[t.length - 1][1]), e.lineTo(t[0][0], t[0][1])) }, drawPlane: function(e, t, i, r, o, s, a, n, h, c) { var l, m; void 0 === s && (s = 1), void 0 === r && (r = 16777215), e.lineStyle(s, o, 11), e.beginFill(r), e.moveTo(t, -i), l = t + Math.cos(c) * this.game.width, m = i + Math.sin(c) * this.game.height, e.lineTo(l, -m), e.moveTo(t, -i), l = t + Math.cos(c) * -this.game.width, m = i + Math.sin(c) * -this.game.height, e.lineTo(l, -m) }, drawCapsule: function(e, t, i, r, o, s, a, n, h) { void 0 === h && (h = 1), void 0 === a && (a = 0), e.lineStyle(h, a, 1); var c = Math.cos(r) , l = Math.sin(r); e.beginFill(n, 1), e.drawCircle(-o / 2 * c + t, -o / 2 * l + i, 2 * -s), e.drawCircle(o / 2 * c + t, o / 2 * l + i, 2 * -s), e.endFill(), e.lineStyle(h, a, 0), e.beginFill(n, 1), e.moveTo(-o / 2 * c + s * l + t, -o / 2 * l + s * c + i), e.lineTo(o / 2 * c + s * l + t, o / 2 * l + s * c + i), e.lineTo(o / 2 * c - s * l + t, o / 2 * l - s * c + i), e.lineTo(-o / 2 * c - s * l + t, -o / 2 * l - s * c + i), e.endFill(), e.lineStyle(h, a, 1), e.moveTo(-o / 2 * c + s * l + t, -o / 2 * l + s * c + i), e.lineTo(o / 2 * c + s * l + t, o / 2 * l + s * c + i), e.moveTo(-o / 2 * c - s * l + t, -o / 2 * l - s * c + i), e.lineTo(o / 2 * c - s * l + t, o / 2 * l - s * c + i) }, randomPastelHex: function() { var e, t, i, r; return i = [255, 255, 255], r = Math.floor(256 * Math.random()), t = Math.floor(256 * Math.random()), e = Math.floor(256 * Math.random()), r = Math.floor((r + 3 * i[0]) / 4), t = Math.floor((t + 3 * i[1]) / 4), e = Math.floor((e + 3 * i[2]) / 4), this.rgbToHex(r, t, e) }, rgbToHex: function(e, t, i) { return this.componentToHex(e) + this.componentToHex(t) + this.componentToHex(i) }, componentToHex: function(e) { var t; return 2 === (t = e.toString(16)).length ? t : t + "0" } }), W.Physics.P2.Spring = function(e, t, i, r, o, s, a, n, h, c) { this.game = e.game, void 0 === r && (r = 1), void 0 === o && (o = 100), void 0 === s && (s = 1); var l = { restLength: r = (this.world = e).pxm(r), stiffness: o, damping: s }; null != a && (l.worldAnchorA = [e.pxm(a[0]), e.pxm(a[1])]), null != n && (l.worldAnchorB = [e.pxm(n[0]), e.pxm(n[1])]), null != h && (l.localAnchorA = [e.pxm(h[0]), e.pxm(h[1])]), null != c && (l.localAnchorB = [e.pxm(c[0]), e.pxm(c[1])]), this.data = new p2.LinearSpring(t,i,l), this.data.parent = this } , W.Physics.P2.Spring.prototype.constructor = W.Physics.P2.Spring, W.Physics.P2.RotationalSpring = function(e, t, i, r, o, s) { this.game = e.game, this.world = e, void 0 === r && (r = null), void 0 === o && (o = 100), void 0 === s && (s = 1), r && (r = e.pxm(r)); var a = { restAngle: r, stiffness: o, damping: s }; this.data = new p2.RotationalSpring(t,i,a), this.data.parent = this } , W.Physics.P2.Spring.prototype.constructor = W.Physics.P2.Spring, W.Physics.P2.Material = function(e) { this.name = e, p2.Material.call(this) } , W.Physics.P2.Material.prototype = Object.create(p2.Material.prototype), W.Physics.P2.Material.prototype.constructor = W.Physics.P2.Material, W.Physics.P2.ContactMaterial = function(e, t, i) { p2.ContactMaterial.call(this, e, t, i) } , W.Physics.P2.ContactMaterial.prototype = Object.create(p2.ContactMaterial.prototype), W.Physics.P2.ContactMaterial.prototype.constructor = W.Physics.P2.ContactMaterial, W.Physics.P2.CollisionGroup = function(e) { this.mask = e } , W.Physics.P2.DistanceConstraint = function(e, t, i, r, o, s, a) { void 0 === r && (r = 100), void 0 === o && (o = [0, 0]), void 0 === s && (s = [0, 0]), void 0 === a && (a = Number.MAX_VALUE), this.game = e.game; var n = { distance: r = (this.world = e).pxm(r), localAnchorA: o = [e.pxmi(o[0]), e.pxmi(o[1])], localAnchorB: s = [e.pxmi(s[0]), e.pxmi(s[1])], maxForce: a }; p2.DistanceConstraint.call(this, t, i, n) } , W.Physics.P2.DistanceConstraint.prototype = Object.create(p2.DistanceConstraint.prototype), W.Physics.P2.DistanceConstraint.prototype.constructor = W.Physics.P2.DistanceConstraint, W.Physics.P2.GearConstraint = function(e, t, i, r, o) { void 0 === r && (r = 0), void 0 === o && (o = 1), this.game = e.game, this.world = e; var s = { angle: r, ratio: o }; p2.GearConstraint.call(this, t, i, s) } , W.Physics.P2.GearConstraint.prototype = Object.create(p2.GearConstraint.prototype), W.Physics.P2.GearConstraint.prototype.constructor = W.Physics.P2.GearConstraint, W.Physics.P2.LockConstraint = function(e, t, i, r, o, s) { void 0 === r && (r = [0, 0]), void 0 === o && (o = 0), void 0 === s && (s = Number.MAX_VALUE), this.game = e.game; var a = { localOffsetB: r = [(this.world = e).pxm(r[0]), e.pxm(r[1])], localAngleB: o, maxForce: s }; p2.LockConstraint.call(this, t, i, a) } , W.Physics.P2.LockConstraint.prototype = Object.create(p2.LockConstraint.prototype), W.Physics.P2.LockConstraint.prototype.constructor = W.Physics.P2.LockConstraint, W.Physics.P2.PrismaticConstraint = function(e, t, i, r, o, s, a, n) { void 0 === r && (r = !0), void 0 === o && (o = [0, 0]), void 0 === s && (s = [0, 0]), void 0 === a && (a = [0, 0]), void 0 === n && (n = Number.MAX_VALUE), this.game = e.game; var h = { localAnchorA: o = [(this.world = e).pxmi(o[0]), e.pxmi(o[1])], localAnchorB: s = [e.pxmi(s[0]), e.pxmi(s[1])], localAxisA: a, maxForce: n, disableRotationalLock: !r }; p2.PrismaticConstraint.call(this, t, i, h) } , W.Physics.P2.PrismaticConstraint.prototype = Object.create(p2.PrismaticConstraint.prototype), W.Physics.P2.PrismaticConstraint.prototype.constructor = W.Physics.P2.PrismaticConstraint, W.Physics.P2.RevoluteConstraint = function(e, t, i, r, o, s, a) { void 0 === s && (s = Number.MAX_VALUE), void 0 === a && (a = null), this.game = e.game, i = [(this.world = e).pxmi(i[0]), e.pxmi(i[1])], o = [e.pxmi(o[0]), e.pxmi(o[1])], a && (a = [e.pxmi(a[0]), e.pxmi(a[1])]); var n = { worldPivot: a, localPivotA: i, localPivotB: o, maxForce: s }; p2.RevoluteConstraint.call(this, t, r, n) } , W.Physics.P2.RevoluteConstraint.prototype = Object.create(p2.RevoluteConstraint.prototype), W.Physics.P2.RevoluteConstraint.prototype.constructor = W.Physics.P2.RevoluteConstraint, W.ImageCollection = function(e, t, i, r, o, s, a) { (void 0 === i || i <= 0) && (i = 32), (void 0 === r || r <= 0) && (r = 32), void 0 === o && (o = 0), void 0 === s && (s = 0), this.name = e, this.firstgid = 0 | t, this.imageWidth = 0 | i, this.imageHeight = 0 | r, this.imageMargin = 0 | o, this.imageSpacing = 0 | s, this.properties = a || {}, this.images = [], this.total = 0 } , W.ImageCollection.prototype = { containsImageIndex: function(e) { return e >= this.firstgid && e < this.firstgid + this.total }, addImage: function(e, t) { this.images.push({ gid: e, image: t }), this.total++ } }, W.ImageCollection.prototype.constructor = W.ImageCollection, W.Tile = function(e, t, i, r, o, s) { this.layer = e, this.index = t, this.x = i, this.y = r, this.rotation = 0, this.flipped = !1, this.worldX = i * o, this.worldY = r * s, this.width = o, this.height = s, this.centerX = Math.abs(o / 2), this.centerY = Math.abs(s / 2), this.alpha = 1, this.properties = {}, this.scanned = !1, this.faceTop = !1, this.faceBottom = !1, this.faceLeft = !1, this.faceRight = !1, this.collideLeft = !1, this.collideRight = !1, this.collideUp = !1, this.collideDown = !1, this.collisionCallback = null, this.collisionCallbackContext = this } , W.Tile.prototype = { containsPoint: function(e, t) { return !(e < this.worldX || t < this.worldY || e > this.right || t > this.bottom) }, intersects: function(e, t, i, r) { return !(i <= this.worldX) && (!(r <= this.worldY) && (!(e >= this.worldX + this.width) && !(t >= this.worldY + this.height))) }, setCollisionCallback: function(e, t) { this.collisionCallback = e, this.collisionCallbackContext = t }, destroy: function() { this.collisionCallback = null, this.collisionCallbackContext = null, this.properties = null }, setCollision: function(e, t, i, r) { this.collideLeft = e, this.collideRight = t, this.collideUp = i, this.collideDown = r, this.faceLeft = e, this.faceRight = t, this.faceTop = i, this.faceBottom = r }, resetCollision: function() { this.collideLeft = !1, this.collideRight = !1, this.collideUp = !1, this.collideDown = !1, this.faceTop = !1, this.faceBottom = !1, this.faceLeft = !1, this.faceRight = !1 }, isInteresting: function(e, t) { return e && t ? this.collideLeft || this.collideRight || this.collideUp || this.collideDown || this.faceTop || this.faceBottom || this.faceLeft || this.faceRight || this.collisionCallback : e ? this.collideLeft || this.collideRight || this.collideUp || this.collideDown : !!t && (this.faceTop || this.faceBottom || this.faceLeft || this.faceRight) }, copy: function(e) { this.index = e.index, this.alpha = e.alpha, this.properties = e.properties, this.collideUp = e.collideUp, this.collideDown = e.collideDown, this.collideLeft = e.collideLeft, this.collideRight = e.collideRight, this.collisionCallback = e.collisionCallback, this.collisionCallbackContext = e.collisionCallbackContext } }, W.Tile.prototype.constructor = W.Tile, Object.defineProperty(W.Tile.prototype, "collides", { get: function() { return this.collideLeft || this.collideRight || this.collideUp || this.collideDown } }), Object.defineProperty(W.Tile.prototype, "canCollide", { get: function() { return this.collideLeft || this.collideRight || this.collideUp || this.collideDown || this.collisionCallback } }), Object.defineProperty(W.Tile.prototype, "left", { get: function() { return this.worldX } }), Object.defineProperty(W.Tile.prototype, "right", { get: function() { return this.worldX + this.width } }), Object.defineProperty(W.Tile.prototype, "top", { get: function() { return this.worldY } }), Object.defineProperty(W.Tile.prototype, "bottom", { get: function() { return this.worldY + this.height } }), W.Tilemap = function(e, t, i, r, o, s) { this.game = e, this.key = t; var a = W.TilemapParser.parse(this.game, t, i, r, o, s); null !== a && (this.width = a.width, this.height = a.height, this.tileWidth = a.tileWidth, this.tileHeight = a.tileHeight, this.orientation = a.orientation, this.format = a.format, this.version = a.version, this.properties = a.properties, this.widthInPixels = a.widthInPixels, this.heightInPixels = a.heightInPixels, this.layers = a.layers, this.tilesets = a.tilesets, this.imagecollections = a.imagecollections, this.tiles = a.tiles, this.objects = a.objects, this.collideIndexes = [], this.collision = a.collision, this.images = a.images, this.enableDebug = !1, this.currentLayer = 0, this.debugMap = [], this._results = [], this._tempA = 0, this._tempB = 0) } , W.Tilemap.CSV = 0, W.Tilemap.TILED_JSON = 1, W.Tilemap.NORTH = 0, W.Tilemap.EAST = 1, W.Tilemap.SOUTH = 2, W.Tilemap.WEST = 3, W.Tilemap.prototype = { create: function(e, t, i, r, o, s) { return void 0 === s && (s = this.game.world), this.width = t, this.height = i, this.setTileSize(r, o), this.layers.length = 0, this.createBlankLayer(e, t, i, r, o, s) }, setTileSize: function(e, t) { this.tileWidth = e, this.tileHeight = t, this.widthInPixels = this.width * e, this.heightInPixels = this.height * t }, addTilesetImage: function(e, t, i, r, o, s, a) { if (void 0 === e) return null; void 0 === i && (i = this.tileWidth), void 0 === r && (r = this.tileHeight), void 0 === o && (o = 0), void 0 === s && (s = 0), void 0 === a && (a = 0), 0 === i && (i = 32), 0 === r && (r = 32); var n = null; if (null == t && (t = e), t instanceof W.BitmapData) n = t.canvas; else { if (!this.game.cache.checkImageKey(t)) return null; n = this.game.cache.getImage(t) } var h = this.getTilesetIndex(e); if (null === h && this.format === W.Tilemap.TILED_JSON) return null; if (this.tilesets[h]) return this.tilesets[h].setImage(n), this.tilesets[h]; var c = new W.Tileset(e,a,i,r,o,s,{}); c.setImage(n), this.tilesets.push(c); for (var l = this.tilesets.length - 1, m = o, u = o, d = 0, p = 0, f = 0, y = a; y < a + c.total && (this.tiles[y] = [m, u, l], m += i + s, ++d !== c.total) && (++p !== c.columns || (m = o, u += r + s, p = 0, ++f !== c.rows)); y++) ; return c }, createFromObjects: function(e, t, i, r, o, s, a, n, h) { if (void 0 === o && (o = !0), void 0 === s && (s = !1), void 0 === a && (a = this.game.world), void 0 === n && (n = W.Sprite), void 0 === h && (h = !0), this.objects[e]) for (var c = 0; c < this.objects[e].length; c++) { var l = !1 , m = this.objects[e][c]; if (void 0 !== m.gid && "number" == typeof t && m.gid === t ? l = !0 : void 0 !== m.id && "number" == typeof t && m.id === t ? l = !0 : void 0 !== m.name && "string" == typeof t && m.name === t && (l = !0), l) { var u = new n(this.game,parseFloat(m.x, 10),parseFloat(m.y, 10),i,r); for (var d in u.name = m.name, u.visible = m.visible, u.autoCull = s, u.exists = o, m.width && (u.width = m.width), m.height && (u.height = m.height), m.rotation && (u.angle = m.rotation), h && (u.y -= u.height), a.add(u), m.properties) a.set(u, d, m.properties[d], !1, !1, 0, !0) } } }, createFromTiles: function(e, t, i, r, o, s) { "number" == typeof e && (e = [e]), null == t ? t = [] : "number" == typeof t && (t = [t]), r = this.getLayer(r), void 0 === o && (o = this.game.world), void 0 === s && (s = {}), void 0 === s.customClass && (s.customClass = W.Sprite), void 0 === s.adjustY && (s.adjustY = !0); var a = this.layers[r].width , n = this.layers[r].height; if (this.copy(0, 0, a, n, r), this._results.length < 2) return 0; for (var h, c = 0, l = 1, m = this._results.length; l < m; l++) if (-1 !== e.indexOf(this._results[l].index)) { for (var u in h = new s.customClass(this.game,this._results[l].worldX,this._results[l].worldY,i), s) h[u] = s[u]; o.add(h), c++ } if (1 === t.length) for (l = 0; l < e.length; l++) this.replace(e[l], t[0], 0, 0, a, n, r); else if (1 < t.length) for (l = 0; l < e.length; l++) this.replace(e[l], t[l], 0, 0, a, n, r); return c }, createLayer: function(e, t, i, r) { void 0 === t && (t = this.game.width), void 0 === i && (i = this.game.height), void 0 === r && (r = this.game.world); var o = e; if ("string" == typeof e && (o = this.getLayerIndex(e)), !(null === o || o > this.layers.length)) { void 0 === t || t <= 0 ? t = Math.min(this.game.width, this.layers[o].widthInPixels) : t > this.game.width && (t = this.game.width), void 0 === i || i <= 0 ? i = Math.min(this.game.height, this.layers[o].heightInPixels) : i > this.game.height && (i = this.game.height), this.enableDebug; var s = r.add(new W.TilemapLayer(this.game,this,o,t,i)); return this.enableDebug, s } }, createBlankLayer: function(e, t, i, r, o, s) { if (void 0 === s && (s = this.game.world), null === this.getLayerIndex(e)) { for (var a, n = { name: e, x: 0, y: 0, width: t, height: i, widthInPixels: t * r, heightInPixels: i * o, alpha: 1, visible: !0, properties: {}, indexes: [], callbacks: [], bodies: [], data: null }, h = [], c = 0; c < i; c++) { a = []; for (var l = 0; l < t; l++) a.push(new W.Tile(n,-1,l,c,r,o)); h.push(a) } n.data = h, this.layers.push(n), this.currentLayer = this.layers.length - 1; var m = n.widthInPixels , u = n.heightInPixels; return m > this.game.width && (m = this.game.width), u > this.game.height && (u = this.game.height), (h = new W.TilemapLayer(this.game,this,this.layers.length - 1,m,u)).name = e, s.add(h) } }, getIndex: function(e, t) { for (var i = 0; i < e.length; i++) if (e[i].name === t) return i; return null }, getLayerIndex: function(e) { return this.getIndex(this.layers, e) }, getTilesetIndex: function(e) { return this.getIndex(this.tilesets, e) }, getImageIndex: function(e) { return this.getIndex(this.images, e) }, setTileIndexCallback: function(e, t, i, r) { if (r = this.getLayer(r), "number" == typeof e) this.layers[r].callbacks[e] = { callback: t, callbackContext: i }; else for (var o = 0, s = e.length; o < s; o++) this.layers[r].callbacks[e[o]] = { callback: t, callbackContext: i } }, setTileLocationCallback: function(e, t, i, r, o, s, a) { if (a = this.getLayer(a), this.copy(e, t, i, r, a), !(this._results.length < 2)) for (var n = 1; n < this._results.length; n++) this._results[n].setCollisionCallback(o, s) }, setCollision: function(e, t, i, r) { if (void 0 === t && (t = !0), void 0 === r && (r = !0), i = this.getLayer(i), "number" == typeof e) return this.setCollisionByIndex(e, t, i, !0); if (Array.isArray(e)) { for (var o = 0; o < e.length; o++) this.setCollisionByIndex(e[o], t, i, !1); r && this.calculateFaces(i) } }, setCollisionBetween: function(e, t, i, r, o) { if (void 0 === i && (i = !0), void 0 === o && (o = !0), r = this.getLayer(r), !(t < e)) { for (var s = e; s <= t; s++) this.setCollisionByIndex(s, i, r, !1); o && this.calculateFaces(r) } }, setCollisionByExclusion: function(e, t, i, r) { void 0 === t && (t = !0), void 0 === r && (r = !0), i = this.getLayer(i); for (var o = 0, s = this.tiles.length; o < s; o++) -1 === e.indexOf(o) && this.setCollisionByIndex(o, t, i, !1); r && this.calculateFaces(i) }, setCollisionByIndex: function(e, t, i, r) { if (void 0 === t && (t = !0), void 0 === i && (i = this.currentLayer), void 0 === r && (r = !0), t) this.collideIndexes.push(e); else { var o = this.collideIndexes.indexOf(e); -1 < o && this.collideIndexes.splice(o, 1) } for (var s = 0; s < this.layers[i].height; s++) for (var a = 0; a < this.layers[i].width; a++) { var n = this.layers[i].data[s][a]; n && n.index === e && (t ? n.setCollision(!0, !0, !0, !0) : n.resetCollision(), n.faceTop = t, n.faceBottom = t, n.faceLeft = t, n.faceRight = t) } return r && this.calculateFaces(i), i }, getLayer: function(e) { return void 0 === e ? e = this.currentLayer : "string" == typeof e ? e = this.getLayerIndex(e) : e instanceof W.TilemapLayer && (e = e.index), e }, setPreventRecalculate: function(e) { if (!0 === e && !0 !== this.preventingRecalculate && (this.preventingRecalculate = !0, this.needToRecalculate = {}), !1 === e && !0 === this.preventingRecalculate) { for (var t in this.preventingRecalculate = !1, this.needToRecalculate) this.calculateFaces(t); this.needToRecalculate = !1 } }, calculateFaces: function(e) { if (this.preventingRecalculate) this.needToRecalculate[e] = !0; else for (var t = null, i = null, r = null, o = null, s = 0, a = this.layers[e].height; s < a; s++) for (var n = 0, h = this.layers[e].width; n < h; n++) { var c = this.layers[e].data[s][n]; c && (t = this.getTileAbove(e, n, s), i = this.getTileBelow(e, n, s), r = this.getTileLeft(e, n, s), o = this.getTileRight(e, n, s), c.collides && (c.faceTop = !0, c.faceBottom = !0, c.faceLeft = !0, c.faceRight = !0), t && t.collides && (c.faceTop = !1), i && i.collides && (c.faceBottom = !1), r && r.collides && (c.faceLeft = !1), o && o.collides && (c.faceRight = !1)) } }, getTileAbove: function(e, t, i) { return 0 < i ? this.layers[e].data[i - 1][t] : null }, getTileBelow: function(e, t, i) { return i < this.layers[e].height - 1 ? this.layers[e].data[i + 1][t] : null }, getTileLeft: function(e, t, i) { return 0 < t ? this.layers[e].data[i][t - 1] : null }, getTileRight: function(e, t, i) { return t < this.layers[e].width - 1 ? this.layers[e].data[i][t + 1] : null }, setLayer: function(e) { e = this.getLayer(e), this.layers[e] && (this.currentLayer = e) }, hasTile: function(e, t, i) { return i = this.getLayer(i), void 0 !== this.layers[i].data[t] && void 0 !== this.layers[i].data[t][e] && -1 < this.layers[i].data[t][e].index }, removeTile: function(e, t, i) { if (i = this.getLayer(i), 0 <= e && e < this.layers[i].width && 0 <= t && t < this.layers[i].height && this.hasTile(e, t, i)) { var r = this.layers[i].data[t][e]; return this.layers[i].data[t][e] = new W.Tile(this.layers[i],-1,e,t,this.tileWidth,this.tileHeight), this.layers[i].dirty = !0, this.calculateFaces(i), r } }, removeTileWorldXY: function(e, t, i, r, o) { return o = this.getLayer(o), e = this.game.math.snapToFloor(e, i) / i, t = this.game.math.snapToFloor(t, r) / r, this.removeTile(e, t, o) }, putTile: function(e, t, i, r) { return null === e ? this.removeTile(t, i, r) : (r = this.getLayer(r), 0 <= t && t < this.layers[r].width && 0 <= i && i < this.layers[r].height ? (e instanceof W.Tile ? (o = e.index, this.hasTile(t, i, r) ? this.layers[r].data[i][t].copy(e) : this.layers[r].data[i][t] = new W.Tile(r,o,t,i,e.width,e.height)) : (o = e, this.hasTile(t, i, r) ? this.layers[r].data[i][t].index = o : this.layers[r].data[i][t] = new W.Tile(this.layers[r],o,t,i,this.tileWidth,this.tileHeight)), -1 < this.collideIndexes.indexOf(o) ? this.layers[r].data[i][t].setCollision(!0, !0, !0, !0) : this.layers[r].data[i][t].resetCollision(), this.layers[r].dirty = !0, this.calculateFaces(r), this.layers[r].data[i][t]) : null); var o }, putTileWorldXY: function(e, t, i, r, o, s) { return s = this.getLayer(s), t = this.game.math.snapToFloor(t, r) / r, i = this.game.math.snapToFloor(i, o) / o, this.putTile(e, t, i, s) }, searchTileIndex: function(e, t, i, r) { void 0 === t && (t = 0), void 0 === i && (i = !1), r = this.getLayer(r); var o = 0; if (i) { for (var s = this.layers[r].height - 1; 0 <= s; s--) for (var a = this.layers[r].width - 1; 0 <= a; a--) if (this.layers[r].data[s][a].index === e) { if (o === t) return this.layers[r].data[s][a]; o++ } } else for (s = 0; s < this.layers[r].height; s++) for (a = 0; a < this.layers[r].width; a++) if (this.layers[r].data[s][a].index === e) { if (o === t) return this.layers[r].data[s][a]; o++ } return null }, getTile: function(e, t, i, r) { return void 0 === r && (r = !1), i = this.getLayer(i), 0 <= e && e < this.layers[i].width && 0 <= t && t < this.layers[i].height ? -1 === this.layers[i].data[t][e].index ? r ? this.layers[i].data[t][e] : null : this.layers[i].data[t][e] : null }, getTileWorldXY: function(e, t, i, r, o, s) { return void 0 === i && (i = this.tileWidth), void 0 === r && (r = this.tileHeight), o = this.getLayer(o), e = this.game.math.snapToFloor(e, i) / i, t = this.game.math.snapToFloor(t, r) / r, this.getTile(e, t, o, s) }, copy: function(e, t, i, r, o) { if (o = this.getLayer(o), this.layers[o]) { void 0 === e && (e = 0), void 0 === t && (t = 0), void 0 === i && (i = this.layers[o].width), void 0 === r && (r = this.layers[o].height), e < 0 && (e = 0), t < 0 && (t = 0), i > this.layers[o].width && (i = this.layers[o].width), r > this.layers[o].height && (r = this.layers[o].height), this._results.length = 0, this._results.push({ x: e, y: t, width: i, height: r, layer: o }); for (var s = t; s < t + r; s++) for (var a = e; a < e + i; a++) this._results.push(this.layers[o].data[s][a]); return this._results } this._results.length = 0 }, paste: function(e, t, i, r) { if (void 0 === e && (e = 0), void 0 === t && (t = 0), r = this.getLayer(r), i && !(i.length < 2)) { for (var o = e - i[1].x, s = t - i[1].y, a = 1; a < i.length; a++) this.layers[r].data[s + i[a].y][o + i[a].x].copy(i[a]); this.layers[r].dirty = !0, this.calculateFaces(r) } }, swap: function(e, t, i, r, o, s, a) { a = this.getLayer(a), this.copy(i, r, o, s, a), this._results.length < 2 || (this._tempA = e, this._tempB = t, this._results.forEach(this.swapHandler, this), this.paste(i, r, this._results, a)) }, swapHandler: function(e) { e.index === this._tempA ? e.index = this._tempB : e.index === this._tempB && (e.index = this._tempA) }, forEach: function(e, t, i, r, o, s, a) { a = this.getLayer(a), this.copy(i, r, o, s, a), this._results.length < 2 || (this._results.forEach(e, t), this.paste(i, r, this._results, a)) }, replace: function(e, t, i, r, o, s, a) { if (a = this.getLayer(a), this.copy(i, r, o, s, a), !(this._results.length < 2)) { for (var n = 1; n < this._results.length; n++) this._results[n].index === e && (this._results[n].index = t); this.paste(i, r, this._results, a) } }, random: function(e, t, i, r, o) { if (o = this.getLayer(o), this.copy(e, t, i, r, o), !(this._results.length < 2)) { for (var s = [], a = 1; a < this._results.length; a++) if (this._results[a].index) { var n = this._results[a].index; -1 === s.indexOf(n) && s.push(n) } for (var h = 1; h < this._results.length; h++) this._results[h].index = this.game.rnd.pick(s); this.paste(e, t, this._results, o) } }, shuffle: function(e, t, i, r, o) { if (o = this.getLayer(o), this.copy(e, t, i, r, o), !(this._results.length < 2)) { for (var s = [], a = 1; a < this._results.length; a++) this._results[a].index && s.push(this._results[a].index); W.ArrayUtils.shuffle(s); for (var n = 1; n < this._results.length; n++) this._results[n].index = s[n - 1]; this.paste(e, t, this._results, o) } }, fill: function(e, t, i, r, o, s) { if (s = this.getLayer(s), this.copy(t, i, r, o, s), !(this._results.length < 2)) { for (var a = 1; a < this._results.length; a++) this._results[a].index = e; this.paste(t, i, this._results, s) } }, removeAllLayers: function() { this.layers.length = 0, this.currentLayer = 0 }, dump: function() { for (var e = "", t = [""], i = 0; i < this.layers[this.currentLayer].height; i++) { for (var r = 0; r < this.layers[this.currentLayer].width; r++) e += "%c ", 1 < this.layers[this.currentLayer].data[i][r] ? this.debugMap[this.layers[this.currentLayer].data[i][r]] ? t.push("background: " + this.debugMap[this.layers[this.currentLayer].data[i][r]]) : t.push("background: #ffffff") : t.push("background: rgb(0, 0, 0)"); e += "\n" } t[0] = e }, destroy: function() { this.removeAllLayers(), this.data = [], this.game = null } }, W.Tilemap.prototype.constructor = W.Tilemap, Object.defineProperty(W.Tilemap.prototype, "layer", { get: function() { return this.layers[this.currentLayer] }, set: function(e) { e !== this.currentLayer && this.setLayer(e) } }), W.TilemapLayer = function(e, t, i, r, o) { r |= 0, o |= 0, W.Sprite.call(this, e, 0, 0), this.map = t, this.index = i, this.layer = t.layers[i], this.canvas = PIXI.CanvasPool.create(this, r, o), this.context = this.canvas.getContext("2d"), this.setTexture(new PIXI.Texture(new PIXI.BaseTexture(this.canvas))), this.type = W.TILEMAPLAYER, this.physicsType = W.TILEMAPLAYER, this.renderSettings = { enableScrollDelta: !1, overdrawRatio: .2, copyCanvas: null }, this.debug = !1, this.exists = !0, this.debugSettings = { missingImageFill: "rgb(255,255,255)", debuggedTileOverfill: "rgba(0,255,0,0.4)", forceFullRedraw: !0, debugAlpha: .5, facingEdgeStroke: "rgba(0,255,0,1)", collidingTileOverfill: "rgba(0,255,0,0.2)" }, this.scrollFactorX = 1, this.scrollFactorY = 1, this.dirty = !0, this.rayStepRate = 4, this._wrap = !1, this._mc = { scrollX: 0, scrollY: 0, renderWidth: 0, renderHeight: 0, tileWidth: t.tileWidth, tileHeight: t.tileHeight, cw: t.tileWidth, ch: t.tileHeight, tilesets: [] }, this._scrollX = 0, this._scrollY = 0, this._results = [], e.device.canvasBitBltShift || (this.renderSettings.copyCanvas = W.TilemapLayer.ensureSharedCopyCanvas()), this.fixedToCamera = !0 } , W.TilemapLayer.prototype = Object.create(W.Sprite.prototype), W.TilemapLayer.prototype.constructor = W.TilemapLayer, W.TilemapLayer.prototype.preUpdateCore = W.Component.Core.preUpdate, W.TilemapLayer.sharedCopyCanvas = null, W.TilemapLayer.ensureSharedCopyCanvas = function() { return this.sharedCopyCanvas || (this.sharedCopyCanvas = PIXI.CanvasPool.create(this, 2, 2)), this.sharedCopyCanvas } , W.TilemapLayer.prototype.preUpdate = function() { return this.preUpdateCore() } , W.TilemapLayer.prototype.postUpdate = function() { this.fixedToCamera && (this.position.x = (this.game.camera.view.x + this.cameraOffset.x) / this.game.camera.scale.x, this.position.y = (this.game.camera.view.y + this.cameraOffset.y) / this.game.camera.scale.y), this._scrollX = this.game.camera.view.x * this.scrollFactorX / this.scale.x, this._scrollY = this.game.camera.view.y * this.scrollFactorY / this.scale.y } , W.TilemapLayer.prototype._renderCanvas = function(e) { this.fixedToCamera && (this.position.x = (this.game.camera.view.x + this.cameraOffset.x) / this.game.camera.scale.x, this.position.y = (this.game.camera.view.y + this.cameraOffset.y) / this.game.camera.scale.y), this._scrollX = this.game.camera.view.x * this.scrollFactorX / this.scale.x, this._scrollY = this.game.camera.view.y * this.scrollFactorY / this.scale.y, this.render(), PIXI.Sprite.prototype._renderCanvas.call(this, e) } , W.TilemapLayer.prototype._renderWebGL = function(e) { this.fixedToCamera && (this.position.x = (this.game.camera.view.x + this.cameraOffset.x) / this.game.camera.scale.x, this.position.y = (this.game.camera.view.y + this.cameraOffset.y) / this.game.camera.scale.y), this._scrollX = this.game.camera.view.x * this.scrollFactorX / this.scale.x, this._scrollY = this.game.camera.view.y * this.scrollFactorY / this.scale.y, this.render(), PIXI.Sprite.prototype._renderWebGL.call(this, e) } , W.TilemapLayer.prototype.destroy = function() { PIXI.CanvasPool.remove(this), W.Component.Destroy.prototype.destroy.call(this) } , W.TilemapLayer.prototype.resize = function(e, t) { this.canvas.width = e, this.canvas.height = t, this.texture.frame.resize(e, t), this.texture.width = e, this.texture.height = t, this.texture.crop.width = e, this.texture.crop.height = t, this.texture.baseTexture.width = e, this.texture.baseTexture.height = t, this.texture.baseTexture.dirty(), this.texture.requiresUpdate = !0, this.texture._updateUvs(), this.dirty = !0 } , W.TilemapLayer.prototype.resizeWorld = function() { this.game.world.setBounds(0, 0, this.layer.widthInPixels * this.scale.x, this.layer.heightInPixels * this.scale.y) } , W.TilemapLayer.prototype._fixX = function(e) { return 1 === this.scrollFactorX || 0 === this.scrollFactorX && 0 === this.position.x ? e : 0 === this.scrollFactorX && 0 !== this.position.x ? e - this.position.x : this._scrollX + (e - this._scrollX / this.scrollFactorX) } , W.TilemapLayer.prototype._unfixX = function(e) { return 1 === this.scrollFactorX ? e : this._scrollX / this.scrollFactorX + (e - this._scrollX) } , W.TilemapLayer.prototype._fixY = function(e) { return 1 === this.scrollFactorY || 0 === this.scrollFactorY && 0 === this.position.y ? e : 0 === this.scrollFactorY && 0 !== this.position.y ? e - this.position.y : this._scrollY + (e - this._scrollY / this.scrollFactorY) } , W.TilemapLayer.prototype._unfixY = function(e) { return 1 === this.scrollFactorY ? e : this._scrollY / this.scrollFactorY + (e - this._scrollY) } , W.TilemapLayer.prototype.getTileX = function(e) { return Math.floor(this._fixX(e) / this._mc.tileWidth) } , W.TilemapLayer.prototype.getTileY = function(e) { return Math.floor(this._fixY(e) / this._mc.tileHeight) } , W.TilemapLayer.prototype.getTileXY = function(e, t, i) { return i.x = this.getTileX(e), i.y = this.getTileY(t), i } , W.TilemapLayer.prototype.getRayCastTiles = function(e, t, i, r) { t || (t = this.rayStepRate), void 0 === i && (i = !1), void 0 === r && (r = !1); var o = this.getTiles(e.x, e.y, e.width, e.height, i, r); if (0 === o.length) return []; for (var s = e.coordinatesOnLine(t), a = [], n = 0; n < o.length; n++) for (var h = 0; h < s.length; h++) { var c = o[n] , l = s[h]; if (c.containsPoint(l[0], l[1])) { a.push(c); break } } return a } , W.TilemapLayer.prototype.getTiles = function(e, t, i, r, o, s) { void 0 === o && (o = !1), void 0 === s && (s = !1); var a = !(o || s); e = this._fixX(e), t = this._fixY(t); for (var n = Math.floor(e / (this._mc.cw * this.scale.x)), h = Math.floor(t / (this._mc.ch * this.scale.y)), c = Math.ceil((e + i) / (this._mc.cw * this.scale.x)) - n, l = Math.ceil((t + r) / (this._mc.ch * this.scale.y)) - h; this._results.length; ) this._results.pop(); for (var m = h; m < h + l; m++) for (var u = n; u < n + c; u++) { var d = this.layer.data[m]; d && d[u] && (a || d[u].isInteresting(o, s)) && this._results.push(d[u]) } return this._results.slice() } , W.TilemapLayer.prototype.resolveTileset = function(e) { var t = this._mc.tilesets; if (e < 2e3) for (; t.length < e; ) t.push(void 0); var i = this.map.tiles[e] && this.map.tiles[e][2]; if (null !== i) { var r = this.map.tilesets[i]; if (r && r.containsTileIndex(e)) return t[e] = r } return t[e] = null } , W.TilemapLayer.prototype.resetTilesetCache = function() { for (var e = this._mc.tilesets; e.length; ) e.pop() } , W.TilemapLayer.prototype.setScale = function(e, t) { e = e || 1, t = t || e; for (var i = 0; i < this.layer.data.length; i++) for (var r = this.layer.data[i], o = 0; o < r.length; o++) { var s = r[o]; s.width = this.map.tileWidth * e, s.height = this.map.tileHeight * t, s.worldX = s.x * s.width, s.worldY = s.y * s.height } this.scale.setTo(e, t) } , W.TilemapLayer.prototype.shiftCanvas = function(e, t, i) { var r = e.canvas , o = r.width - Math.abs(t) , s = r.height - Math.abs(i) , a = 0 , n = 0 , h = t , c = i; t < 0 && (a = -t, h = 0), i < 0 && (n = -i, c = 0); var l = this.renderSettings.copyCanvas; if (l) { (l.width < o || l.height < s) && (l.width = o, l.height = s); var m = l.getContext("2d"); m.clearRect(0, 0, o, s), m.drawImage(r, a, n, o, s, 0, 0, o, s), e.clearRect(h, c, o, s), e.drawImage(l, 0, 0, o, s, h, c, o, s) } else e.save(), e.globalCompositeOperation = "copy", e.drawImage(r, a, n, o, s, h, c, o, s), e.restore() } , W.TilemapLayer.prototype.renderRegion = function(e, t, i, r, o, s) { var a = this.context , n = this.layer.width , h = this.layer.height , c = this._mc.tileWidth , l = this._mc.tileHeight , m = this._mc.tilesets , u = NaN; this._wrap || (i <= o && (i = Math.max(0, i), o = Math.min(n - 1, o)), r <= s && (r = Math.max(0, r), s = Math.min(h - 1, s))); var d, p, f, y, S, w, g = i * c - e, x = (i + (1 << 20) * n) % n; for (y = (r + (1 << 20) * h) % h, w = s - r, p = r * l - t; 0 <= w; y++, w--, p += l) { h <= y && (y -= h); var b = this.layer.data[y]; for (f = x, S = o - i, d = g; 0 <= S; f++, S--, d += c) { n <= f && (f -= n); var v = b[f]; if (v && !(v.index < 0)) { var z = v.index , C = m[z]; void 0 === C && (C = this.resolveTileset(z)), v.alpha === u || this.debug || (a.globalAlpha = v.alpha, u = v.alpha), C ? v.rotation || v.flipped ? (a.save(), a.translate(d + v.centerX, p + v.centerY), a.rotate(v.rotation), v.flipped && a.scale(-1, 1), C.draw(a, -v.centerX, -v.centerY, z), a.restore()) : C.draw(a, d, p, z) : this.debugSettings.missingImageFill && (a.fillStyle = this.debugSettings.missingImageFill, a.fillRect(d, p, c, l)), v.debug && this.debugSettings.debuggedTileOverfill && (a.fillStyle = this.debugSettings.debuggedTileOverfill, a.fillRect(d, p, c, l)) } } } } , W.TilemapLayer.prototype.renderDeltaScroll = function(e, t) { var i = this._mc.scrollX , r = this._mc.scrollY , o = this.canvas.width , s = this.canvas.height , a = this._mc.tileWidth , n = this._mc.tileHeight , h = 0 , c = -a , l = 0 , m = -n; if (e < 0 ? (h = o + e, c = o - 1) : 0 < e && (c = e), t < 0 ? (l = s + t, m = s - 1) : 0 < t && (m = t), this.shiftCanvas(this.context, e, t), h = Math.floor((h + i) / a), c = Math.floor((c + i) / a), l = Math.floor((l + r) / n), m = Math.floor((m + r) / n), h <= c) { this.context.clearRect(h * a - i, 0, (c - h + 1) * a, s); var u = Math.floor((0 + r) / n) , d = Math.floor((s - 1 + r) / n); this.renderRegion(i, r, h, u, c, d) } if (l <= m) { this.context.clearRect(0, l * n - r, o, (m - l + 1) * n); var p = Math.floor((0 + i) / a) , f = Math.floor((o - 1 + i) / a); this.renderRegion(i, r, p, l, f, m) } } , W.TilemapLayer.prototype.renderFull = function() { var e = this._mc.scrollX , t = this._mc.scrollY , i = this.canvas.width , r = this.canvas.height , o = this._mc.tileWidth , s = this._mc.tileHeight , a = Math.floor(e / o) , n = Math.floor((i - 1 + e) / o) , h = Math.floor(t / s) , c = Math.floor((r - 1 + t) / s); this.context.clearRect(0, 0, i, r), this.renderRegion(e, t, a, h, n, c) } , W.TilemapLayer.prototype.render = function() { var e = !1; if (this.visible) { (this.dirty || this.layer.dirty) && (e = !(this.layer.dirty = !1)); var t = this.canvas.width , i = this.canvas.height , r = 0 | this._scrollX , o = 0 | this._scrollY , s = this._mc , a = s.scrollX - r , n = s.scrollY - o; if (e || 0 !== a || 0 !== n || s.renderWidth !== t || s.renderHeight !== i) return this.context.save(), s.scrollX = r, s.scrollY = o, s.renderWidth === t && s.renderHeight === i || (s.renderWidth = t, s.renderHeight = i), this.debug && (this.context.globalAlpha = this.debugSettings.debugAlpha, this.debugSettings.forceFullRedraw && (e = !0)), !e && this.renderSettings.enableScrollDelta && Math.abs(a) + Math.abs(n) < Math.min(t, i) ? this.renderDeltaScroll(a, n) : this.renderFull(), this.debug && (this.context.globalAlpha = 1, this.renderDebug()), this.texture.baseTexture.dirty(), this.dirty = !1, this.context.restore(), !0 } } , W.TilemapLayer.prototype.renderDebug = function() { var e, t, i, r, o, s, a = this._mc.scrollX, n = this._mc.scrollY, h = this.context, c = this.canvas.width, l = this.canvas.height, m = this.layer.width, u = this.layer.height, d = this._mc.tileWidth, p = this._mc.tileHeight, f = Math.floor(a / d), y = Math.floor((c - 1 + a) / d), S = Math.floor(n / p), w = Math.floor((l - 1 + n) / p), g = f * d - a, x = S * p - n, b = (f + (1 << 20) * m) % m, v = (S + (1 << 20) * u) % u; for (h.strokeStyle = this.debugSettings.facingEdgeStroke, r = v, s = w - S, t = x; 0 <= s; r++, s--, t += p) { u <= r && (r -= u); var z = this.layer.data[r]; for (i = b, o = y - f, e = g; 0 <= o; i++, o--, e += d) { m <= i && (i -= m); var C = z[i]; !C || C.index < 0 || !C.collides || (this.debugSettings.collidingTileOverfill && (h.fillStyle = this.debugSettings.collidingTileOverfill, h.fillRect(e, t, this._mc.cw, this._mc.ch)), this.debugSettings.facingEdgeStroke && (h.beginPath(), C.faceTop && (h.moveTo(e, t), h.lineTo(e + this._mc.cw, t)), C.faceBottom && (h.moveTo(e, t + this._mc.ch), h.lineTo(e + this._mc.cw, t + this._mc.ch)), C.faceLeft && (h.moveTo(e, t), h.lineTo(e, t + this._mc.ch)), C.faceRight && (h.moveTo(e + this._mc.cw, t), h.lineTo(e + this._mc.cw, t + this._mc.ch)), h.closePath(), h.stroke())) } } } , Object.defineProperty(W.TilemapLayer.prototype, "wrap", { get: function() { return this._wrap }, set: function(e) { this._wrap = e, this.dirty = !0 } }), Object.defineProperty(W.TilemapLayer.prototype, "scrollX", { get: function() { return this._scrollX }, set: function(e) { this._scrollX = e } }), Object.defineProperty(W.TilemapLayer.prototype, "scrollY", { get: function() { return this._scrollY }, set: function(e) { this._scrollY = e } }), Object.defineProperty(W.TilemapLayer.prototype, "collisionWidth", { get: function() { return this._mc.cw }, set: function(e) { this._mc.cw = 0 | e, this.dirty = !0 } }), Object.defineProperty(W.TilemapLayer.prototype, "collisionHeight", { get: function() { return this._mc.ch }, set: function(e) { this._mc.ch = 0 | e, this.dirty = !0 } }), W.TilemapParser = { INSERT_NULL: !1, parse: function(e, t, i, r, o, s) { if (void 0 === i && (i = 32), void 0 === r && (r = 32), void 0 === o && (o = 10), void 0 === s && (s = 10), void 0 === t) return this.getEmptyData(); if (null === t) return this.getEmptyData(i, r, o, s); var a = e.cache.getTilemapData(t); if (a) { if (a.format === W.Tilemap.CSV) return this.parseCSV(t, a.data, i, r); if (!a.format || a.format === W.Tilemap.TILED_JSON) return this.parseTiledJSON(a.data) } }, parseCSV: function(e, t, i, r) { for (var o = this.getEmptyData(), s = [], a = (t = t.trim()).split("\n"), n = a.length, h = 0, c = 0; c < a.length; c++) { s[c] = []; for (var l = a[c].split(","), m = 0; m < l.length; m++) s[c][m] = new W.Tile(o.layers[0],parseInt(l[m], 10),m,c,i,r); 0 === h && (h = l.length) } return o.format = W.Tilemap.CSV, o.name = e, o.width = h, o.height = n, o.tileWidth = i, o.tileHeight = r, o.widthInPixels = h * i, o.heightInPixels = n * r, o.layers[0].width = h, o.layers[0].height = n, o.layers[0].widthInPixels = o.widthInPixels, o.layers[0].heightInPixels = o.heightInPixels, o.layers[0].data = s, o }, getEmptyData: function(e, t, i, r) { return { width: null != i ? i : 0, height: null != r ? r : 0, tileWidth: null != e ? e : 0, tileHeight: null != t ? t : 0, orientation: "orthogonal", version: "1", properties: {}, widthInPixels: 0, heightInPixels: 0, layers: [{ name: "layer", x: 0, y: 0, width: 0, height: 0, widthInPixels: 0, heightInPixels: 0, alpha: 1, visible: !0, properties: {}, indexes: [], callbacks: [], bodies: [], data: [] }], images: [], objects: {}, collision: {}, tilesets: [], tiles: [] } }, parseTiledJSON: function(e) { if ("orthogonal" !== e.orientation) return null; for (var t = { width: e.width, height: e.height, tileWidth: e.tilewidth, tileHeight: e.tileheight, orientation: e.orientation, format: W.Tilemap.TILED_JSON, version: e.version, properties: e.properties, widthInPixels: e.width * e.tilewidth, heightInPixels: e.height * e.tileheight }, i = [], r = 0; r < e.layers.length; r++) if ("tilelayer" === e.layers[r].type) { var o = e.layers[r]; if (!o.compression && o.encoding && "base64" === o.encoding) { for (var s = window.atob(o.data), a = s.length, n = new Array(a), h = 0; h < a; h += 4) n[h / 4] = (s.charCodeAt(h) | s.charCodeAt(h + 1) << 8 | s.charCodeAt(h + 2) << 16 | s.charCodeAt(h + 3) << 24) >>> 0; o.data = n, delete o.encoding } else if (o.compression) continue; var c = { name: o.name, x: o.x, y: o.y, width: o.width, height: o.height, widthInPixels: o.width * e.tilewidth, heightInPixels: o.height * e.tileheight, alpha: o.opacity, visible: o.visible, properties: {}, indexes: [], callbacks: [], bodies: [] }; o.properties && (c.properties = o.properties); var l, m, u, d = 0, p = [], f = [], y = 0; for (a = o.data.length; y < a; y++) { if (m = !1, u = l = 0, 536870912 < (P = o.data[y])) switch (2147483648 < P && (P -= 2147483648, u += 4), 1073741824 < P && (P -= 1073741824, u += 2), 536870912 < P && (P -= 536870912, u += 1), u) { case 5: l = Math.PI / 2; break; case 6: l = Math.PI; break; case 3: l = 3 * Math.PI / 2; break; case 4: m = !(l = 0); break; case 7: l = Math.PI / 2, m = !0; break; case 2: l = Math.PI, m = !0; break; case 1: l = 3 * Math.PI / 2, m = !0 } if (0 < P) (A = new W.Tile(c,P,d,f.length,e.tilewidth,e.tileheight)).rotation = l, A.flipped = m, 0 !== u && (A.flippedVal = u), p.push(A); else W.TilemapParser.INSERT_NULL ? p.push(null) : p.push(new W.Tile(c,-1,d,f.length,e.tilewidth,e.tileheight)); ++d === o.width && (f.push(p), d = 0, p = []) } c.data = f, i.push(c) } t.layers = i; var S = []; for (r = 0; r < e.layers.length; r++) if ("imagelayer" === e.layers[r].type) { var w = e.layers[r] , g = { name: w.name, image: w.image, x: w.x, y: w.y, alpha: w.opacity, visible: w.visible, properties: {} }; w.properties && (g.properties = w.properties), S.push(g) } t.images = S; var x = [] , b = [] , v = null; for (r = 0; r < e.tilesets.length; r++) { if ((O = e.tilesets[r]).image) { var z = new W.Tileset(O.name,O.firstgid,O.tilewidth,O.tileheight,O.margin,O.spacing,O.properties); O.tileproperties && (z.tileProperties = O.tileproperties), z.updateTileData(O.imagewidth, O.imageheight), x.push(z) } else { var C = new W.ImageCollection(O.name,O.firstgid,O.tilewidth,O.tileheight,O.margin,O.spacing,O.properties); for (var T in O.tiles) { g = O.tiles[T].image; var P = O.firstgid + parseInt(T, 10); C.addImage(P, g) } b.push(C) } v && (v.lastgid = O.firstgid - 1), v = O } t.tilesets = x, t.imagecollections = b; var A, _, B = {}, D = {}; function k(e, t) { var i = {}; for (var r in t) { var o = t[r]; void 0 !== e[o] && (i[o] = e[o]) } return i } for (r = 0; r < e.layers.length; r++) if ("objectgroup" === e.layers[r].type) { var E = e.layers[r]; B[E.name] = [], D[E.name] = []; var M = 0; for (a = E.objects.length; M < a; M++) if (E.objects[M].gid) { var I = { gid: E.objects[M].gid, name: E.objects[M].name, type: E.objects[M].hasOwnProperty("type") ? E.objects[M].type : "", x: E.objects[M].x, y: E.objects[M].y, visible: E.objects[M].visible, properties: E.objects[M].properties }; E.objects[M].rotation && (I.rotation = E.objects[M].rotation), B[E.name].push(I) } else if (E.objects[M].polyline) { I = { name: E.objects[M].name, type: E.objects[M].type, x: E.objects[M].x, y: E.objects[M].y, width: E.objects[M].width, height: E.objects[M].height, visible: E.objects[M].visible, properties: E.objects[M].properties }; E.objects[M].rotation && (I.rotation = E.objects[M].rotation), I.polyline = []; for (var L = 0; L < E.objects[M].polyline.length; L++) I.polyline.push([E.objects[M].polyline[L].x, E.objects[M].polyline[L].y]); D[E.name].push(I), B[E.name].push(I) } else if (E.objects[M].polygon) { (I = k(E.objects[M], ["name", "type", "x", "y", "visible", "rotation", "properties"])).polygon = []; for (L = 0; L < E.objects[M].polygon.length; L++) I.polygon.push([E.objects[M].polygon[L].x, E.objects[M].polygon[L].y]); B[E.name].push(I) } else if (E.objects[M].ellipse) { I = k(E.objects[M], ["name", "type", "ellipse", "x", "y", "width", "height", "visible", "rotation", "properties"]); B[E.name].push(I) } else { (I = k(E.objects[M], ["name", "type", "x", "y", "width", "height", "visible", "rotation", "properties"])).rectangle = !0, B[E.name].push(I) } } t.objects = B, t.collision = D, t.tiles = []; for (r = 0; r < t.tilesets.length; r++) { d = (O = t.tilesets[r]).tileMargin; var O, R = O.tileMargin, F = 0, G = 0, N = 0; for (y = O.firstgid; y < O.firstgid + O.total && (t.tiles[y] = [d, R, r], d += O.tileWidth + O.tileSpacing, ++F !== O.total) && (++G !== O.columns || (d = O.tileMargin, R += O.tileHeight + O.tileSpacing, G = 0, ++N !== O.rows)); y++) ; } for (r = 0; r < t.layers.length; r++) { c = t.layers[r], O = null; for (h = 0; h < c.data.length; h++) { p = c.data[h]; for (var U = 0; U < p.length; U++) null === (A = p[U]) || A.index < 0 || (_ = t.tiles[A.index][2], (O = t.tilesets[_]).tileProperties && O.tileProperties[A.index - O.firstgid] && (A.properties = W.Utils.mixin(O.tileProperties[A.index - O.firstgid], A.properties))) } } return t } }, W.Tileset = function(e, t, i, r, o, s, a) { (void 0 === i || i <= 0) && (i = 32), (void 0 === r || r <= 0) && (r = 32), void 0 === o && (o = 0), void 0 === s && (s = 0), this.name = e, this.firstgid = 0 | t, this.tileWidth = 0 | i, this.tileHeight = 0 | r, this.tileMargin = 0 | o, this.tileSpacing = 0 | s, this.properties = a || {}, this.image = null, this.rows = 0, this.columns = 0, this.total = 0, this.drawCoords = [] } , W.Tileset.prototype = { draw: function(e, t, i, r) { var o = r - this.firstgid << 1; 0 <= o && o + 1 < this.drawCoords.length && e.drawImage(this.image, this.drawCoords[o], this.drawCoords[o + 1], this.tileWidth, this.tileHeight, t, i, this.tileWidth, this.tileHeight) }, containsTileIndex: function(e) { return e >= this.firstgid && e < this.firstgid + this.total }, setImage: function(e) { this.image = e, this.updateTileData(e.width, e.height) }, setSpacing: function(e, t) { this.tileMargin = 0 | e, this.tileSpacing = 0 | t, this.image && this.updateTileData(this.image.width, this.image.height) }, updateTileData: function(e, t) { var i = (t - 2 * this.tileMargin + this.tileSpacing) / (this.tileHeight + this.tileSpacing) , r = (e - 2 * this.tileMargin + this.tileSpacing) / (this.tileWidth + this.tileSpacing); i = Math.floor(i), r = Math.floor(r), this.rows && this.rows !== i || this.columns && this.columns, this.rows = i, this.columns = r, this.total = i * r, this.drawCoords.length = 0; for (var o = this.tileMargin, s = this.tileMargin, a = 0; a < this.rows; a++) { for (var n = 0; n < this.columns; n++) this.drawCoords.push(o), this.drawCoords.push(s), o += this.tileWidth + this.tileSpacing; o = this.tileMargin, s += this.tileHeight + this.tileSpacing } } }, W.Tileset.prototype.constructor = W.Tileset, W.Particle = function(e, t, i, r, o) { W.Sprite.call(this, e, t, i, r, o), this.autoScale = !1, this.scaleData = null, this._s = 0, this.autoAlpha = !1, this.alphaData = null, this._a = 0 } , W.Particle.prototype = Object.create(W.Sprite.prototype), W.Particle.prototype.constructor = W.Particle, W.Particle.prototype.update = function() { this.autoScale && (this._s--, this._s ? this.scale.set(this.scaleData[this._s].x, this.scaleData[this._s].y) : this.autoScale = !1), this.autoAlpha && (this._a--, this._a ? this.alpha = this.alphaData[this._a].v : this.autoAlpha = !1) } , W.Particle.prototype.onEmit = function() {} , W.Particle.prototype.setAlphaData = function(e) { this.alphaData = e, this._a = e.length - 1, this.alpha = this.alphaData[this._a].v, this.autoAlpha = !0 } , W.Particle.prototype.setScaleData = function(e) { this.scaleData = e, this._s = e.length - 1, this.scale.set(this.scaleData[this._s].x, this.scaleData[this._s].y), this.autoScale = !0 } , W.Particle.prototype.reset = function(e, t, i) { return W.Component.Reset.prototype.reset.call(this, e, t, i), this.alpha = 1, this.scale.set(1), this.autoScale = !1, this.autoAlpha = !1, this } , W.Particles = function(e) { this.game = e, this.emitters = {}, this.ID = 0 } , W.Particles.prototype = { add: function(e) { return this.emitters[e.name] = e }, remove: function(e) { delete this.emitters[e.name] }, update: function() { for (var e in this.emitters) this.emitters[e].exists && this.emitters[e].update() } }, W.Particles.prototype.constructor = W.Particles, W.Particles.Arcade = {}, W.Particles.Arcade.Emitter = function(e, t, i, r) { this.maxParticles = r || 50, W.Group.call(this, e), this.name = "emitter" + this.game.particles.ID++, this.type = W.EMITTER, this.physicsType = W.GROUP, this.area = new W.Rectangle(t,i,1,1), this.minParticleSpeed = new W.Point(-100,-100), this.maxParticleSpeed = new W.Point(100,100), this.minParticleScale = 1, this.maxParticleScale = 1, this.scaleData = null, this.minRotation = -360, this.maxRotation = 360, this.minParticleAlpha = 1, this.maxParticleAlpha = 1, this.alphaData = null, this.gravity = 100, this.particleClass = W.Particle, this.particleDrag = new W.Point, this.angularDrag = 0, this.frequency = 100, this.lifespan = 2e3, this.bounce = new W.Point, this.on = !1, this.particleAnchor = new W.Point(.5,.5), this.blendMode = W.blendModes.NORMAL, this.emitX = t, this.emitY = i, this.autoScale = !1, this.autoAlpha = !1, this.particleBringToTop = !1, this.particleSendToBack = !1, this._minParticleScale = new W.Point(1,1), this._maxParticleScale = new W.Point(1,1), this._quantity = 0, this._timer = 0, this._counter = 0, this._flowQuantity = 0, this._flowTotal = 0, this._explode = !0, this._frames = null } , W.Particles.Arcade.Emitter.prototype = Object.create(W.Group.prototype), W.Particles.Arcade.Emitter.prototype.constructor = W.Particles.Arcade.Emitter, W.Particles.Arcade.Emitter.prototype.update = function() { if (this.on && this.game.time.time >= this._timer) if (this._timer = this.game.time.time + this.frequency * this.game.time.slowMotion, 0 !== this._flowTotal) if (0 < this._flowQuantity) { for (var e = 0; e < this._flowQuantity; e++) if (this.emitParticle() && (this._counter++, -1 !== this._flowTotal && this._counter >= this._flowTotal)) { this.on = !1; break } } else this.emitParticle() && (this._counter++, -1 !== this._flowTotal && this._counter >= this._flowTotal && (this.on = !1)); else this.emitParticle() && (this._counter++, 0 < this._quantity && this._counter >= this._quantity && (this.on = !1)); for (e = this.children.length; e--; ) this.children[e].exists && this.children[e].update() } , W.Particles.Arcade.Emitter.prototype.makeParticles = function(e, t, i, r, o) { var s; void 0 === t && (t = 0), void 0 === i && (i = this.maxParticles), void 0 === r && (r = !1), void 0 === o && (o = !1); var a = 0 , n = e , h = t; for (this._frames = t, i > this.maxParticles && (this.maxParticles = i); a < i; ) Array.isArray(e) && (n = this.game.rnd.pick(e)), Array.isArray(t) && (h = this.game.rnd.pick(t)), s = new this.particleClass(this.game,0,0,n,h), this.game.physics.arcade.enable(s, !1), r ? (s.body.checkCollision.any = !0, s.body.checkCollision.none = !1) : s.body.checkCollision.none = !0, s.body.collideWorldBounds = o, s.body.skipQuadTree = !0, s.exists = !1, s.visible = !1, s.anchor.copyFrom(this.particleAnchor), this.add(s), a++; return this } , W.Particles.Arcade.Emitter.prototype.kill = function() { return this.on = !1, this.alive = !1, this.exists = !1, this } , W.Particles.Arcade.Emitter.prototype.revive = function() { return this.alive = !0, this.exists = !0, this } , W.Particles.Arcade.Emitter.prototype.explode = function(e, t) { return this._flowTotal = 0, this.start(!0, e, 0, t, !1), this } , W.Particles.Arcade.Emitter.prototype.flow = function(e, t, i, r, o) { return void 0 !== i && 0 !== i || (i = 1), void 0 === r && (r = -1), void 0 === o && (o = !0), i > this.maxParticles && (i = this.maxParticles), this._counter = 0, this._flowQuantity = i, this._flowTotal = r, o ? (this.start(!0, e, t, i), this._counter += i, this.on = !0, this._timer = this.game.time.time + t * this.game.time.slowMotion) : this.start(!1, e, t, i), this } , W.Particles.Arcade.Emitter.prototype.start = function(e, t, i, r, o) { if (void 0 === e && (e = !0), void 0 === t && (t = 0), null == i && (i = 250), void 0 === r && (r = 0), void 0 === o && (o = !1), r > this.maxParticles && (r = this.maxParticles), this.revive(), this.visible = !0, this.lifespan = t, this.frequency = i, e || o) for (var s = 0; s < r; s++) this.emitParticle(); else this.on = !0, this._quantity = r, this._counter = 0, this._timer = this.game.time.time + i * this.game.time.slowMotion; return this } , W.Particles.Arcade.Emitter.prototype.emitParticle = function(e, t, i, r) { void 0 === e && (e = null), void 0 === t && (t = null); var o = this.getFirstExists(!1); if (null === o) return !1; var s = this.game.rnd; void 0 !== i && void 0 !== r ? o.loadTexture(i, r) : void 0 !== i && o.loadTexture(i); var a = this.emitX , n = this.emitY; null !== e ? a = e : 1 < this.width && (a = s.between(this.left, this.right)), null !== t ? n = t : 1 < this.height && (n = s.between(this.top, this.bottom)), o.reset(a, n), o.angle = 0, o.lifespan = this.lifespan, this.particleBringToTop ? this.bringToTop(o) : this.particleSendToBack && this.sendToBack(o), this.autoScale ? o.setScaleData(this.scaleData) : 1 !== this.minParticleScale || 1 !== this.maxParticleScale ? o.scale.set(s.realInRange(this.minParticleScale, this.maxParticleScale)) : this._minParticleScale.x === this._maxParticleScale.x && this._minParticleScale.y === this._maxParticleScale.y || o.scale.set(s.realInRange(this._minParticleScale.x, this._maxParticleScale.x), s.realInRange(this._minParticleScale.y, this._maxParticleScale.y)), void 0 === r && (Array.isArray(this._frames) ? o.frame = this.game.rnd.pick(this._frames) : o.frame = this._frames), this.autoAlpha ? o.setAlphaData(this.alphaData) : o.alpha = s.realInRange(this.minParticleAlpha, this.maxParticleAlpha), o.blendMode = this.blendMode; var h = o.body; return h.updateBounds(), h.bounce.copyFrom(this.bounce), h.drag.copyFrom(this.particleDrag), h.velocity.x = s.between(this.minParticleSpeed.x, this.maxParticleSpeed.x), h.velocity.y = s.between(this.minParticleSpeed.y, this.maxParticleSpeed.y), h.angularVelocity = s.between(this.minRotation, this.maxRotation), h.gravity.y = this.gravity, h.angularDrag = this.angularDrag, o.onEmit(), !0 } , W.Particles.Arcade.Emitter.prototype.destroy = function() { this.game.particles.remove(this), W.Group.prototype.destroy.call(this, !0, !1) } , W.Particles.Arcade.Emitter.prototype.setSize = function(e, t) { return this.area.width = e, this.area.height = t, this } , W.Particles.Arcade.Emitter.prototype.setXSpeed = function(e, t) { return e = e || 0, t = t || 0, this.minParticleSpeed.x = e, this.maxParticleSpeed.x = t, this } , W.Particles.Arcade.Emitter.prototype.setYSpeed = function(e, t) { return e = e || 0, t = t || 0, this.minParticleSpeed.y = e, this.maxParticleSpeed.y = t, this } , W.Particles.Arcade.Emitter.prototype.setRotation = function(e, t) { return e = e || 0, t = t || 0, this.minRotation = e, this.maxRotation = t, this } , W.Particles.Arcade.Emitter.prototype.setAlpha = function(e, t, i, r, o) { if (void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === i && (i = 0), void 0 === r && (r = W.Easing.Linear.None), void 0 === o && (o = !1), this.minParticleAlpha = e, this.maxParticleAlpha = t, this.autoAlpha = !1, 0 < i && e !== t) { var s = { v: e } , a = this.game.make.tween(s).to({ v: t }, i, r); a.yoyo(o), this.alphaData = a.generateData(60), this.alphaData.reverse(), this.autoAlpha = !0 } return this } , W.Particles.Arcade.Emitter.prototype.setScale = function(e, t, i, r, o, s, a) { if (void 0 === e && (e = 1), void 0 === t && (t = 1), void 0 === i && (i = 1), void 0 === r && (r = 1), void 0 === o && (o = 0), void 0 === s && (s = W.Easing.Linear.None), void 0 === a && (a = !1), this.minParticleScale = 1, this.maxParticleScale = 1, this._minParticleScale.set(e, i), this._maxParticleScale.set(t, r), this.autoScale = !1, 0 < o && (e !== t || i !== r)) { var n = { x: e, y: i } , h = this.game.make.tween(n).to({ x: t, y: r }, o, s); h.yoyo(a), this.scaleData = h.generateData(60), this.scaleData.reverse(), this.autoScale = !0 } return this } , W.Particles.Arcade.Emitter.prototype.at = function(e) { return e.center ? (this.emitX = e.center.x, this.emitY = e.center.y) : (this.emitX = e.world.x + e.anchor.x * e.width, this.emitY = e.world.y + e.anchor.y * e.height), this } , Object.defineProperty(W.Particles.Arcade.Emitter.prototype, "width", { get: function() { return this.area.width }, set: function(e) { this.area.width = e } }), Object.defineProperty(W.Particles.Arcade.Emitter.prototype, "height", { get: function() { return this.area.height }, set: function(e) { this.area.height = e } }), Object.defineProperty(W.Particles.Arcade.Emitter.prototype, "x", { get: function() { return this.emitX }, set: function(e) { this.emitX = e } }), Object.defineProperty(W.Particles.Arcade.Emitter.prototype, "y", { get: function() { return this.emitY }, set: function(e) { this.emitY = e } }), Object.defineProperty(W.Particles.Arcade.Emitter.prototype, "left", { get: function() { return Math.floor(this.x - this.area.width / 2) } }), Object.defineProperty(W.Particles.Arcade.Emitter.prototype, "right", { get: function() { return Math.floor(this.x + this.area.width / 2) } }), Object.defineProperty(W.Particles.Arcade.Emitter.prototype, "top", { get: function() { return Math.floor(this.y - this.area.height / 2) } }), Object.defineProperty(W.Particles.Arcade.Emitter.prototype, "bottom", { get: function() { return Math.floor(this.y + this.area.height / 2) } }), W.Weapon = function(e, t) { W.Plugin.call(this, e, t), this.bullets = null, this.autoExpandBulletsGroup = !1, this.autofire = !1, this.shots = 0, this.fireLimit = 0, this.fireRate = 100, this.fireRateVariance = 0, this.fireFrom = new W.Rectangle(0,0,1,1), this.fireAngle = W.ANGLE_UP, this.bulletInheritSpriteSpeed = !1, this.bulletAnimation = "", this.bulletFrameRandom = !1, this.bulletFrameCycle = !1, this.bulletWorldWrap = !1, this.bulletWorldWrapPadding = 0, this.bulletAngleOffset = 0, this.bulletAngleVariance = 0, this.bulletSpeed = 200, this.bulletSpeedVariance = 0, this.bulletLifespan = 0, this.bulletKillDistance = 0, this.bulletGravity = new W.Point(0,0), this.bulletRotateToVelocity = !1, this.bulletKey = "", this.bulletFrame = "", this._bulletClass = W.Bullet, this._bulletCollideWorldBounds = !1, this._bulletKillType = W.Weapon.KILL_WORLD_BOUNDS, this._data = { customBody: !1, width: 0, height: 0, offsetX: 0, offsetY: 0 }, this.bounds = new W.Rectangle, this.bulletBounds = e.world.bounds, this.bulletFrames = [], this.bulletFrameIndex = 0, this.anims = {}, this.onFire = new W.Signal, this.onKill = new W.Signal, this.onFireLimit = new W.Signal, this.trackedSprite = null, this.trackedPointer = null, this.trackRotation = !1, this.trackOffset = new W.Point, this._nextFire = 0, this._rotatedPoint = new W.Point } , W.Weapon.prototype = Object.create(W.Plugin.prototype), W.Weapon.prototype.constructor = W.Weapon, W.Weapon.KILL_NEVER = 0, W.Weapon.KILL_LIFESPAN = 1, W.Weapon.KILL_DISTANCE = 2, W.Weapon.KILL_WEAPON_BOUNDS = 3, W.Weapon.KILL_CAMERA_BOUNDS = 4, W.Weapon.KILL_WORLD_BOUNDS = 5, W.Weapon.KILL_STATIC_BOUNDS = 6, W.Weapon.prototype.createBullets = function(e, t, i, r) { return void 0 === e && (e = 1), void 0 === r && (r = this.game.world), this.bullets || (this.bullets = this.game.add.physicsGroup(W.Physics.ARCADE, r), this.bullets.classType = this._bulletClass), 0 !== e && (-1 === e && (this.autoExpandBulletsGroup = !0, e = 1), this.bullets.createMultiple(e, t, i), this.bullets.setAll("data.bulletManager", this), this.bulletKey = t, this.bulletFrame = i), this } , W.Weapon.prototype.forEach = function(e, t) { return this.bullets.forEachExists(e, t, arguments), this } , W.Weapon.prototype.pauseAll = function() { return this.bullets.setAll("body.enable", !1), this } , W.Weapon.prototype.resumeAll = function() { return this.bullets.setAll("body.enable", !0), this } , W.Weapon.prototype.killAll = function() { return this.bullets.callAllExists("kill", !0), this.bullets.setAll("body.enable", !0), this } , W.Weapon.prototype.resetShots = function(e) { return void (this.shots = 0) !== e && (this.fireLimit = e), this } , W.Weapon.prototype.destroy = function() { this.parent.remove(this, !1), this.bullets.destroy(), this.game = null, this.parent = null, this.active = !1, this.visible = !1 } , W.Weapon.prototype.update = function() { this._bulletKillType === W.Weapon.KILL_WEAPON_BOUNDS && (this.trackedSprite ? (this.trackedSprite.updateTransform(), this.bounds.centerOn(this.trackedSprite.worldPosition.x, this.trackedSprite.worldPosition.y)) : this.trackedPointer && this.bounds.centerOn(this.trackedPointer.worldX, this.trackedPointer.worldY)), this.autofire && this.fire() } , W.Weapon.prototype.trackSprite = function(e, t, i, r) { return void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = !1), this.trackedPointer = null, this.trackedSprite = e, this.trackRotation = r, this.trackOffset.set(t, i), this } , W.Weapon.prototype.trackPointer = function(e, t, i) { return void 0 === e && (e = this.game.input.activePointer), void 0 === t && (t = 0), void 0 === i && (i = 0), this.trackedPointer = e, this.trackedSprite = null, this.trackRotation = !1, this.trackOffset.set(t, i), this } , W.Weapon.prototype.fire = function(e, t, i) { if (this.game.time.now < this._nextFire || 0 < this.fireLimit && this.shots === this.fireLimit) return !1; var r = this.bulletSpeed; 0 !== this.bulletSpeedVariance && (r += W.Math.between(-this.bulletSpeedVariance, this.bulletSpeedVariance)), e ? 1 < this.fireFrom.width ? this.fireFrom.centerOn(e.x, e.y) : (this.fireFrom.x = e.x, this.fireFrom.y = e.y) : this.trackedSprite ? (this.trackRotation ? (this._rotatedPoint.set(this.trackedSprite.world.x + this.trackOffset.x, this.trackedSprite.world.y + this.trackOffset.y), this._rotatedPoint.rotate(this.trackedSprite.world.x, this.trackedSprite.world.y, this.trackedSprite.rotation), 1 < this.fireFrom.width ? this.fireFrom.centerOn(this._rotatedPoint.x, this._rotatedPoint.y) : (this.fireFrom.x = this._rotatedPoint.x, this.fireFrom.y = this._rotatedPoint.y)) : 1 < this.fireFrom.width ? this.fireFrom.centerOn(this.trackedSprite.world.x + this.trackOffset.x, this.trackedSprite.world.y + this.trackOffset.y) : (this.fireFrom.x = this.trackedSprite.world.x + this.trackOffset.x, this.fireFrom.y = this.trackedSprite.world.y + this.trackOffset.y), this.bulletInheritSpriteSpeed && (r += this.trackedSprite.body.speed)) : this.trackedPointer && (1 < this.fireFrom.width ? this.fireFrom.centerOn(this.trackedPointer.world.x + this.trackOffset.x, this.trackedPointer.world.y + this.trackOffset.y) : (this.fireFrom.x = this.trackedPointer.world.x + this.trackOffset.x, this.fireFrom.y = this.trackedPointer.world.y + this.trackOffset.y)); var o = 1 < this.fireFrom.width ? this.fireFrom.randomX : this.fireFrom.x , s = 1 < this.fireFrom.height ? this.fireFrom.randomY : this.fireFrom.y , a = this.trackRotation ? this.trackedSprite.angle : this.fireAngle; void 0 !== t && void 0 !== i && (a = this.game.math.radToDeg(Math.atan2(i - s, t - o))), 0 !== this.bulletAngleVariance && (a += W.Math.between(-this.bulletAngleVariance, this.bulletAngleVariance)); var n = 0 , h = 0; 0 === a || 180 === a ? n = Math.cos(this.game.math.degToRad(a)) * r : h = (90 === a || 270 === a || (n = Math.cos(this.game.math.degToRad(a)) * r), Math.sin(this.game.math.degToRad(a)) * r); var c = null; if (this.autoExpandBulletsGroup ? (c = this.bullets.getFirstExists(!1, !0, o, s, this.bulletKey, this.bulletFrame)).data.bulletManager = this : c = this.bullets.getFirstExists(!1), c) { if (c.reset(o, s), c.data.fromX = o, c.data.fromY = s, c.data.killType = this.bulletKillType, c.data.killDistance = this.bulletKillDistance, c.data.rotateToVelocity = this.bulletRotateToVelocity, this.bulletKillType === W.Weapon.KILL_LIFESPAN && (c.lifespan = this.bulletLifespan), c.angle = a + this.bulletAngleOffset, "" !== this.bulletAnimation) { if (null === c.animations.getAnimation(this.bulletAnimation)) { var l = this.anims[this.bulletAnimation]; c.animations.add(l.name, l.frames, l.frameRate, l.loop, l.useNumericIndex) } c.animations.play(this.bulletAnimation) } else this.bulletFrameCycle ? (c.frame = this.bulletFrames[this.bulletFrameIndex], this.bulletFrameIndex++, this.bulletFrameIndex >= this.bulletFrames.length && (this.bulletFrameIndex = 0)) : this.bulletFrameRandom && (c.frame = this.bulletFrames[Math.floor(Math.random() * this.bulletFrames.length)]); if (c.data.bodyDirty && (this._data.customBody && c.body.setSize(this._data.width, this._data.height, this._data.offsetX, this._data.offsetY), c.body.collideWorldBounds = this.bulletCollideWorldBounds, c.data.bodyDirty = !1), c.body.velocity.set(n, h), c.body.gravity.set(this.bulletGravity.x, this.bulletGravity.y), 0 !== this.bulletSpeedVariance) { var m = this.fireRate; (m += W.Math.between(-this.fireRateVariance, this.fireRateVariance)) < 0 && (m = 0), this._nextFire = this.game.time.now + m } else this._nextFire = this.game.time.now + this.fireRate; this.shots++, this.onFire.dispatch(c, this, r), 0 < this.fireLimit && this.shots === this.fireLimit && this.onFireLimit.dispatch(this, this.fireLimit) } return c } , W.Weapon.prototype.fireAtPointer = function(e) { return void 0 === e && (e = this.game.input.activePointer), this.fire(null, e.worldX, e.worldY) } , W.Weapon.prototype.fireAtSprite = function(e) { return this.fire(null, e.world.x, e.world.y) } , W.Weapon.prototype.fireAtXY = function(e, t) { return this.fire(null, e, t) } , W.Weapon.prototype.setBulletBodyOffset = function(e, t, i, r) { return void 0 === i && (i = 0), void 0 === r && (r = 0), this._data.customBody = !0, this._data.width = e, this._data.height = t, this._data.offsetX = i, this._data.offsetY = r, this.bullets.callAll("body.setSize", "body", e, t, i, r), this.bullets.setAll("data.bodyDirty", !1), this } , W.Weapon.prototype.setBulletFrames = function(e, t, i, r) { return void 0 === i && (i = !0), void 0 === r && (r = !1), this.bulletFrames = W.ArrayUtils.numberArray(e, t), this.bulletFrameIndex = 0, this.bulletFrameCycle = i, this.bulletFrameRandom = r, this } , W.Weapon.prototype.addBulletAnimation = function(e, t, i, r, o) { return this.anims[e] = { name: e, frames: t, frameRate: i, loop: r, useNumericIndex: o }, this.bullets.callAll("animations.add", "animations", e, t, i, r, o), this.bulletAnimation = e, this } , W.Weapon.prototype.debug = function(e, t, i) { void 0 === e && (e = 16), void 0 === t && (t = 32), void 0 === i && (i = !1), this.game.debug.text("Weapon Plugin", e, t), this.game.debug.text("Bullets Alive: " + this.bullets.total + " - Total: " + this.bullets.length, e, t + 24), i && this.bullets.forEachExists(this.game.debug.body, this.game.debug, "rgba(255, 0, 255, 0.8)") } , Object.defineProperty(W.Weapon.prototype, "bulletClass", { get: function() { return this._bulletClass }, set: function(e) { this._bulletClass = e, this.bullets.classType = this._bulletClass } }), Object.defineProperty(W.Weapon.prototype, "bulletKillType", { get: function() { return this._bulletKillType }, set: function(e) { switch (e) { case W.Weapon.KILL_STATIC_BOUNDS: case W.Weapon.KILL_WEAPON_BOUNDS: this.bulletBounds = this.bounds; break; case W.Weapon.KILL_CAMERA_BOUNDS: this.bulletBounds = this.game.camera.view; break; case W.Weapon.KILL_WORLD_BOUNDS: this.bulletBounds = this.game.world.bounds } this._bulletKillType = e } }), Object.defineProperty(W.Weapon.prototype, "bulletCollideWorldBounds", { get: function() { return this._bulletCollideWorldBounds }, set: function(e) { this._bulletCollideWorldBounds = e, this.bullets.setAll("body.collideWorldBounds", e), this.bullets.setAll("data.bodyDirty", !1) } }), Object.defineProperty(W.Weapon.prototype, "x", { get: function() { return this.fireFrom.x }, set: function(e) { this.fireFrom.x = e } }), Object.defineProperty(W.Weapon.prototype, "y", { get: function() { return this.fireFrom.y }, set: function(e) { this.fireFrom.y = e } }), W.Bullet = function(e, t, i, r, o) { W.Sprite.call(this, e, t, i, r, o), this.anchor.set(.5), this.data = { bulletManager: null, fromX: 0, fromY: 0, bodyDirty: !0, rotateToVelocity: !1, killType: 0, killDistance: 0 } } , W.Bullet.prototype = Object.create(W.Sprite.prototype), W.Bullet.prototype.constructor = W.Bullet, W.Bullet.prototype.kill = function() { return this.alive = !1, this.exists = !1, this.visible = !1, this.data.bulletManager.onKill.dispatch(this), this } , W.Bullet.prototype.update = function() { this.exists && (this.data.killType > W.Weapon.KILL_LIFESPAN && (this.data.killType === W.Weapon.KILL_DISTANCE ? this.game.physics.arcade.distanceToXY(this, this.data.fromX, this.data.fromY, !0) > this.data.killDistance && this.kill() : this.data.bulletManager.bulletBounds.intersects(this) || this.kill()), this.data.rotateToVelocity && (this.rotation = Math.atan2(this.body.velocity.y, this.body.velocity.x)), this.data.bulletManager.bulletWorldWrap && this.game.world.wrap(this, this.data.bulletManager.bulletWorldWrapPadding)) } , W.Video = function(e, t, i) { if (void 0 === t && (t = null), void 0 === i && (i = null), this.game = e, this.key = t, this.width = 0, this.height = 0, this.type = W.VIDEO, this.disableTextureUpload = !1, this.touchLocked = !1, this.onPlay = new W.Signal, this.onChangeSource = new W.Signal, this.onComplete = new W.Signal, this.onAccess = new W.Signal, this.onError = new W.Signal, this.onTimeout = new W.Signal, this.timeout = 15e3, this._timeOutID = null, this.video = null, this.videoStream = null, this.isStreaming = !1, this.retryLimit = 20, this.retry = 0, this.retryInterval = 500, this._retryID = null, this._codeMuted = !1, this._muted = !1, this._codePaused = !1, this._paused = !1, this._pending = !1, this._autoplay = !1, this._endCallback = null, this._playCallback = null, t && this.game.cache.checkVideoKey(t)) { var r = this.game.cache.getVideo(t); r.isBlob ? this.createVideoFromBlob(r.data) : this.video = r.data, this.width = this.video.videoWidth, this.height = this.video.videoHeight } else i && this.createVideoFromURL(i, !1); this.video && !i ? this.baseTexture = new PIXI.BaseTexture(this.video) : this.baseTexture = new PIXI.BaseTexture(W.Cache.DEFAULT.baseTexture.source), this.baseTexture.forceLoaded(this.width, this.height), this.texture = new PIXI.Texture(this.baseTexture), this.textureFrame = new W.Frame(0,0,0,this.width,this.height,"video"), this.texture.setFrame(this.textureFrame), this.texture.valid = !1, null !== t && this.video && (this.texture.valid = this.video.canplay), this.snapshot = null, W.BitmapData && (this.snapshot = new W.BitmapData(this.game,"",this.width,this.height)), !this.game.device.cocoonJS && (this.game.device.iOS || this.game.device.chrome) || window.PhaserGlobal && window.PhaserGlobal.fakeiOSTouchLock ? this.setTouchLock() : r && (r.locked = !1) } , W.Video.prototype = { connectToMediaStream: function(e, t) { return e && t && (this.video = e, this.videoStream = t, this.isStreaming = !0, this.baseTexture.source = this.video, this.updateTexture(null, this.video.videoWidth, this.video.videoHeight), this.onAccess.dispatch(this)), this }, startMediaStream: function(e, t, i) { if (void 0 === e && (e = !1), void 0 === t && (t = null), void 0 === i && (i = null), !this.game.device.getUserMedia) return this.onError.dispatch(this, "No getUserMedia"), !1; null !== this.videoStream && (this.videoStream.active ? this.videoStream.active = !1 : this.videoStream.stop()), this.removeVideoElement(), this.video = document.createElement("video"), this.video.setAttribute("autoplay", "autoplay"), null !== t && (this.video.width = t), null !== i && (this.video.height = i), this._timeOutID = window.setTimeout(this.getUserMediaTimeout.bind(this), this.timeout); try { navigator.getUserMedia({ audio: e, video: !0 }, this.getUserMediaSuccess.bind(this), this.getUserMediaError.bind(this)) } catch (e) { this.getUserMediaError(e) } return this }, getUserMediaTimeout: function() { clearTimeout(this._timeOutID), this.onTimeout.dispatch(this) }, getUserMediaError: function(e) { clearTimeout(this._timeOutID), this.onError.dispatch(this, e) }, getUserMediaSuccess: function(e) { clearTimeout(this._timeOutID), this.videoStream = e, void 0 !== this.video.mozSrcObject ? this.video.mozSrcObject = e : this.video.src = window.URL && window.URL.createObjectURL(e) || e; var o = this; this.video.onloadeddata = function() { var r = 10; !function e() { if (0 < r) if (0 < o.video.videoWidth) { var t = o.video.videoWidth , i = o.video.videoHeight; isNaN(o.video.videoHeight) && (i = t / (4 / 3)), o.video.play(), o.isStreaming = !0, o.baseTexture.source = o.video, o.updateTexture(null, t, i), o.onAccess.dispatch(o) } else window.setTimeout(e, 500); r-- }() } }, createVideoFromBlob: function(e) { var t = this; return this.video = document.createElement("video"), this.video.controls = !1, this.video.setAttribute("autoplay", "autoplay"), this.video.addEventListener("loadeddata", function(e) { t.updateTexture(e) }, !0), this.video.src = window.URL.createObjectURL(e), this.video.canplay = !0, this }, createVideoFromURL: function(e, t) { return void 0 === t && (t = !1), this.texture && (this.texture.valid = !1), this.video = document.createElement("video"), this.video.controls = !1, t && this.video.setAttribute("autoplay", "autoplay"), this.video.src = e, this.video.canplay = !0, this.video.load(), this.retry = this.retryLimit, this._retryID = window.setTimeout(this.checkVideoProgress.bind(this), this.retryInterval), this.key = e, this }, updateTexture: function(e, t, i) { var r = !1; null == t && (t = this.video.videoWidth, r = !0), null == i && (i = this.video.videoHeight), this.width = t, this.height = i, this.baseTexture.source !== this.video && (this.baseTexture.source = this.video), this.baseTexture.forceLoaded(t, i), this.texture.frame.resize(t, i), this.texture.width = t, this.texture.height = i, this.texture.valid = !0, this.snapshot && this.snapshot.resize(t, i), r && null !== this.key && (this.onChangeSource.dispatch(this, t, i), this._autoplay && (this.video.play(), this.onPlay.dispatch(this, this.loop, this.playbackRate))) }, complete: function() { this.onComplete.dispatch(this) }, play: function(e, t) { return void 0 === e && (e = !1), void 0 === t && (t = 1), this.game.sound.onMute && (this.game.sound.onMute.add(this.setMute, this), this.game.sound.onUnMute.add(this.unsetMute, this), this.game.sound.mute && this.setMute()), this.game.onPause.add(this.setPause, this), this.game.onResume.add(this.setResume, this), this._endCallback = this.complete.bind(this), this.video.addEventListener("ended", this._endCallback, !0), this.video.addEventListener("webkitendfullscreen", this._endCallback, !0), this.video.loop = e ? "loop" : "", this.video.playbackRate = t, this.touchLocked ? this._pending = !0 : (this._pending = !1, null !== this.key && (4 !== this.video.readyState ? (this.retry = this.retryLimit, this._retryID = window.setTimeout(this.checkVideoProgress.bind(this), this.retryInterval)) : (this._playCallback = this.playHandler.bind(this), this.video.addEventListener("playing", this._playCallback, !0))), this.video.play(), this.onPlay.dispatch(this, e, t)), this }, playHandler: function() { this.video.removeEventListener("playing", this._playCallback, !0), this.updateTexture() }, stop: function() { return this.game.sound.onMute && (this.game.sound.onMute.remove(this.setMute, this), this.game.sound.onUnMute.remove(this.unsetMute, this)), this.game.onPause.remove(this.setPause, this), this.game.onResume.remove(this.setResume, this), this.isStreaming ? (this.video.mozSrcObject ? (this.video.mozSrcObject.stop(), this.video.src = null) : (this.video.src = "", this.videoStream.active ? this.videoStream.active = !1 : this.videoStream.getTracks ? this.videoStream.getTracks().forEach(function(e) { e.stop() }) : this.videoStream.stop()), this.videoStream = null, this.isStreaming = !1) : (this.video.removeEventListener("ended", this._endCallback, !0), this.video.removeEventListener("webkitendfullscreen", this._endCallback, !0), this.video.removeEventListener("playing", this._playCallback, !0), this.touchLocked ? this._pending = !1 : this.video.pause()), this }, add: function(e) { if (Array.isArray(e)) for (var t = 0; t < e.length; t++) e[t].loadTexture && e[t].loadTexture(this); else e.loadTexture(this); return this }, addToWorld: function(e, t, i, r, o, s) { o = o || 1, s = s || 1; var a = this.game.add.image(e, t, this); return a.anchor.set(i, r), a.scale.set(o, s), a }, render: function() { !this.disableTextureUpload && this.playing && this.baseTexture.dirty() }, setMute: function() { this._muted || (this._muted = !0, this.video.muted = !0) }, unsetMute: function() { this._muted && !this._codeMuted && (this._muted = !1, this.video.muted = !1) }, setPause: function() { this._paused || this.touchLocked || (this._paused = !0, this.video.pause()) }, setResume: function() { !this._paused || this._codePaused || this.touchLocked || (this._paused = !1, this.video.ended || this.video.play()) }, changeSource: function(e, t) { return void 0 === t && (t = !0), this.texture.valid = !1, this.video.pause(), this.retry = this.retryLimit, this._retryID = window.setTimeout(this.checkVideoProgress.bind(this), this.retryInterval), this.video.src = e, this.video.load(), (this._autoplay = t) || (this.paused = !0), this }, checkVideoProgress: function() { 4 === this.video.readyState ? this.updateTexture() : (this.retry--, 0 < this.retry && (this._retryID = window.setTimeout(this.checkVideoProgress.bind(this), this.retryInterval))) }, setTouchLock: function() { this.game.input.touch.addTouchLockCallback(this.unlock, this), this.touchLocked = !0 }, unlock: function() { if (this.touchLocked = !1, this.video.play(), this.onPlay.dispatch(this, this.loop, this.playbackRate), this.key) { var e = this.game.cache.getVideo(this.key); e && !e.isBlob && (e.locked = !1) } return !0 }, grab: function(e, t, i) { if (void 0 === e && (e = !1), void 0 === t && (t = 1), void 0 === i && (i = null), null !== this.snapshot) return e && this.snapshot.cls(), this.snapshot.copy(this.video, 0, 0, this.width, this.height, 0, 0, this.width, this.height, 0, 0, 0, 1, 1, t, i), this.snapshot }, removeVideoElement: function() { if (this.video) { for (this.video.parentNode && this.video.parentNode.removeChild(this.video); this.video.hasChildNodes(); ) this.video.removeChild(this.video.firstChild); this.video.removeAttribute("autoplay"), this.video.removeAttribute("src"), this.video = null } }, destroy: function() { this.stop(), this.removeVideoElement(), this.touchLocked && this.game.input.touch.removeTouchLockCallback(this.unlock, this), this._retryID && window.clearTimeout(this._retryID) } }, Object.defineProperty(W.Video.prototype, "currentTime", { get: function() { return this.video ? this.video.currentTime : 0 }, set: function(e) { this.video.currentTime = e } }), Object.defineProperty(W.Video.prototype, "duration", { get: function() { return this.video ? this.video.duration : 0 } }), Object.defineProperty(W.Video.prototype, "progress", { get: function() { return this.video ? this.video.currentTime / this.video.duration : 0 } }), Object.defineProperty(W.Video.prototype, "mute", { get: function() { return this._muted }, set: function(e) { if (e = e || null) { if (this._muted) return; this._codeMuted = !0, this.setMute() } else { if (!this._muted) return; this._codeMuted = !1, this.unsetMute() } } }), Object.defineProperty(W.Video.prototype, "paused", { get: function() { return this._paused }, set: function(e) { if (e = e || null, !this.touchLocked) if (e) { if (this._paused) return; this._codePaused = !0, this.setPause() } else { if (!this._paused) return; this._codePaused = !1, this.setResume() } } }), Object.defineProperty(W.Video.prototype, "volume", { get: function() { return this.video ? this.video.volume : 1 }, set: function(e) { e < 0 ? e = 0 : 1 < e && (e = 1), this.video && (this.video.volume = e) } }), Object.defineProperty(W.Video.prototype, "playbackRate", { get: function() { return this.video ? this.video.playbackRate : 1 }, set: function(e) { this.video && (this.video.playbackRate = e) } }), Object.defineProperty(W.Video.prototype, "loop", { get: function() { return !!this.video && this.video.loop }, set: function(e) { e && this.video ? this.video.loop = "loop" : this.video && (this.video.loop = "") } }), Object.defineProperty(W.Video.prototype, "playing", { get: function() { return !(this.video.paused && this.video.ended) } }), W.Video.prototype.constructor = W.Video, void 0 === PIXI.blendModes && (PIXI.blendModes = W.blendModes), void 0 === PIXI.scaleModes && (PIXI.scaleModes = W.scaleModes), void 0 === PIXI.Texture.emptyTexture && (PIXI.Texture.emptyTexture = new PIXI.Texture(new PIXI.BaseTexture)), void 0 === PIXI.DisplayObject._tempMatrix && (PIXI.DisplayObject._tempMatrix = new PIXI.Matrix), void 0 === PIXI.RenderTexture.tempMatrix && (PIXI.RenderTexture.tempMatrix = new PIXI.Matrix), PIXI.Graphics && void 0 === PIXI.Graphics.POLY && (PIXI.Graphics.POLY = W.POLYGON, PIXI.Graphics.RECT = W.RECTANGLE, PIXI.Graphics.CIRC = W.CIRCLE, PIXI.Graphics.ELIP = W.ELLIPSE, PIXI.Graphics.RREC = W.ROUNDEDRECTANGLE), PIXI.TextureSilentFail = !0, "undefined" != typeof exports ? ("undefined" != typeof module && module.exports && (exports = module.exports = W), exports.Phaser = W) : "undefined" != typeof define && define.amd ? define("Phaser", e.Phaser = W) : e.Phaser = W, W } .call(this), function(e, t) { "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t(e.h5branding = e.h5branding || {}) }(this, function(h) { "use strict"; var G = "undefined" != typeof globalThis ? globalThis : "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : {}; function m() { throw new Error("Dynamic requires are not currently supported by rollup-plugin-commonjs") } function e(e, t) { return e(t = { exports: {} }, t.exports), t.exports } var t, o; e(function(e, t) { e.exports = function() { function h(e) { return "function" == typeof e } var i = Array.isArray ? Array.isArray : function(e) { return "[object Array]" === Object.prototype.toString.call(e) } , r = 0 , t = void 0 , o = void 0 , n = function(e, t) { u[r] = e, u[r + 1] = t, 2 === (r += 2) && (o ? o(d) : w()) } , e = "undefined" != typeof window ? window : void 0 , s = e || {} , a = s.MutationObserver || s.WebKitMutationObserver , c = "undefined" == typeof self && "undefined" != typeof process && "[object process]" === {}.toString.call(process) , l = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel; function m() { var e = setTimeout; return function() { return e(d, 1) } } var u = new Array(1e3); function d() { for (var e = 0; e < r; e += 2) { var t = u[e] , i = u[e + 1]; t(i), u[e] = void 0, u[e + 1] = void 0 } r = 0 } var p, f, y, S, w = void 0; function g(e, t) { var i = this , r = new this.constructor(v); void 0 === r[b] && O(r); var o = i._state; if (o) { var s = arguments[o - 1]; n(function() { return I(o, r, s, i._result) }) } else E(i, r, e, t); return r } function x(e) { if (e && "object" == typeof e && e.constructor === this) return e; var t = new this(v); return _(t, e), t } w = c ? function() { return process.nextTick(d) } : a ? (f = 0, y = new a(d), S = document.createTextNode(""), y.observe(S, { characterData: !0 }), function() { S.data = f = ++f % 2 } ) : l ? ((p = new MessageChannel).port1.onmessage = d, function() { return p.port2.postMessage(0) } ) : void 0 === e ? function() { try { var e = Function("return this")().require("vertx"); return void 0 === (t = e.runOnLoop || e.runOnContext) ? m() : function() { t(d) } } catch (e) { return m() } }() : m(); var b = Math.random().toString(36).substring(2); function v() {} var z = void 0 , C = 1 , T = 2; function P(e, t, i, r) { try { e.call(t, i, r) } catch (e) { return e } } function A(e, t, i) { var r, o, s, a; t.constructor === e.constructor && i === g && t.constructor.resolve === x ? (s = e, (a = t)._state === C ? D(s, a._result) : a._state === T ? k(s, a._result) : E(a, void 0, function(e) { return _(s, e) }, function(e) { return k(s, e) })) : void 0 === i ? D(e, t) : h(i) ? (r = t, o = i, n(function(t) { var i = !1 , e = P(o, r, function(e) { i || (i = !0, r !== e ? _(t, e) : D(t, e)) }, function(e) { i || (i = !0, k(t, e)) }, t._label); !i && e && (i = !0, k(t, e)) }, e)) : D(e, t) } function _(t, e) { if (t === e) k(t, new TypeError("You cannot resolve a promise with itself")); else if (o = typeof (r = e), null === r || "object" !== o && "function" !== o) D(t, e); else { var i = void 0; try { i = e.then } catch (e) { return void k(t, e) } A(t, e, i) } var r, o } function B(e) { e._onerror && e._onerror(e._result), M(e) } function D(e, t) { e._state === z && (e._result = t, e._state = C, 0 !== e._subscribers.length && n(M, e)) } function k(e, t) { e._state === z && (e._state = T, e._result = t, n(B, e)) } function E(e, t, i, r) { var o = e._subscribers , s = o.length; e._onerror = null, o[s] = t, o[s + C] = i, o[s + T] = r, 0 === s && e._state && n(M, e) } function M(e) { var t = e._subscribers , i = e._state; if (0 !== t.length) { for (var r = void 0, o = void 0, s = e._result, a = 0; a < t.length; a += 3) r = t[a], o = t[a + i], r ? I(i, r, o, s) : o(s); e._subscribers.length = 0 } } function I(e, t, i, r) { var o = h(i) , s = void 0 , a = void 0 , n = !0; if (o) { try { s = i(r) } catch (e) { n = !1, a = e } if (t === s) return void k(t, new TypeError("A promises callback cannot return that same promise.")) } else s = r; t._state !== z || (o && n ? _(t, s) : !1 === n ? k(t, a) : e === C ? D(t, s) : e === T && k(t, s)) } var L = 0; function O(e) { e[b] = L++, e._state = void 0, e._result = void 0, e._subscribers = [] } var R = function() { function e(e, t) { this._instanceConstructor = e, this.promise = new e(v), this.promise[b] || O(this.promise), i(t) ? (this.length = t.length, this._remaining = t.length, this._result = new Array(this.length), 0 === this.length ? D(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(t), 0 === this._remaining && D(this.promise, this._result))) : k(this.promise, new Error("Array Methods must be provided an Array")) } return e.prototype._enumerate = function(e) { for (var t = 0; this._state === z && t < e.length; t++) this._eachEntry(e[t], t) } , e.prototype._eachEntry = function(t, e) { var i = this._instanceConstructor , r = i.resolve; if (r === x) { var o = void 0 , s = void 0 , a = !1; try { o = t.then } catch (e) { a = !0, s = e } if (o === g && t._state !== z) this._settledAt(t._state, e, t._result); else if ("function" != typeof o) this._remaining--, this._result[e] = t; else if (i === F) { var n = new i(v); a ? k(n, s) : A(n, t, o), this._willSettleAt(n, e) } else this._willSettleAt(new i(function(e) { return e(t) } ), e) } else this._willSettleAt(r(t), e) } , e.prototype._settledAt = function(e, t, i) { var r = this.promise; r._state === z && (this._remaining--, e === T ? k(r, i) : this._result[t] = i), 0 === this._remaining && D(r, this._result) } , e.prototype._willSettleAt = function(e, t) { var i = this; E(e, void 0, function(e) { return i._settledAt(C, t, e) }, function(e) { return i._settledAt(T, t, e) }) } , e }() , F = function() { function t(e) { this[b] = L++, this._result = this._state = void 0, this._subscribers = [], v !== e && ("function" != typeof e && function() { throw new TypeError("You must pass a resolver function as the first argument to the promise constructor") }(), this instanceof t ? function(t, e) { try { e(function(e) { _(t, e) }, function(e) { k(t, e) }) } catch (e) { k(t, e) } }(this, e) : function() { throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.") }()) } return t.prototype.catch = function(e) { return this.then(null, e) } , t.prototype.finally = function(t) { var i = this.constructor; return h(t) ? this.then(function(e) { return i.resolve(t()).then(function() { return e }) }, function(e) { return i.resolve(t()).then(function() { throw e }) }) : this.then(t, t) } , t }(); return F.prototype.then = g, F.all = function(e) { return new R(this,e).promise } , F.race = function(o) { var s = this; return i(o) ? new s(function(e, t) { for (var i = o.length, r = 0; r < i; r++) s.resolve(o[r]).then(e, t) } ) : new s(function(e, t) { return t(new TypeError("You must pass an array to race.")) } ) } , F.resolve = x, F.reject = function(e) { var t = new this(v); return k(t, e), t } , F._setScheduler = function(e) { o = e } , F._setAsap = function(e) { n = e } , F._asap = n, F.polyfill = function() { var e = void 0; if (void 0 !== G) e = G; else if ("undefined" != typeof self) e = self; else try { e = Function("return this")() } catch (e) { throw new Error("polyfill failed because global object is unavailable in this environment") } var t = e.Promise; if (t) { var i = null; try { i = Object.prototype.toString.call(t.resolve()) } catch (e) {} if ("[object Promise]" === i && !t.cast) return } e.Promise = F } , F.Promise = F }() }), e(function(e, t) { e.exports = function() { function h(e) { return "function" == typeof e } var i = Array.isArray ? Array.isArray : function(e) { return "[object Array]" === Object.prototype.toString.call(e) } , r = 0 , t = void 0 , o = void 0 , n = function(e, t) { u[r] = e, u[r + 1] = t, 2 === (r += 2) && (o ? o(d) : w()) } , e = "undefined" != typeof window ? window : void 0 , s = e || {} , a = s.MutationObserver || s.WebKitMutationObserver , c = "undefined" == typeof self && "undefined" != typeof process && "[object process]" === {}.toString.call(process) , l = "undefined" != typeof Uint8ClampedArray && "undefined" != typeof importScripts && "undefined" != typeof MessageChannel; function m() { var e = setTimeout; return function() { return e(d, 1) } } var u = new Array(1e3); function d() { for (var e = 0; e < r; e += 2) { var t = u[e] , i = u[e + 1]; t(i), u[e] = void 0, u[e + 1] = void 0 } r = 0 } var p, f, y, S, w = void 0; function g(e, t) { var i = this , r = new this.constructor(v); void 0 === r[b] && O(r); var o = i._state; if (o) { var s = arguments[o - 1]; n(function() { return I(o, r, s, i._result) }) } else E(i, r, e, t); return r } function x(e) { if (e && "object" == typeof e && e.constructor === this) return e; var t = new this(v); return _(t, e), t } w = c ? function() { return process.nextTick(d) } : a ? (f = 0, y = new a(d), S = document.createTextNode(""), y.observe(S, { characterData: !0 }), function() { S.data = f = ++f % 2 } ) : l ? ((p = new MessageChannel).port1.onmessage = d, function() { return p.port2.postMessage(0) } ) : void 0 === e ? function() { try { var e = Function("return this")().require("vertx"); return void 0 === (t = e.runOnLoop || e.runOnContext) ? m() : function() { t(d) } } catch (e) { return m() } }() : m(); var b = Math.random().toString(36).substring(2); function v() {} var z = void 0 , C = 1 , T = 2; function P(e, t, i, r) { try { e.call(t, i, r) } catch (e) { return e } } function A(e, t, i) { var r, o, s, a; t.constructor === e.constructor && i === g && t.constructor.resolve === x ? (s = e, (a = t)._state === C ? D(s, a._result) : a._state === T ? k(s, a._result) : E(a, void 0, function(e) { return _(s, e) }, function(e) { return k(s, e) })) : void 0 === i ? D(e, t) : h(i) ? (r = t, o = i, n(function(t) { var i = !1 , e = P(o, r, function(e) { i || (i = !0, r !== e ? _(t, e) : D(t, e)) }, function(e) { i || (i = !0, k(t, e)) }, t._label); !i && e && (i = !0, k(t, e)) }, e)) : D(e, t) } function _(t, e) { if (t === e) k(t, new TypeError("You cannot resolve a promise with itself")); else if (o = typeof (r = e), null === r || "object" !== o && "function" !== o) D(t, e); else { var i = void 0; try { i = e.then } catch (e) { return void k(t, e) } A(t, e, i) } var r, o } function B(e) { e._onerror && e._onerror(e._result), M(e) } function D(e, t) { e._state === z && (e._result = t, e._state = C, 0 !== e._subscribers.length && n(M, e)) } function k(e, t) { e._state === z && (e._state = T, e._result = t, n(B, e)) } function E(e, t, i, r) { var o = e._subscribers , s = o.length; e._onerror = null, o[s] = t, o[s + C] = i, o[s + T] = r, 0 === s && e._state && n(M, e) } function M(e) { var t = e._subscribers , i = e._state; if (0 !== t.length) { for (var r = void 0, o = void 0, s = e._result, a = 0; a < t.length; a += 3) r = t[a], o = t[a + i], r ? I(i, r, o, s) : o(s); e._subscribers.length = 0 } } function I(e, t, i, r) { var o = h(i) , s = void 0 , a = void 0 , n = !0; if (o) { try { s = i(r) } catch (e) { n = !1, a = e } if (t === s) return void k(t, new TypeError("A promises callback cannot return that same promise.")) } else s = r; t._state !== z || (o && n ? _(t, s) : !1 === n ? k(t, a) : e === C ? D(t, s) : e === T && k(t, s)) } var L = 0; function O(e) { e[b] = L++, e._state = void 0, e._result = void 0, e._subscribers = [] } var R = function() { function e(e, t) { this._instanceConstructor = e, this.promise = new e(v), this.promise[b] || O(this.promise), i(t) ? (this.length = t.length, this._remaining = t.length, this._result = new Array(this.length), 0 === this.length ? D(this.promise, this._result) : (this.length = this.length || 0, this._enumerate(t), 0 === this._remaining && D(this.promise, this._result))) : k(this.promise, new Error("Array Methods must be provided an Array")) } return e.prototype._enumerate = function(e) { for (var t = 0; this._state === z && t < e.length; t++) this._eachEntry(e[t], t) } , e.prototype._eachEntry = function(t, e) { var i = this._instanceConstructor , r = i.resolve; if (r === x) { var o = void 0 , s = void 0 , a = !1; try { o = t.then } catch (e) { a = !0, s = e } if (o === g && t._state !== z) this._settledAt(t._state, e, t._result); else if ("function" != typeof o) this._remaining--, this._result[e] = t; else if (i === F) { var n = new i(v); a ? k(n, s) : A(n, t, o), this._willSettleAt(n, e) } else this._willSettleAt(new i(function(e) { return e(t) } ), e) } else this._willSettleAt(r(t), e) } , e.prototype._settledAt = function(e, t, i) { var r = this.promise; r._state === z && (this._remaining--, e === T ? k(r, i) : this._result[t] = i), 0 === this._remaining && D(r, this._result) } , e.prototype._willSettleAt = function(e, t) { var i = this; E(e, void 0, function(e) { return i._settledAt(C, t, e) }, function(e) { return i._settledAt(T, t, e) }) } , e }() , F = function() { function t(e) { this[b] = L++, this._result = this._state = void 0, this._subscribers = [], v !== e && ("function" != typeof e && function() { throw new TypeError("You must pass a resolver function as the first argument to the promise constructor") }(), this instanceof t ? function(t, e) { try { e(function(e) { _(t, e) }, function(e) { k(t, e) }) } catch (e) { k(t, e) } }(this, e) : function() { throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.") }()) } return t.prototype.catch = function(e) { return this.then(null, e) } , t.prototype.finally = function(t) { var i = this.constructor; return h(t) ? this.then(function(e) { return i.resolve(t()).then(function() { return e }) }, function(e) { return i.resolve(t()).then(function() { throw e }) }) : this.then(t, t) } , t }(); return F.prototype.then = g, F.all = function(e) { return new R(this,e).promise } , F.race = function(o) { var s = this; return i(o) ? new s(function(e, t) { for (var i = o.length, r = 0; r < i; r++) s.resolve(o[r]).then(e, t) } ) : new s(function(e, t) { return t(new TypeError("You must pass an array to race.")) } ) } , F.resolve = x, F.reject = function(e) { var t = new this(v); return k(t, e), t } , F._setScheduler = function(e) { o = e } , F._setAsap = function(e) { n = e } , F._asap = n, F.polyfill = function() { var e = void 0; if (void 0 !== G) e = G; else if ("undefined" != typeof self) e = self; else try { e = Function("return this")() } catch (e) { throw new Error("polyfill failed because global object is unavailable in this environment") } var t = e.Promise; if (t) { var i = null; try { i = Object.prototype.toString.call(t.resolve()) } catch (e) {} if ("[object Promise]" === i && !t.cast) return } e.Promise = F } , F.Promise = F }() }).polyfill(); (t = h.BrandingDomain || (h.BrandingDomain = {}))[t.Neutral = 0] = "Neutral", t[t.Yepi = 1] = "Yepi", t[t.Spele = 2] = "Spele", t[t.Funnygames = 3] = "Funnygames", t[t.Kizi = 4] = "Kizi", t[t.PlayCell = 5] = "PlayCell", t[t.GameCell = 6] = "GameCell", t[t.Bild = 7] = "Bild", t[t.Spil = 8] = "Spil", t[t.Admeen = 9] = "Admeen"; var i, r = function() { function e() {} return e.has = function(e) { var t = e.lastIndexOf("."); if (t <= 0 || t >= e.length - 1) return !1; var i = e.lastIndexOf(".", t - 1); if (i <= 0 || t - 1 <= i) return !1; var r = o[e.slice(t + 1)]; return !!r && 0 <= r.indexOf(" " + e.slice(i + 1, t) + " ") } , e.is = function(e) { var t = e.lastIndexOf("."); if (t <= 0 || t >= e.length - 1) return !1; if (0 <= e.lastIndexOf(".", t - 1)) return !1; var i = o[e.slice(t + 1)]; return !!i && 0 <= i.indexOf(" " + e.slice(0, t) + " ") } , e.get = function(e) { var t = e.lastIndexOf("."); if (t <= 0 || t >= e.length - 1) return null; var i = e.lastIndexOf(".", t - 1); if (i <= 0 || t - 1 <= i) return null; var r = o[e.slice(t + 1)]; return r ? r.indexOf(" " + e.slice(i + 1, t) + " ") < 0 ? null : e.slice(i + 1) : null } , e }(), s = function() { function e() {} return e.setList = function(e) { o = e || {} } , e.getDomain = function(e) { if (!o) return null; var t = e.match(/\./g); if (t && t.length < 2) return e; var i = this.getTld(e); if (!i) return null; var r = e.length - i.length - 1; return r = e.lastIndexOf(".", r - 1) + 1, e.substring(r) || "" } , e.getTld = function(e) { if (!o) return ""; var t = e.lastIndexOf(".") , i = e.substring(t + 1); return o[i.toLowerCase()] && r.get(e) || i } , e.KEY = "Domains", e }(), a = function() { function e() { this.cache = {} } return Object.defineProperty(e, "instance", { get: function() { return void 0 === e.classInstance && (e.classInstance = new e), e.classInstance }, enumerable: !0, configurable: !0 }), e.prototype.load = function(t, e, i) { var r = this; return this.contains(t) ? Promise.reject("Already in cache.") : (this.cache[t] = { url: e, data: null }, this.requestXhr(e, i).then(function(e) { return r.loadComplete(t, e) }).catch(function(e) { return r.remove(t), Promise.reject(e) })) } , e.prototype.loadComplete = function(e, t) { if (!this.contains(e)) return Promise.reject("Item was removed from cache before loading was complete."); try { var i = JSON.parse(t); return this.cache[e].data = i, Promise.resolve(i) } catch (e) { return Promise.reject("There was an error parsing JSON file.") } } , e.prototype.remove = function(e) { this.contains(e) && delete this.cache[e] } , e.prototype.get = function(e) { return this.contains(e) ? this.cache[e].data : null } , e.prototype.contains = function(e) { return this.cache.hasOwnProperty(e) } , e.prototype.isLoading = function(e) { return this.contains(e) && null === this.cache[e].data } , e.prototype.isLoaded = function(e) { return this.contains(e) && null !== this.cache[e].data } , e.prototype.loadScript = function(r, e, o) { return void 0 === e && (e = !0), new Promise(function(e, t) { var i = document.createElement("script"); i.src = r, i.async = !1, i.onload = function() { "function" == typeof o && o(), e() } , document.head.appendChild(i) } ) } , e.prototype.requestXhr = function(i, r) { if (typeof i === 'string' || i instanceof String) { i= i.replace("https://cdn.fbrq.io/@azerion/splash/assets/json/", "json/null.json?"); console.log("--fx--2--", i); } var o; return void 0 === r && (r = "application/json"), window.XMLHttpRequest ? (o = new XMLHttpRequest, new Promise(function(e, t) { o.onreadystatechange = function() { 4 === o.readyState && (200 === o.status ? (e(o.responseText), o.onreadystatechange = null) : 0 < o.status && (t("There was a problem with the request: status " + o.status), o.onreadystatechange = null)) } ; try { console.log("--fx--open--", i), o.open("GET", i, !0), o.setRequestHeader("Content-Type", r), o.send() } catch (e) { t("Error: Unable to send request, CORS not allowed.") } } )) : Promise.reject("Unable to send request, XMLHttpRequest not supported.") } , e }(); function n(e, t, i) { var r = document.createElement("script"); r.setAttribute("src", e + "?v=" + t), "function" == typeof i && (r.onload = i), document.body.appendChild(r) } (i = h.UtmTargets || (h.UtmTargets = {}))[i.splashscreen = 0] = "splashscreen", i[i.logo = 1] = "logo", i[i.facebook = 2] = "facebook", i[i.twitter = 3] = "twitter", i[i.playstore = 4] = "playstore", i[i.appstore = 5] = "appstore", i[i.more_games = 6] = "more_games", i[i.download_game = 7] = "download_game", i[i.walkthrough = 8] = "walkthrough", i[i.disclaimer = 9] = "disclaimer", i[i.highscores = 10] = "highscores"; var c, l, u, d, p, f, y, S, w, g, x, b, v = function() { function e() {} return e.loadPortalScript = function(e) { e && e.hasOwnProperty("minijuegos") && -1 !== e.minijuegos.indexOf(C.getSourceSite()) && (void 0 !== window.mpConfig ? window.mpConfig.partner = "orange-games" : window.mpConfig = { partner: "orange-games" }, n("https://ext.minijuegosgratis.com/external-host/main.js", Date.now() / 1e3)), e && e.hasOwnProperty("kongregate") && -1 !== e.kongregate.indexOf(C.getSourceSite()) && n("https://cdn1.kongregate.com/javascripts/kongregate_api.js", Date.now() / 1e3, function() { "undefined" != typeof kongregateAPI && kongregateAPI.loadAPI(function() { window.kongregate = kongregateAPI.getAPI() }) }), e && e.hasOwnProperty("newgrounds") && -1 !== e.newgrounds.indexOf(C.getSourceSite()) && n("https://cdn.fbrq.io/@azerion/splash/assets/scripts/newgroundsio.min.js", Date.now() / 1e3) } , e }(), z = function() { function n() {} return n.preload = function(e) { var t = Promise.all([a.instance.load(s.KEY, C.ASSET_LOCATION + "json/domains.json?v=" + e, "text/plain"), a.instance.load(n.SITELOCK_PORTALS, C.ASSET_LOCATION + "json/sitelock.json?v=" + e, "text/plain")]); return Promise.all([a.instance.load(n.INTERNAL_PORTALS_KEY, C.ASSET_LOCATION + "json/internal.json?v=" + e, "text/plain"), a.instance.load(n.CONTRACTED_PORTALS_KEY, C.ASSET_LOCATION + "json/contracted.json?v=" + e, "text/plain"), a.instance.load(n.SPECIAL_PORTALS_KEY, C.ASSET_LOCATION + "json/special.json?v=" + e, "text/plain"), a.instance.load(n.GAME_ICONS_KEY, C.ASSET_LOCATION + "json/games.json?v=" + e, "text/plain")]), t.then(function(e) { var t = e[0] , i = e[1]; s.setList(t), v.loadPortalScript(i), n.setSiteLock(i) }).catch(function() {}) } , n.setSiteLock = function(e) { n.siteLocks = e } , Object.defineProperty(n, "brandingLogoUrl", { get: function() { var e; switch (C.isOnDevice() || n.isAirfi() ? C.ASSET_LOCATION = "assets/" : "fbrq.io" === C.getSourceSite(!0) && (C.ASSET_LOCATION = "https://" + window.location.host + "/@azerion/splash/assets/"), C.getBrandingDomain()) { case h.BrandingDomain.Spele: e = "spele"; break; case h.BrandingDomain.PlayCell: e = "playcell"; break; case h.BrandingDomain.GameCell: e = "gamecell"; break; case h.BrandingDomain.Yepi: e = "yepi"; break; case h.BrandingDomain.Spil: e = "spil"; break; case h.BrandingDomain.Admeen: e = "admeen"; break; case h.BrandingDomain.Bild: e = "bild"; break; default: case h.BrandingDomain.Kizi: e = "kizi"; break; case h.BrandingDomain.Funnygames: e = "funnygames" } return C.ASSET_LOCATION + "images/branding_logo_" + e + "_small.png" }, enumerable: !0, configurable: !0 }), Object.defineProperty(n, "brandingBackgroundColor", { get: function() { var e; switch (C.getBrandingDomain()) { case h.BrandingDomain.Spele: e = "#4a72ad"; break; case h.BrandingDomain.PlayCell: e = "#52a1e1"; break; case h.BrandingDomain.GameCell: e = "#c600b2"; break; case h.BrandingDomain.Yepi: e = "#0573a7"; break; case h.BrandingDomain.Spil: e = "#0C486C"; break; case h.BrandingDomain.Admeen: e = "#4267B2"; break; case h.BrandingDomain.Bild: e = "#de0000"; break; default: case h.BrandingDomain.Kizi: e = "#012f50"; break; case h.BrandingDomain.Funnygames: e = "#33b0ff" } return e }, enumerable: !0, configurable: !0 }), n.openCampaignLink = function(e, t) { if (!C.isOnDevice() && !n.isSpecial() && n.outGoingLinksAllowed()) { var i, r, o = C.getSourceSite(), s = C.isOnDevice() ? "https://" : "//"; switch (C.getBrandingDomain()) { case h.BrandingDomain.Spele: i = s + "www.spele.nl"; break; case h.BrandingDomain.Yepi: i = s + "www.yepi.com"; break; case h.BrandingDomain.Admeen: return i = "https://media.admeen.com/branding/link.php", void ((r = window.open(i, "_blank")) && r.focus && r.focus()); case h.BrandingDomain.PlayCell: i = s + "www.playcell.com"; break; case h.BrandingDomain.GameCell: i = s + "www.gamecell.com"; break; default: case h.BrandingDomain.Kizi: i = "http://www.kizi.com"; break; case h.BrandingDomain.Bild: return void ((r = window.open(s + "www.bildspielt.de", "_blank")) && r.focus && r.focus()); case h.BrandingDomain.Funnygames: i = s + "www.funnygames.nu" } var a = "string" == typeof t ? t : h.UtmTargets[t]; (r = window.open(i + "/?utm_source=" + o + "&utm_medium=html5&utm_term=" + e + "&utm_content=" + a + "&utm_campaign=Gamedistribution", "_blank")) && r.focus && r.focus() } } , n.isInternal = function() { return n.hostMatchesList(a.instance.get(n.INTERNAL_PORTALS_KEY)) } , n.isContracted = function() { return n.hostMatchesList(a.instance.get(n.CONTRACTED_PORTALS_KEY)) } , n.isSpecial = function() { return n.hostMatchesList(a.instance.get(n.SPECIAL_PORTALS_KEY)) } , n.isAdmeen = function() { if (!n.siteLocks || !n.siteLocks.hasOwnProperty("admeen")) return !1; var e = n.siteLocks.admeen; return n.hostMatchesList(e) } , n.isKongregate = function() { if (!n.siteLocks || !n.siteLocks.hasOwnProperty("kongregate")) return !1; var e = n.siteLocks.kongregate; return n.hostMatchesList(e) } , n.isNewgrounds = function() { if (!n.siteLocks || !n.siteLocks.hasOwnProperty("newgrounds")) return !1; var e = n.siteLocks.newgrounds; return n.hostMatchesList(e) } , n.isBild = function() { return "bild.fbrq.io" === window.location.host || -1 !== window.location.host.indexOf("contentfleet.com") } , n.isPlaytime = function() { return -1 !== window.location.host.indexOf("playtime.nl") } , n.isBip = function() { return -1 !== window.location.search.indexOf("bipgaming") || "bip.fbrq.io" === window.location.host } , n.isPlaycellApp = function() { return -1 !== window.location.search.indexOf("playcellApp") } , n.isSpil = function() { return -1 !== document.referrer.indexOf("gameplayer.io") } , n.isAirfi = function() { return !!window.hasOwnProperty("airfi") && window.airfi } , n.outGoingLinksAllowed = function() { return !(n.isAirfi() || n.isSpecial() || n.isContracted()) && (!window.hasOwnProperty("fbrqLA") || window.fbrqLA) } , n.hostMatchesList = function(e) { e = e || []; for (var t = C.getSourceSite(), i = 0; i < e.length; i++) if (t === e[i]) return !0; return !1 } , n.LOGO_KEY = "branding_logo", n.INTERNAL_PORTALS_KEY = "branding_portals", n.CONTRACTED_PORTALS_KEY = "branding_contracted", n.SPECIAL_PORTALS_KEY = "branding_special", n.SITELOCK_PORTALS = "sitelock_portals", n.GAME_ICONS_KEY = "more_games", n.DOMAIN_OVERWRITE = null, n.analyticsEnabled = !0, n }(), C = function() { function r() {} return r.getSourceSite = function(e) { void 0 === e && (e = !1); var t = document.referrer || window.location.host; if (e && (t = window.location.host), -1 !== t.indexOf("embed.gamedistribution.com") && -1 !== window.location.search.indexOf("gd_sdk_referrer_url") && (t = r.getUrlParameter("gd_sdk_referrer_url") || t), t = decodeURIComponent(t), z.isBild()) return "bildspielt.de"; if (z.isBip()) return "bipgaming.com"; z.isSpil() && (t = r.getReferrer(t)), t = (t = -1 < t.indexOf("://") ? t.split("/")[2] : t.split("/")[0]).split(":")[0]; var i = s.getDomain(t); return null !== i ? i : (3 === t.split(".").length && (t = t.substr(t.indexOf(".") + 1)), t) } , r.getBrandingDomain = function() { if (window.hasOwnProperty("fbrqBD") && window.fbrqBD in h.BrandingDomain) return window.fbrqBD; if (z.DOMAIN_OVERWRITE) return z.DOMAIN_OVERWRITE; var e = r.getSourceSite(); if (z.isAdmeen()) return h.BrandingDomain.Admeen; if (z.isPlaycellApp() || z.isBip()) return h.BrandingDomain.PlayCell; switch (e) { case "spele.nl": return h.BrandingDomain.Spele; case "yepi.com": return h.BrandingDomain.Yepi; case "oyunskor.com": case "barbioyunu.com.tr": case "bebekoyunu.com.tr": case "oyunkolu.com": case "oyungemisi.com": case "oyunlar1.com": case "oyunkuzusu.com": case "kraloyun.com": case "rekoroyun.com": case "oyundedem.com": case "oyunoyna.com": case "pastaoyunu.com.tr": case "playcell.com": return h.BrandingDomain.PlayCell; case "gamecell.com": return h.BrandingDomain.GameCell; case "playxl.com": return h.BrandingDomain.Admeen; default: case "kizi.com": return h.BrandingDomain.Kizi; case "bildspielt.de": return h.BrandingDomain.Bild; case "funnygames.nl": return h.BrandingDomain.Funnygames } } , r.getReferrer = function(e) { return -1 !== e.indexOf("?ref=") ? e.substr(e.indexOf("?ref=") + 5) : e } , r.inIframe = function() { try { return window.self !== window.top } catch (e) { return !0 } } , r.inGDGameZone = function() { return -1 !== document.referrer.indexOf("html5.gamedistribution.com") } , r.getDomain = function(e) { var t = document.createElement("a"); return t.href = e, t.origin } , r.isOnDevice = function() { return void 0 !== window.cordova && !/(gamedistribution\.com)/.test(window.location.hostname) } , r.isTc = function() { return /(teamcity\.azerdev\.com)/.test(window.location.host) } , r.getRandomRange = function(e, t) { return Math.random() * (t - e) + e | 0 } , r.getUrlParameter = function(e) { e = e.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var t = new RegExp("[\\?&]" + e + "=([^&#]*)").exec(location.search); return null === t ? "" : decodeURIComponent(t[1].replace(/\+/g, " ")) } , r.intTimeToString = function(e) { var t = Math.floor(e / 3600) , i = Math.floor(e % 3600 / 60) , r = e % 60; return (t < 10 ? "0" + t : t.toString()) + ":" + (i < 10 ? "0" + i : i.toString()) + ":" + (r < 10 ? "0" + r : r.toString()) } , r.ASSET_LOCATION = window.hasOwnProperty("fbrqSA") && !0 === window.fbrqSA ? "assets/" : "https://cdn.fbrq.io/@azerion/splash/assets/", r }(), T = function() { function e() {} return e.preload = function() { return z.analyticsEnabled ? new Promise(function(e, t) { var i, r, o, s, a, n = C.isOnDevice() ? "https://" : "//"; i = window, r = document, o = "js/null.js?"+n + "www.google-analytics.com/analytics.js", i.GoogleAnalyticsObject = "ga", i.ga = i.ga ? i.ga : function() { (i.ga.q = i.ga.q || []).push(arguments) } , i.ga.l = Date.now(), s = r.createElement("script"), a = r.getElementsByTagName("script")[0], s.async = 1, s.src = o, a.parentNode.insertBefore(s, a), e() } ) : Promise.resolve() } , e.prototype.setup = function(e, t, i, r, o) { if (void 0 === r && (r = "auto"), void 0 === o && (o = 100), !z.analyticsEnabled) return null; if (ga("create", e, r, { sampleRate: o }), C.isOnDevice() && ga("set", "checkProtocolTask", null), void 0 !== t && ga("set", "appName", t), void 0 !== t && ga("set", "appVersion", i), ga("send", "pageview"), "auto" !== r) { var s = { name: "fbrq", sampleRate: 1 }; for (var a in r) r.hasOwnProperty(a) && (s[a] = r[a]); ga("create", "UA-60359297-50", s) } else ga("create", "UA-60359297-50", r, "fbrq", { sampleRate: 1 }); if (z.isSpil()) { var n = C.getReferrer(decodeURIComponent(document.referrer)); ga("fbrq.set", "referrer", n), ga("set", "referrer", n) } return C.isOnDevice() && ga("fbrq.set", "checkProtocolTask", null), ga("fbrq.set", "appName", "All"), ga("fbrq.send", "pageview"), ga } , e.prototype.sendScreenView = function(t) { z.analyticsEnabled && ["send", "fbrq.send"].forEach(function(e) { ga(e, "screenview", { screenName: t }) }) } , e.prototype.sendGenericEvent = function(t, i, r) { z.analyticsEnabled && ["send", "fbrq.send"].forEach(function(e) { ga(e, "event", t, i, r) }) } , e }(), P = P || function(n, e) { var t = {} , i = t.lib = {} , r = function() {} , o = i.Base = { extend: function(e) { r.prototype = this; var t = new r; return e && t.mixIn(e), t.hasOwnProperty("init") || (t.init = function() { t.$super.init.apply(this, arguments) } ), (t.init.prototype = t).$super = this, t }, create: function() { var e = this.extend(); return e.init.apply(e, arguments), e }, init: function() {}, mixIn: function(e) { for (var t in e) e.hasOwnProperty(t) && (this[t] = e[t]); e.hasOwnProperty("toString") && (this.toString = e.toString) }, clone: function() { return this.init.prototype.extend(this) } } , h = i.WordArray = o.extend({ init: function(e, t) { e = this.words = e || [], this.sigBytes = null != t ? t : 4 * e.length }, toString: function(e) { return (e || a).stringify(this) }, concat: function(e) { var t = this.words , i = e.words , r = this.sigBytes; if (e = e.sigBytes, this.clamp(), r % 4) for (var o = 0; o < e; o++) t[r + o >>> 2] |= (i[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 24 - (r + o) % 4 * 8; else if (65535 < i.length) for (o = 0; o < e; o += 4) t[r + o >>> 2] = i[o >>> 2]; else t.push.apply(t, i); return this.sigBytes += e, this }, clamp: function() { var e = this.words , t = this.sigBytes; e[t >>> 2] &= 4294967295 << 32 - t % 4 * 8, e.length = n.ceil(t / 4) }, clone: function() { var e = o.clone.call(this); return e.words = this.words.slice(0), e }, random: function(e) { for (var t = [], i = 0; i < e; i += 4) t.push(4294967296 * n.random() | 0); return new h.init(t,e) } }) , s = t.enc = {} , a = s.Hex = { stringify: function(e) { var t = e.words; e = e.sigBytes; for (var i = [], r = 0; r < e; r++) { var o = t[r >>> 2] >>> 24 - r % 4 * 8 & 255; i.push((o >>> 4).toString(16)), i.push((15 & o).toString(16)) } return i.join("") }, parse: function(e) { for (var t = e.length, i = [], r = 0; r < t; r += 2) i[r >>> 3] |= parseInt(e.substr(r, 2), 16) << 24 - r % 8 * 4; return new h.init(i,t / 2) } } , c = s.Latin1 = { stringify: function(e) { var t = e.words; e = e.sigBytes; for (var i = [], r = 0; r < e; r++) i.push(String.fromCharCode(t[r >>> 2] >>> 24 - r % 4 * 8 & 255)); return i.join("") }, parse: function(e) { for (var t = e.length, i = [], r = 0; r < t; r++) i[r >>> 2] |= (255 & e.charCodeAt(r)) << 24 - r % 4 * 8; return new h.init(i,t) } } , l = s.Utf8 = { stringify: function(e) { try { return decodeURIComponent(escape(c.stringify(e))) } catch (e) { throw Error("Malformed UTF-8 data") } }, parse: function(e) { return c.parse(unescape(encodeURIComponent(e))) } } , m = i.BufferedBlockAlgorithm = o.extend({ reset: function() { this._data = new h.init, this._nDataBytes = 0 }, _append: function(e) { "string" == typeof e && (e = l.parse(e)), this._data.concat(e), this._nDataBytes += e.sigBytes }, _process: function(e) { var t = this._data , i = t.words , r = t.sigBytes , o = this.blockSize , s = r / (4 * o); if (e = (s = e ? n.ceil(s) : n.max((0 | s) - this._minBufferSize, 0)) * o, r = n.min(4 * e, r), e) { for (var a = 0; a < e; a += o) this._doProcessBlock(i, a); a = i.splice(0, e), t.sigBytes -= r } return new h.init(a,r) }, clone: function() { var e = o.clone.call(this); return e._data = this._data.clone(), e }, _minBufferSize: 0 }); i.Hasher = m.extend({ cfg: o.extend(), init: function(e) { this.cfg = this.cfg.extend(e), this.reset() }, reset: function() { m.reset.call(this), this._doReset() }, update: function(e) { return this._append(e), this._process(), this }, finalize: function(e) { return e && this._append(e), this._doFinalize() }, blockSize: 16, _createHelper: function(i) { return function(e, t) { return new i.init(t).finalize(e) } }, _createHmacHelper: function(i) { return function(e, t) { return new u.HMAC.init(i,t).finalize(e) } } }); var u = t.algo = {}; return t }(Math); !function(o) { for (var e = P, t = (r = e.lib).WordArray, i = r.Hasher, r = e.algo, s = [], p = [], a = function(e) { return 4294967296 * (e - (0 | e)) | 0 }, n = 2, h = 0; h < 64; ) { var c; e: { c = n; for (var l = o.sqrt(c), m = 2; m <= l; m++) if (!(c % m)) { c = !1; break e } c = !0 } c && (h < 8 && (s[h] = a(o.pow(n, .5))), p[h] = a(o.pow(n, 1 / 3)), h++), n++ } var f = []; r = r.SHA256 = i.extend({ _doReset: function() { this._hash = new t.init(s.slice(0)) }, _doProcessBlock: function(e, t) { for (var i = this._hash.words, r = i[0], o = i[1], s = i[2], a = i[3], n = i[4], h = i[5], c = i[6], l = i[7], m = 0; m < 64; m++) { if (m < 16) f[m] = 0 | e[t + m]; else { var u = f[m - 15] , d = f[m - 2]; f[m] = ((u << 25 | u >>> 7) ^ (u << 14 | u >>> 18) ^ u >>> 3) + f[m - 7] + ((d << 15 | d >>> 17) ^ (d << 13 | d >>> 19) ^ d >>> 10) + f[m - 16] } u = l + ((n << 26 | n >>> 6) ^ (n << 21 | n >>> 11) ^ (n << 7 | n >>> 25)) + (n & h ^ ~n & c) + p[m] + f[m], d = ((r << 30 | r >>> 2) ^ (r << 19 | r >>> 13) ^ (r << 10 | r >>> 22)) + (r & o ^ r & s ^ o & s), l = c, c = h, h = n, n = a + u | 0, a = s, s = o, o = r, r = u + d | 0 } i[0] = i[0] + r | 0, i[1] = i[1] + o | 0, i[2] = i[2] + s | 0, i[3] = i[3] + a | 0, i[4] = i[4] + n | 0, i[5] = i[5] + h | 0, i[6] = i[6] + c | 0, i[7] = i[7] + l | 0 }, _doFinalize: function() { var e = this._data , t = e.words , i = 8 * this._nDataBytes , r = 8 * e.sigBytes; return t[r >>> 5] |= 128 << 24 - r % 32, t[14 + (r + 64 >>> 9 << 4)] = o.floor(i / 4294967296), t[15 + (r + 64 >>> 9 << 4)] = i, e.sigBytes = 4 * t.length, this._process(), this._hash }, clone: function() { var e = i.clone.call(this); return e._hash = this._hash.clone(), e } }); e.SHA256 = i._createHelper(r), e.HmacSHA256 = i._createHmacHelper(r) }(Math), l = (c = P).enc.Utf8, c.algo.HMAC = c.lib.Base.extend({ init: function(e, t) { e = this._hasher = new e.init, "string" == typeof t && (t = l.parse(t)); var i = e.blockSize , r = 4 * i; t.sigBytes > r && (t = e.finalize(t)), t.clamp(); for (var o = this._oKey = t.clone(), s = this._iKey = t.clone(), a = o.words, n = s.words, h = 0; h < i; h++) a[h] ^= 1549556828, n[h] ^= 909522486; o.sigBytes = s.sigBytes = r, this.reset() }, reset: function() { var e = this._hasher; e.reset(), e.update(this._iKey) }, update: function(e) { return this._hasher.update(e), this }, finalize: function(e) { var t = this._hasher; return e = t.finalize(e), t.reset(), t.finalize(this._oKey.clone().concat(e)) } }), d = (u = P).lib.WordArray, u.enc.Base64 = { stringify: function(e) { var t = e.words , i = e.sigBytes , r = this._map; e.clamp(), e = []; for (var o = 0; o < i; o += 3) for (var s = (t[o >>> 2] >>> 24 - o % 4 * 8 & 255) << 16 | (t[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255) << 8 | t[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, a = 0; a < 4 && o + .75 * a < i; a++) e.push(r.charAt(s >>> 6 * (3 - a) & 63)); if (t = r.charAt(64)) for (; e.length % 4; ) e.push(t); return e.join("") }, parse: function(e) { var t = e.length , i = this._map; (r = i.charAt(64)) && -1 != (r = e.indexOf(r)) && (t = r); for (var r = [], o = 0, s = 0; s < t; s++) if (s % 4) { var a = i.indexOf(e.charAt(s - 1)) << s % 4 * 2 , n = i.indexOf(e.charAt(s)) >>> 6 - s % 4 * 2; r[o >>> 2] |= (a | n) << 24 - o % 4 * 8, o++ } return d.create(r, o) }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }, p = Le || (Le = {}), (f = p.EGAErrorSeverity || (p.EGAErrorSeverity = {}))[f.Undefined = 0] = "Undefined", f[f.Debug = 1] = "Debug", f[f.Info = 2] = "Info", f[f.Warning = 3] = "Warning", f[f.Error = 4] = "Error", f[f.Critical = 5] = "Critical", (y = p.EGAGender || (p.EGAGender = {}))[y.Undefined = 0] = "Undefined", y[y.Male = 1] = "Male", y[y.Female = 2] = "Female", (S = p.EGAProgressionStatus || (p.EGAProgressionStatus = {}))[S.Undefined = 0] = "Undefined", S[S.Start = 1] = "Start", S[S.Complete = 2] = "Complete", S[S.Fail = 3] = "Fail", (w = p.EGAResourceFlowType || (p.EGAResourceFlowType = {}))[w.Undefined = 0] = "Undefined", w[w.Source = 1] = "Source", w[w.Sink = 2] = "Sink", g = p.http || (p.http = {}), (x = g.EGASdkErrorType || (g.EGASdkErrorType = {}))[x.Undefined = 0] = "Undefined", x[x.Rejected = 1] = "Rejected", (b = g.EGAHTTPApiResponse || (g.EGAHTTPApiResponse = {}))[b.NoResponse = 0] = "NoResponse", b[b.BadResponse = 1] = "BadResponse", b[b.RequestTimeout = 2] = "RequestTimeout", b[b.JsonEncodeFailed = 3] = "JsonEncodeFailed", b[b.JsonDecodeFailed = 4] = "JsonDecodeFailed", b[b.InternalServerError = 5] = "InternalServerError", b[b.BadRequest = 6] = "BadRequest", b[b.Unauthorized = 7] = "Unauthorized", b[b.UnknownResponseCode = 8] = "UnknownResponseCode", b[b.Ok = 9] = "Ok"; var A, _, B, D, k, E, M, I, L, O, R, F, N, U, W, X, H, j, Y, V, K, q, Z, J, Q, $, ee, te, ie, re, oe, se, ae, ne, he, ce, le, me, ue, de, pe, fe, ye, Se, we, ge, xe, be, ve, ze, Ce, Te, Pe, Ae, _e, Be, De, ke, Ee, Me, Ie, Le, Oe, Re, Fe, Ge, Ne, Ue, We, Xe, He, je, Ye, Ve; Le.EGAErrorSeverity, Le.EGAGender, Le.EGAProgressionStatus, Le.EGAResourceFlowType; (function(e) { var r, t; (t = r || (r = {}))[t.Error = 0] = "Error", t[t.Warning = 1] = "Warning", t[t.Info = 2] = "Info", t[t.Debug = 3] = "Debug"; var i = function() { function i() { i.debugEnabled = !1 } return i.setInfoLog = function(e) { i.instance.infoLogEnabled = e } , i.setVerboseLog = function(e) { i.instance.infoLogVerboseEnabled = e } , i.i = function(e) { if (i.instance.infoLogEnabled) { var t = "Info/" + i.Tag + ": " + e; i.instance.sendNotificationMessage(t, r.Info) } } , i.w = function(e) { var t = "Warning/" + i.Tag + ": " + e; i.instance.sendNotificationMessage(t, r.Warning) } , i.e = function(e) { var t = "Error/" + i.Tag + ": " + e; i.instance.sendNotificationMessage(t, r.Error) } , i.ii = function(e) { if (i.instance.infoLogVerboseEnabled) { var t = "Verbose/" + i.Tag + ": " + e; i.instance.sendNotificationMessage(t, r.Info) } } , i.d = function(e) { if (i.debugEnabled) { var t = "Debug/" + i.Tag + ": " + e; i.instance.sendNotificationMessage(t, r.Debug) } } , i.prototype.sendNotificationMessage = function(e, t) { switch (t) { case r.Error: case r.Warning: break; case r.Debug: console.debug; break; case r.Info: } } , i.instance = new i, i.Tag = "GameAnalytics", i }(); e.GALogger = i } )((A = Le || (Le = {})).logging || (A.logging = {})), _ = Le || (Le = {}), B = _.utilities || (_.utilities = {}), D = _.logging.GALogger, k = function() { function l() {} return l.getHmac = function(e, t) { var i = P.HmacSHA256(t, e); return P.enc.Base64.stringify(i) } , l.stringMatch = function(e, t) { return !(!e || !t) && t.test(e) } , l.joinStringArray = function(e, t) { for (var i = "", r = 0, o = e.length; r < o; r++) 0 < r && (i += t), i += e[r]; return i } , l.stringArrayContainsString = function(e, t) { if (0 === e.length) return !1; for (var i in e) if (e[i] === t) return !0; return !1 } , l.encode64 = function(e) { e = encodeURI(e); for (var t, i, r, o, s, a = "", n = 0, h = 0, c = 0; r = (t = e.charCodeAt(c++)) >> 2, o = (3 & t) << 4 | (i = e.charCodeAt(c++)) >> 4, s = (15 & i) << 2 | (n = e.charCodeAt(c++)) >> 6, h = 63 & n, isNaN(i) ? s = h = 64 : isNaN(n) && (h = 64), a = a + l.keyStr.charAt(r) + l.keyStr.charAt(o) + l.keyStr.charAt(s) + l.keyStr.charAt(h), t = i = n = 0, r = o = s = h = 0, c < e.length; ) ; return a } , l.decode64 = function(e) { var t, i, r, o, s = "", a = 0, n = 0, h = 0; for (/[^A-Za-z0-9\+\/\=]/g.exec(e) && D.w("There were invalid base64 characters in the input text. Valid base64 characters are A-Z, a-z, 0-9, '+', '/',and '='. Expect errors in decoding."), e = e.replace(/[^A-Za-z0-9\+\/\=]/g, ""); t = l.keyStr.indexOf(e.charAt(h++)) << 2 | (r = l.keyStr.indexOf(e.charAt(h++))) >> 4, i = (15 & r) << 4 | (o = l.keyStr.indexOf(e.charAt(h++))) >> 2, a = (3 & o) << 6 | (n = l.keyStr.indexOf(e.charAt(h++))), s += String.fromCharCode(t), 64 != o && (s += String.fromCharCode(i)), 64 != n && (s += String.fromCharCode(a)), t = i = a = 0, r = o = n = 0, h < e.length; ) ; return decodeURI(s) } , l.timeIntervalSince1970 = function() { var e = new Date; return Math.round(e.getTime() / 1e3) } , l.createGuid = function() { return (l.s4() + l.s4() + "-" + l.s4() + "-4" + l.s4().substr(0, 3) + "-" + l.s4() + "-" + l.s4() + l.s4() + l.s4()).toLowerCase() } , l.s4 = function() { return (65536 * (1 + Math.random()) | 0).toString(16).substring(1) } , l.keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", l }(), B.GAUtilities = k, E = Le || (Le = {}), M = E.validators || (E.validators = {}), I = E.logging.GALogger, L = E.http.EGASdkErrorType, O = E.utilities.GAUtilities, R = function() { function n() {} return n.validateBusinessEvent = function(e, t, i, r, o) { return n.validateCurrency(e) ? t < 0 ? (I.w("Validation fail - business event - amount. Cannot be less than 0. Failed amount: " + t), !1) : n.validateShortString(i, !0) ? n.validateEventPartLength(r, !1) ? n.validateEventPartCharacters(r) ? n.validateEventPartLength(o, !1) ? !!n.validateEventPartCharacters(o) || (I.w("Validation fail - business event - itemId: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: " + o), !1) : (I.w("Validation fail - business event - itemId. Cannot be (null), empty or above 64 characters. String: " + o), !1) : (I.w("Validation fail - business event - itemType: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: " + r), !1) : (I.w("Validation fail - business event - itemType: Cannot be (null), empty or above 64 characters. String: " + r), !1) : (I.w("Validation fail - business event - cartType. Cannot be above 32 length. String: " + i), !1) : (I.w("Validation fail - business event - currency: Cannot be (null) and need to be A-Z, 3 characters and in the standard at openexchangerates.org. Failed currency: " + e), !1) } , n.validateResourceEvent = function(e, t, i, r, o, s, a) { return e == E.EGAResourceFlowType.Undefined ? (I.w("Validation fail - resource event - flowType: Invalid flow type."), !1) : t ? O.stringArrayContainsString(s, t) ? 0 < i ? r ? n.validateEventPartLength(r, !1) ? n.validateEventPartCharacters(r) ? O.stringArrayContainsString(a, r) ? n.validateEventPartLength(o, !1) ? !!n.validateEventPartCharacters(o) || (I.w("Validation fail - resource event - itemId: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: " + o), !1) : (I.w("Validation fail - resource event - itemId: Cannot be (null), empty or above 64 characters. String: " + o), !1) : (I.w("Validation fail - resource event - itemType: Not found in list of pre-defined available resource itemTypes. String: " + r), !1) : (I.w("Validation fail - resource event - itemType: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: " + r), !1) : (I.w("Validation fail - resource event - itemType: Cannot be (null), empty or above 64 characters. String: " + r), !1) : (I.w("Validation fail - resource event - itemType: Cannot be (null)"), !1) : (I.w("Validation fail - resource event - amount: Float amount cannot be 0 or negative. Value: " + i), !1) : (I.w("Validation fail - resource event - currency: Not found in list of pre-defined available resource currencies. String: " + t), !1) : (I.w("Validation fail - resource event - currency: Cannot be (null)"), !1) } , n.validateProgressionEvent = function(e, t, i, r) { if (e == E.EGAProgressionStatus.Undefined) return I.w("Validation fail - progression event: Invalid progression status."), !1; if (r && !i && t) return I.w("Validation fail - progression event: 03 found but 01+02 are invalid. Progression must be set as either 01, 01+02 or 01+02+03."), !1; if (i && !t) return I.w("Validation fail - progression event: 02 found but not 01. Progression must be set as either 01, 01+02 or 01+02+03"), !1; if (!t) return I.w("Validation fail - progression event: progression01 not valid. Progressions must be set as either 01, 01+02 or 01+02+03"), !1; if (!n.validateEventPartLength(t, !1)) return I.w("Validation fail - progression event - progression01: Cannot be (null), empty or above 64 characters. String: " + t), !1; if (!n.validateEventPartCharacters(t)) return I.w("Validation fail - progression event - progression01: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: " + t), !1; if (i) { if (!n.validateEventPartLength(i, !0)) return I.w("Validation fail - progression event - progression02: Cannot be empty or above 64 characters. String: " + i), !1; if (!n.validateEventPartCharacters(i)) return I.w("Validation fail - progression event - progression02: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: " + i), !1 } if (r) { if (!n.validateEventPartLength(r, !0)) return I.w("Validation fail - progression event - progression03: Cannot be empty or above 64 characters. String: " + r), !1; if (!n.validateEventPartCharacters(r)) return I.w("Validation fail - progression event - progression03: Cannot contain other characters than A-z, 0-9, -_., ()!?. String: " + r), !1 } return !0 } , n.validateDesignEvent = function(e, t) { return n.validateEventIdLength(e) ? !!n.validateEventIdCharacters(e) || (I.w("Validation fail - design event - eventId: Non valid characters. Only allowed A-z, 0-9, -_., ()!?. String: " + e), !1) : (I.w("Validation fail - design event - eventId: Cannot be (null) or empty. Only 5 event parts allowed seperated by :. Each part need to be 32 characters or less. String: " + e), !1) } , n.validateErrorEvent = function(e, t) { return e == E.EGAErrorSeverity.Undefined ? (I.w("Validation fail - error event - severity: Severity was unsupported value."), !1) : !!n.validateLongString(t, !0) || (I.w("Validation fail - error event - message: Message cannot be above 8192 characters."), !1) } , n.validateSdkErrorEvent = function(e, t, i) { return !(!n.validateKeys(e, t) || i === L.Undefined && (I.w("Validation fail - sdk error event - type: Type was unsupported value."), 1)) } , n.validateKeys = function(e, t) { return !(!O.stringMatch(e, /^[A-z0-9]{32}$/) || !O.stringMatch(t, /^[A-z0-9]{40}$/)) } , n.validateCurrency = function(e) { return !!e && !!O.stringMatch(e, /^[A-Z]{3}$/) } , n.validateEventPartLength = function(e, t) { return !(!t || e) || !!e && !(64 < e.length) } , n.validateEventPartCharacters = function(e) { return !!O.stringMatch(e, /^[A-Za-z0-9\s\-_\.\(\)\!\?]{1,64}$/) } , n.validateEventIdLength = function(e) { return !!e && !!O.stringMatch(e, /^[^:]{1,64}(?::[^:]{1,64}){0,4}$/) } , n.validateEventIdCharacters = function(e) { return !!e && !!O.stringMatch(e, /^[A-Za-z0-9\s\-_\.\(\)\!\?]{1,64}(:[A-Za-z0-9\s\-_\.\(\)\!\?]{1,64}){0,4}$/) } , n.validateAndCleanInitRequestResponse = function(t) { if (null == t) return I.w("validateInitRequestResponse failed - no response dictionary."), null; var e = {}; try { e.enabled = t.enabled } catch (e) { return I.w("validateInitRequestResponse failed - invalid type in 'enabled' field."), null } try { var i = t.server_ts; if (!(0 < i)) return I.w("validateInitRequestResponse failed - invalid value in 'server_ts' field."), null; e.server_ts = i } catch (e) { return I.w("validateInitRequestResponse failed - invalid type in 'server_ts' field. type=" + typeof t.server_ts + ", value=" + t.server_ts + ", " + e), null } try { var r = t.configurations; e.configurations = r } catch (e) { return I.w("validateInitRequestResponse failed - invalid type in 'configurations' field. type=" + typeof t.configurations + ", value=" + t.configurations + ", " + e), null } return e } , n.validateBuild = function(e) { return !!n.validateShortString(e, !1) } , n.validateSdkWrapperVersion = function(e) { return !!O.stringMatch(e, /^(unity|unreal|gamemaker|cocos2d|construct|defold) [0-9]{0,5}(\.[0-9]{0,5}){0,2}$/) } , n.validateEngineVersion = function(e) { return !(!e || !O.stringMatch(e, /^(unity|unreal|gamemaker|cocos2d|construct|defold) [0-9]{0,5}(\.[0-9]{0,5}){0,2}$/)) } , n.validateUserId = function(e) { return !!n.validateString(e, !1) || (I.w("Validation fail - user id: id cannot be (null), empty or above 64 characters."), !1) } , n.validateShortString = function(e, t) { return !(!t || e) || !(!e || 32 < e.length) } , n.validateString = function(e, t) { return !(!t || e) || !(!e || 64 < e.length) } , n.validateLongString = function(e, t) { return !(!t || e) || !(!e || 8192 < e.length) } , n.validateConnectionType = function(e) { return O.stringMatch(e, /^(wwan|wifi|lan|offline)$/) } , n.validateCustomDimensions = function(e) { return n.validateArrayOfStrings(20, 32, !1, "custom dimensions", e) } , n.validateResourceCurrencies = function(e) { if (!n.validateArrayOfStrings(20, 64, !1, "resource currencies", e)) return !1; for (var t = 0; t < e.length; ++t) if (!O.stringMatch(e[t], /^[A-Za-z]+$/)) return I.w("resource currencies validation failed: a resource currency can only be A-Z, a-z. String was: " + e[t]), !1; return !0 } , n.validateResourceItemTypes = function(e) { if (!n.validateArrayOfStrings(20, 32, !1, "resource item types", e)) return !1; for (var t = 0; t < e.length; ++t) if (!n.validateEventPartCharacters(e[t])) return I.w("resource item types validation failed: a resource item type cannot contain other characters than A-z, 0-9, -_., ()!?. String was: " + e[t]), !1; return !0 } , n.validateDimension01 = function(e, t) { return !e || !!O.stringArrayContainsString(t, e) } , n.validateDimension02 = function(e, t) { return !e || !!O.stringArrayContainsString(t, e) } , n.validateDimension03 = function(e, t) { return !e || !!O.stringArrayContainsString(t, e) } , n.validateArrayOfStrings = function(e, t, i, r, o) { var s = r; if (s || (s = "Array"), !o) return I.w(s + " validation failed: array cannot be null. "), !1; if (0 == i && 0 == o.length) return I.w(s + " validation failed: array cannot be empty. "), !1; if (0 < e && o.length > e) return I.w(s + " validation failed: array cannot exceed " + e + " values. It has " + o.length + " values."), !1; for (var a = 0; a < o.length; ++a) { var n = o[a] ? o[a].length : 0; if (0 === n) return I.w(s + " validation failed: contained an empty string. Array=" + JSON.stringify(o)), !1; if (0 < t && t < n) return I.w(s + " validation failed: a string exceeded max allowed length (which is: " + t + "). String was: " + o[a]), !1 } return !0 } , n.validateFacebookId = function(e) { return !!n.validateString(e, !1) || (I.w("Validation fail - facebook id: id cannot be (null), empty or above 64 characters."), !1) } , n.validateGender = function(e) { if (isNaN(Number(E.EGAGender[e]))) { if (e == E.EGAGender.Undefined || e != E.EGAGender.Male && e != E.EGAGender.Female) return I.w("Validation fail - gender: Has to be 'male' or 'female'. Was: " + e), !1 } else if (e == E.EGAGender[E.EGAGender.Undefined] || e != E.EGAGender[E.EGAGender.Male] && e != E.EGAGender[E.EGAGender.Female]) return I.w("Validation fail - gender: Has to be 'male' or 'female'. Was: " + e), !1; return !0 } , n.validateBirthyear = function(e) { return !(e < 0 || 9999 < e) || (I.w("Validation fail - birthYear: Cannot be (null) or invalid range."), !1) } , n.validateClientTs = function(e) { return !(e < -4294967294 || 4294967294 < e) } , n }(), M.GAValidator = R, function(e) { var t = function(e, t, i) { this.name = e, this.value = t, this.version = i }; e.NameValueVersion = t; var l = function(e, t) { this.name = e, this.version = t }; e.NameVersion = l; var i = function() { function o() {} return o.touch = function() {} , o.getRelevantSdkVersion = function() { return o.sdkGameEngineVersion ? o.sdkGameEngineVersion : o.sdkWrapperVersion } , o.getConnectionType = function() { return o.connectionType } , o.updateConnectionType = function() { o.connectionType = navigator.onLine ? "ios" === o.buildPlatform || "android" === o.buildPlatform ? "wwan" : "lan" : "offline" } , o.getOSVersionString = function() { return o.buildPlatform + " " + o.osVersionPair.version } , o.runtimePlatformToString = function() { return o.osVersionPair.name } , o.getBrowserVersionString = function() { var e, t = navigator.userAgent, i = t.match(/(opera|chrome|safari|firefox|ubrowser|msie|trident|fbav(?=\/))\/?\s*(\d+)/i) || []; if (0 == i.length && "ios" === o.buildPlatform) return "webkit_" + o.osVersion; if (/trident/i.test(i[1])) return "IE " + ((e = /\brv[ :]+(\d+)/g.exec(t) || [])[1] || ""); if ("Chrome" === i[1] && null != (e = t.match(/\b(OPR|Edge|UBrowser)\/(\d+)/))) return e.slice(1).join(" ").replace("OPR", "Opera").replace("UBrowser", "UC").toLowerCase(); if (i[1] && "fbav" === i[1].toLowerCase() && (i[1] = "facebook", i[2])) return "facebook " + i[2]; var r = i[2] ? [i[1], i[2]] : [navigator.appName, navigator.appVersion, "-?"]; return null != (e = t.match(/version\/(\d+)/i)) && r.splice(1, 1, e[1]), r.join(" ").toLowerCase() } , o.getDeviceModel = function() { return "unknown" } , o.getDeviceManufacturer = function() { return "unknown" } , o.matchItem = function(e, t) { var i, r, o, s, a = new l("unknown","0.0.0"), n = 0, h = 0; for (n = 0; n < t.length; n += 1) if (new RegExp(t[n].value,"i").test(e)) { if (i = new RegExp(t[n].version + "[- /:;]([\\d._]+)","i"), s = "", (r = e.match(i)) && r[1] && (o = r[1]), o) { var c = o.split(/[._]+/); for (h = 0; h < Math.min(c.length, 3); h += 1) s += c[h] + (h < Math.min(c.length, 3) - 1 ? "." : "") } else s = "0.0.0"; return a.name = t[n].name, a.version = s, a } return a } , o.sdkWrapperVersion = "javascript 3.1.2", o.osVersionPair = o.matchItem([navigator.platform, navigator.userAgent, navigator.appVersion, navigator.vendor].join(" "), [new t("windows_phone","Windows Phone","OS"), new t("windows","Win","NT"), new t("ios","iPhone","OS"), new t("ios","iPad","OS"), new t("ios","iPod","OS"), new t("android","Android","Android"), new t("blackBerry","BlackBerry","/"), new t("mac_osx","Mac","OS X"), new t("tizen","Tizen","Tizen"), new t("linux","Linux","rv")]), o.buildPlatform = o.runtimePlatformToString(), o.deviceModel = o.getDeviceModel(), o.deviceManufacturer = o.getDeviceManufacturer(), o.osVersion = o.getOSVersionString(), o.browserVersion = o.getBrowserVersionString(), o.maxSafeInteger = Math.pow(2, 53) - 1, o }(); e.GADevice = i }((F = Le || (Le = {})).device || (F.device = {})), N = Le || (Le = {}), U = N.threading || (N.threading = {}), W = function() { function t(e) { this.deadline = e, this.ignore = !1, this.async = !1, this.running = !1, this.id = ++t.idCounter } return t.idCounter = 0, t }(), U.TimedBlock = W, X = Le || (Le = {}), H = X.threading || (X.threading = {}), j = function() { function e(e) { this.comparer = e, this._subQueues = {}, this._sortedKeys = [] } return e.prototype.enqueue = function(e, t) { -1 === this._sortedKeys.indexOf(e) && this.addQueueOfPriority(e), this._subQueues[e].push(t) } , e.prototype.addQueueOfPriority = function(e) { var i = this; this._sortedKeys.push(e), this._sortedKeys.sort(function(e, t) { return i.comparer.compare(e, t) }), this._subQueues[e] = [] } , e.prototype.peek = function() { if (this.hasItems()) return this._subQueues[this._sortedKeys[0]][0]; throw new Error("The queue is empty") } , e.prototype.hasItems = function() { return 0 < this._sortedKeys.length } , e.prototype.dequeue = function() { if (this.hasItems()) return this.dequeueFromHighPriorityQueue(); throw new Error("The queue is empty") } , e.prototype.dequeueFromHighPriorityQueue = function() { var e = this._sortedKeys[0] , t = this._subQueues[e].shift(); return 0 === this._subQueues[e].length && (this._sortedKeys.shift(), delete this._subQueues[e]), t } , e }(), H.PriorityQueue = j, function(e) { var u, t, i, r, o = Y.logging.GALogger; (t = u = e.EGAStoreArgsOperator || (e.EGAStoreArgsOperator = {}))[t.Equal = 0] = "Equal", t[t.LessOrEqual = 1] = "LessOrEqual", t[t.NotEqual = 2] = "NotEqual", (r = i = e.EGAStore || (e.EGAStore = {}))[r.Events = 0] = "Events", r[r.Sessions = 1] = "Sessions", r[r.Progression = 2] = "Progression"; var s = function() { function m() { this.eventsStore = [], this.sessionsStore = [], this.progressionStore = [], this.storeItems = {}; try { m.storageAvailable = "object" == typeof localStorage && (localStorage.setItem("testingLocalStorage", "yes"), localStorage.removeItem("testingLocalStorage"), !0) } catch (e) {} } return m.isStorageAvailable = function() { return m.storageAvailable } , m.isStoreTooLargeForEvents = function() { return m.instance.eventsStore.length + m.instance.sessionsStore.length > m.MaxNumberOfEntries } , m.select = function(e, t, i, r) { void 0 === t && (t = []), void 0 === i && (i = !1), void 0 === r && (r = 0); var o = m.getStore(e); if (!o) return null; for (var s = [], a = 0; a < o.length; ++a) { for (var n = o[a], h = !0, c = 0; c < t.length; ++c) { var l = t[c]; if (n[l[0]]) switch (l[1]) { case u.Equal: h = n[l[0]] == l[2]; break; case u.LessOrEqual: h = n[l[0]] <= l[2]; break; case u.NotEqual: h = n[l[0]] != l[2]; break; default: h = !1 } else h = !1; if (!h) break } h && s.push(n) } return i && s.sort(function(e, t) { return e.client_ts - t.client_ts }), 0 < r && s.length > r && (s = s.slice(0, r + 1)), s } , m.update = function(e, t, i) { void 0 === i && (i = []); var r = m.getStore(e); if (!r) return !1; for (var o = 0; o < r.length; ++o) { for (var s = r[o], a = !0, n = 0; n < i.length; ++n) { var h = i[n]; if (s[h[0]]) switch (h[1]) { case u.Equal: a = s[h[0]] == h[2]; break; case u.LessOrEqual: a = s[h[0]] <= h[2]; break; case u.NotEqual: a = s[h[0]] != h[2]; break; default: a = !1 } else a = !1; if (!a) break } if (a) for (n = 0; n < t.length; ++n) { var c = t[n]; s[c[0]] = c[1] } } return !0 } , m.delete = function(e, t) { var i = m.getStore(e); if (i) for (var r = 0; r < i.length; ++r) { for (var o = i[r], s = !0, a = 0; a < t.length; ++a) { var n = t[a]; if (o[n[0]]) switch (n[1]) { case u.Equal: s = o[n[0]] == n[2]; break; case u.LessOrEqual: s = o[n[0]] <= n[2]; break; case u.NotEqual: s = o[n[0]] != n[2]; break; default: s = !1 } else s = !1; if (!s) break } s && (i.splice(r, 1), --r) } } , m.insert = function(e, t, i, r) { void 0 === i && (i = !1), void 0 === r && (r = null); var o = m.getStore(e); if (o) if (i) { if (!r) return; for (var s = !1, a = 0; a < o.length; ++a) { var n = o[a]; if (n[r] == t[r]) { for (var h in t) n[h] = t[h]; s = !0; break } } s || o.push(t) } else o.push(t) } , m.save = function() { m.isStorageAvailable() ? (localStorage.setItem(m.KeyPrefix + m.EventsStoreKey, JSON.stringify(m.instance.eventsStore)), localStorage.setItem(m.KeyPrefix + m.SessionsStoreKey, JSON.stringify(m.instance.sessionsStore)), localStorage.setItem(m.KeyPrefix + m.ProgressionStoreKey, JSON.stringify(m.instance.progressionStore)), localStorage.setItem(m.KeyPrefix + m.ItemsStoreKey, JSON.stringify(m.instance.storeItems))) : o.w("Storage is not available, cannot save.") } , m.load = function() { if (m.isStorageAvailable()) { try { m.instance.eventsStore = JSON.parse(localStorage.getItem(m.KeyPrefix + m.EventsStoreKey)), m.instance.eventsStore || (m.instance.eventsStore = []) } catch (e) { o.w("Load failed for 'events' store. Using empty store."), m.instance.eventsStore = [] } try { m.instance.sessionsStore = JSON.parse(localStorage.getItem(m.KeyPrefix + m.SessionsStoreKey)), m.instance.sessionsStore || (m.instance.sessionsStore = []) } catch (e) { o.w("Load failed for 'sessions' store. Using empty store."), m.instance.sessionsStore = [] } try { m.instance.progressionStore = JSON.parse(localStorage.getItem(m.KeyPrefix + m.ProgressionStoreKey)), m.instance.progressionStore || (m.instance.progressionStore = []) } catch (e) { o.w("Load failed for 'progression' store. Using empty store."), m.instance.progressionStore = [] } try { m.instance.storeItems = JSON.parse(localStorage.getItem(m.KeyPrefix + m.ItemsStoreKey)), m.instance.storeItems || (m.instance.storeItems = {}) } catch (e) { o.w("Load failed for 'items' store. Using empty store."), m.instance.progressionStore = [] } } else o.w("Storage is not available, cannot load.") } , m.setItem = function(e, t) { var i = m.KeyPrefix + e; t ? m.instance.storeItems[i] = t : i in m.instance.storeItems && delete m.instance.storeItems[i] } , m.getItem = function(e) { var t = m.KeyPrefix + e; return t in m.instance.storeItems ? m.instance.storeItems[t] : null } , m.getStore = function(e) { switch (e) { case i.Events: return m.instance.eventsStore; case i.Sessions: return m.instance.sessionsStore; case i.Progression: return m.instance.progressionStore; default: return o.w("GAStore.getStore(): Cannot find store: " + e), null } } , m.instance = new m, m.MaxNumberOfEntries = 2e3, m.KeyPrefix = "GA::", m.EventsStoreKey = "ga_event", m.SessionsStoreKey = "ga_session", m.ProgressionStoreKey = "ga_progression", m.ItemsStoreKey = "ga_items", m }(); e.GAStore = s }((Y = Le || (Le = {})).store || (Y.store = {})), V = Le || (Le = {}), K = V.state || (V.state = {}), q = V.validators.GAValidator, Z = V.utilities.GAUtilities, J = V.logging.GALogger, Q = V.store.GAStore, $ = V.device.GADevice, ee = V.store.EGAStore, te = V.store.EGAStoreArgsOperator, ie = function() { function l() { this.availableCustomDimensions01 = [], this.availableCustomDimensions02 = [], this.availableCustomDimensions03 = [], this.availableResourceCurrencies = [], this.availableResourceItemTypes = [], this.configurations = {}, this.commandCenterListeners = [], this.sdkConfigDefault = {}, this.sdkConfig = {}, this.progressionTries = {}, this._isEventSubmissionEnabled = !0 } return l.setUserId = function(e) { l.instance.userId = e, l.cacheIdentifier() } , l.getIdentifier = function() { return l.instance.identifier } , l.isInitialized = function() { return l.instance.initialized } , l.setInitialized = function(e) { l.instance.initialized = e } , l.getSessionStart = function() { return l.instance.sessionStart } , l.getSessionNum = function() { return l.instance.sessionNum } , l.getTransactionNum = function() { return l.instance.transactionNum } , l.getSessionId = function() { return l.instance.sessionId } , l.getCurrentCustomDimension01 = function() { return l.instance.currentCustomDimension01 } , l.getCurrentCustomDimension02 = function() { return l.instance.currentCustomDimension02 } , l.getCurrentCustomDimension03 = function() { return l.instance.currentCustomDimension03 } , l.getGameKey = function() { return l.instance.gameKey } , l.getGameSecret = function() { return l.instance.gameSecret } , l.getAvailableCustomDimensions01 = function() { return l.instance.availableCustomDimensions01 } , l.setAvailableCustomDimensions01 = function(e) { q.validateCustomDimensions(e) && (l.instance.availableCustomDimensions01 = e, l.validateAndFixCurrentDimensions(), J.i("Set available custom01 dimension values: (" + Z.joinStringArray(e, ", ") + ")")) } , l.getAvailableCustomDimensions02 = function() { return l.instance.availableCustomDimensions02 } , l.setAvailableCustomDimensions02 = function(e) { q.validateCustomDimensions(e) && (l.instance.availableCustomDimensions02 = e, l.validateAndFixCurrentDimensions(), J.i("Set available custom02 dimension values: (" + Z.joinStringArray(e, ", ") + ")")) } , l.getAvailableCustomDimensions03 = function() { return l.instance.availableCustomDimensions03 } , l.setAvailableCustomDimensions03 = function(e) { q.validateCustomDimensions(e) && (l.instance.availableCustomDimensions03 = e, l.validateAndFixCurrentDimensions(), J.i("Set available custom03 dimension values: (" + Z.joinStringArray(e, ", ") + ")")) } , l.getAvailableResourceCurrencies = function() { return l.instance.availableResourceCurrencies } , l.setAvailableResourceCurrencies = function(e) { q.validateResourceCurrencies(e) && (l.instance.availableResourceCurrencies = e, J.i("Set available resource currencies: (" + Z.joinStringArray(e, ", ") + ")")) } , l.getAvailableResourceItemTypes = function() { return l.instance.availableResourceItemTypes } , l.setAvailableResourceItemTypes = function(e) { q.validateResourceItemTypes(e) && (l.instance.availableResourceItemTypes = e, J.i("Set available resource item types: (" + Z.joinStringArray(e, ", ") + ")")) } , l.getBuild = function() { return l.instance.build } , l.setBuild = function(e) { l.instance.build = e, J.i("Set build version: " + e) } , l.getUseManualSessionHandling = function() { return l.instance.useManualSessionHandling } , l.isEventSubmissionEnabled = function() { return l.instance._isEventSubmissionEnabled } , l.prototype.setDefaultId = function(e) { this.defaultUserId = e || "", l.cacheIdentifier() } , l.getDefaultId = function() { return l.instance.defaultUserId } , l.getSdkConfig = function() { var e, t = 0; for (var i in l.instance.sdkConfig) 0 === t && (e = i), ++t; if (e && 0 < t) return l.instance.sdkConfig; for (var i in t = 0, l.instance.sdkConfigCached) 0 === t && (e = i), ++t; return e && 0 < t ? l.instance.sdkConfigCached : l.instance.sdkConfigDefault } , l.isEnabled = function() { var e = l.getSdkConfig(); return !(e.enabled && "false" == e.enabled || !l.instance.initAuthorized) } , l.setCustomDimension01 = function(e) { l.instance.currentCustomDimension01 = e, Q.setItem(l.Dimension01Key, e), J.i("Set custom01 dimension value: " + e) } , l.setCustomDimension02 = function(e) { l.instance.currentCustomDimension02 = e, Q.setItem(l.Dimension02Key, e), J.i("Set custom02 dimension value: " + e) } , l.setCustomDimension03 = function(e) { l.instance.currentCustomDimension03 = e, Q.setItem(l.Dimension03Key, e), J.i("Set custom03 dimension value: " + e) } , l.setFacebookId = function(e) { l.instance.facebookId = e, Q.setItem(l.FacebookIdKey, e), J.i("Set facebook id: " + e) } , l.setGender = function(e) { l.instance.gender = isNaN(Number(V.EGAGender[e])) ? V.EGAGender[e].toString().toLowerCase() : V.EGAGender[V.EGAGender[e]].toString().toLowerCase(), Q.setItem(l.GenderKey, l.instance.gender), J.i("Set gender: " + l.instance.gender) } , l.setBirthYear = function(e) { l.instance.birthYear = e, Q.setItem(l.BirthYearKey, e.toString()), J.i("Set birth year: " + e) } , l.incrementSessionNum = function() { var e = l.getSessionNum() + 1; l.instance.sessionNum = e } , l.incrementTransactionNum = function() { var e = l.getTransactionNum() + 1; l.instance.transactionNum = e } , l.incrementProgressionTries = function(e) { var t = l.getProgressionTries(e) + 1; l.instance.progressionTries[e] = t; var i = {}; i.progression = e, i.tries = t, Q.insert(ee.Progression, i, !0, "progression") } , l.getProgressionTries = function(e) { return e in l.instance.progressionTries ? l.instance.progressionTries[e] : 0 } , l.clearProgressionTries = function(e) { e in l.instance.progressionTries && delete l.instance.progressionTries[e]; var t = []; t.push(["progression", te.Equal, e]), Q.delete(ee.Progression, t) } , l.setKeys = function(e, t) { l.instance.gameKey = e, l.instance.gameSecret = t } , l.setManualSessionHandling = function(e) { l.instance.useManualSessionHandling = e, J.i("Use manual session handling: " + e) } , l.setEnabledEventSubmission = function(e) { l.instance._isEventSubmissionEnabled = e } , l.getEventAnnotations = function() { var e = { v: 2 }; e.user_id = l.instance.identifier, e.client_ts = l.getClientTsAdjusted(), e.sdk_version = $.getRelevantSdkVersion(), e.os_version = $.osVersion, e.manufacturer = $.deviceManufacturer, e.device = $.deviceModel, e.browser_version = $.browserVersion, e.platform = $.buildPlatform, e.session_id = l.instance.sessionId, e[l.SessionNumKey] = l.instance.sessionNum; var t = $.getConnectionType(); return q.validateConnectionType(t) && (e.connection_type = t), $.gameEngineVersion && (e.engine_version = $.gameEngineVersion), l.instance.build && (e.build = l.instance.build), l.instance.facebookId && (e[l.FacebookIdKey] = l.instance.facebookId), l.instance.gender && (e[l.GenderKey] = l.instance.gender), 0 != l.instance.birthYear && (e[l.BirthYearKey] = l.instance.birthYear), e } , l.getSdkErrorEventAnnotations = function() { var e = { v: 2 }; e.category = l.CategorySdkError, e.sdk_version = $.getRelevantSdkVersion(), e.os_version = $.osVersion, e.manufacturer = $.deviceManufacturer, e.device = $.deviceModel, e.platform = $.buildPlatform; var t = $.getConnectionType(); return q.validateConnectionType(t) && (e.connection_type = t), $.gameEngineVersion && (e.engine_version = $.gameEngineVersion), e } , l.getInitAnnotations = function() { var e = {}; return e.user_id = l.getIdentifier(), e.sdk_version = $.getRelevantSdkVersion(), e.os_version = $.osVersion, e.platform = $.buildPlatform, e } , l.getClientTsAdjusted = function() { var e = Z.timeIntervalSince1970() , t = e + l.instance.clientServerTimeOffset; return q.validateClientTs(t) ? t : e } , l.sessionIsStarted = function() { return 0 != l.instance.sessionStart } , l.cacheIdentifier = function() { l.instance.userId ? l.instance.identifier = l.instance.userId : l.instance.defaultUserId && (l.instance.identifier = l.instance.defaultUserId) } , l.ensurePersistedStates = function() { Q.isStorageAvailable() && Q.load(); var e = l.instance; e.setDefaultId(null != Q.getItem(l.DefaultUserIdKey) ? Q.getItem(l.DefaultUserIdKey) : Z.createGuid()), e.sessionNum = null != Q.getItem(l.SessionNumKey) ? Number(Q.getItem(l.SessionNumKey)) : 0, e.transactionNum = null != Q.getItem(l.TransactionNumKey) ? Number(Q.getItem(l.TransactionNumKey)) : 0, e.facebookId ? Q.setItem(l.FacebookIdKey, e.facebookId) : (e.facebookId = null != Q.getItem(l.FacebookIdKey) ? Q.getItem(l.FacebookIdKey) : "", e.facebookId), e.gender ? Q.setItem(l.GenderKey, e.gender) : (e.gender = null != Q.getItem(l.GenderKey) ? Q.getItem(l.GenderKey) : "", e.gender), e.birthYear && 0 != e.birthYear ? Q.setItem(l.BirthYearKey, e.birthYear.toString()) : (e.birthYear = null != Q.getItem(l.BirthYearKey) ? Number(Q.getItem(l.BirthYearKey)) : 0, e.birthYear), e.currentCustomDimension01 ? Q.setItem(l.Dimension01Key, e.currentCustomDimension01) : (e.currentCustomDimension01 = null != Q.getItem(l.Dimension01Key) ? Q.getItem(l.Dimension01Key) : "", e.currentCustomDimension01), e.currentCustomDimension02 ? Q.setItem(l.Dimension02Key, e.currentCustomDimension02) : (e.currentCustomDimension02 = null != Q.getItem(l.Dimension02Key) ? Q.getItem(l.Dimension02Key) : "", e.currentCustomDimension02), e.currentCustomDimension03 ? Q.setItem(l.Dimension03Key, e.currentCustomDimension03) : (e.currentCustomDimension03 = null != Q.getItem(l.Dimension03Key) ? Q.getItem(l.Dimension03Key) : "", e.currentCustomDimension03); var t = null != Q.getItem(l.SdkConfigCachedKey) ? Q.getItem(l.SdkConfigCachedKey) : ""; if (t) { var i = JSON.parse(Z.decode64(t)); i && (e.sdkConfigCached = i) } var r = Q.select(ee.Progression); if (r) for (var o = 0; o < r.length; ++o) { var s = r[o]; s && (e.progressionTries[s.progression] = s.tries) } } , l.calculateServerTimeOffset = function(e) { return e - Z.timeIntervalSince1970() } , l.validateAndCleanCustomFields = function(e) { var t = {}; if (e) { var i = 0; for (var r in e) { var o = e[r]; if (r && o) if (i < l.MAX_CUSTOM_FIELDS_COUNT) { var s = new RegExp("^[a-zA-Z0-9_]{1," + l.MAX_CUSTOM_FIELDS_KEY_LENGTH + "}$"); if (Z.stringMatch(r, s)) { var a = typeof o; if ("string" === a || o instanceof String) { var n = o; n.length <= l.MAX_CUSTOM_FIELDS_VALUE_STRING_LENGTH && 0 < n.length ? (t[r] = n, ++i) : J.w("validateAndCleanCustomFields: entry with key=" + r + ", value=" + o + " has been omitted because its value is an empty string or exceeds the max number of characters (" + l.MAX_CUSTOM_FIELDS_VALUE_STRING_LENGTH + ")") } else if ("number" === a || o instanceof Number) { var h = o; t[r] = h, ++i } else J.w("validateAndCleanCustomFields: entry with key=" + r + ", value=" + o + " has been omitted because its value is not a string or number") } else J.w("validateAndCleanCustomFields: entry with key=" + r + ", value=" + o + " has been omitted because its key contains illegal character, is empty or exceeds the max number of characters (" + l.MAX_CUSTOM_FIELDS_KEY_LENGTH + ")") } else J.w("validateAndCleanCustomFields: entry with key=" + r + ", value=" + o + " has been omitted because it exceeds the max number of custom fields (" + l.MAX_CUSTOM_FIELDS_COUNT + ")"); else J.w("validateAndCleanCustomFields: entry with key=" + r + ", value=" + o + " has been omitted because its key or value is null") } } return t } , l.validateAndFixCurrentDimensions = function() { q.validateDimension01(l.getCurrentCustomDimension01(), l.getAvailableCustomDimensions01()) || l.setCustomDimension01(""), q.validateDimension02(l.getCurrentCustomDimension02(), l.getAvailableCustomDimensions02()) || l.setCustomDimension02(""), q.validateDimension03(l.getCurrentCustomDimension03(), l.getAvailableCustomDimensions03()) || l.setCustomDimension03("") } , l.getConfigurationStringValue = function(e, t) { return l.instance.configurations[e] ? l.instance.configurations[e].toString() : t } , l.isCommandCenterReady = function() { return l.instance.commandCenterIsReady } , l.addCommandCenterListener = function(e) { l.instance.commandCenterListeners.indexOf(e) < 0 && l.instance.commandCenterListeners.push(e) } , l.removeCommandCenterListener = function(e) { var t = l.instance.commandCenterListeners.indexOf(e); -1 < t && l.instance.commandCenterListeners.splice(t, 1) } , l.getConfigurationsContentAsString = function() { return JSON.stringify(l.instance.configurations) } , l.populateConfigurations = function(e) { var t = e.configurations; if (t) for (var i = 0; i < t.length; ++i) { var r = t[i]; if (r) { var o = r.key , s = r.value , a = r.start ? r.start : Number.MIN_VALUE , n = r.end ? r.end : Number.MAX_VALUE , h = l.getClientTsAdjusted(); o && s && a < h && h < n && (l.instance.configurations[o] = s) } } l.instance.commandCenterIsReady = !0; var c = l.instance.commandCenterListeners; for (i = 0; i < c.length; ++i) c[i] && c[i].onCommandCenterUpdated() } , l.CategorySdkError = "sdk_error", l.MAX_CUSTOM_FIELDS_COUNT = 50, l.MAX_CUSTOM_FIELDS_KEY_LENGTH = 64, l.MAX_CUSTOM_FIELDS_VALUE_STRING_LENGTH = 256, l.instance = new l, l.DefaultUserIdKey = "default_user_id", l.SessionNumKey = "session_num", l.TransactionNumKey = "transaction_num", l.FacebookIdKey = "facebook_id", l.GenderKey = "gender", l.BirthYearKey = "birth_year", l.Dimension01Key = "dimension01", l.Dimension02Key = "dimension02", l.Dimension03Key = "dimension03", l.SdkConfigCachedKey = "sdk_config_cached", l }(), K.GAState = ie, re = Le || (Le = {}), oe = re.tasks || (re.tasks = {}), se = re.utilities.GAUtilities, ae = re.logging.GALogger, ne = function() { function a() {} return a.execute = function(e, t, i, r) { if (a.countMap[t] || (a.countMap[t] = 0), !(a.countMap[t] >= a.MaxCount)) { var o = se.getHmac(r, i) , s = new XMLHttpRequest; s.onreadystatechange = function() { if (4 === s.readyState) { if (!s.responseText) return; if (200 != s.status) return void ae.w("sdk error failed. response code not 200. status code: " + s.status + ", description: " + s.statusText + ", body: " + s.responseText); a.countMap[t] = a.countMap[t] + 1 } } , console.log("--fx--open--post--", e), s.open("POST", e, !0), s.setRequestHeader("Content-Type", "application/json"), s.setRequestHeader("Authorization", o); try { s.send(i) } catch (e) {} } } , a.MaxCount = 10, a.countMap = {}, a }(), oe.SdkErrorTask = ne, he = Le || (Le = {}), ce = he.http || (he.http = {}), le = he.state.GAState, me = he.logging.GALogger, ue = he.utilities.GAUtilities, de = he.validators.GAValidator, pe = he.tasks.SdkErrorTask, fe = function() { function l() { this.protocol = "https", this.hostName = "api.gameanalytics.com", this.version = "v2", this.baseUrl = "json/null.json?"+ this.protocol + "://" + this.hostName + "/" + this.version, this.initializeUrlPath = "init", this.eventsUrlPath = "events", this.useGzip = !1 } return l.prototype.requestInit = function(e) { var t = le.getGameKey() , i = (this.baseUrl, this.initializeUrlPath); i = "json/null.json?https://rubick.gameanalytics.com/v2/command_center?game_key=" + t + "&interval_seconds=1000000"; var r = le.getInitAnnotations() , o = JSON.stringify(r); if (o) { var s = this.createPayloadData(o, this.useGzip) , a = []; a.push(o), l.sendRequest(i, s, a, this.useGzip, l.initRequestCallback, e) } else e(ce.EGAHTTPApiResponse.JsonEncodeFailed, null) } , l.prototype.sendEventsInArray = function(e, t, i) { if (0 != e.length) { var r = le.getGameKey() , o = this.baseUrl + "/" + r + "/" + this.eventsUrlPath , s = JSON.stringify(e); if (s) { var a = this.createPayloadData(s, this.useGzip) , n = []; n.push(s), n.push(t), n.push(e.length.toString()), l.sendRequest(o, a, n, this.useGzip, l.sendEventInArrayRequestCallback, i) } else i(ce.EGAHTTPApiResponse.JsonEncodeFailed, null, t, e.length) } } , l.prototype.sendSdkErrorEvent = function(e) { if (le.isEventSubmissionEnabled()) { var t = le.getGameKey() , i = le.getGameSecret(); if (de.validateSdkErrorEvent(t, i, e)) { var r, o = this.baseUrl + "/" + t + "/" + this.eventsUrlPath, s = le.getSdkErrorEventAnnotations(), a = l.sdkErrorTypeToString(e); s.type = a; var n = []; n.push(s), (r = JSON.stringify(n)) ? pe.execute(o, e, r, i) : me.w("sendSdkErrorEvent: JSON encoding failed.") } } } , l.sendEventInArrayRequestCallback = function(e, t, i, r) { void 0 === r && (r = null), r[0], r[1]; var o, s, a = r[2], n = parseInt(r[3]); o = e.responseText, s = e.status; var h = l.instance.processRequestResponse(s, e.statusText, o, "Events"); if (h == ce.EGAHTTPApiResponse.Ok || h == ce.EGAHTTPApiResponse.BadRequest) { var c = o ? JSON.parse(o) : {}; null != c ? (ce.EGAHTTPApiResponse.BadRequest, i(h, c, a, n)) : i(ce.EGAHTTPApiResponse.JsonDecodeFailed, null, a, n) } else i(h, null, a, n) } , l.sendRequest = function(e, t, i, r, o, s) { var a = new XMLHttpRequest , n = le.getGameSecret() , h = ue.getHmac(n, t) , c = []; for (var l in c.push(h), i) c.push(i[l]); if (a.onreadystatechange = function() { 4 === a.readyState && o(a, e, s, c) } , console.log("--fx--open--post--", e), a.open("POST", e, !0), a.setRequestHeader("Content-Type", "text/plain"), a.setRequestHeader("Authorization", h), r) throw new Error("gzip not supported"); try { a.send(t) } catch (e) {} } , l.initRequestCallback = function(e, t, i, r) { var o, s; void 0 === r && (r = null), r[0], r[1], o = e.responseText, s = e.status; var a = o ? JSON.parse(o) : {} , n = l.instance.processRequestResponse(s, e.statusText, o, "Init"); if (n == ce.EGAHTTPApiResponse.Ok || n == ce.EGAHTTPApiResponse.BadRequest) if (null != a) if (n !== ce.EGAHTTPApiResponse.BadRequest) { var h = de.validateAndCleanInitRequestResponse(a); h ? i(ce.EGAHTTPApiResponse.Ok, h, "", 0) : i(ce.EGAHTTPApiResponse.BadResponse, null, "", 0) } else i(n, null, "", 0); else i(ce.EGAHTTPApiResponse.JsonDecodeFailed, null, "", 0); else i(n, null, "", 0) } , l.prototype.createPayloadData = function(e, t) { if (t) throw new Error("gzip not supported"); return e } , l.prototype.processRequestResponse = function(e, t, i, r) { return i ? 200 === e ? ce.EGAHTTPApiResponse.Ok : 0 === e || 401 === e ? ce.EGAHTTPApiResponse.Unauthorized : 400 === e ? ce.EGAHTTPApiResponse.BadRequest : 500 === e ? ce.EGAHTTPApiResponse.InternalServerError : ce.EGAHTTPApiResponse.UnknownResponseCode : ce.EGAHTTPApiResponse.NoResponse } , l.sdkErrorTypeToString = function(e) { switch (e) { case ce.EGASdkErrorType.Rejected: return "rejected"; default: return "" } } , l.instance = new l, l }(), ce.GAHTTPApi = fe, ye = Le || (Le = {}), Se = ye.events || (ye.events = {}), we = ye.store.GAStore, ge = ye.store.EGAStore, xe = ye.store.EGAStoreArgsOperator, be = ye.state.GAState, ve = ye.logging.GALogger, ze = ye.utilities.GAUtilities, Ce = ye.http.EGAHTTPApiResponse, Te = ye.http.GAHTTPApi, Pe = ye.validators.GAValidator, Ae = ye.http.EGASdkErrorType, _e = function() { function u() {} return u.addSessionStartEvent = function() { if (be.isEventSubmissionEnabled()) { var e = {}; e.category = u.CategorySessionStart, be.incrementSessionNum(), we.setItem(be.SessionNumKey, be.getSessionNum().toString()), u.addDimensionsToEvent(e), u.addEventToStore(e), ve.i("Add SESSION START event"), u.processEvents(u.CategorySessionStart, !1) } } , u.addSessionEndEvent = function() { if (be.isEventSubmissionEnabled()) { var e = be.getSessionStart() , t = be.getClientTsAdjusted() - e; t < 0 && (ve.w("Session length was calculated to be less then 0. Should not be possible. Resetting to 0."), t = 0); var i = {}; i.category = u.CategorySessionEnd, i.length = t, u.addDimensionsToEvent(i), u.addEventToStore(i), ve.i("Add SESSION END event."), u.processEvents("", !1) } } , u.addBusinessEvent = function(e, t, i, r, o, s) { if (void 0 === o && (o = null), be.isEventSubmissionEnabled()) if (Pe.validateBusinessEvent(e, t, o, i, r)) { var a = {}; be.incrementTransactionNum(), we.setItem(be.TransactionNumKey, be.getTransactionNum().toString()), a.event_id = i + ":" + r, a.category = u.CategoryBusiness, a.currency = e, a.amount = t, a[be.TransactionNumKey] = be.getTransactionNum(), o && (a.cart_type = o), u.addDimensionsToEvent(a), u.addFieldsToEvent(a, be.validateAndCleanCustomFields(s)), ve.i("Add BUSINESS event: {currency:" + e + ", amount:" + t + ", itemType:" + i + ", itemId:" + r + ", cartType:" + o + "}"), u.addEventToStore(a) } else Te.instance.sendSdkErrorEvent(Ae.Rejected) } , u.addResourceEvent = function(e, t, i, r, o, s) { if (be.isEventSubmissionEnabled()) if (Pe.validateResourceEvent(e, t, i, r, o, be.getAvailableResourceCurrencies(), be.getAvailableResourceItemTypes())) { e === ye.EGAResourceFlowType.Sink && (i *= -1); var a = {} , n = u.resourceFlowTypeToString(e); a.event_id = n + ":" + t + ":" + r + ":" + o, a.category = u.CategoryResource, a.amount = i, u.addDimensionsToEvent(a), u.addFieldsToEvent(a, be.validateAndCleanCustomFields(s)), ve.i("Add RESOURCE event: {currency:" + t + ", amount:" + i + ", itemType:" + r + ", itemId:" + o + "}"), u.addEventToStore(a) } else Te.instance.sendSdkErrorEvent(Ae.Rejected) } , u.addProgressionEvent = function(e, t, i, r, o, s, a) { if (be.isEventSubmissionEnabled()) { var n = u.progressionStatusToString(e); if (Pe.validateProgressionEvent(e, t, i, r)) { var h, c = {}; h = i ? r ? t + ":" + i + ":" + r : t + ":" + i : t, c.category = u.CategoryProgression, c.event_id = n + ":" + h; var l = 0; s && e != ye.EGAProgressionStatus.Start && (c.score = o), e === ye.EGAProgressionStatus.Fail && be.incrementProgressionTries(h), e === ye.EGAProgressionStatus.Complete && (be.incrementProgressionTries(h), l = be.getProgressionTries(h), c.attempt_num = l, be.clearProgressionTries(h)), u.addDimensionsToEvent(c), u.addFieldsToEvent(c, be.validateAndCleanCustomFields(a)), ve.i("Add PROGRESSION event: {status:" + n + ", progression01:" + t + ", progression02:" + i + ", progression03:" + r + ", score:" + o + ", attempt:" + l + "}"), u.addEventToStore(c) } else Te.instance.sendSdkErrorEvent(Ae.Rejected) } } , u.addDesignEvent = function(e, t, i, r) { if (be.isEventSubmissionEnabled()) if (Pe.validateDesignEvent(e, t)) { var o = {}; o.category = u.CategoryDesign, o.event_id = e, i && (o.value = t), u.addDimensionsToEvent(o), u.addFieldsToEvent(o, be.validateAndCleanCustomFields(r)), ve.i("Add DESIGN event: {eventId:" + e + ", value:" + t + "}"), u.addEventToStore(o) } else Te.instance.sendSdkErrorEvent(Ae.Rejected) } , u.addErrorEvent = function(e, t, i) { if (be.isEventSubmissionEnabled()) { var r = u.errorSeverityToString(e); if (Pe.validateErrorEvent(e, t)) { var o = {}; o.category = u.CategoryError, o.severity = r, o.message = t, u.addDimensionsToEvent(o), u.addFieldsToEvent(o, be.validateAndCleanCustomFields(i)), ve.i("Add ERROR event: {severity:" + r + ", message:" + t + "}"), u.addEventToStore(o) } else Te.instance.sendSdkErrorEvent(Ae.Rejected) } } , u.processEvents = function(e, t) { if (be.isEventSubmissionEnabled()) try { var i = ze.createGuid(); t && (u.cleanupEvents(), u.fixMissingSessionEndEvents()); var r = []; r.push(["status", xe.Equal, "new"]); var o = []; o.push(["status", xe.Equal, "new"]), e && (r.push(["category", xe.Equal, e]), o.push(["category", xe.Equal, e])); var s = []; s.push(["status", i]); var a = we.select(ge.Events, r); if (!a || 0 == a.length) return ve.i("Event queue: No events to send"), void u.updateSessionStore(); if (a.length > u.MaxEventCount) { if (!(a = we.select(ge.Events, r, !0, u.MaxEventCount))) return; var n = a[a.length - 1].client_ts; if (r.push(["client_ts", xe.LessOrEqual, n]), !(a = we.select(ge.Events, r))) return; o.push(["client_ts", xe.LessOrEqual, n]) } if (ve.i("Event queue: Sending " + a.length + " events."), !we.update(ge.Events, s, o)) return; for (var h = [], c = 0; c < a.length; ++c) { var l = a[c] , m = JSON.parse(ze.decode64(l.event)); 0 != m.length && h.push(m) } Te.instance.sendEventsInArray(h, i, u.processEventsCallback) } catch (e) { ve.e("Error during ProcessEvents(): " + e.stack) } } , u.processEventsCallback = function(e, t, i, r) { var o = []; if (o.push(["status", xe.Equal, i]), e === Ce.Ok) we.delete(ge.Events, o), ve.i("Event queue: " + r + " events sent."); else if (e === Ce.NoResponse) { var s = []; s.push(["status", "new"]), ve.w("Event queue: Failed to send events to collector - Retrying next time"), we.update(ge.Events, s, o) } else { if (t) { var a, n = 0; for (var h in t) 0 == n && (a = t[h]), ++n; e === Ce.BadRequest && a.constructor === Array ? ve.w("Event queue: " + r + " events sent. " + n + " events failed GA server validation.") : ve.w("Event queue: Failed to send events.") } else ve.w("Event queue: Failed to send events."); we.delete(ge.Events, o) } } , u.cleanupEvents = function() { we.update(ge.Events, [["status", "new"]]) } , u.fixMissingSessionEndEvents = function() { if (be.isEventSubmissionEnabled()) { var e = []; e.push(["session_id", xe.NotEqual, be.getSessionId()]); var t = we.select(ge.Sessions, e); if (t && 0 != t.length) { ve.i(t.length + " session(s) located with missing session_end event."); for (var i = 0; i < t.length; ++i) { var r = JSON.parse(ze.decode64(t[i].event)) , o = r.client_ts - t[i].timestamp; o = Math.max(0, o), r.category = u.CategorySessionEnd, r.length = o, u.addEventToStore(r) } } } } , u.addEventToStore = function(e) { if (be.isEventSubmissionEnabled()) if (be.isInitialized()) try { if (we.isStoreTooLargeForEvents() && !ze.stringMatch(e.category, /^(user|session_end|business)$/)) return void ve.w("Database too large. Event has been blocked."); var t = be.getEventAnnotations() , i = ze.encode64(JSON.stringify(t)); for (var r in e) t[r] = e[r]; var o = JSON.stringify(t); ve.ii("Event added to queue: " + o); var s = { status: "new" }; s.category = t.category, s.session_id = t.session_id, s.client_ts = t.client_ts, s.event = ze.encode64(JSON.stringify(t)), we.insert(ge.Events, s), e.category == u.CategorySessionEnd ? we.delete(ge.Sessions, [["session_id", xe.Equal, t.session_id]]) : ((s = {}).session_id = t.session_id, s.timestamp = be.getSessionStart(), s.event = i, we.insert(ge.Sessions, s, !0, "session_id")), we.isStorageAvailable() && we.save() } catch (r) { ve.e("addEventToStore: error"), ve.e(r.stack) } else ve.w("Could not add event: SDK is not initialized") } , u.updateSessionStore = function() { if (be.sessionIsStarted()) { var e = {}; e.session_id = be.instance.sessionId, e.timestamp = be.getSessionStart(), e.event = ze.encode64(JSON.stringify(be.getEventAnnotations())), we.insert(ge.Sessions, e, !0, "session_id"), we.isStorageAvailable() && we.save() } } , u.addDimensionsToEvent = function(e) { e && (be.getCurrentCustomDimension01() && (e.custom_01 = be.getCurrentCustomDimension01()), be.getCurrentCustomDimension02() && (e.custom_02 = be.getCurrentCustomDimension02()), be.getCurrentCustomDimension03() && (e.custom_03 = be.getCurrentCustomDimension03())) } , u.addFieldsToEvent = function(e, t) { e && t && 0 < Object.keys(t).length && (e.custom_fields = t) } , u.resourceFlowTypeToString = function(e) { return e == ye.EGAResourceFlowType.Source || e == ye.EGAResourceFlowType[ye.EGAResourceFlowType.Source] ? "Source" : e == ye.EGAResourceFlowType.Sink || e == ye.EGAResourceFlowType[ye.EGAResourceFlowType.Sink] ? "Sink" : "" } , u.progressionStatusToString = function(e) { return e == ye.EGAProgressionStatus.Start || e == ye.EGAProgressionStatus[ye.EGAProgressionStatus.Start] ? "Start" : e == ye.EGAProgressionStatus.Complete || e == ye.EGAProgressionStatus[ye.EGAProgressionStatus.Complete] ? "Complete" : e == ye.EGAProgressionStatus.Fail || e == ye.EGAProgressionStatus[ye.EGAProgressionStatus.Fail] ? "Fail" : "" } , u.errorSeverityToString = function(e) { return e == ye.EGAErrorSeverity.Debug || e == ye.EGAErrorSeverity[ye.EGAErrorSeverity.Debug] ? "debug" : e == ye.EGAErrorSeverity.Info || e == ye.EGAErrorSeverity[ye.EGAErrorSeverity.Info] ? "info" : e == ye.EGAErrorSeverity.Warning || e == ye.EGAErrorSeverity[ye.EGAErrorSeverity.Warning] ? "warning" : e == ye.EGAErrorSeverity.Error || e == ye.EGAErrorSeverity[ye.EGAErrorSeverity.Error] ? "error" : e == ye.EGAErrorSeverity.Critical || e == ye.EGAErrorSeverity[ye.EGAErrorSeverity.Critical] ? "critical" : "" } , u.instance = new u, u.CategorySessionStart = "user", u.CategorySessionEnd = "session_end", u.CategoryDesign = "design", u.CategoryBusiness = "business", u.CategoryProgression = "progression", u.CategoryResource = "resource", u.CategoryError = "error", u.MaxEventCount = 500, u }(), Se.GAEvents = _e, Be = Le || (Le = {}), De = Be.threading || (Be.threading = {}), ke = Be.logging.GALogger, Ee = Be.state.GAState, Me = Be.events.GAEvents, Ie = function() { function o() { this.blocks = new De.PriorityQueue({ compare: function(e, t) { return e - t } }), this.id2TimedBlockMap = {}, o.startThread() } return o.createTimedBlock = function(e) { void 0 === e && (e = 0); var t = new Date; return t.setSeconds(t.getSeconds() + e), new De.TimedBlock(t) } , o.performTaskOnGAThread = function(e, t) { void 0 === t && (t = 0); var i = new Date; i.setSeconds(i.getSeconds() + t); var r = new De.TimedBlock(i); r.block = e, o.instance.id2TimedBlockMap[r.id] = r, o.instance.addTimedBlock(r) } , o.performTimedBlockOnGAThread = function(e) { o.instance.id2TimedBlockMap[e.id] = e, o.instance.addTimedBlock(e) } , o.scheduleTimer = function(e, t) { var i = new Date; i.setSeconds(i.getSeconds() + e); var r = new De.TimedBlock(i); return r.block = t, o.instance.id2TimedBlockMap[r.id] = r, o.instance.addTimedBlock(r), r.id } , o.getTimedBlockById = function(e) { return e in o.instance.id2TimedBlockMap ? o.instance.id2TimedBlockMap[e] : null } , o.ensureEventQueueIsRunning = function() { o.instance.keepRunning = !0, o.instance.isRunning || (o.instance.isRunning = !0, o.scheduleTimer(o.ProcessEventsIntervalInSeconds, o.processEventQueue)) } , o.endSessionAndStopQueue = function() { Ee.isInitialized() && (ke.i("Ending session."), o.stopEventQueue(), Ee.isEnabled() && Ee.sessionIsStarted() && (Me.addSessionEndEvent(), Ee.instance.sessionStart = 0)) } , o.stopEventQueue = function() { o.instance.keepRunning = !1 } , o.ignoreTimer = function(e) { e in o.instance.id2TimedBlockMap && (o.instance.id2TimedBlockMap[e].ignore = !0) } , o.setEventProcessInterval = function(e) { 0 < e && (o.ProcessEventsIntervalInSeconds = e) } , o.prototype.addTimedBlock = function(e) { this.blocks.enqueue(e.deadline.getTime(), e) } , o.run = function() { clearTimeout(o.runTimeoutId); try { for (var e; e = o.getNextBlock(); ) if (!e.ignore) if (e.async) { if (!e.running) { e.running = !0, e.block(); break } } else e.block(); return void (o.runTimeoutId = setTimeout(o.run, o.ThreadWaitTimeInMs)) } catch (e) { ke.e("Error on GA thread"), ke.e(e.stack) } } , o.startThread = function() { o.runTimeoutId = setTimeout(o.run, 0) } , o.getNextBlock = function() { var e = new Date; return o.instance.blocks.hasItems() && o.instance.blocks.peek().deadline.getTime() <= e.getTime() ? o.instance.blocks.peek().async && o.instance.blocks.peek().running ? o.instance.blocks.peek() : o.instance.blocks.dequeue() : null } , o.processEventQueue = function() { Me.processEvents("", !0), o.instance.keepRunning ? o.scheduleTimer(o.ProcessEventsIntervalInSeconds, o.processEventQueue) : o.instance.isRunning = !1 } , o.instance = new o, o.ThreadWaitTimeInMs = 1e3, o.ProcessEventsIntervalInSeconds = 8, o }(), De.GAThreading = Ie, Oe = Le || (Le = {}), Re = Oe.threading.GAThreading, Fe = Oe.logging.GALogger, Ge = Oe.store.GAStore, Ne = Oe.state.GAState, Ue = Oe.http.GAHTTPApi, We = Oe.device.GADevice, Xe = Oe.validators.GAValidator, He = Oe.http.EGAHTTPApiResponse, je = Oe.utilities.GAUtilities, Ye = Oe.events.GAEvents, Ve = function() { function a() {} return a.init = function() { if (We.touch(), a.methodMap.configureAvailableCustomDimensions01 = a.configureAvailableCustomDimensions01, a.methodMap.configureAvailableCustomDimensions02 = a.configureAvailableCustomDimensions02, a.methodMap.configureAvailableCustomDimensions03 = a.configureAvailableCustomDimensions03, a.methodMap.configureAvailableResourceCurrencies = a.configureAvailableResourceCurrencies, a.methodMap.configureAvailableResourceItemTypes = a.configureAvailableResourceItemTypes, a.methodMap.configureBuild = a.configureBuild, a.methodMap.configureSdkGameEngineVersion = a.configureSdkGameEngineVersion, a.methodMap.configureGameEngineVersion = a.configureGameEngineVersion, a.methodMap.configureUserId = a.configureUserId, a.methodMap.initialize = a.initialize, a.methodMap.addBusinessEvent = a.addBusinessEvent, a.methodMap.addResourceEvent = a.addResourceEvent, a.methodMap.addProgressionEvent = a.addProgressionEvent, a.methodMap.addDesignEvent = a.addDesignEvent, a.methodMap.addErrorEvent = a.addErrorEvent, a.methodMap.addErrorEvent = a.addErrorEvent, a.methodMap.setEnabledInfoLog = a.setEnabledInfoLog, a.methodMap.setEnabledVerboseLog = a.setEnabledVerboseLog, a.methodMap.setEnabledManualSessionHandling = a.setEnabledManualSessionHandling, a.methodMap.setEnabledEventSubmission = a.setEnabledEventSubmission, a.methodMap.setCustomDimension01 = a.setCustomDimension01, a.methodMap.setCustomDimension02 = a.setCustomDimension02, a.methodMap.setCustomDimension03 = a.setCustomDimension03, a.methodMap.setFacebookId = a.setFacebookId, a.methodMap.setGender = a.setGender, a.methodMap.setBirthYear = a.setBirthYear, a.methodMap.setEventProcessInterval = a.setEventProcessInterval, a.methodMap.startSession = a.startSession, a.methodMap.endSession = a.endSession, a.methodMap.onStop = a.onStop, a.methodMap.onResume = a.onResume, a.methodMap.addCommandCenterListener = a.addCommandCenterListener, a.methodMap.removeCommandCenterListener = a.removeCommandCenterListener, a.methodMap.getCommandCenterValueAsString = a.getCommandCenterValueAsString, a.methodMap.isCommandCenterReady = a.isCommandCenterReady, a.methodMap.getConfigurationsContentAsString = a.getConfigurationsContentAsString, "undefined" != typeof window && void 0 !== window.GameAnalytics && void 0 !== window.GameAnalytics.q) { var e = window.GameAnalytics.q; for (var t in e) a.gaCommand.apply(null, e[t]) } } , a.gaCommand = function() { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; 0 < e.length && e[0]in Oe.GameAnalytics.methodMap && (1 < e.length ? Oe.GameAnalytics.methodMap[e[0]].apply(null, Array.prototype.slice.call(e, 1)) : Oe.GameAnalytics.methodMap[e[0]]()) } , a.configureAvailableCustomDimensions01 = function(e) { void 0 === e && (e = []), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) ? Fe.w("Available custom dimensions must be set before SDK is initialized") : Ne.setAvailableCustomDimensions01(e) }) } , a.configureAvailableCustomDimensions02 = function(e) { void 0 === e && (e = []), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) ? Fe.w("Available custom dimensions must be set before SDK is initialized") : Ne.setAvailableCustomDimensions02(e) }) } , a.configureAvailableCustomDimensions03 = function(e) { void 0 === e && (e = []), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) ? Fe.w("Available custom dimensions must be set before SDK is initialized") : Ne.setAvailableCustomDimensions03(e) }) } , a.configureAvailableResourceCurrencies = function(e) { void 0 === e && (e = []), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) ? Fe.w("Available resource currencies must be set before SDK is initialized") : Ne.setAvailableResourceCurrencies(e) }) } , a.configureAvailableResourceItemTypes = function(e) { void 0 === e && (e = []), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) ? Fe.w("Available resource item types must be set before SDK is initialized") : Ne.setAvailableResourceItemTypes(e) }) } , a.configureBuild = function(e) { void 0 === e && (e = ""), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) ? Fe.w("Build version must be set before SDK is initialized.") : Xe.validateBuild(e) ? Ne.setBuild(e) : Fe.i("Validation fail - configure build: Cannot be null, empty or above 32 length. String: " + e) }) } , a.configureSdkGameEngineVersion = function(e) { void 0 === e && (e = ""), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) || (Xe.validateSdkWrapperVersion(e) ? We.sdkGameEngineVersion = e : Fe.i("Validation fail - configure sdk version: Sdk version not supported. String: " + e)) }) } , a.configureGameEngineVersion = function(e) { void 0 === e && (e = ""), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) || (Xe.validateEngineVersion(e) ? We.gameEngineVersion = e : Fe.i("Validation fail - configure game engine version: Game engine version not supported. String: " + e)) }) } , a.configureUserId = function(e) { void 0 === e && (e = ""), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !1) ? Fe.w("A custom user id must be set before SDK is initialized.") : Xe.validateUserId(e) ? Ne.setUserId(e) : Fe.i("Validation fail - configure user_id: Cannot be null, empty or above 64 length. Will use default user_id method. Used string: " + e) }) } , a.initialize = function(e, t) { void 0 === e && (e = ""), void 0 === t && (t = ""), We.updateConnectionType(); var i = Re.createTimedBlock(); i.async = !0, a.initTimedBlockId = i.id, i.block = function() { a.isSdkReady(!0, !1) ? Fe.w("SDK already initialized. Can only be called once.") : Xe.validateKeys(e, t) ? (Ne.setKeys(e, t), a.internalInitialize()) : Fe.w("SDK failed initialize. Game key or secret key is invalid. Can only contain characters A-z 0-9, gameKey is 32 length, gameSecret is 40 length. Failed keys - gameKey: " + e + ", secretKey: " + t) } , Re.performTimedBlockOnGAThread(i) } , a.addBusinessEvent = function(e, t, i, r, o) { void 0 === e && (e = ""), void 0 === t && (t = 0), void 0 === i && (i = ""), void 0 === r && (r = ""), void 0 === o && (o = ""), We.updateConnectionType(), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !0, "Could not add business event") && Ye.addBusinessEvent(e, t, i, r, o, {}) }) } , a.addResourceEvent = function(e, t, i, r, o) { void 0 === e && (e = Oe.EGAResourceFlowType.Undefined), void 0 === t && (t = ""), void 0 === i && (i = 0), void 0 === r && (r = ""), void 0 === o && (o = ""), We.updateConnectionType(), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !0, "Could not add resource event") && Ye.addResourceEvent(e, t, i, r, o, {}) }) } , a.addProgressionEvent = function(t, i, r, o, s) { void 0 === t && (t = Oe.EGAProgressionStatus.Undefined), void 0 === i && (i = ""), void 0 === r && (r = ""), void 0 === o && (o = ""), We.updateConnectionType(), Re.performTaskOnGAThread(function() { if (a.isSdkReady(!0, !0, "Could not add progression event")) { var e = "number" == typeof s; Ye.addProgressionEvent(t, i, r, o, e ? s : 0, e, {}) } }) } , a.addDesignEvent = function(t, i) { We.updateConnectionType(), Re.performTaskOnGAThread(function() { if (a.isSdkReady(!0, !0, "Could not add design event")) { var e = "number" == typeof i; Ye.addDesignEvent(t, e ? i : 0, e, {}) } }) } , a.addErrorEvent = function(e, t) { void 0 === e && (e = Oe.EGAErrorSeverity.Undefined), void 0 === t && (t = ""), We.updateConnectionType(), Re.performTaskOnGAThread(function() { a.isSdkReady(!0, !0, "Could not add error event") && Ye.addErrorEvent(e, t, {}) }) } , a.setEnabledInfoLog = function(e) { void 0 === e && (e = !1), Re.performTaskOnGAThread(function() { e ? (Fe.setInfoLog(e), Fe.i("Info logging enabled")) : (Fe.i("Info logging disabled"), Fe.setInfoLog(e)) }) } , a.setEnabledVerboseLog = function(e) { void 0 === e && (e = !1), Re.performTaskOnGAThread(function() { e ? (Fe.setVerboseLog(e), Fe.i("Verbose logging enabled")) : (Fe.i("Verbose logging disabled"), Fe.setVerboseLog(e)) }) } , a.setEnabledManualSessionHandling = function(e) { void 0 === e && (e = !1), Re.performTaskOnGAThread(function() { Ne.setManualSessionHandling(e) }) } , a.setEnabledEventSubmission = function(e) { void 0 === e && (e = !1), Re.performTaskOnGAThread(function() { e ? (Ne.setEnabledEventSubmission(e), Fe.i("Event submission enabled")) : (Fe.i("Event submission disabled"), Ne.setEnabledEventSubmission(e)) }) } , a.setCustomDimension01 = function(e) { void 0 === e && (e = ""), Re.performTaskOnGAThread(function() { Xe.validateDimension01(e, Ne.getAvailableCustomDimensions01()) ? Ne.setCustomDimension01(e) : Fe.w("Could not set custom01 dimension value to '" + e + "'. Value not found in available custom01 dimension values") }) } , a.setCustomDimension02 = function(e) { void 0 === e && (e = ""), Re.performTaskOnGAThread(function() { Xe.validateDimension02(e, Ne.getAvailableCustomDimensions02()) ? Ne.setCustomDimension02(e) : Fe.w("Could not set custom02 dimension value to '" + e + "'. Value not found in available custom02 dimension values") }) } , a.setCustomDimension03 = function(e) { void 0 === e && (e = ""), Re.performTaskOnGAThread(function() { Xe.validateDimension03(e, Ne.getAvailableCustomDimensions03()) ? Ne.setCustomDimension03(e) : Fe.w("Could not set custom03 dimension value to '" + e + "'. Value not found in available custom03 dimension values") }) } , a.setFacebookId = function(e) { void 0 === e && (e = ""), Re.performTaskOnGAThread(function() { Xe.validateFacebookId(e) && Ne.setFacebookId(e) }) } , a.setGender = function(e) { void 0 === e && (e = Oe.EGAGender.Undefined), Re.performTaskOnGAThread(function() { Xe.validateGender(e) && Ne.setGender(e) }) } , a.setBirthYear = function(e) { void 0 === e && (e = 0), Re.performTaskOnGAThread(function() { Xe.validateBirthyear(e) && Ne.setBirthYear(e) }) } , a.setEventProcessInterval = function(e) { Re.performTaskOnGAThread(function() { Re.setEventProcessInterval(e) }) } , a.startSession = function() { if (Ne.isInitialized()) { var e = Re.createTimedBlock(); e.async = !0, a.initTimedBlockId = e.id, e.block = function() { Ne.isEnabled() && Ne.sessionIsStarted() && Re.endSessionAndStopQueue(), a.resumeSessionAndStartQueue() } , Re.performTimedBlockOnGAThread(e) } } , a.endSession = function() { a.onStop() } , a.onStop = function() { Re.performTaskOnGAThread(function() { try { Re.endSessionAndStopQueue() } catch (e) {} }) } , a.onResume = function() { var e = Re.createTimedBlock(); e.async = !0, a.initTimedBlockId = e.id, e.block = function() { a.resumeSessionAndStartQueue() } , Re.performTimedBlockOnGAThread(e) } , a.getCommandCenterValueAsString = function(e, t) { return void 0 === t && (t = null), Ne.getConfigurationStringValue(e, t) } , a.isCommandCenterReady = function() { return Ne.isCommandCenterReady() } , a.addCommandCenterListener = function(e) { Ne.addCommandCenterListener(e) } , a.removeCommandCenterListener = function(e) { Ne.removeCommandCenterListener(e) } , a.getConfigurationsContentAsString = function() { return Ne.getConfigurationsContentAsString() } , a.internalInitialize = function() { Ne.ensurePersistedStates(), Ge.setItem(Ne.DefaultUserIdKey, Ne.getDefaultId()), Ne.setInitialized(!0), a.newSession(), Ne.isEnabled() && Re.ensureEventQueueIsRunning() } , a.newSession = function() { Fe.i("Starting a new session."), Ne.validateAndFixCurrentDimensions(), Ue.instance.requestInit(a.startNewSessionCallback) } , a.startNewSessionCallback = function(e, t) { if (e === He.Ok && t) { var i = 0; if (t.server_ts) { var r = t.server_ts; i = Ne.calculateServerTimeOffset(r) } t.time_offset = i, Ge.setItem(Ne.SdkConfigCachedKey, je.encode64(JSON.stringify(t))), Ne.instance.sdkConfigCached = t, Ne.instance.sdkConfig = t, Ne.instance.initAuthorized = !0 } else e == He.Unauthorized ? (Fe.w("Initialize SDK failed - Unauthorized"), Ne.instance.initAuthorized = !1) : (e === He.NoResponse || e === He.RequestTimeout ? Fe.i("Init call (session start) failed - no response. Could be offline or timeout.") : e === He.BadResponse || e === He.JsonEncodeFailed || e === He.JsonDecodeFailed ? Fe.i("Init call (session start) failed - bad response. Could be bad response from proxy or GA servers.") : e !== He.BadRequest && e !== He.UnknownResponseCode || Fe.i("Init call (session start) failed - bad request or unknown response."), null == Ne.instance.sdkConfig ? null != Ne.instance.sdkConfigCached ? (Fe.i("Init call (session start) failed - using cached init values."), Ne.instance.sdkConfig = Ne.instance.sdkConfigCached) : (Fe.i("Init call (session start) failed - using default init values."), Ne.instance.sdkConfig = Ne.instance.sdkConfigDefault) : Fe.i("Init call (session start) failed - using cached init values."), Ne.instance.initAuthorized = !0); if (Ne.instance.clientServerTimeOffset = Ne.getSdkConfig().time_offset ? Ne.getSdkConfig().time_offset : 0, Ne.populateConfigurations(Ne.getSdkConfig()), !Ne.isEnabled()) return Fe.w("Could not start session: SDK is disabled."), void Re.stopEventQueue(); Re.ensureEventQueueIsRunning(); var o = je.createGuid(); Ne.instance.sessionId = o, Ne.instance.sessionStart = Ne.getClientTsAdjusted(), Ye.addSessionStartEvent(); var s = Re.getTimedBlockById(a.initTimedBlockId); null != s && (s.running = !1), a.initTimedBlockId = -1 } , a.resumeSessionAndStartQueue = function() { Ne.isInitialized() && (Fe.i("Resuming session."), Ne.sessionIsStarted() || a.newSession()) } , a.isSdkReady = function(e, t, i) { return void 0 === t && (t = !0), void 0 === i && (i = ""), i && (i += ": "), e && !Ne.isInitialized() ? (t && Fe.w(i + "SDK is not initialized"), !1) : e && !Ne.isEnabled() ? (t && Fe.w(i + "SDK is disabled"), !1) : !(e && !Ne.sessionIsStarted()) || (t && Fe.w(i + "Session has not started yet"), !1) } , a.initTimedBlockId = -1, a.methodMap = {}, a }(), Oe.GameAnalytics = Ve, Le.GameAnalytics.init(); Le.GameAnalytics.gaCommand; var Ke = Le , qe = function() { function e() {} return e.prototype.setup = function(e, t, i) { z.analyticsEnabled && (Ke.GameAnalytics.initialize(e, t), Ke.GameAnalytics.configureBuild(i), Ke.GameAnalytics.startSession(), window.addEventListener("beforeunload", function() { Ke.GameAnalytics.endSession() })) } , e.prototype.addProgressionEvent = function(e, t, i, r, o) { z.analyticsEnabled && Ke.GameAnalytics.addProgressionEvent(e, t, i, r, o) } , e.prototype.addDesignEvent = function(e, t) { z.analyticsEnabled && Ke.GameAnalytics.addDesignEvent(e, t) } , e }(); function Ze(s, a, n, h) { return new (n || (n = Promise))(function(e, t) { function i(e) { try { o(h.next(e)) } catch (e) { t(e) } } function r(e) { try { o(h.throw(e)) } catch (e) { t(e) } } function o(t) { t.done ? e(t.value) : new n(function(e) { e(t.value) } ).then(i, r) } o((h = h.apply(s, a || [])).next()) } ) } function Je(i, r) { var o, s, a, e, n = { label: 0, sent: function() { if (1 & a[0]) throw a[1]; return a[1] }, trys: [], ops: [] }; return e = { next: t(0), throw: t(1), return: t(2) }, "function" == typeof Symbol && (e[Symbol.iterator] = function() { return this } ), e; function t(t) { return function(e) { return function(t) { if (o) throw new TypeError("Generator is already executing."); for (; n; ) try { if (o = 1, s && (a = 2 & t[0] ? s.return : t[0] ? s.throw || ((a = s.return) && a.call(s), 0) : s.next) && !(a = a.call(s, t[1])).done) return a; switch (s = 0, a && (t = [2 & t[0], a.value]), t[0]) { case 0: case 1: a = t; break; case 4: return n.label++, { value: t[1], done: !1 }; case 5: n.label++, s = t[1], t = [0]; continue; case 7: t = n.ops.pop(), n.trys.pop(); continue; default: if (!(a = 0 < (a = n.trys).length && a[a.length - 1]) && (6 === t[0] || 2 === t[0])) { n = 0; continue } if (3 === t[0] && (!a || t[1] > a[0] && t[1] < a[3])) { n.label = t[1]; break } if (6 === t[0] && n.label < a[1]) { n.label = a[1], a = t; break } if (a && n.label < a[2]) { n.label = a[2], n.ops.push(t); break } a[2] && n.ops.pop(), n.trys.pop(); continue } t = r.call(i, n) } catch (e) { t = [6, e], s = 0 } finally { o = a = 0 } if (5 & t[0]) throw t[1]; return { value: t[0] ? t[1] : void 0, done: !0 } }([t, e]) } } } var Qe = e(function(e, t) { e.exports = function s(a, n, h) { function c(i, e) { if (!n[i]) { if (!a[i]) { var t = m; if (!e && t) return t(i, !0); if (l) return l(i, !0); var r = new Error("Cannot find module '" + i + "'"); throw r.code = "MODULE_NOT_FOUND", r } var o = n[i] = { exports: {} }; a[i][0].call(o.exports, function(e) { var t = a[i][1][e]; return c(t || e) }, o, o.exports, s, a, n, h) } return n[i].exports } for (var l = m, e = 0; e < h.length; e++) c(h[e]); return c }({ 1: [function(e, r, x) { (function() { var y, t = this || Function("return this")(), S = function() { var m, i, u, d, p, f, e = Date.now ? Date.now : function() { return +new Date } , y = "undefined" != typeof SHIFTY_DEBUG_NOW ? SHIFTY_DEBUG_NOW : e; function o() {} function s(e, t) { var i; for (i in e) Object.hasOwnProperty.call(e, i) && t(i) } function a(t, i) { return s(i, function(e) { t[e] = i[e] }), t } function n(t, i) { s(i, function(e) { void 0 === t[e] && (t[e] = i[e]) }) } function S(e, t, i, r, o, s, a) { var n, h, c, l = e < s ? 0 : (e - s) / o; for (n in t) t.hasOwnProperty(n) && (h = a[n], c = "function" == typeof h ? h : m[h], t[n] = w(i[n], r[n], c, l)); return t } function w(e, t, i, r) { return e + (t - e) * i(r) } function g(t, i) { var r = l.prototype.filter , o = t._filterArgs; s(r, function(e) { void 0 !== r[e][i] && r[e][i].apply(t, o) }) } function h(e, t, i, r, o, s, a, n, h, c, l) { u = t + i + r, d = Math.min(l || y(), u), p = u <= d, f = r - (u - d), e.isPlaying() && (p ? (h(a, e._attachment, f), e.stop(!0)) : (e._scheduleId = c(e._timeoutHandler, 1e3 / 60), g(e, "beforeTween"), d < t + i ? S(1, o, s, a, 1, 1, n) : S(d, o, s, a, r, t + i, n), g(e, "afterTween"), h(o, e._attachment, f))) } function c(e, t) { var i = {} , r = typeof t; return s(e, "string" === r || "function" === r ? function(e) { i[e] = t } : function(e) { i[e] || (i[e] = t[e] || "linear") } ), i } function l(e, t) { this._currentState = e || {}, this._configured = !1, this._scheduleFunction = i, void 0 !== t && this.setConfig(t) } return i = "undefined" != typeof window && (window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || window.mozCancelRequestAnimationFrame && window.mozRequestAnimationFrame) || setTimeout, l.prototype.tween = function(e) { return this._isTweening ? this : (void 0 === e && this._configured || this.setConfig(e), this._timestamp = y(), this._start(this.get(), this._attachment), this.resume()) } , l.prototype.setConfig = function(e) { e = e || {}, this._configured = !0, this._attachment = e.attachment, this._pausedAtTime = null, this._scheduleId = null, this._delay = e.delay || 0, this._start = e.start || o, this._step = e.step || o, this._finish = e.finish || o, this._duration = e.duration || 500, this._currentState = a({}, e.from || this.get()), this._originalState = this.get(), this._targetState = a({}, e.to || this.get()); var t = this; this._timeoutHandler = function() { h(t, t._timestamp, t._delay, t._duration, t._currentState, t._originalState, t._targetState, t._easing, t._step, t._scheduleFunction) } ; var i = this._currentState , r = this._targetState; return n(r, i), this._easing = c(i, e.easing || "linear"), this._filterArgs = [i, this._originalState, r, this._easing], g(this, "tweenCreated"), this } , l.prototype.get = function() { return a({}, this._currentState) } , l.prototype.set = function(e) { this._currentState = e } , l.prototype.pause = function() { return this._pausedAtTime = y(), this._isPaused = !0, this } , l.prototype.resume = function() { return this._isPaused && (this._timestamp += y() - this._pausedAtTime), this._isPaused = !1, this._isTweening = !0, this._timeoutHandler(), this } , l.prototype.seek = function(e) { e = Math.max(e, 0); var t = y(); return this._timestamp + e === 0 || (this._timestamp = t - e, this.isPlaying() || (this._isTweening = !0, this._isPaused = !1, h(this, this._timestamp, this._delay, this._duration, this._currentState, this._originalState, this._targetState, this._easing, this._step, this._scheduleFunction, t), this.pause())), this } , l.prototype.stop = function(e) { return this._isTweening = !1, this._isPaused = !1, this._timeoutHandler = o, (t.cancelAnimationFrame || t.webkitCancelAnimationFrame || t.oCancelAnimationFrame || t.msCancelAnimationFrame || t.mozCancelRequestAnimationFrame || t.clearTimeout)(this._scheduleId), e && (g(this, "beforeTween"), S(1, this._currentState, this._originalState, this._targetState, 1, 0, this._easing), g(this, "afterTween"), g(this, "afterTweenEnd"), this._finish.call(this, this._currentState, this._attachment)), this } , l.prototype.isPlaying = function() { return this._isTweening && !this._isPaused } , l.prototype.setScheduleFunction = function(e) { this._scheduleFunction = e } , l.prototype.dispose = function() { var e; for (e in this) this.hasOwnProperty(e) && delete this[e] } , l.prototype.filter = {}, m = l.prototype.formula = { linear: function(e) { return e } }, a(l, { now: y, each: s, tweenProps: S, tweenProp: w, applyFilter: g, shallowCopy: a, defaults: n, composeEasingObject: c }), "function" == typeof SHIFTY_DEBUG_NOW && (t.timeoutHandler = h), "object" == typeof x ? r.exports = l : void 0 === t.Tweenable && (t.Tweenable = l), l }(); S.shallowCopy(S.prototype.formula, { easeInQuad: function(e) { return Math.pow(e, 2) }, easeOutQuad: function(e) { return -(Math.pow(e - 1, 2) - 1) }, easeInOutQuad: function(e) { return (e /= .5) < 1 ? .5 * Math.pow(e, 2) : -.5 * ((e -= 2) * e - 2) }, easeInCubic: function(e) { return Math.pow(e, 3) }, easeOutCubic: function(e) { return Math.pow(e - 1, 3) + 1 }, easeInOutCubic: function(e) { return (e /= .5) < 1 ? .5 * Math.pow(e, 3) : .5 * (Math.pow(e - 2, 3) + 2) }, easeInQuart: function(e) { return Math.pow(e, 4) }, easeOutQuart: function(e) { return -(Math.pow(e - 1, 4) - 1) }, easeInOutQuart: function(e) { return (e /= .5) < 1 ? .5 * Math.pow(e, 4) : -.5 * ((e -= 2) * Math.pow(e, 3) - 2) }, easeInQuint: function(e) { return Math.pow(e, 5) }, easeOutQuint: function(e) { return Math.pow(e - 1, 5) + 1 }, easeInOutQuint: function(e) { return (e /= .5) < 1 ? .5 * Math.pow(e, 5) : .5 * (Math.pow(e - 2, 5) + 2) }, easeInSine: function(e) { return 1 - Math.cos(e * (Math.PI / 2)) }, easeOutSine: function(e) { return Math.sin(e * (Math.PI / 2)) }, easeInOutSine: function(e) { return -.5 * (Math.cos(Math.PI * e) - 1) }, easeInExpo: function(e) { return 0 === e ? 0 : Math.pow(2, 10 * (e - 1)) }, easeOutExpo: function(e) { return 1 === e ? 1 : 1 - Math.pow(2, -10 * e) }, easeInOutExpo: function(e) { return 0 === e ? 0 : 1 === e ? 1 : (e /= .5) < 1 ? .5 * Math.pow(2, 10 * (e - 1)) : .5 * (2 - Math.pow(2, -10 * --e)) }, easeInCirc: function(e) { return -(Math.sqrt(1 - e * e) - 1) }, easeOutCirc: function(e) { return Math.sqrt(1 - Math.pow(e - 1, 2)) }, easeInOutCirc: function(e) { return (e /= .5) < 1 ? -.5 * (Math.sqrt(1 - e * e) - 1) : .5 * (Math.sqrt(1 - (e -= 2) * e) + 1) }, easeOutBounce: function(e) { return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375 }, easeInBack: function(e) { return e * e * (2.70158 * e - 1.70158) }, easeOutBack: function(e) { return (e -= 1) * e * (2.70158 * e + 1.70158) + 1 }, easeInOutBack: function(e) { var t = 1.70158; return (e /= .5) < 1 ? e * e * ((1 + (t *= 1.525)) * e - t) * .5 : .5 * ((e -= 2) * e * ((1 + (t *= 1.525)) * e + t) + 2) }, elastic: function(e) { return -1 * Math.pow(4, -8 * e) * Math.sin((6 * e - 1) * (2 * Math.PI) / 2) + 1 }, swingFromTo: function(e) { var t = 1.70158; return (e /= .5) < 1 ? e * e * ((1 + (t *= 1.525)) * e - t) * .5 : .5 * ((e -= 2) * e * ((1 + (t *= 1.525)) * e + t) + 2) }, swingFrom: function(e) { return e * e * (2.70158 * e - 1.70158) }, swingTo: function(e) { return (e -= 1) * e * (2.70158 * e + 1.70158) + 1 }, bounce: function(e) { return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 7.5625 * (e -= 1.5 / 2.75) * e + .75 : e < 2.5 / 2.75 ? 7.5625 * (e -= 2.25 / 2.75) * e + .9375 : 7.5625 * (e -= 2.625 / 2.75) * e + .984375 }, bouncePast: function(e) { return e < 1 / 2.75 ? 7.5625 * e * e : e < 2 / 2.75 ? 2 - (7.5625 * (e -= 1.5 / 2.75) * e + .75) : e < 2.5 / 2.75 ? 2 - (7.5625 * (e -= 2.25 / 2.75) * e + .9375) : 2 - (7.5625 * (e -= 2.625 / 2.75) * e + .984375) }, easeFromTo: function(e) { return (e /= .5) < 1 ? .5 * Math.pow(e, 4) : -.5 * ((e -= 2) * Math.pow(e, 3) - 2) }, easeFrom: function(e) { return Math.pow(e, 4) }, easeTo: function(e) { return Math.pow(e, .25) } }), function() { function l(e, t, i, r, o, s) { var a, c = 0, l = 0, m = 0, n = 0, h = 0, u = 0; function d(e) { return ((c * e + l) * e + m) * e } function p(e) { return 0 <= e ? e : 0 - e } function f(e, t) { var i, r, o, s, a, n, h; for (o = e, n = 0; n < 8; n++) { if (p(s = d(o) - e) < t) return o; if (p(a = (3 * c * (h = o) + 2 * l) * h + m) < 1e-6) break; o -= s / a } if (r = 1, (o = e) < (i = 0)) return i; if (r < o) return r; for (; i < r; ) { if (p((s = d(o)) - e) < t) return o; s < e ? i = o : r = o, o = .5 * (r - i) + i } return o } return c = 1 - (m = 3 * t) - (l = 3 * (r - t) - m), n = 1 - (u = 3 * i) - (h = 3 * (o - i) - u), a = f(e, 1 / (200 * s)), ((n * a + h) * a + u) * a } S.setBezierFunction = function(e, t, i, r, o) { var s, a, n, h, c = (s = t, a = i, n = r, h = o, function(e) { return l(e, s, a, n, h, 1) } ); return c.displayName = e, c.x1 = t, c.y1 = i, c.x2 = r, c.y2 = o, S.prototype.formula[e] = c } , S.unsetBezierFunction = function(e) { delete S.prototype.formula[e] } }(), (y = new S)._filterArgs = [], S.interpolate = function(e, t, i, r, o) { var s = S.shallowCopy({}, e) , a = o || 0 , n = S.composeEasingObject(e, r || "linear"); y.set({}); var h = y._filterArgs; h.length = 0, h[0] = s, h[1] = e, h[2] = t, h[3] = n, S.applyFilter(y, "tweenCreated"), S.applyFilter(y, "beforeTween"); var c, l, m, u, d, p, f = (c = e, l = s, m = t, u = i, d = n, p = a, S.tweenProps(u, l, c, m, 1, p, d)); return S.applyFilter(y, "afterTween"), f } , function(n) { var h = /(\d|\-|\.)/ , c = /([^\-0-9\.]+)/g , s = /[0-9.\-]+/g , a = new RegExp("rgb\\(" + s.source + /,\s*/.source + s.source + /,\s*/.source + s.source + "\\)","g") , l = /^.*\(/ , r = /#([0-9]|[a-f]){3,6}/gi , m = "VAL"; function o(i) { n.each(i, function(e) { var t = i[e]; "string" == typeof t && t.match(r) && (i[e] = f(r, t, u)) }) } function u(e) { var t, i = (3 === (t = (t = e).replace(/#/, "")).length && (t = (t = t.split(""))[0] + t[0] + t[1] + t[1] + t[2] + t[2]), d[0] = p(t.substr(0, 2)), d[1] = p(t.substr(2, 2)), d[2] = p(t.substr(4, 2)), d); return "rgb(" + i[0] + "," + i[1] + "," + i[2] + ")" } var d = []; function p(e) { return parseInt(e, 16) } function f(e, t, i) { var r = t.match(e) , o = t.replace(e, m); if (r) for (var s, a = r.length, n = 0; n < a; n++) s = r.shift(), o = o.replace(m, i(s)); return o } function y(e) { for (var t = e.match(s), i = t.length, r = e.match(l)[0], o = 0; o < i; o++) r += parseInt(t[o], 10) + ","; return r = r.slice(0, -1) + ")" } function S(s) { var a = {}; return n.each(s, function(e) { var t, i, r = s[e]; if ("string" == typeof r) { var o = b(r); a[e] = { formatString: (t = r, i = t.match(c), i ? (1 === i.length || t.charAt(0).match(h)) && i.unshift("") : i = ["", ""], i.join(m)), chunkNames: function(e, t) { var i, r = [], o = e.length; for (i = 0; i < o; i++) r.push("_" + t + "_" + i); return r }(o, e) } } }), a } function w(s, a) { n.each(a, function(e) { for (var t = s[e], i = b(t), r = i.length, o = 0; o < r; o++) s[a[e].chunkNames[o]] = +i[o]; delete s[e] }) } function g(o, s) { n.each(s, function(e) { var t = o[e] , i = function(e, t) { for (var i, r = {}, o = t.length, s = 0; s < o; s++) i = t[s], r[i] = e[i], delete e[i]; return r }(o, s[e].chunkNames) , r = function(e, t) { x.length = 0; for (var i = t.length, r = 0; r < i; r++) x.push(e[t[r]]); return x }(i, s[e].chunkNames); t = function(e, t) { for (var i = e, r = t.length, o = 0; o < r; o++) i = i.replace(m, +t[o].toFixed(4)); return i }(s[e].formatString, r), o[e] = f(a, t, y) }) } var x = []; function b(e) { return e.match(s) } n.prototype.filter.token = { tweenCreated: function(e, t, i, r) { o(e), o(t), o(i), this._tokenData = S(e) }, beforeTween: function(e, t, i, r) { var h, c; h = r, c = this._tokenData, n.each(c, function(e) { var t, i = c[e], r = i.chunkNames, o = r.length, s = h[e]; if ("string" == typeof s) { var a = s.split(" ") , n = a[a.length - 1]; for (t = 0; t < o; t++) h[r[t]] = a[t] || n } else for (t = 0; t < o; t++) h[r[t]] = s; delete h[e] }), w(e, this._tokenData), w(t, this._tokenData), w(i, this._tokenData) }, afterTween: function(e, t, i, r) { var h, c; g(e, this._tokenData), g(t, this._tokenData), g(i, this._tokenData), h = r, c = this._tokenData, n.each(c, function(e) { var t = c[e] , i = t.chunkNames , r = i.length , o = h[i[0]] , s = typeof o; if ("string" === s) { for (var a = "", n = 0; n < r; n++) a += " " + h[i[n]], delete h[i[n]]; h[e] = a.substr(1) } else h[e] = o }) } } }(S) } ).call(null) } , {}], 2: [function(e, t, i) { var r = e("./shape") , o = e("./utils") , s = function(e, t) { this._pathTemplate = "M 50,50 m 0,-{radius} a {radius},{radius} 0 1 1 0,{2radius} a {radius},{radius} 0 1 1 0,-{2radius}", this.containerAspectRatio = 1, r.apply(this, arguments) }; ((s.prototype = new r).constructor = s).prototype._pathString = function(e) { var t = e.strokeWidth; e.trailWidth && e.trailWidth > e.strokeWidth && (t = e.trailWidth); var i = 50 - t / 2; return o.render(this._pathTemplate, { radius: i, "2radius": 2 * i }) } , s.prototype._trailString = function(e) { return this._pathString(e) } , t.exports = s } , { "./shape": 7, "./utils": 9 }], 3: [function(e, t, i) { var r = e("./shape") , o = e("./utils") , s = function(e, t) { this._pathTemplate = "M 0,{center} L 100,{center}", r.apply(this, arguments) }; ((s.prototype = new r).constructor = s).prototype._initializeSvg = function(e, t) { e.setAttribute("viewBox", "0 0 100 " + t.strokeWidth), e.setAttribute("preserveAspectRatio", "none") } , s.prototype._pathString = function(e) { return o.render(this._pathTemplate, { center: e.strokeWidth / 2 }) } , s.prototype._trailString = function(e) { return this._pathString(e) } , t.exports = s } , { "./shape": 7, "./utils": 9 }], 4: [function(e, t, i) { t.exports = { Line: e("./line"), Circle: e("./circle"), SemiCircle: e("./semicircle"), Square: e("./square"), Path: e("./path"), Shape: e("./shape"), utils: e("./utils") } } , { "./circle": 2, "./line": 3, "./path": 5, "./semicircle": 6, "./shape": 7, "./square": 8, "./utils": 9 }], 5: [function(e, t, i) { var l = e("shifty") , m = e("./utils") , r = { easeIn: "easeInCubic", easeOut: "easeOutCubic", easeInOut: "easeInOutCubic" } , o = function e(t, i) { if (!(this instanceof e)) throw new Error("Constructor was called without new keyword"); var r; i = m.extend({ duration: 800, easing: "linear", from: {}, to: {}, step: function() {} }, i), r = m.isString(t) ? document.querySelector(t) : t, this.path = r, this._opts = i, this._tweenable = null; var o = this.path.getTotalLength(); this.path.style.strokeDasharray = o + " " + o, this.set(0) }; o.prototype.value = function() { var e = this._getComputedDashOffset() , t = this.path.getTotalLength() , i = 1 - e / t; return parseFloat(i.toFixed(6), 10) } , o.prototype.set = function(e) { this.stop(), this.path.style.strokeDashoffset = this._progressToOffset(e); var t = this._opts.step; if (m.isFunction(t)) { var i = this._easing(this._opts.easing) , r = this._calculateTo(e, i) , o = this._opts.shape || this; t(r, o, this._opts.attachment) } } , o.prototype.stop = function() { this._stopTween(), this.path.style.strokeDashoffset = this._getComputedDashOffset() } , o.prototype.animate = function(e, i, t) { i = i || {}, m.isFunction(i) && (t = i, i = {}); var r = m.extend({}, i) , o = m.extend({}, this._opts); i = m.extend(o, i); var s = this._easing(i.easing) , a = this._resolveFromAndTo(e, s, r); this.stop(), this.path.getBoundingClientRect(); var n = this._getComputedDashOffset() , h = this._progressToOffset(e) , c = this; this._tweenable = new l, this._tweenable.tween({ from: m.extend({ offset: n }, a.from), to: m.extend({ offset: h }, a.to), duration: i.duration, easing: s, step: function(e) { c.path.style.strokeDashoffset = e.offset; var t = i.shape || c; i.step(e, t, i.attachment) }, finish: function(e) { m.isFunction(t) && t() } }) } , o.prototype._getComputedDashOffset = function() { var e = window.getComputedStyle(this.path, null); return parseFloat(e.getPropertyValue("stroke-dashoffset"), 10) } , o.prototype._progressToOffset = function(e) { var t = this.path.getTotalLength(); return t - e * t } , o.prototype._resolveFromAndTo = function(e, t, i) { return i.from && i.to ? { from: i.from, to: i.to } : { from: this._calculateFrom(t), to: this._calculateTo(e, t) } } , o.prototype._calculateFrom = function(e) { return l.interpolate(this._opts.from, this._opts.to, this.value(), e) } , o.prototype._calculateTo = function(e, t) { return l.interpolate(this._opts.from, this._opts.to, e, t) } , o.prototype._stopTween = function() { null !== this._tweenable && (this._tweenable.stop(), this._tweenable = null) } , o.prototype._easing = function(e) { return r.hasOwnProperty(e) ? r[e] : e } , t.exports = o } , { "./utils": 9, shifty: 1 }], 6: [function(e, t, i) { var r = e("./shape") , o = e("./circle") , s = e("./utils") , a = function(e, t) { this._pathTemplate = "M 50,50 m -{radius},0 a {radius},{radius} 0 1 1 {2radius},0", this.containerAspectRatio = 2, r.apply(this, arguments) }; ((a.prototype = new r).constructor = a).prototype._initializeSvg = function(e, t) { e.setAttribute("viewBox", "0 0 100 50") } , a.prototype._initializeTextContainer = function(e, t, i) { e.text.style && (i.style.top = "auto", i.style.bottom = "0", e.text.alignToBottom ? s.setStyle(i, "transform", "translate(-50%, 0)") : s.setStyle(i, "transform", "translate(-50%, 50%)")) } , a.prototype._pathString = o.prototype._pathString, a.prototype._trailString = o.prototype._trailString, t.exports = a } , { "./circle": 2, "./shape": 7, "./utils": 9 }], 7: [function(e, t, i) { var a = e("./path") , n = e("./utils") , r = "Object is destroyed" , o = function e(t, i) { if (!(this instanceof e)) throw new Error("Constructor was called without new keyword"); if (0 !== arguments.length) { this._opts = n.extend({ color: "#555", strokeWidth: 1, trailColor: null, trailWidth: null, fill: null, text: { style: { color: null, position: "absolute", left: "50%", top: "50%", padding: 0, margin: 0, transform: { prefix: !0, value: "translate(-50%, -50%)" } }, autoStyleContainer: !0, alignToBottom: !0, value: null, className: "progressbar-text" }, svgStyle: { display: "block", width: "100%" }, warnings: !1 }, i, !0), n.isObject(i) && void 0 !== i.svgStyle && (this._opts.svgStyle = i.svgStyle), n.isObject(i) && n.isObject(i.text) && void 0 !== i.text.style && (this._opts.text.style = i.text.style); var r, o = this._createSvgView(this._opts); if (!(r = n.isString(t) ? document.querySelector(t) : t)) throw new Error("Container does not exist: " + t); this._container = r, this._container.appendChild(o.svg), this._opts.warnings && this._warnContainerAspectRatio(this._container), this._opts.svgStyle && n.setStyles(o.svg, this._opts.svgStyle), this.svg = o.svg, this.path = o.path, this.trail = o.trail, this.text = null; var s = n.extend({ attachment: void 0, shape: this }, this._opts); this._progressPath = new a(o.path,s), n.isObject(this._opts.text) && null !== this._opts.text.value && this.setText(this._opts.text.value) } }; o.prototype.animate = function(e, t, i) { if (null === this._progressPath) throw new Error(r); this._progressPath.animate(e, t, i) } , o.prototype.stop = function() { if (null === this._progressPath) throw new Error(r); void 0 !== this._progressPath && this._progressPath.stop() } , o.prototype.destroy = function() { if (null === this._progressPath) throw new Error(r); this.stop(), this.svg.parentNode.removeChild(this.svg), this.svg = null, this.path = null, this.trail = null, (this._progressPath = null) !== this.text && (this.text.parentNode.removeChild(this.text), this.text = null) } , o.prototype.set = function(e) { if (null === this._progressPath) throw new Error(r); this._progressPath.set(e) } , o.prototype.value = function() { if (null === this._progressPath) throw new Error(r); return void 0 === this._progressPath ? 0 : this._progressPath.value() } , o.prototype.setText = function(e) { if (null === this._progressPath) throw new Error(r); null === this.text && (this.text = this._createTextContainer(this._opts, this._container), this._container.appendChild(this.text)), n.isObject(e) ? (n.removeChildren(this.text), this.text.appendChild(e)) : this.text.innerHTML = e } , o.prototype._createSvgView = function(e) { var t = document.createElementNS("http://www.w3.org/2000/svg", "svg"); this._initializeSvg(t, e); var i = null; (e.trailColor || e.trailWidth) && (i = this._createTrail(e), t.appendChild(i)); var r = this._createPath(e); return t.appendChild(r), { svg: t, path: r, trail: i } } , o.prototype._initializeSvg = function(e, t) { e.setAttribute("viewBox", "0 0 100 100") } , o.prototype._createPath = function(e) { var t = this._pathString(e); return this._createPathElement(t, e) } , o.prototype._createTrail = function(e) { var t = this._trailString(e) , i = n.extend({}, e); return i.trailColor || (i.trailColor = "#eee"), i.trailWidth || (i.trailWidth = i.strokeWidth), i.color = i.trailColor, i.strokeWidth = i.trailWidth, i.fill = null, this._createPathElement(t, i) } , o.prototype._createPathElement = function(e, t) { var i = document.createElementNS("http://www.w3.org/2000/svg", "path"); return i.setAttribute("d", e), i.setAttribute("stroke", t.color), i.setAttribute("stroke-width", t.strokeWidth), t.fill ? i.setAttribute("fill", t.fill) : i.setAttribute("fill-opacity", "0"), i } , o.prototype._createTextContainer = function(e, t) { var i = document.createElement("div"); i.className = e.text.className; var r = e.text.style; return r && (e.text.autoStyleContainer && (t.style.position = "relative"), n.setStyles(i, r), r.color || (i.style.color = e.color)), this._initializeTextContainer(e, t, i), i } , o.prototype._initializeTextContainer = function(e, t, i) {} , o.prototype._pathString = function(e) { throw new Error("Override this function for each progress bar") } , o.prototype._trailString = function(e) { throw new Error("Override this function for each progress bar") } , o.prototype._warnContainerAspectRatio = function(e) { if (this.containerAspectRatio) { var t = window.getComputedStyle(e, null) , i = parseFloat(t.getPropertyValue("width"), 10) , r = parseFloat(t.getPropertyValue("height"), 10); n.floatEquals(this.containerAspectRatio, i / r) } } , t.exports = o } , { "./path": 5, "./utils": 9 }], 8: [function(e, t, i) { var r = e("./shape") , o = e("./utils") , s = function(e, t) { this._pathTemplate = "M 0,{halfOfStrokeWidth} L {width},{halfOfStrokeWidth} L {width},{width} L {halfOfStrokeWidth},{width} L {halfOfStrokeWidth},{strokeWidth}", this._trailTemplate = "M {startMargin},{halfOfStrokeWidth} L {width},{halfOfStrokeWidth} L {width},{width} L {halfOfStrokeWidth},{width} L {halfOfStrokeWidth},{halfOfStrokeWidth}", r.apply(this, arguments) }; ((s.prototype = new r).constructor = s).prototype._pathString = function(e) { var t = 100 - e.strokeWidth / 2; return o.render(this._pathTemplate, { width: t, strokeWidth: e.strokeWidth, halfOfStrokeWidth: e.strokeWidth / 2 }) } , s.prototype._trailString = function(e) { var t = 100 - e.strokeWidth / 2; return o.render(this._trailTemplate, { width: t, strokeWidth: e.strokeWidth, halfOfStrokeWidth: e.strokeWidth / 2, startMargin: e.strokeWidth / 2 - e.trailWidth / 2 }) } , t.exports = s } , { "./shape": 7, "./utils": 9 }], 9: [function(e, t, i) { var a = "Webkit Moz O ms".split(" "); function r(e, t, i) { for (var r = e.style, o = 0; o < a.length; ++o) { var s = a[o]; r[s + n(t)] = i } r[t] = i } function n(e) { return e.charAt(0).toUpperCase() + e.slice(1) } function h(e) { if (t = e, "[object Array]" === Object.prototype.toString.call(t)) return !1; var t, i = typeof e; return "object" === i && !!e } function o(e, t) { for (var i in e) if (e.hasOwnProperty(i)) { var r = e[i]; t(r, i) } } t.exports = { extend: function e(t, i, r) { for (var o in t = t || {}, r = r || !1, i = i || {}) if (i.hasOwnProperty(o)) { var s = t[o] , a = i[o]; r && h(s) && h(a) ? t[o] = e(s, a, r) : t[o] = a } return t }, render: function(e, t) { var i = e; for (var r in t) if (t.hasOwnProperty(r)) { var o = t[r] , s = "\\{" + r + "\\}" , a = new RegExp(s,"g"); i = i.replace(a, o) } return i }, setStyle: r, setStyles: function(i, e) { o(e, function(e, t) { null != e && (h(e) && !0 === e.prefix ? r(i, t, e.value) : i.style[t] = e) }) }, capitalize: n, isString: function(e) { return "string" == typeof e || e instanceof String }, isFunction: function(e) { return "function" == typeof e }, isObject: h, forEachObject: o, floatEquals: function(e, t) { return Math.abs(e - t) < .001 }, removeChildren: function(e) { for (; e.firstChild; ) e.removeChild(e.firstChild) } } } , {}] }, {}, [4])(4) }); var $e = function() { function t(e) { this.circleLoader = null, this.loaded = !1, this.showPlayButton = "undefined" == typeof playBtn || playBtn, this.progress = 0, this.options = { gameId: "12346", gameTitle: "Place Holder", gameName: "place-holder", libs: [], version: "dev", barColor: "white" }, this.options.gameId = e.gameId, this.options.gameTitle = e.gameTitle, this.options.version = e.version, this.options.barColor = e.barColor ? e.barColor : this.options.barColor, this.options.libs = e.libs } return t.getInstance = function(e) { if (!t.instance) { if (!e) throw new Error("Can not create new SplashLoader instance without options!"); t.instance = new t(e) } return t.instance } , t.prototype.create = function() { return Ze(this, void 0, void 0, function() { var r, o, s, a, n, h; return Je(this, function(e) { switch (e.label) { case 0: return r = "\n #h5branding-center {\n position: absolute;\n top: 45%;\n left: 50%;\n transform: translate(-50%, -20%);\n text-align: center;\n width: 100%;\n }\n #h5branding-wrapper {\n position: relative;\n z-index: 665;\n width: 150px;\n height: 150px;\n display:inline-block;\n margin: 35px 40px 96px 40px;\n }\n\n #h5branding-wrapper > #h5branding-bar, #h5branding-wrapper > img {\n box-shadow: inset 10px 10px 20px 5px rgba(0, 0, 0, 0.5);\n border-radius: 50%;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n #h5branding-ad {\n position: relative;\n z-index: 667;\n border-radius: 5px;\n border: 3px solid white;\n background: rgba(256, 256, 256, 0.2);\n width: 336px;\n height: 280px;\n display: none;\n margin: 0px 10px 0px 10px;\n }\n\n #h5branding-wrapper > img {\n /* Needs appropriate vendor prefixes */\n box-sizing: border-box;\n\n /* This needs to be equal to strokeWidth */\n padding: 4%;\n }\n\n #h5branding-wrapper > img {\n border-radius: 50%;\n box-shadow: inset 0 5px 5px rgba(0, 0, 0, 0.5), 5px 5px 7px rgba(0, 0, 0, 0.3);\n }\n\n #h5branding-container {\n box-sizing: border-box;\n position: absolute;\n z-index: 664;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: #000;\n overflow: hidden;\n }\n \n #h5branding-background {\n position: absolute;\n top: -25%;\n left: -25%;\n width: 150%;\n height: 150%;\n background-blend-mode: multiply;\n background-size: cover;\n filter: blur(40px) brightness(1.5);\n }\n \n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n /* IE10+ CSS styles go here */\n #h5branding-background {\n background-image: none !important;\n }\n }\n\n #h5branding-logo {\n position: absolute;\n margin: 0 auto;\n left: 0;\n right: 0;\n text-align: center;\n top: 10%;\n }\n\n #h5branding-logo > img {\n height: 150px;\n }\n\n #h5branding-title {\n position: absolute;\n width: 100%;\n background: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.5) 50%, transparent);\n color: #fff;\n text-shadow: 0 0 1px rgba(0, 0, 0, 0.7);\n bottom:10%;\n padding: 15px 0;\n text-align: center;\n font-size: 18px;\n font-family: Helvetica, Arial, sans-serif;\n font-weight: bold;\n line-height: 100%;\n }\n \n #h5branding-button {\n /* border: 0; */\n padding: 10px 22px;\n border-radius: 5px;\n border: 3px solid white;\n background: linear-gradient(0deg, #dddddd, #ffffff);\n color: #222;\n text-transform: uppercase;\n text-shadow: 0 0 1px #fff;\n font-family: Helvetica, Arial, sans-serif;\n font-weight: bold;\n font-size: 18px;\n cursor: pointer;\n box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\n display: none;\n width: 150px;\n position: absolute;\n top: 170px;\n margin: 0 auto;\n left: 0;\n right: 0;\n }\n \n @media (orientation: portrait) and (max-width: 1080px) {\n #h5branding-logo > img {\n height: initial;\n width:100%;\n }\n }\n \n @media (orientation: landscape) and (max-height: 640px) {\n #h5branding-title {\n display: none;\n }\n \n #h5branding-logo > img {\n height: 100px;\n }\n }\n \n @media (orientation: landscape) and (max-height: 460px) {\n #h5branding-title {\n display: none;\n }\n \n #h5branding-wrapper {\n width: 110px;\n height: 110px;\n margin: 0;\n }\n \n #h5branding-logo {\n top: 0;\n transform: scale(0.7, 0.7);\n }\n \n #h5branding-button {\n top: initial;\n width: 110px;\n font-size: 14px;\n position: absolute;\n top: 140px;\n left: 0;\n right: 0;\n }\n \n #h5branding-ad {\n display: none !important;\n }\n }\n \n @media (orientation: portrait) and (max-width: 250px) {\n #h5branding-logo {\n top: 2%;\n }\n }\n \n @media (orientation: landscape) and (max-width: 330px) {\n #h5branding-button {\n top: 120px;\n }\n \n #h5branding-logo > img {\n height: 70px;\n }\n }\n \n @media (max-width: 600px) and (max-height: 850px) {\n #h5branding-ad {\n display: none !important;\n }\n }\n \n @media (max-width: 600px) and (max-height: 1100px) {\n #h5branding-center {\n top: 40%;\n }\n\n #h5branding-title {\n bottom: 5%\n }\n }\n \n @media (max-width: 600px) and (max-height: 900px) {\n #h5branding-title {\n display: none\n }\n }\n \n @media (orientation: landscape) and (min-width: 800px) {\n #h5branding-wrapper {\n margin-left: 120px;\n margin-right: 120px;\n }\n }\n\n ", t = this.getGameLogoUrl(this.options.gameId), i = this.options.gameTitle, o = '\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
' + i + "
\n ", s = document.head || document.getElementsByTagName("head")[0], (a = document.createElement("style")).type = "text/css", a.styleSheet ? a.styleSheet.cssText = r : a.appendChild(document.createTextNode(r)), s.appendChild(a), (n = document.createElement("div")).innerHTML = o, n.id = "h5branding-container", (h = document.body || document.getElementsByTagName("body")[0]).insertBefore(n, h.firstChild), this.circleLoader = new Qe.Circle("#h5branding-bar",{ strokeWidth: 3, color: this.options.barColor }), [4, Promise.all([this.loadBranding(), this.loadLibs(), T.preload()])]; case 1: return e.sent(), this.loaded = !0, [2] } var t, i }) }) } , t.prototype.loadBranding = function() { return Ze(this, void 0, void 0, function() { var t, i, r; return Je(this, function(e) { switch (e.label) { case 0: return [4, z.preload(Date.now().toString())]; case 1: return e.sent(), (t = document.getElementById("h5branding-background")) && (t.style.backgroundImage = "url(" + this.getGameLogoUrl(this.options.gameId) + ")", t.style.backgroundColor = z.brandingBackgroundColor), (i = document.getElementById("h5branding-logo")) && C.getBrandingDomain() !== h.BrandingDomain.Neutral && ((r = document.createElement("img")).src = z.brandingLogoUrl.replace("_small", "").replace("https://cdn.fbrq.io/@azerion/splash/assets/images/", "kizi/"), i.appendChild(r)), [2] } }) }) } , t.prototype.loadLibs = function() { var i = this , r = this.options.libs.map(function(e, t) { return a.instance.loadScript(e, !0, function() { i.setScriptloadProgress(r.length, t + 1) }) }); return Promise.all(r) } , Object.defineProperty(t.prototype, "bannerAllowed", { get: function() { var e = document.body.clientWidth , t = document.body.clientHeight; return this.progress < 100 && !(t < e && t <= 460) && !(e < 600 && t < 850) }, enumerable: !0, configurable: !0 }), t.prototype.showBanner = function() { if (!this.bannerAllowed) return null; var e = document.getElementById("h5branding-ad"); return e ? (e.style.display = "inline-flex", e) : null } , t.prototype.setScriptloadProgress = function(e, t) { var i = .3 * t / e; this.circleLoader.animate(i, null, function() {}) } , t.prototype.setLoadProgress = function(e) { var t = this; if (this.loaded) if (e = 30 + .7 * e, 100 === (this.progress = e)) { var i = document.querySelector("#h5branding-button"); this.circleLoader.animate(1, null, function() { !C.inGDGameZone() && i && !0 === t.showPlayButton ? i.style.display = "block" : (C.inGDGameZone() || !1 === t.showPlayButton) && t.onPlayButtonClick() }) } else this.circleLoader.animate(e / 100, null, function() {}) } , t.prototype.setButtonCallback = function(e) { this.buttonCallback = e } , t.prototype.onPlayButtonClick = function() { this.buttonCallback && this.buttonCallback() } , t.prototype.destroy = function() { var e = document.querySelector("#h5branding-container"); null !== e && null !== e.parentNode && e.parentNode.removeChild(e) } , t.prototype.getGameLogoUrl = function(e) { var t = e + "-512x512.jpeg"; return window.hasOwnProperty("fbrqSA") && !0 === window.fbrqSA ? "assets/" + t : "" + t } , t }() , et = Ke.EGAProgressionStatus , tt = new T , it = new qe; h.EGAProgressionStatus = et, h.google = tt, h.gameanalytics = it, h.Utils = C, h.Domain = s, h.Branding = z, h.SplashLoader = $e, Object.defineProperty(h, "__esModule", { value: !0 }) }), function(e, t) { "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t(e.h5ads = e.h5ads || {}) }(this, function(r) { "use strict"; var o = function(e, t) { return (o = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var i in t) t.hasOwnProperty(i) && (e[i] = t[i]) } )(e, t) }; function i(e, t) { function i() { this.constructor = e } o(e, t), e.prototype = null === t ? Object.create(t) : (i.prototype = t.prototype, new i) } var e, s, t, a, n, h = (function(e) { var r = Object.prototype.hasOwnProperty , d = "~"; function i() {} function n(e, t, i) { this.fn = e, this.context = t, this.once = i || !1 } function o(e, t, i, r, o) { if ("function" != typeof i) throw new TypeError("The listener must be a function"); var s = new n(i,r || e,o) , a = d ? d + t : t; return e._events[a] ? e._events[a].fn ? e._events[a] = [e._events[a], s] : e._events[a].push(s) : (e._events[a] = s, e._eventsCount++), e } function c(e, t) { 0 == --e._eventsCount ? e._events = new i : delete e._events[t] } function t() { this._events = new i, this._eventsCount = 0 } Object.create && (i.prototype = Object.create(null), (new i).__proto__ || (d = !1)), t.prototype.eventNames = function() { var e, t, i = []; if (0 === this._eventsCount) return i; for (t in e = this._events) r.call(e, t) && i.push(d ? t.slice(1) : t); return Object.getOwnPropertySymbols ? i.concat(Object.getOwnPropertySymbols(e)) : i } , t.prototype.listeners = function(e) { var t = d ? d + e : e , i = this._events[t]; if (!i) return []; if (i.fn) return [i.fn]; for (var r = 0, o = i.length, s = new Array(o); r < o; r++) s[r] = i[r].fn; return s } , t.prototype.listenerCount = function(e) { var t = d ? d + e : e , i = this._events[t]; return i ? i.fn ? 1 : i.length : 0 } , t.prototype.emit = function(e, t, i, r, o, s) { var a = d ? d + e : e; if (!this._events[a]) return !1; var n, h, c = this._events[a], l = arguments.length; if (c.fn) { switch (c.once && this.removeListener(e, c.fn, void 0, !0), l) { case 1: return c.fn.call(c.context), !0; case 2: return c.fn.call(c.context, t), !0; case 3: return c.fn.call(c.context, t, i), !0; case 4: return c.fn.call(c.context, t, i, r), !0; case 5: return c.fn.call(c.context, t, i, r, o), !0; case 6: return c.fn.call(c.context, t, i, r, o, s), !0 } for (h = 1, n = new Array(l - 1); h < l; h++) n[h - 1] = arguments[h]; c.fn.apply(c.context, n) } else { var m, u = c.length; for (h = 0; h < u; h++) switch (c[h].once && this.removeListener(e, c[h].fn, void 0, !0), l) { case 1: c[h].fn.call(c[h].context); break; case 2: c[h].fn.call(c[h].context, t); break; case 3: c[h].fn.call(c[h].context, t, i); break; case 4: c[h].fn.call(c[h].context, t, i, r); break; default: if (!n) for (m = 1, n = new Array(l - 1); m < l; m++) n[m - 1] = arguments[m]; c[h].fn.apply(c[h].context, n) } } return !0 } , t.prototype.on = function(e, t, i) { return o(this, e, t, i, !1) } , t.prototype.once = function(e, t, i) { return o(this, e, t, i, !0) } , t.prototype.removeListener = function(e, t, i, r) { var o = d ? d + e : e; if (!this._events[o]) return this; if (!t) return c(this, o), this; var s = this._events[o]; if (s.fn) s.fn !== t || r && !s.once || i && s.context !== i || c(this, o); else { for (var a = 0, n = [], h = s.length; a < h; a++) (s[a].fn !== t || r && !s[a].once || i && s[a].context !== i) && n.push(s[a]); n.length ? this._events[o] = 1 === n.length ? n[0] : n : c(this, o) } return this } , t.prototype.removeAllListeners = function(e) { var t; return e ? (t = d ? d + e : e, this._events[t] && c(this, t)) : (this._events = new i, this._eventsCount = 0), this } , t.prototype.off = t.prototype.removeListener, t.prototype.addListener = t.prototype.on, t.prefixed = d, t.EventEmitter = t, e.exports = t }(e = { exports: {} }, e.exports), e.exports), c = function() { function e(e, t, i) { void 0 === i && (i = !1), this.adsEnabled = !1, void 0 === cordova.plugins || void 0 !== cordova.plugins && void 0 === cordova.plugins.gdApi || (i && cordova.plugins.gdApi.enableTestAds(), this.setAdListeners(), cordova.plugins.gdApi.init([e, t], function(e) {}, function(e) {})) } return e.prototype.setAdListeners = function() { var t = this; cordova.plugins.gdApi.setAdListener(function(e) { switch (e.event) { case "BANNER_STARTED": t.adManager.emit(y.CONTENT_PAUSED); break; case "API_IS_READY": t.adsEnabled = !0; break; case "API_ALREADY_INITIALIZED": break; case "BANNER_CLOSED": case "API_NOT_READY": case "BANNER_FAILED": t.adManager.emit(y.CONTENT_RESUMED) } }, function(e) { t.adsEnabled = !1 }) } , e.prototype.setManager = function(e) { this.adManager = e } , e.prototype.showAd = function(e) { var t = this; this.adsEnabled ? cordova.plugins.gdApi.showBanner(function(e) {}, function(e) { t.adManager.emit(y.CONTENT_RESUMED) }) : this.adManager.emit(y.CONTENT_RESUMED) } , e.prototype.adAvailable = function(e) { return !0 } , e.prototype.preloadAd = function(e) {} , e.prototype.destroyAd = function(e) {} , e.prototype.hideAd = function(e) {} , e }(), l = function() { function e(e) { var t = this; this.adsEnabled = !1, this.adsEnabled = !0, HeyzapAds.start(e).then(function() {}, function(e) { t.adsEnabled = !1 }) } return e.prototype.setManager = function(e) { this.adManager = e } , e.prototype.showAd = function(e, t) { var i = this; switch (this.adsEnabled || this.adManager.emit(y.CONTENT_RESUMED), e) { case w.interstitial: HeyzapAds.InterstitialAd.addEventListener(HeyzapAds.InterstitialAd.Events.HIDE, function() { i.adManager.emit(y.CONTENT_RESUMED, HeyzapAds.InterstitialAd.Events.HIDE) }), HeyzapAds.InterstitialAd.addEventListener(HeyzapAds.InterstitialAd.Events.SHOW_FAILED, function() { i.adManager.emit(y.CONTENT_RESUMED, HeyzapAds.InterstitialAd.Events.SHOW_FAILED) }), HeyzapAds.InterstitialAd.addEventListener(HeyzapAds.InterstitialAd.Events.CLICKED, function() { i.adManager.emit(y.AD_CLICKED, HeyzapAds.InterstitialAd.Events.CLICKED) }), HeyzapAds.InterstitialAd.show().then(function() { i.adManager.emit(y.CONTENT_PAUSED) }, function(e) { i.adManager.emit(y.CONTENT_RESUMED) }); break; case w.interstitial: HeyzapAds.VideoAd.addEventListener(HeyzapAds.VideoAd.Events.HIDE, function() { i.adManager.emit(y.CONTENT_RESUMED, HeyzapAds.VideoAd.Events.HIDE) }), HeyzapAds.VideoAd.addEventListener(HeyzapAds.VideoAd.Events.SHOW_FAILED, function() { i.adManager.emit(y.CONTENT_RESUMED, HeyzapAds.VideoAd.Events.SHOW_FAILED) }), HeyzapAds.VideoAd.addEventListener(HeyzapAds.VideoAd.Events.CLICKED, function() { i.adManager.emit(y.AD_CLICKED, HeyzapAds.VideoAd.Events.CLICKED) }), HeyzapAds.VideoAd.show().then(function() { i.adManager.emit(y.CONTENT_PAUSED) }, function(e) { i.adManager.emit(y.CONTENT_RESUMED) }); break; case w.rewarded: HeyzapAds.IncentivizedAd.addEventListener(HeyzapAds.IncentivizedAd.Events.HIDE, function() { i.adManager.emit(y.CONTENT_RESUMED, HeyzapAds.IncentivizedAd.Events.HIDE) }), HeyzapAds.IncentivizedAd.addEventListener(HeyzapAds.IncentivizedAd.Events.SHOW_FAILED, function() { i.adManager.emit(y.CONTENT_RESUMED, HeyzapAds.IncentivizedAd.Events.SHOW_FAILED) }), HeyzapAds.IncentivizedAd.addEventListener(HeyzapAds.IncentivizedAd.Events.CLICKED, function() { i.adManager.emit(y.AD_CLICKED, HeyzapAds.IncentivizedAd.Events.CLICKED) }), HeyzapAds.IncentivizedAd.show().then(function() { i.adManager.emit(y.CONTENT_PAUSED) }, function(e) { i.adManager.emit(y.CONTENT_RESUMED) }); break; case w.banner: if (void 0 === t) return; HeyzapAds.BannerAd.show(t).then(function() {}, function(e) {}) } } , e.prototype.adAvailable = function(e) { return !0 } , e.prototype.preloadAd = function(e) { this.adsEnabled && e === w.rewarded && HeyzapAds.IncentivizedAd.fetch().then(function() {}, function(e) {}) } , e.prototype.destroyAd = function(e) { this.adsEnabled && e === w.banner && HeyzapAds.BannerAd.destroy().then(function() {}, function(e) {}) } , e.prototype.hideAd = function(e) { this.adsEnabled && e === w.banner && HeyzapAds.BannerAd.hide().then(function() {}, function(e) {}) } , e }(), m = function() { function e(e) { var t = this; if (this.adsEnabled = !1, this.interstitialLoaded = !1, this.rewardedLoaded = !1, "undefined" != typeof IronSourceAds) { IronSourceAds.init({ appKey: e }); var i = function() { return t.resumeGameplay() }; window.addEventListener("interstitialClosed", i), window.addEventListener("interstitialShowFailed", i), window.addEventListener("interstitialLoaded", function() { return t.interstitialChanged(!0) }), window.addEventListener("rewardedVideoClosed", i), window.addEventListener("rewardedVideoFailed", i), IronSourceAds.hasRewardedVideo({ onSuccess: this.rewardedChanged.bind(this) }), window.addEventListener("rewardedVideoAvailabilityChanged", function(e) { return t.rewardedChanged(e.available) }) } } return e.prototype.setManager = function(e) { this.adManager = e } , e.prototype.showAd = function(e) { switch (void 0 === e && (e = w.interstitial), e) { case w.interstitial: if (!this.interstitialLoaded) { this.resumeGameplay(); break } this.interstitialChanged(!1), this.adManager.emit(y.CONTENT_PAUSED), IronSourceAds.showInterstitial(); break; case w.rewarded: if (!this.rewardedLoaded) { this.resumeGameplay(); break } this.adManager.emit(y.CONTENT_PAUSED), IronSourceAds.showRewardedVideo(); break; default: this.resumeGameplay() } } , e.prototype.resumeGameplay = function() { this.adManager.emit(y.CONTENT_RESUMED) } , e.prototype.preloadAd = function(e) { void 0 === e && (e = w.interstitial), e === w.interstitial && IronSourceAds.loadInterstitial() } , e.prototype.destroyAd = function() {} , e.prototype.hideAd = function() {} , e.prototype.adAvailable = function(e) { switch (e) { case w.interstitial: return this.interstitialLoaded; case w.rewarded: return this.rewardedLoaded } return !1 } , e.prototype.interstitialChanged = function(e) { this.interstitialLoaded = e } , e.prototype.rewardedChanged = function(e) { this.rewardedLoaded = e } , e }(); (t = s || (s = {})).interstitial = "interstitial", t.rewarded = "rewarded", t.display = "display", (a = r.GameDistributionBannerSize || (r.GameDistributionBannerSize = {}))[a.LargeRectangle = 0] = "LargeRectangle", a[a.MediumRectangle = 1] = "MediumRectangle", a[a.Billboard = 2] = "Billboard", a[a.Leaderboard = 3] = "Leaderboard", a[a.Skyscraper = 4] = "Skyscraper", a[a.WideSkyscraper = 5] = "WideSkyscraper", (n = r.GameDistributionAlignment || (r.GameDistributionAlignment = {}))[n.TopLeft = 0] = "TopLeft", n[n.TopCenter = 1] = "TopCenter", n[n.TopRight = 2] = "TopRight", n[n.CenterLeft = 3] = "CenterLeft", n[n.Center = 4] = "Center", n[n.CenterRight = 5] = "CenterRight", n[n.BottomLeft = 6] = "BottomLeft", n[n.BottomCenter = 7] = "BottomCenter", n[n.BottomRight = 8] = "BottomRight"; var u, d, p = function() { function e() { this.offsetX = 0, this.offsetY = 0, this.element = document.createElement("div"), this.element.style.position = "absolute", this.element.style.top = "0px", this.element.style.left = "0px", this.element.id = "banner-" + Date.now() + (1e7 * Math.random() | 0), document.body.appendChild(this.element) } return e.prototype.loadBanner = function() { return "undefined" == typeof gdsdk ? Promise.reject("GD Sdk not available, probably due to adblocker") : gdsdk.showAd(s.display, { containerId: this.element.id }) } , e.prototype.destroy = function() { document.body.removeChild(this.element), this.resizeListener && window.removeEventListener("resize", this.resizeListener), delete this.element, delete this.parent, delete this.alignment } , e.prototype.alignIn = function(e, t) { var i = this; this.parent || (this.parent = e, this.alignment = t, this.resizeListener = function() { return i.resize() } , window.addEventListener("resize", this.resizeListener), this.resize()) } , e.prototype.setOffset = function(e, t) { void 0 === e && (e = 0), void 0 === t && (t = 0), this.offsetX = e, this.offsetY = t, this.resize() } , e.prototype.resize = function() { if (this.parent) { var e = this.parent.getBoundingClientRect(); switch (this.alignment) { case r.GameDistributionAlignment.TopLeft: this.position(e.left, e.top); break; case r.GameDistributionAlignment.TopCenter: this.position(e.left + e.width / 2 - this.width / 2, e.top); break; case r.GameDistributionAlignment.TopRight: this.position(e.left + e.width - this.width, e.top); break; case r.GameDistributionAlignment.CenterLeft: this.position(e.left, e.top + e.height / 2 - this.height / 2); break; case r.GameDistributionAlignment.Center: this.position(e.left + e.width / 2 - this.width / 2, e.top + e.height / 2 - this.height / 2); break; case r.GameDistributionAlignment.CenterRight: this.position(e.left + e.width - this.width, e.top + e.height / 2 - this.height / 2); break; case r.GameDistributionAlignment.BottomLeft: this.position(e.left, e.top + e.height - this.height); break; case r.GameDistributionAlignment.BottomCenter: this.position(e.left + e.width / 2 - this.width / 2, e.top + e.height - this.height); break; case r.GameDistributionAlignment.BottomRight: this.position(e.left + e.width - this.width, e.top + e.height - this.height) } } } , e.prototype.setSize = function(e) { var t, i; switch (e) { default: case r.GameDistributionBannerSize.LargeRectangle: t = 336, i = 280; break; case r.GameDistributionBannerSize.MediumRectangle: t = 300, i = 250; break; case r.GameDistributionBannerSize.Billboard: t = 970, i = 250; break; case r.GameDistributionBannerSize.Leaderboard: t = 728, i = 90; break; case r.GameDistributionBannerSize.Skyscraper: t = 120, i = 600; break; case r.GameDistributionBannerSize.WideSkyscraper: t = 160, i = 600 } this.width = t, this.height = i, this.element.style.width = t + "px", this.element.style.height = i + "px" } , e.prototype.position = function(e, t) { this.element.style.left = e + this.offsetX + "px", this.element.style.top = t + this.offsetY + "px" } , e }(), f = function() { function e(e) { var t, i, r, o, s = this; this.adsEnabled = !1, this.hasRewarded = !1, this.adShowing = !1, this.areAdsEnabled(), window.GD_OPTIONS = { gameId: e, advertisementSettings: { autoplay: !1 }, onEvent: function(e) { switch (e.name) { case "SDK_GAME_PAUSE": s.adManager.emit(y.CONTENT_PAUSED); break; case "SDK_READY": s.sdkLoaded() } } }, t = document, i = "gamedistribution-jssdk", o = t.getElementsByTagName("script")[0], t.getElementById(i) || ((r = t.createElement("script")).id = i, r.src = "js/main.min.js", o.parentNode && o.parentNode.insertBefore(r, o)) } return e.prototype.setManager = function(e) { this.adManager = e } , e.prototype.sdkLoaded = function() { var t = this; this.areAdsEnabled().then(function(e) { e && (t.adsEnabled = !0, t.adManager.emit(y.AD_PROVIDER_LOADED)) }) } , e.prototype.showAd = function(e) { var t = this; if (this.adsEnabled) { if ("undefined" == typeof gdsdk || gdsdk && void 0 === gdsdk.showAd) return this.adsEnabled = !1, void this.adManager.emit(y.CONTENT_RESUMED); gdsdk.showAd(e === w.rewarded ? s.rewarded : s.interstitial).then(function() { e === w.rewarded && (t.adManager.emit(y.AD_REWARDED), t.hasRewarded = !1), t.adManager.emit(y.CONTENT_RESUMED) }).catch(function() { e === w.rewarded && t.hasRewarded && (t.hasRewarded = !1), t.adManager.emit(y.CONTENT_RESUMED) }) } else this.adManager.emit(y.CONTENT_RESUMED) } , e.prototype.createBanner = function(e) { if (this.adsEnabled) { var t = new p; return t.setSize(e), t } } , e.prototype.loadBanner = function(e) { if (this.adsEnabled) { var t = new p; return t.setSize(e), t.loadBanner(), t } } , e.prototype.preloadAd = function(e) { var t = this; !this.hasRewarded && this.adsEnabled && e === w.rewarded && gdsdk.preloadAd(s.rewarded).then(function() { t.hasRewarded = !0, t.adManager.emit(y.AD_LOADED, e) }) } , e.prototype.adAvailable = function(e) { return e !== w.rewarded || this.hasRewarded } , e.prototype.destroyAd = function() {} , e.prototype.hideAd = function() {} , e.prototype.areAdsEnabled = function() { var i = document.createElement("div"); i.innerHTML = " ", i.className = "adsbox", i.style.position = "absolute", i.style.fontSize = "10px", document.body.appendChild(i); return new Promise(function(t) { window.setTimeout(function() { var e; t((e = !0, 0 === i.offsetHeight && (e = !1), i.parentNode && i.parentNode.removeChild(i), e)) }, 100) } ) } , e }(); (d = u || (u = {}))[d.start = 0] = "start", d[d.firstQuartile = 1] = "firstQuartile", d[d.midPoint = 2] = "midPoint", d[d.thirdQuartile = 3] = "thirdQuartile", d[d.complete = 4] = "complete"; var y, S, w, g, x = function() { function e(e, t) { this.googleEnabled = !1, this.adsEnabled = !0, this.adTagUrl = "", this.adRequested = !1, this.areAdsEnabled(), "undefined" != typeof google && (this.googleEnabled = !0, this.gameContent = "string" == typeof e.parentElement ? document.getElementById(e.parentElement) : e.parentElement, this.gameContent.style.position = "absolute", this.gameContent.style.width = "100%", this.adContent = this.gameContent.parentNode.appendChild(document.createElement("div")), this.adContent.id = "phaser-ad-container", this.adContent.style.position = "absolute", this.adContent.style.zIndex = "9999", this.adContent.style.display = "none", this.adContent.style.top = "0", this.adContent.style.left = "0", this.adContent.style.width = "100%", this.adContent.style.height = "100%", this.adContent.style.overflow = "hidden", this.adTagUrl = t, this.adDisplay = new google.ima.AdDisplayContainer(this.adContent), google.ima.settings.setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED), google.ima.settings.setLocale("nl"), this.adLoader = new google.ima.AdsLoader(this.adDisplay), this.adLoader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, this.onAdManagerLoader, !1, this), this.adLoader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, this.onAdError, !1, this)) } return e.prototype.setManager = function(e) { this.adManager = e } , e.prototype.showAd = function(e, t) { if (!this.adRequested) if (this.adsEnabled || this.adManager.emit(y.AD_DISABLED, !0), this.googleEnabled) { this.adDisplay.initialize(); var i = new google.ima.AdsRequest; i.adTagUrl = this.adTagUrl + this.parseCustomParams(t); var r = window.innerWidth , o = window.innerHeight; document.body.clientHeight < window.innerHeight && (o = document.body.clientHeight, r = document.body.clientWidth), i.linearAdSlotWidth = r, i.linearAdSlotHeight = o, i.nonLinearAdSlotWidth = r, i.nonLinearAdSlotHeight = o, i.forceNonLinearFullSlot = !0; try { this.adRequested = !0, this.adLoader.requestAds(i) } catch (e) { this.onContentResumeRequested() } } else this.onContentResumeRequested() } , e.prototype.adAvailable = function(e) { return !0 } , e.prototype.preloadAd = function() {} , e.prototype.destroyAd = function() {} , e.prototype.hideAd = function() {} , e.prototype.onAdManagerLoader = function(e) { var t = this , i = new google.ima.AdsRenderingSettings; i.restoreCustomPlaybackStateOnAdBreakComplete = !0; var r = e.getAdsManager(this.gameContent, i); (this.adsManager = r).addEventListener(google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, this.onContentPauseRequested, !1, this), r.addEventListener(google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, this.onContentResumeRequested, !1, this), r.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, this.onAdError, !1, this), [google.ima.AdEvent.Type.ALL_ADS_COMPLETED, google.ima.AdEvent.Type.CLICK, google.ima.AdEvent.Type.COMPLETE, google.ima.AdEvent.Type.FIRST_QUARTILE, google.ima.AdEvent.Type.LOADED, google.ima.AdEvent.Type.MIDPOINT, google.ima.AdEvent.Type.PAUSED, google.ima.AdEvent.Type.STARTED, google.ima.AdEvent.Type.THIRD_QUARTILE].forEach(function(e) { r.addEventListener(e, t.onAdEvent, !1, t) }); try { this.adContent.style.display = "block"; var o = window.innerWidth , s = window.innerHeight; this.adsManager.init(o, s, google.ima.ViewMode.NORMAL), this.adsManager.start(), this.resizeListener = function() { null !== t.adsManager && t.adsManager.resize(window.innerWidth, window.innerHeight, google.ima.ViewMode.NORMAL) } , window.addEventListener("resize", this.resizeListener) } catch (e) { this.onAdError(e) } } , e.prototype.onAdEvent = function(e) { switch (e.type) { case google.ima.AdEvent.Type.CLICK: this.adManager.emit(y.AD_CLICKED); break; case google.ima.AdEvent.Type.LOADED: this.adRequested = !1; var t = e.getAd(); t.isLinear() || this.onContentResumeRequested(); break; case google.ima.AdEvent.Type.STARTED: this.adManager.emit(y.AD_PROGRESSION, u.start); break; case google.ima.AdEvent.Type.FIRST_QUARTILE: this.adManager.emit(y.AD_PROGRESSION, u.firstQuartile); break; case google.ima.AdEvent.Type.MIDPOINT: this.adManager.emit(y.AD_PROGRESSION, u.midPoint); break; case google.ima.AdEvent.Type.THIRD_QUARTILE: this.adManager.emit(y.AD_PROGRESSION, u.thirdQuartile); break; case google.ima.AdEvent.Type.COMPLETE: this.adManager.emit(y.AD_PROGRESSION, u.complete); break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: this.onContentResumeRequested() } } , e.prototype.onAdError = function(e) { null !== this.adsManager && (this.adsManager.destroy(), null !== this.resizeListener && window.removeEventListener("resize", this.resizeListener)), this.adRequested && (this.adRequested = !1), this.onContentResumeRequested() } , e.prototype.onContentPauseRequested = function() { this.adManager.emit(y.CONTENT_PAUSED) } , e.prototype.onContentResumeRequested = function() { "undefined" != typeof google && (this.adContent.style.display = "none"), this.adManager.emit(y.CONTENT_RESUMED) } , e.prototype.parseCustomParams = function(e) { if (void 0 === e) return ""; var t = ""; for (var i in e) { if (e.hasOwnProperty(i)) 0 < t.length && (t += "&"), t += i + "=" + (Array.isArray(e[i]) ? e[i].join(",") : e[i]) } return "&cust_params=" + encodeURIComponent(t) } , e.prototype.areAdsEnabled = function() { var t = this , i = document.createElement("div"); i.innerHTML = " ", i.className = "adsbox", i.style.position = "absolute", i.style.fontSize = "10px", document.body.appendChild(i); window.setTimeout(function() { var e; t.adsEnabled = (e = !0, 0 === i.offsetHeight && (e = !1), i.parentNode && i.parentNode.removeChild(i), e) }, 100) } , e }(); (S = y || (y = {})).CONTENT_PAUSED = "onContentPaused", S.CONTENT_RESUMED = "onContentResumed", S.AD_PROGRESSION = "onAdProgression", S.AD_DISABLED = "onAdsDisabled", S.AD_CLICKED = "onAdClicked", S.AD_REWARDED = "onAdRewardGranted", S.BANNER_SHOWN = "onBannerShown", S.BANNER_HIDDEN = "onBannerHidden", S.AD_LOADED = "onAdLoaded", S.AD_PROVIDER_LOADED = "onAdProviderLoaded", (g = w || (w = {}))[g.interstitial = 0] = "interstitial", g[g.rewarded = 1] = "rewarded", g[g.banner = 2] = "banner"; var b, v; new (function(t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e.bannerActive = !1, e.provider = null, e } return i(e, t), e.prototype.setAdProvider = function(e) { this.provider = e, this.provider.setManager(this) } , e.prototype.showAd = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not request an ad without an provider, please attach an ad provider!"); t.unshift(e), this.provider.showAd.apply(this.provider, t) } , e.prototype.createBanner = function() { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; return this.provider.loadBanner.apply(this.provider, e) } , e.prototype.loadBanner = function() { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; return this.provider.loadBanner.apply(this.provider, e) } , e.prototype.preloadAd = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not preload an ad without an provider, please attach an ad provider!"); t.unshift(e), this.provider.preloadAd.apply(this.provider, t) } , e.prototype.destroyAd = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not destroy an ad without an provider, please attach an ad provider!"); t.unshift(e), this.provider.destroyAd.apply(this.provider, t) } , e.prototype.hideAd = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not hide an ad without an provider, please attach an ad provider!"); t.unshift(e), this.provider.hideAd.apply(this.provider, t) } , e.prototype.adsEnabled = function() { if (null === this.provider) throw new Error("Can not hide an ad without an provider, please attach an ad provider!"); return this.provider.adsEnabled } , e.prototype.adAvailable = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not hide an ad without an provider, please attach an ad provider!"); return t.unshift(e), this.provider.adAvailable.apply(this.provider, t) } , e }(h)); (v = b || (b = {}))[v.AdMob = 0] = "AdMob", v[v.MoPub = 1] = "MoPub", v[v.Chartboost = 2] = "Chartboost", v[v.Heyzap = 3] = "Heyzap"; var z, C, T = function() { function e(e, t) { if (this.adsEnabled = !1, this.bannerShowable = !1, this.interstitialShowable = !1, this.insentiveShowable = !1, Cocoon && Cocoon.Ad) { switch (this.adsEnabled = !0, e) { default: case b.AdMob: this.cocoonProvider = Cocoon.Ad.AdMob; break; case b.Chartboost: this.cocoonProvider = Cocoon.Ad.Chartboost; break; case b.Heyzap: this.cocoonProvider = Cocoon.Ad.Heyzap; break; case b.MoPub: this.cocoonProvider = Cocoon.Ad.MoPub } this.cocoonProvider.configure(t) } } return e.prototype.setManager = function(e) { this.adManager = e } , e.prototype.showAd = function(e) { if (this.adsEnabled) { if (e === w.banner) { if (!this.bannerShowable || null === this.banner) return; this.adManager.emit(y.BANNER_SHOWN, this.banner.width, this.banner.height), this.adManager.bannerActive = !0, this.banner.show() } if (e === w.interstitial) { if (!this.interstitialShowable || null === this.interstitial) return void this.adManager.emit(y.CONTENT_RESUMED, w.interstitial); this.interstitial.show() } if (e === w.rewarded) { if (!this.insentiveShowable || null === this.insentive) return void this.adManager.emit(y.CONTENT_RESUMED, w.rewarded); this.insentive.show() } } else e !== w.banner && this.adManager.emit(y.CONTENT_RESUMED) } , e.prototype.adAvailable = function(e) { return !0 } , e.prototype.preloadAd = function(e, t, i) { var r = this; this.adsEnabled && (this.destroyAd(e), e === w.banner && (this.banner = this.cocoonProvider.createBanner(t), i && this.banner.setLayout(i), this.banner.on("load", function() { r.bannerShowable = !0 }), this.banner.on("fail", function() { r.bannerShowable = !1, r.banner = null }), this.banner.on("click", function() { r.adManager.emit(y.AD_CLICKED, w.banner) }), this.banner.on("show", function() {}), this.banner.on("dismiss", function() {}), this.banner.load()), e === w.interstitial && (this.interstitial = this.cocoonProvider.createInterstitial(t), this.interstitial.on("load", function() { r.interstitialShowable = !0 }), this.interstitial.on("fail", function() { r.interstitialShowable = !1, r.interstitial = null }), this.interstitial.on("click", function() { r.adManager.emit(y.AD_CLICKED, w.interstitial) }), this.interstitial.on("show", function() { r.adManager.emit(y.CONTENT_PAUSED, w.interstitial) }), this.interstitial.on("dismiss", function() { r.adManager.emit(y.CONTENT_RESUMED, w.interstitial), r.interstitialShowable = !1, r.interstitial = null }), this.interstitial.load()), e === w.rewarded && (this.insentive = this.cocoonProvider.createRewardedVideo(t), this.insentive.on("load", function() { r.insentiveShowable = !0 }), this.insentive.on("fail", function() { r.insentiveShowable = !1, r.insentive = null }), this.insentive.on("click", function() { r.adManager.emit(y.AD_CLICKED, w.rewarded) }), this.insentive.on("show", function() { r.adManager.emit(y.CONTENT_PAUSED, w.rewarded) }), this.insentive.on("dismiss", function() { r.adManager.emit(y.CONTENT_RESUMED, w.rewarded), r.insentiveShowable = !1, r.insentive = null }), this.insentive.on("reward", function() { r.adManager.emit(y.AD_REWARDED, w.rewarded), r.insentiveShowable = !1, r.insentive = null }), this.insentive.load())) } , e.prototype.destroyAd = function(e) { if (this.adsEnabled) { if (e === w.banner && null !== this.banner) { try { this.cocoonProvider.releaseBanner(this.banner) } catch (e) {} this.banner = null, this.bannerShowable = !1 } e === w.interstitial && null !== this.interstitial && (this.cocoonProvider.releaseInterstitial(this.interstitial), this.interstitial = null, this.interstitialShowable = !1) } } , e.prototype.hideAd = function(e) { this.adsEnabled && (e === w.interstitial && null !== this.interstitial && this.interstitial.hide(), e === w.banner && null !== this.banner && (this.adManager.bannerActive && (this.adManager.bannerActive = !1, this.adManager.emit(y.BANNER_HIDDEN, this.banner.width, this.banner.height)), this.banner.hide()), e === w.rewarded && null !== this.insentive && this.insentive.hide()) } , e }(); (z = r.AdEvents || (r.AdEvents = {})).CONTENT_PAUSED = "onContentPaused", z.CONTENT_RESUMED = "onContentResumed", z.AD_PROGRESSION = "onAdProgression", z.AD_DISABLED = "onAdsDisabled", z.AD_CLICKED = "onAdClicked", z.AD_REWARDED = "onAdRewardGranted", z.BANNER_SHOWN = "onBannerShown", z.BANNER_HIDDEN = "onBannerHidden", z.AD_LOADED = "onAdLoaded", z.AD_PROVIDER_LOADED = "onAdProviderLoaded", (C = r.AdType || (r.AdType = {}))[C.interstitial = 0] = "interstitial", C[C.rewarded = 1] = "rewarded", C[C.banner = 2] = "banner"; var P = function(t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e.bannerActive = !1, e.provider = null, e } return i(e, t), e.prototype.setAdProvider = function(e) { this.provider = e, this.provider.setManager(this) } , e.prototype.showAd = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not request an ad without an provider, please attach an ad provider!"); t.unshift(e), this.provider.showAd.apply(this.provider, t) } , e.prototype.createBanner = function() { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; return this.provider.loadBanner.apply(this.provider, e) } , e.prototype.loadBanner = function() { for (var e = [], t = 0; t < arguments.length; t++) e[t] = arguments[t]; return this.provider.loadBanner.apply(this.provider, e) } , e.prototype.preloadAd = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not preload an ad without an provider, please attach an ad provider!"); t.unshift(e), this.provider.preloadAd.apply(this.provider, t) } , e.prototype.destroyAd = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not destroy an ad without an provider, please attach an ad provider!"); t.unshift(e), this.provider.destroyAd.apply(this.provider, t) } , e.prototype.hideAd = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not hide an ad without an provider, please attach an ad provider!"); t.unshift(e), this.provider.hideAd.apply(this.provider, t) } , e.prototype.adsEnabled = function() { if (null === this.provider) throw new Error("Can not hide an ad without an provider, please attach an ad provider!"); return this.provider.adsEnabled } , e.prototype.adAvailable = function(e) { for (var t = [], i = 1; i < arguments.length; i++) t[i - 1] = arguments[i]; if (null === this.provider) throw new Error("Can not hide an ad without an provider, please attach an ad provider!"); return t.unshift(e), this.provider.adAvailable.apply(this.provider, t) } , e }(h) , A = new P; r.H5AdWrapper = P, r.adWrapper = A, r.CocoonAds = T, r.CordovaGamedistribution = c, r.CordovaHeyzap = l, r.CordovaIronSource = m, r.GameDistribution = f, r.GameDistributionBanner = p, r.Ima3 = x, Object.defineProperty(r, "__esModule", { value: !0 }) }), function() { function r(e, t, i) { return e.call.apply(e.bind, arguments) } function o(t, i, e) { if (!t) throw Error(); if (2 < arguments.length) { var r = Array.prototype.slice.call(arguments, 2); return function() { var e = Array.prototype.slice.call(arguments); return Array.prototype.unshift.apply(e, r), t.apply(i, e) } } return function() { return t.apply(i, arguments) } } function p(e, t, i) { return (p = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") ? r : o).apply(null, arguments) } var n = Date.now || function() { return +new Date } ; function t(e, t) { this.a = e, this.o = t || e, this.c = this.o.document } var h = !!window.FontFace; function c(e, t, i, r) { if (t = e.c.createElement(t), i) for (var o in i) i.hasOwnProperty(o) && ("style" == o ? t.style.cssText = i[o] : t.setAttribute(o, i[o])); return r && t.appendChild(e.c.createTextNode(r)), t } function l(e, t, i) { (e = e.c.getElementsByTagName(t)[0]) || (e = document.documentElement), e.insertBefore(i, e.lastChild) } function i(e) { e.parentNode && e.parentNode.removeChild(e) } function f(e, t, i) { t = t || [], i = i || []; for (var r = e.className.split(/\s+/), o = 0; o < t.length; o += 1) { for (var s = !1, a = 0; a < r.length; a += 1) if (t[o] === r[a]) { s = !0; break } s || r.push(t[o]) } for (t = [], o = 0; o < r.length; o += 1) { for (s = !1, a = 0; a < i.length; a += 1) if (r[o] === i[a]) { s = !0; break } s || t.push(r[o]) } e.className = t.join(" ").replace(/\s+/g, " ").replace(/^\s+|\s+$/, "") } function s(e, t) { for (var i = e.className.split(/\s+/), r = 0, o = i.length; r < o; r++) if (i[r] == t) return !0; return !1 } function m(e, t, i) { function r() { a && o && (a(s), a = null) } t = c(e, "link", { rel: "stylesheet", href: t, media: "all" }); var o = !1 , s = null , a = i || null; h ? (t.onload = function() { o = !0, r() } , t.onerror = function() { o = !0, s = Error("Stylesheet failed to load"), r() } ) : setTimeout(function() { o = !0, r() }, 0), l(e, "head", t) } function u(e, t, i, r) { var o = e.c.getElementsByTagName("head")[0]; if (o) { var s = c(e, "script", { src: t }) , a = !1; return s.onload = s.onreadystatechange = function() { a || this.readyState && "loaded" != this.readyState && "complete" != this.readyState || (a = !0, i && i(null), s.onload = s.onreadystatechange = null, "HEAD" == s.parentNode.tagName && o.removeChild(s)) } , o.appendChild(s), setTimeout(function() { a || (a = !0, i && i(Error("Script load timeout"))) }, r || 5e3), s } return null } function d() { this.a = 0, this.c = null } function y(e) { return e.a++, function() { e.a--, a(e) } } function S(e, t) { e.c = t, a(e) } function a(e) { 0 == e.a && e.c && (e.c(), e.c = null) } function w(e) { this.a = e || "-" } function g(e, t) { this.c = e, this.f = 4, this.a = "n"; var i = (t || "n4").match(/^([nio])([1-9])$/i); i && (this.a = i[1], this.f = parseInt(i[2], 10)) } function x(e) { var t = []; e = e.split(/,\s*/); for (var i = 0; i < e.length; i++) { var r = e[i].replace(/['"]/g, ""); -1 != r.indexOf(" ") || /^\d/.test(r) ? t.push("'" + r + "'") : t.push(r) } return t.join(",") } function b(e) { return e.a + e.f } function v(e) { var t = "normal"; return "o" === e.a ? t = "oblique" : "i" === e.a && (t = "italic"), t } function z(e, t) { this.c = e, this.f = e.o.document.documentElement, this.h = t, this.a = new w("-"), this.j = !1 !== t.events, this.g = !1 !== t.classes } function C(e) { if (e.g) { var t = s(e.f, e.a.c("wf", "active")) , i = [] , r = [e.a.c("wf", "loading")]; t || i.push(e.a.c("wf", "inactive")), f(e.f, i, r) } T(e, "inactive") } function T(e, t, i) { e.j && e.h[t] && (i ? e.h[t](i.c, b(i)) : e.h[t]()) } function P() { this.c = {} } function A(e, t) { this.c = e, this.f = t, this.a = c(this.c, "span", { "aria-hidden": "true" }, this.f) } function _(e) { l(e.c, "body", e.a) } function B(e) { return "display:block;position:absolute;top:-9999px;left:-9999px;font-size:300px;width:auto;height:auto;line-height:normal;margin:0;padding:0;font-variant:normal;white-space:nowrap;font-family:" + x(e.c) + ";font-style:" + v(e) + ";font-weight:" + e.f + "00;" } function D(e, t, i, r, o, s) { this.g = e, this.j = t, this.a = r, this.c = i, this.f = o || 3e3, this.h = s || void 0 } function k(e, t, i, r, o, s, a) { this.v = e, this.B = t, this.c = i, this.a = r, this.s = a || "BESbswy", this.f = {}, this.w = o || 3e3, this.u = s || null, this.m = this.j = this.h = this.g = null, this.g = new A(this.c,this.s), this.h = new A(this.c,this.s), this.j = new A(this.c,this.s), this.m = new A(this.c,this.s), e = B(e = new g(this.a.c + ",serif",b(this.a))), this.g.a.style.cssText = e, e = B(e = new g(this.a.c + ",sans-serif",b(this.a))), this.h.a.style.cssText = e, e = B(e = new g("serif",b(this.a))), this.j.a.style.cssText = e, e = B(e = new g("sans-serif",b(this.a))), this.m.a.style.cssText = e, _(this.g), _(this.h), _(this.j), _(this.m) } w.prototype.c = function(e) { for (var t = [], i = 0; i < arguments.length; i++) t.push(arguments[i].replace(/[\W_]+/g, "").toLowerCase()); return t.join(this.a) } , D.prototype.start = function() { var o = this.c.o.document , s = this , a = n() , e = new Promise(function(i, r) { !function t() { var e; n() - a >= s.f ? r() : o.fonts.load((e = s.a, v(e) + " " + e.f + "00 300px " + x(e.c)), s.h).then(function(e) { 1 <= e.length ? i() : setTimeout(t, 25) }, function() { r() }) }() } ) , i = null , t = new Promise(function(e, t) { i = setTimeout(t, s.f) } ); Promise.race([t, e]).then(function() { i && (clearTimeout(i), i = null), s.g(s.a) }, function() { s.j(s.a) }) } ; var E = { D: "serif", C: "sans-serif" } , M = null; function I() { if (null === M) { var e = /AppleWebKit\/([0-9]+)(?:\.([0-9]+))/.exec(window.navigator.userAgent); M = !!e && (parseInt(e[1], 10) < 536 || 536 === parseInt(e[1], 10) && parseInt(e[2], 10) <= 11) } return M } function L(e, t, i) { for (var r in E) if (E.hasOwnProperty(r) && t === e.f[E[r]] && i === e.f[E[r]]) return !0; return !1 } function O(e) { var t, i = e.g.a.offsetWidth, r = e.h.a.offsetWidth; (t = i === e.f.serif && r === e.f["sans-serif"]) || (t = I() && L(e, i, r)), t ? n() - e.A >= e.w ? I() && L(e, i, r) && (null === e.u || e.u.hasOwnProperty(e.a.c)) ? R(e, e.v) : R(e, e.B) : setTimeout(p(function() { O(this) }, e), 50) : R(e, e.v) } function R(e, t) { setTimeout(p(function() { i(this.g.a), i(this.h.a), i(this.j.a), i(this.m.a), t(this.a) }, e), 0) } function F(e, t, i) { this.c = e, this.a = t, this.f = 0, this.m = this.j = !1, this.s = i } k.prototype.start = function() { this.f.serif = this.j.a.offsetWidth, this.f["sans-serif"] = this.m.a.offsetWidth, this.A = n(), O(this) } ; var G = null; function N(e) { 0 == --e.f && e.j && (e.m ? ((e = e.a).g && f(e.f, [e.a.c("wf", "active")], [e.a.c("wf", "loading"), e.a.c("wf", "inactive")]), T(e, "active")) : C(e.a)) } function e(e) { this.j = e, this.a = new P, this.h = 0, this.f = this.g = !0 } function U(e, t) { this.c = e, this.a = t } function W(e, t) { this.c = e, this.a = t } function X(e, t) { this.c = e || "https://fonts.googleapis.com/css", this.a = [], this.f = [], this.g = t || "" } F.prototype.g = function(e) { var t = this.a; t.g && f(t.f, [t.a.c("wf", e.c, b(e).toString(), "active")], [t.a.c("wf", e.c, b(e).toString(), "loading"), t.a.c("wf", e.c, b(e).toString(), "inactive")]), T(t, "fontactive", e), this.m = !0, N(this) } , F.prototype.h = function(e) { var t = this.a; if (t.g) { var i = s(t.f, t.a.c("wf", e.c, b(e).toString(), "active")) , r = [] , o = [t.a.c("wf", e.c, b(e).toString(), "loading")]; i || r.push(t.a.c("wf", e.c, b(e).toString(), "inactive")), f(t.f, r, o) } T(t, "fontinactive", e), N(this) } , e.prototype.load = function(e) { this.c = new t(this.j,e.context || this.j), this.g = !1 !== e.events, this.f = !1 !== e.classes, function(o, e, t) { var i = [] , r = t.timeout; s = e, s.g && f(s.f, [s.a.c("wf", "loading")]), T(s, "loading"); var s; var i = function(e, t, i) { var r, o = []; for (r in t) if (t.hasOwnProperty(r)) { var s = e.c[r]; s && o.push(s(t[r], i)) } return o }(o.a, t, o.c) , a = new F(o.c,e,r); for (o.h = i.length, e = 0, t = i.length; e < t; e++) i[e].load(function(e, t, i) { var r, c, l, m, u, d; c = a, l = e, m = t, u = i, d = 0 == --(r = o).h, (r.f || r.g) && setTimeout(function() { var e = u || null , t = m || {}; if (0 === l.length && d) C(c.a); else { c.f += l.length, d && (c.j = d); var i, r = []; for (i = 0; i < l.length; i++) { var o = l[i] , s = t[o.c] , a = c.a , n = o; if (a.g && f(a.f, [a.a.c("wf", n.c, b(n).toString(), "loading")]), T(a, "fontloading", n), (a = null) === G) if (window.FontFace) { var n = /Gecko.*Firefox\/(\d+)/.exec(window.navigator.userAgent) , h = /OS X.*Version\/10\..*Safari/.exec(window.navigator.userAgent) && /Apple/.exec(window.navigator.vendor); G = n ? 42 < parseInt(n[1], 10) : !h } else G = !1; a = G ? new D(p(c.g, c),p(c.h, c),c.c,o,c.s,s) : new k(p(c.g, c),p(c.h, c),c.c,o,c.s,e,s), r.push(a) } for (i = 0; i < r.length; i++) r[i].start() } }, 0) }) }(this, new z(this.c,e), e) } , U.prototype.load = function(a) { var t = this , n = t.a.projectId , e = t.a.version; if (n) { var h = t.c.o; u(this.c, (t.a.api || "https://fast.fonts.net/jsapi") + "/" + n + ".js" + (e ? "?v=" + e : ""), function(e) { e ? a([]) : (h["__MonotypeConfiguration__" + n] = function() { return t.a } , function e() { if (h["__mti_fntLst" + n]) { var t, i = h["__mti_fntLst" + n](), r = []; if (i) for (var o = 0; o < i.length; o++) { var s = i[o].fontfamily; null != i[o].fontStyle && null != i[o].fontWeight ? (t = i[o].fontStyle + i[o].fontWeight, r.push(new g(s,t))) : r.push(new g(s)) } a(r) } else setTimeout(function() { e() }, 50) }()) }).id = "__MonotypeAPIScript__" + n } else a([]) } , W.prototype.load = function(e) { var t, i, r = this.a.urls || [], o = this.a.families || [], s = this.a.testStrings || {}, a = new d; for (t = 0, i = r.length; t < i; t++) m(this.c, r[t], y(a)); var n = []; for (t = 0, i = o.length; t < i; t++) if ((r = o[t].split(":"))[1]) for (var h = r[1].split(","), c = 0; c < h.length; c += 1) n.push(new g(r[0],h[c])); else n.push(new g(r[0])); S(a, function() { e(n, s) }) } ; function H(e) { this.f = e, this.a = [], this.c = {} } var j = { latin: "BESbswy", "latin-ext": "çöüğş", cyrillic: "йяЖ", greek: "αβΣ", khmer: "កខគ", Hanuman: "កខគ" } , Y = { thin: "1", extralight: "2", "extra-light": "2", ultralight: "2", "ultra-light": "2", light: "3", regular: "4", book: "4", medium: "5", "semi-bold": "6", semibold: "6", "demi-bold": "6", demibold: "6", bold: "7", "extra-bold": "8", extrabold: "8", "ultra-bold": "8", ultrabold: "8", black: "9", heavy: "9", l: "3", r: "4", b: "7" } , V = { i: "i", italic: "i", n: "n", normal: "n" } , K = /^(thin|(?:(?:extra|ultra)-?)?light|regular|book|medium|(?:(?:semi|demi|extra|ultra)-?)?bold|black|heavy|l|r|b|[1-9]00)?(n|i|normal|italic)?$/; function q(e, t) { this.c = e, this.a = t } var Z = { Arimo: !0, Cousine: !0, Tinos: !0 }; function J(e, t) { this.c = e, this.a = t } function Q(e, t) { this.c = e, this.f = t, this.a = [] } q.prototype.load = function(e) { var t = new d , i = this.c , r = new X(this.a.api,this.a.text) , o = this.a.families; !function(e, t) { for (var i = t.length, r = 0; r < i; r++) { var o = t[r].split(":"); 3 == o.length && e.f.push(o.pop()); var s = ""; 2 == o.length && "" != o[1] && (s = ":"), e.a.push(o.join(s)) } }(r, o); var s = new H(o); !function(e) { for (var t = e.f.length, i = 0; i < t; i++) { var r = e.f[i].split(":") , o = r[0].replace(/\+/g, " ") , s = ["n4"]; if (2 <= r.length) { var a; if (a = [], n = r[1]) for (var n, h = (n = n.split(",")).length, c = 0; c < h; c++) { var l; if ((l = n[c]).match(/^[\w-]+$/)) if (null == (u = K.exec(l.toLowerCase()))) l = ""; else { if (l = null == (l = u[2]) || "" == l ? "n" : V[l], null == (u = u[1]) || "" == u) u = "4"; else var m = Y[u] , u = m || (isNaN(u) ? "4" : u.substr(0, 1)); l = [l, u].join("") } else l = ""; l && a.push(l) } 0 < a.length && (s = a), 3 == r.length && (a = [], 0 < (r = (r = r[2]) ? r.split(",") : a).length && (r = j[r[0]]) && (e.c[o] = r)) } for (e.c[o] || (r = j[o]) && (e.c[o] = r), r = 0; r < s.length; r += 1) e.a.push(new g(o,s[r])) } }(s), m(i, function(e) { if (0 == e.a.length) throw Error("No fonts to load!"); if (-1 != e.c.indexOf("kit=")) return e.c; for (var t = e.a.length, i = [], r = 0; r < t; r++) i.push(e.a[r].replace(/ /g, "+")); return t = e.c + "?family=" + i.join("%7C"), 0 < e.f.length && (t += "&subset=" + e.f.join(",")), 0 < e.g.length && (t += "&text=" + encodeURIComponent(e.g)), t }(r), y(t)), S(t, function() { e(s.a, s.c, Z) }) } , J.prototype.load = function(a) { var e = this.a.id , n = this.c.o; e ? u(this.c, (this.a.api || "https://use.typekit.net") + "/" + e + ".js", function(e) { if (e) a([]); else if (n.Typekit && n.Typekit.config && n.Typekit.config.fn) { e = n.Typekit.config.fn; for (var t = [], i = 0; i < e.length; i += 2) for (var r = e[i], o = e[i + 1], s = 0; s < o.length; s++) t.push(new g(r,o[s])); try { n.Typekit.load({ events: !1, classes: !1, async: !0 }) } catch (e) {} a(t) } }, 2e3) : a([]) } , Q.prototype.load = function(c) { var e, t = this.f.id, i = this.c.o, l = this; t ? (i.__webfontfontdeckmodule__ || (i.__webfontfontdeckmodule__ = {}), i.__webfontfontdeckmodule__[t] = function(e, t) { for (var i = 0, r = t.fonts.length; i < r; ++i) { var o = t.fonts[i]; l.a.push(new g(o.name,(s = "font-weight:" + o.weight + ";font-style:" + o.style, h = n = a = void 0, a = 4, n = "n", h = null, s && ((h = s.match(/(normal|oblique|italic)/i)) && h[1] && (n = h[1].substr(0, 1).toLowerCase()), (h = s.match(/([1-9]00|normal|bold)/i)) && h[1] && (/bold/i.test(h[1]) ? a = 7 : /[1-9]00/.test(h[1]) && (a = parseInt(h[1].substr(0, 1), 10)))), n + a))) } var s, a, n, h; c(l.a) } , u(this.c, (this.f.api || "https://f.fontdeck.com/s/css/js/") + ((e = this.c).o.location.hostname || e.a.location.hostname) + "/" + t + ".js", function(e) { e && c([]) })) : c([]) } ; var $ = new e(window); $.a.c.custom = function(e, t) { return new W(t,e) } , $.a.c.fontdeck = function(e, t) { return new Q(t,e) } , $.a.c.monotype = function(e, t) { return new U(t,e) } , $.a.c.typekit = function(e, t) { return new J(t,e) } , $.a.c.google = function(e, t) { return new q(t,e) } ; var ee = { load: p($.load, $) }; "function" == typeof define && define.amd ? define(function() { return ee }) : "undefined" != typeof module && module.exports ? module.exports = ee : (window.WebFont = ee, window.WebFontConfig && $.load(window.WebFontConfig)) }(); var Fabrique, __extends = this && this.__extends || function() { var r = function(e, t) { return (r = Object.setPrototypeOf || { __proto__: [] }instanceof Array && function(e, t) { e.__proto__ = t } || function(e, t) { for (var i in t) t.hasOwnProperty(i) && (e[i] = t[i]) } )(e, t) }; return function(e, t) { function i() { this.constructor = e } r(e, t), e.prototype = null === t ? Object.create(t) : (i.prototype = t.prototype, new i) } }(), Constants = function() { function e() {} return e.DIV_ID = "content", e.GAME_SCALE = 1, e.CALCULATED_WIDTH = 0, e.CALCULATED_HEIGHT = 0, e.GAME_WIDTH = 640, e.GAME_HEIGHT = 520, e.LANDSCAPE_LOCKED = !0, e.GAME_KEY = "a7204cd6b6d828f9cf910eae915aad32", e.SECRET_KEY = "d4bd4ee1ae2bc3b909e659d07830d779b1fdedcd", e.GOOGLE_ID = "UA-78960661-47", e.GOOGLE_APP_NAME = "bob-the-robber-2", e.GAME_TITLE = "Bob The Robber 2", e }(); !function(o) { var s, e; (e = s || (s = {})).PAUSED = "Paused", e.RESUMED = "Resumed"; var t = function() { function e() { this.contentStatus = s.RESUMED } return e.getInstance = function() { return e.instance || (e.instance = new e), e.instance } , e.prototype.init = function() { var e = new h5ads.GameDistribution("34d6aae0257d4e4c8068cbdfc11a8758"); h5ads.adWrapper.setAdProvider(e), window.hasOwnProperty("fbrqSA") && !0 === window.fbrqSA && (h5branding.Utils.ASSET_LOCATION = "assets/") } , e.prototype.showAd = function(e, t, i) { var r = this; o.LoaderHelper.show(), h5ads.adWrapper.once(h5ads.AdEvents.CONTENT_PAUSED, function() { o.LoaderHelper.hide(), h5branding.google.sendScreenView("advertisement_" + e), i && i.call(r), r.contentStatus = s.PAUSED, o.PauseHandler.getInstance().pause() }), h5ads.adWrapper.once(h5ads.AdEvents.CONTENT_RESUMED, function() { o.LoaderHelper.hide(), h5ads.adWrapper.removeAllListeners(h5ads.AdEvents.CONTENT_PAUSED), h5ads.adWrapper.removeAllListeners(h5ads.AdEvents.CONTENT_RESUMED), r.contentStatus = s.RESUMED, o.PauseHandler.getInstance().resume(), t && t.call(r) }), h5ads.adWrapper.showAd(h5ads.AdType.interstitial) } , e.prototype.isAdPlaying = function() { return this.contentStatus === s.PAUSED } , e }(); o.AdHandler = t }(Fabrique || (Fabrique = {})), function(e) { var t = function() { function e() {} return e.show = function() { var e = document.getElementById("loader"); e && (e.style.display = "block") } , e.hide = function() { var e = document.getElementById("loader"); e && (e.style.display = "none") } , e }(); e.LoaderHelper = t }(Fabrique || (Fabrique = {})), function(e) { var t = function() { function t(e) { this.game = e, this.focused = !0 } return t.getInstance = function(e) { return t.instance || (t.instance = new t(e)), t.instance } , t.prototype.init = function() { var e = this; this.game.stage.disableVisibilityChange = !0, this.onPauseCallback = new Phaser.Signal, h5branding.Utils.isOnDevice() && (document.addEventListener("pause", function() { return e.onPause() }), document.addEventListener("resume", function() { return e.onResume() })), this.game.onBlur.add(this.onBlur, this), this.game.onFocus.add(this.onFocus, this), this.game.onPause.add(this.onPause, this), this.game.onResume.add(this.onResume, this) } , t.prototype.onBlur = function() { this.focused = !1, this.game.onPause.dispatch() } , t.prototype.onFocus = function() { this.focused = !0, e.AdHandler.getInstance().isAdPlaying() || this.game.onResume.dispatch() } , t.prototype.onPause = function() { this.game.sound.setMute(), this.onPauseCallback && this.onPauseCallback.dispatch() } , t.prototype.onResume = function() { this.game.sound.unsetMute() } , t.prototype.pause = function() { this.game.onPause.dispatch() } , t.prototype.resume = function() { this.hasFocus && this.game.onResume.dispatch() } , Object.defineProperty(t.prototype, "hasFocus", { get: function() { return this.focused }, enumerable: !0, configurable: !0 }), t }(); e.PauseHandler = t }(Fabrique || (Fabrique = {})), function(e) { var t = function() { function e() { var s, e, a, t, i, n, r = this; this.apiKey = "797KpZtV5ELZ1kD0DTZGGA", this.recurringError = [], s = window, e = document, a = "rg4js", s.RaygunObject = a, s[a] = s[a] || function() { (s[a].o = s[a].o || []).push(arguments) } , t = e.createElement("script"), i = e.getElementsByTagName("script")[0], t.async = 1, t.src = "js/null.js?//cdn.raygun.io/raygun4js/raygun.min.js", i.parentNode.insertBefore(t, i), n = s.onerror, s.onerror = function(e, t, i, r, o) { n && n(e, t, i, r, o), o || (o = new Error(e)), s[a].q = s[a].q || [], s[a].q.push({ e: o }) } , rg4js("apiKey", this.apiKey), rg4js("enableCrashReporting", !0), rg4js("setVersion", version), rg4js("options", { ignore3rdPartyErrors: !0 }), rg4js("onBeforeSend", function(e) { return r.filterError(e) }), rg4js("enablePulse", !1) } return e.getInstance = function() { return null === e.instance && (e.instance = new e), e.instance } , e.prototype.filterError = function(e) { if (void 0 !== e && e.Details && e.Details.Error && e.Details.Error.Message) { if (-1 !== this.recurringError.indexOf(e.Details.Error.Message)) return !1; this.recurringError.push(e.Details.Error.Message) } return e } , e.instance = null, e }(); e.RayGun = t }(Fabrique || (Fabrique = {})), function(e) { var t = function() { function e() {} return e.getInstance = function() { return e.instance || (e.instance = new e), e.instance } , e.prototype.resize = function(e) { var t = window.innerWidth - Constants.GAME_WIDTH / Constants.GAME_HEIGHT * window.innerHeight; 600 <= window.innerHeight && 240 <= t ? this.leftBanner || (this.leftBanner = h5ads.adWrapper.loadBanner(h5ads.GameDistributionBannerSize.Skyscraper), this.leftBanner.alignIn(e.canvas, h5ads.GameDistributionAlignment.CenterLeft), this.rightBanner = h5ads.adWrapper.loadBanner(h5ads.GameDistributionBannerSize.Skyscraper), this.rightBanner.alignIn(e.canvas, h5ads.GameDistributionAlignment.CenterRight)) : this.leftBanner && (this.leftBanner.destroy(), this.leftBanner = void 0, this.rightBanner.destroy(), this.rightBanner = void 0) } , e }(); e.SideBanners = t }(Fabrique || (Fabrique = {})); var states, Input = function() { function r() { this.channels = new Array; for (var e = 0; e < r.NUM_CHANNELS; e++) this.channels[e] = {} } return r.getInstance = function() { return null == r.instance && (r.instance = new r), r.instance } , r.Init = function() { return r.instance = new r } , r.prototype.addKeyAction = function(e, t, i) { void 0 === i && (i = 0), this.channels[i][e] = -1; var r = Game.getGame().input.keyboard.addKey(t); r.onDown.add(function() { this.channels[i][e] = Game.frame }, this), r.onUp.add(function() { this.channels[i][e] = -1 }, this) } , r.prototype.setDoing = function(e, t, i) { i ? this.channels[e][t] < 0 && (this.channels[e][t] = Game.frame) : this.channels[e][t] = -1 } , r.prototype.isDoing = function(e, t) { return void 0 === t && (t = 0), 0 <= this.channels[t][e] } , r.prototype.justDid = function(e, t) { void 0 === t && (t = 0); var i = this.channels[t][e]; return 0 <= i && Game.frame - i == 1 } , r.rep = function(e, t) { void 0 === t && (t = 0); var i = r.getInstance().channels[t][e]; return 0 <= i && 30 < Game.frame - i } , r.NUM_CHANNELS = 20, r.instance = null, r }(); !function(i) { var e = function(t) { function e() { var e = null !== t && t.apply(this, arguments) || this; return e.isSwitchingState = !1, e.mc = null, e } return __extends(e, t), e.prototype.processEnterFrameEvents = function() { for (var e = 0; e < Game.getGame().world.children.length; e++) { var t = Game.getGame().world.children[e]; t instanceof MovieClip && t.processEnterFrameEvents() } } , e.prototype.create = function() { Timer.Init(), i.Boot.adjustWorld(), this.cnt = 0, Game.JoypadLeft && (Game.JoypadLeft.visible = Game.JoypadRight.visible = !1), this.isSwitchingState = Game.LeftCurtain.visible } , e.prototype.update = function() { Game.frame++, 1 == this.cnt && Game.LeftCurtain.visible && this.openCurtains(.1), this.cnt++ } , e.prototype.switchState = function(e, t) { void 0 === t && (t = !0), this.isSwitchingState || (GameplayState.HideMobileGUI(), this.isSwitchingState = !0, t ? this.closeCurtains(function() { Game.getGame().state.start(e) }) : Game.getGame().state.start(e)) } , e.prototype.closeCurtains = function(e) { void 0 === e && (e = null), Game.LeftCurtain.visible = Game.RightCurtain.visible = !0, Game.LeftCurtain.x = Game.LEFT_CURTAIN_OPEN_X, Game.RightCurtain.x = Game.RIGHT_CURTAIN_OPEN_X, SoundManager.getInstance().playSound("SPlateDown"), TweenMax.to(Game.LeftCurtain, .5, { x: 0, ease: "Quad.easeOut" }), TweenMax.to(Game.RightCurtain, .5, { x: Game.WIDTH, onComplete: e, onCompleteContext: this, ease: "Quad.easeOut" }) } , e.prototype.openCurtains = function(e) { TweenMax.delayedCall(e, this.delayBrickWallOpenSound, this), TweenMax.to(Game.LeftCurtain, .5, { x: Game.LEFT_CURTAIN_OPEN_X, ease: "Quad.easeIn", delay: e }), TweenMax.to(Game.RightCurtain, .5, { x: Game.RIGHT_CURTAIN_OPEN_X, ease: "Quad.easeIn", delay: e, onComplete: this.openCurtainsEnd, onCompleteContext: this }) } , e.prototype.delayBrickWallOpenSound = function() { SoundManager.getInstance().playSound("SPlateUp") } , e.prototype.openCurtainsEnd = function() { Game.LeftCurtain.visible = Game.RightCurtain.visible = !1, this.isSwitchingState = !1 } , e }(Phaser.State); i.OzState = e }(states || (states = {})), function(t) { var e = function(e) { function a() { return e.call(this) || this } return __extends(a, e), a.prototype.init = function() { var e = this; h5branding.gameanalytics.setup(Constants.GAME_KEY, Constants.SECRET_KEY, version), h5branding.google.setup(Constants.GOOGLE_ID, Constants.GOOGLE_APP_NAME, version), h5branding.google.sendScreenView("splash"), Fabrique.PauseHandler.getInstance(this.game).init(), this.game.canvas.oncontextmenu = function(e) { e.preventDefault() } , this.game.scale.pageAlignHorizontally = !0, this.game.scale.pageAlignVertically = !0, this.game.scale.windowConstraints.right = "layout", this.game.scale.windowConstraints.bottom = "visual", this.scale.scaleMode = Phaser.ScaleManager.USER_SCALE, this.scale.fullScreenScaleMode = Phaser.ScaleManager.USER_SCALE, window.addEventListener("resize", function() { return a.mobileResizeCallback(e.game.scale) }), a.mobileResizeCallback(this.game.scale), this.game.scale.refresh() } , a.prototype.preload = function() { var e = this; Fabrique.LoaderHelper.hide(), this.game.load.onFileComplete.add(function(e) { h5branding.SplashLoader.getInstance().setLoadProgress(e) }), this.game.load.onLoadComplete.add(function() { h5branding.SplashLoader.getInstance().setLoadProgress(100) }), h5ads.adWrapper.preloadAd(h5ads.AdType.interstitial), h5branding.SplashLoader.getInstance().setButtonCallback(function() { h5branding.SplashLoader.getInstance().destroy(), Fabrique.AdHandler.getInstance().showAd("splash", function() { e.game.state.start(t.MenuState.Name) }) }), this.game.load.cacheBuster = "undefined" == typeof version ? null : version, this.game.load.image(h5branding.Branding.LOGO_KEY, h5branding.Branding.brandingLogoUrl), MovieClip.RegisterSpritesheet("PreloaderObjects", PreloaderObjects.data, PreloaderObjectsLayouts.data), MovieClip.RegisterSpritesheet("Objects", Objects.data, ObjectsLayouts.data), MovieClip.RegisterSpritesheet("Levels", Levels.data, LevelsLayouts.data), SoundManager.Init(), SoundManager.Preload() } , a.prototype.create = function() { this.game.stage.backgroundColor = 0, Game.CurtainContainer = new MovieClip, Game.getGame().stage.addChild(Game.CurtainContainer), Game.LeftCurtain = new MovieClip("LeftCurtainGraphics",0,0,null,"PreloaderObjects",PreloaderObjectsLayouts.data), Game.LeftCurtain.inputEnabled = !0, Game.LeftCurtain.x = Game.LEFT_CURTAIN_OPEN_X, Game.CurtainContainer.addChild(Game.LeftCurtain), Game.RightCurtain = new MovieClip("RightCurtainGraphics",0,0,null,"PreloaderObjects",PreloaderObjectsLayouts.data), Game.RightCurtain.inputEnabled = !0, Game.RightCurtain.x = Game.RIGHT_CURTAIN_OPEN_X, Game.CurtainContainer.addChild(Game.RightCurtain), Game.LeftCurtain.visible = Game.RightCurtain.visible = !1, Game.PadLeft = new MovieClip("cmcSidePad",0,0,null,"PreloaderObjects",PreloaderObjectsLayouts.data), Game.PadLeft.x = 0, Game.getGame().stage.addChild(Game.PadLeft), Game.PadRight = new MovieClip("cmcSidePad",0,0,null,"PreloaderObjects",PreloaderObjectsLayouts.data), Game.PadRight.x = Game.WIDTH, Game.PadRight.scaleX = -1, Game.getGame().stage.addChild(Game.PadRight), Game.AdjustPad() } , a.onSizeChange = function() { window.innerWidth > window.innerHeight ? a.handleCorrect() : a.handleIncorrect(), a.InW == Math.round(window.innerWidth) && a.InH == Math.round(window.innerHeight) && 3 < a.NUMRESIZE || (a.InW = Math.round(window.innerWidth), a.InH = Math.round(window.innerHeight), a.NUMRESIZE++, a.adjustWorld()) } , a.adjustWorld = function() { var e = Game.getGame() , t = Math.min(window.innerWidth / Game.WIDTH, window.innerHeight / Game.HEIGHT); e.scale.setGameSize(window.innerWidth / t, Game.HEIGHT), e.scale.setUserScale(t, t, 0, 0), e.camera.bounds.x = -1 / 0, e.camera.bounds.width = 1 / 0; var i = -Math.floor((window.innerWidth / t - Game.WIDTH) / 2); e.camera.x = -1 !== e.state.current.indexOf("loader") || -1 !== e.state.current.indexOf("plash") ? 0 : i, a.PADH = Math.round(-i), Game.AdjustPad() } , a.mobileResizeCallback = function(e) { var t = window.innerWidth , i = window.innerHeight; a.setScaling(e.game); var r = Game.WIDTH * Constants.GAME_SCALE , o = Game.HEIGHT * Constants.GAME_SCALE , s = 1; s /= i < t ? t / o : i / r, Constants.CALCULATED_WIDTH = Math.ceil(t * s), Constants.CALCULATED_HEIGHT = Math.ceil(i * s), e.setGameSize(Constants.CALCULATED_WIDTH, Constants.CALCULATED_HEIGHT), e.setUserScale(1 / s, 1 / s), a.onSizeChange() } , a.setScaling = function(e) { var t = window.innerWidth , i = window.innerHeight; (t *= e.device.pixelRatio) < (i *= e.device.pixelRatio) && 1023 < i && (Constants.GAME_SCALE = .75), Constants.GAME_SCALE = 1 } , a.handleCorrect = function() { Game.getGame().paused = !1, document.getElementById("orientation").style.display = "none", document.getElementById("content").style.display = "block" } , a.handleIncorrect = function() { Game.getGame().paused = !0, document.getElementById("orientation").style.display = "block", document.getElementById("content").style.display = "none" } , a.Name = "boot", a.InW = -1, a.InH = -1, a.PADH = 0, a.NUMRESIZE = 0, a }(t.OzState); t.Boot = e }(states || (states = {})), function(i) { var e = function(e) { function t() { return null !== e && e.apply(this, arguments) || this } return __extends(t, e), t.prototype.init = function() { SoundManager.AddAllSounds() } , t.prototype.create = function() { e.prototype.create.call(this), h5branding.google.sendScreenView("menu"), SoundManager.getInstance().stopAllAudio(), SoundManager.PlayMenuMusic(), this.mc = new MovieClip("cmcMenu",0,0,null), this.world.addChild(this.mc), this.mc.getChild("btnNewGame").makeButton(this.goPlay, !0, this, !0, !0), this.mc.getChild("btnCredits").makeButton(this.showCredits, !0, this, !0, !0), this.mc.getChild("back").makeButton(this.showAdonExitCredits, !0, this, !0, !1), this.mc.getChild("sound").makeSoundButton(), this.mc.getChild("music").makeMusicButton(), this.mc.getChild("music").alpha = this.mc.getChild("sound").alpha = 0, this.mc.getChild("title").scaleX = this.mc.getChild("title").scaleY = .01, this.mc.getChild("btnNewGame").scaleX = this.mc.getChild("btnNewGame").scaleY = .01, this.mc.getChild("btnCredits").scaleX = this.mc.getChild("btnCredits").scaleY = .01, TweenMax.to(this.mc.getChild("title"), 1, { delay: .7, scaleX: 1, scaleY: 1, ease: "Elastic.easeOut" }), TweenMax.to(this.mc.getChild("btnNewGame"), 1, { delay: 1, scaleX: 1, scaleY: 1, ease: "Elastic.easeOut" }), TweenMax.to(this.mc.getChild("btnCredits"), 1, { delay: 1.3, scaleX: 1, scaleY: 1, ease: "Elastic.easeOut" }), TweenMax.to(this.mc.getChild("music"), .05, { delay: 2, alpha: 1 }), TweenMax.to(this.mc.getChild("sound"), .05, { delay: 2, alpha: 1 }), h5branding.Utils.getBrandingDomain() !== h5branding.BrandingDomain.Neutral && h5branding.Branding.outGoingLinksAllowed() ? (this.mc.getChild("sponsor").makeButton(Game.sponsor, !1, this, !1, !0, !0), this.mc.getChild("sponsor").scaleX = this.mc.getChild("sponsor").scaleY = .01, TweenMax.to(this.mc.getChild("sponsor"), 1, { delay: 1.6, scaleX: 1, scaleY: 1, ease: "Elastic.easeOut" })) : this.mc.getChild("sponsor").visible = !1, this.hideCredits() } , t.prototype.showCredits = function() { this.mc.getChild("credits").visible = !0, this.mc.getChild("back").visible = !0, this.mc.getChild("title").visible = !1, this.mc.getChild("sponsor").visible = !1, this.mc.getChild("btnNewGame").visible = !1, this.mc.getChild("btnCredits").visible = !1 } , t.prototype.showAdonExitCredits = function() { var e = this; Fabrique.AdHandler.getInstance().showAd("exitCredits", function() { e.hideCredits() }) } , t.prototype.hideCredits = function() { this.mc.getChild("credits").visible = !1, this.mc.getChild("back").visible = !1, this.mc.getChild("title").visible = !0, h5branding.Utils.getBrandingDomain() !== h5branding.BrandingDomain.Neutral && h5branding.Branding.outGoingLinksAllowed() && (this.mc.getChild("sponsor").visible = !0), this.mc.getChild("btnNewGame").visible = !0, this.mc.getChild("btnCredits").visible = !0 } , t.prototype.goPlay = function() { var e = this; 0 < Game.levelsScore[0] ? this.switchState(i.LevelsState.Name) : i.Story.MakeAnimation(this.mc, 1, 3, function() { e.switchState(i.LevelsState.Name, !1) }, this) } , t.prototype.shutdown = function() { e.prototype.shutdown.call(this) } , t.Name = "menu", t }(i.OzState); i.MenuState = e }(states || (states = {})), function(e) { var t = function(e) { function s() { return null !== e && e.apply(this, arguments) || this } return __extends(s, e), s.MakeAnimation = function(e, t, i, r, o) { s.EndFrame = i, s.OnComp = r, s.OnCompContext = o, s.CurFrame = t, e.removeAllChildren(), e.addChild(s.Mc = new MovieClip("cmcAnimation")), s.Mc.getChild("bottomRect").inputEnabled = s.Mc.getChild("storyPic").inputEnabled = !0, s.OpenThePage(), s.Mc.getChild("skipStory").makeButton(s.EndAnimation, !0, this, !0, !1) } , s.CloseThePage = function() { s.Mc.getChild("blackCloud").y = 310, s.TwBlackRect = TweenMax.to(s.Mc.getChild("blackRect"), .7, { alpha: 1 }), s.TwBlackCloud = TweenMax.to(s.Mc.getChild("blackCloud"), .7, { y: 400 }), s.CurFrame == s.EndFrame ? TweenMax.delayedCall(.7, this.EndAnimation, this) : (s.CurFrame++, TweenMax.delayedCall(.7, this.OpenThePage, this)) } , s.OpenThePage = function() { s.Mc.getChild("storyPic").gotoAndStop(s.CurFrame), s.Mc.getChild("storyText").gotoAndStop(s.CurFrame), s.TwBlackRect = TweenMax.to(s.Mc.getChild("blackRect"), 1, { alpha: 0 }), s.TwBlackCloud = TweenMax.to(s.Mc.getChild("blackCloud"), 1, { y: 530 }), s.TwReadWait = TweenMax.delayedCall(4.2, this.CloseThePage, this) } , s.EndAnimation = function() { s.TwBlackCloud && s.TwBlackCloud.kill(), s.TwBlackRect && s.TwBlackRect.kill(), s.TwReadWait && s.TwReadWait.kill(), s.TwBlackCloud = s.TwBlackRect = null, s.Mc.remove(), s.Mc = null, s.OnComp.call(s.OnCompContext) } , s.prototype.create = function() { h5branding.google.sendScreenView("story") } , s }(e.OzState); e.Story = t }(states || (states = {})), function(t) { var e = function(l) { function m() { var e = null !== l && l.apply(this, arguments) || this; return e.shopInstText = [[345, 29, 0], [224, 253, 0], [67, 344, 0]], e.shopInstArrow = [[392, 102, 0], [393, 266, -10], [30, 366, 0]], e } return __extends(m, l), m.prototype.create = function() { var a = this; h5branding.google.sendScreenView("level_select"), this.dummyScore = 1, this.dummyMoney = 1, l.prototype.create.call(this), this.mc = new MovieClip("cmcLevels",0,0,null), this.world.addChild(this.mc), this.mc.getChild("back").makeButton(this.BacktoMenu, !0, this, !0, !1), this.mc.getChild("clearProgress").makeButton(this.clearProgress, !0, this, !0, !1), this.mc.getChild("gotoShop").makeButton(this.gotoShop, !0, this, !1, !1, !1, !0), this.mc.getChild("gotoShop").addOverDown(function() { SoundManager.getInstance().playSound("SPlateUp") }, this), h5branding.Utils.getBrandingDomain() !== h5branding.BrandingDomain.Neutral && h5branding.Branding.outGoingLinksAllowed() ? (this.mc.getChild("sponsor").makeButton(function() { a.mc.getChild("sponsor").changeFrame1(), Game.sponsor() }, !0, this, !1, !1, !0, !0), this.mc.getChild("sponsor").addOverDown(function() { SoundManager.getInstance().playSound("SPlateUp") }, this), this.mc.getChild("walkthrough").makeButton(Game.walkthrough, !0, this, !0, !1, !0)) : this.mc.getChild("walkthrough").visible = !1, this.mc.getChild("submit").visible = !1, this.mc.getChild("bonusLevelTip").visible = !1, SoundManager.getInstance().stopAllAudio(), SoundManager.PlayMenuMusic(), this.shopDialog = new MovieClip("cmcShop",0,0,"shopDialog"), this.shopDialog.getChild("back").makeButton(this.hideShop, !0, this, !1, !1), this.shopDialog.getChild("bg").inputEnabled = !0, this.sellerHead = this.shopDialog.getChild("sellerHead"), this.sellerHead.registerLabel("stay", 1), this.sellerHead.addAnimation("say1", 2, 13, -1, !1), this.sellerHead.addAnimation("say2", 14, 46, -1, !1), this.shopDialog.visible = !1, this.mc.addChild(this.shopDialog), this.clearDialog = new MovieClip("cmcClear",0,0,"clearDialog"), this.clearDialog.getChild("back").makeButton(this.hideClearProgress, !0, this, !0, !1), this.clearDialog.getChild("clearProgress").makeButton(this.actualClearProgress, !0, this, !0, !1), this.clearDialog.getChild("bg").inputEnabled = !0, this.clearDialog.visible = !1, this.mc.addChild(this.clearDialog), this.scoreDigs = [this.mc.getChild("s1"), this.mc.getChild("s2"), this.mc.getChild("s3"), this.mc.getChild("s4"), this.mc.getChild("s5")], this.moneyDigs = [this.mc.getChild("m1"), this.mc.getChild("m2"), this.mc.getChild("m3"), this.mc.getChild("m4"), this.mc.getChild("m5")], this.shopMoneyDigs = [this.shopDialog.getChild("m1"), this.shopDialog.getChild("m2"), this.shopDialog.getChild("m3"), this.shopDialog.getChild("m4"), this.shopDialog.getChild("m5")]; for (var e = this.priceIndex = 0; e < Game.NUM_LEVELS; e++) 0 < Game.levelsScore[e] && (this.priceIndex = e + 1); var o, t = function(e) { for (var t = new Array(3), i = 0; i < 3; i++) t[i] = s.shopDialog.getChild("s" + (e + 1) + (i + 1)); var r = m.Prices[e][s.priceIndex]; if (OzUtil.MakeDigits(r, t, !0, !1), 10 < t[0].currentFrame) for (i = 0; i < 3; i++) t[i].x -= 8; (o = s.shopDialog.getChild("shopItem" + (e + 1))).makeButton(function() { a.itemInputUp(e + 1) }, !0, s, !1, !1, !1, !0), o.events.onInputDown.add(function() { a.itemInputDown(e + 1) }, s), o.events.onInputOver.add(function() { a.shopTalk(e + 1) }, s), o.events.onInputOut.add(function() { a.shopSilence() }, s), o.addChild(new MovieClip("ShopItemKol",26,26,"kol")) }, s = this; for (e = 0; e < 5; e++) t(e); var i = function(e) { var t = n.mc.getChild("l" + e); if (t.gotoAndStop(e), "open" != Game.levelsStatus[e - 1]) return t.visible = !1, "continue"; var i = n.mc.getChild("lev" + e); t.x -= i.x, t.y -= i.y; var r = new MovieClip("cmcLevelStars",-40,-9,"stars"); t.addChild(r), 0 < Game.levelsScore[e - 1] ? r.gotoAndStop(Math.floor(2 + Game.levelsStars[e - 1])) : r.gotoAndStop(1); var o = t.y , s = t.y - 26; i.cf1 = function() { t.y = o } , i.cf1c = n, i.cf2 = function() { t.y = s } , i.cf2c = n, 11 != e || 50 <= Game.TotalStars() ? (i.makeButton(function() { a.playLevel(e) }, !0, n, !1, !1, !1, !0), i.addOverDown(function() { SoundManager.getInstance().playSound("SPlateUp") }, n)) : i.makeButton(function() {}, !1, n, !1, !1, !1, !1), i.addChild(t), 11 == e && (i.addOverDown(function() { a.mc.getChild("bonusLevelTip").visible = Game.TotalStars() < 50 }, n), i.events.onInputOut.add(function() { a.mc.getChild("bonusLevelTip").visible = !1 }, n)) } , n = this; for (e = 1; e < 12; e++) i(e); this.shopItemCursor = new MovieClip("ShopItemCursor",0,0,"itemCursor"), this.shopItemCursor.inputEnabled = !0, this.mc.addChild(this.shopItemCursor), this.shopItemCursor.visible = !1, this.shopDialog.getChild("zxc").visible = !Game.Touch(); var r = [this.shopDialog.getChild("zbutton"), this.shopDialog.getChild("xbutton"), this.shopDialog.getChild("cbutton")] , h = function(e) { r[e].inputEnabled = !0, r[e].input.useHandCursor = !0, r[e].events.onInputDown.add(function() { a.slotInputDown(r[e]) }, c), r[e].events.onInputUp.add(function() { a.slotInputUp() }, c), r[e].centerInputRect() } , c = this; for (e = 0; e < r.length; e++) h(e); "Shop" == m.To && (m.To = null, this.gotoShop()), this.updateMoneyAndScore() } , m.prototype.shopSilence = function() { SoundManager.getInstance().stopSound("SSalerVoice"), SoundManager.getInstance().stopSound("SSalerThankYou"), this.shopDialog.getChild("sellerText").visible = this.shopDialog.getChild("sellerBubble").visible = !1, this.sellerHead.gotoAndStopLabel("stay") } , m.prototype.shopTalk = function(e) { this.shopSilence(), this.shopDialog.getChild("sellerText").visible = this.shopDialog.getChild("sellerBubble").visible = !0, this.shopDialog.getChild("sellerText").gotoAndStop(5 + e), this.sellerHead.gotoAndPlayLabel("say2"), SoundManager.getInstance().playSound("SSalerVoice") } , m.prototype.shopThankYou = function() { this.shopSilence(), this.shopDialog.getChild("sellerText").visible = this.shopDialog.getChild("sellerBubble").visible = !0, this.shopDialog.getChild("sellerText").gotoAndStop(11), this.sellerHead.gotoAndPlayLabel("say1"), SoundManager.getInstance().playSound("SSalerThankYou") } , m.prototype.numItemsTotal = function(e) { return Game.gameShopItems[e - 1] } , m.prototype.numItemsPlaced = function(e) { var t = 0; return Game.bobZButton == e && t++, Game.bobXButton == e && t++, Game.bobCButton == e && t++, this.shopItemCursor.visible && this.shopItemCursor.currentFrame == e && t++, t } , m.prototype.slotInputDown = function(e) { 1 < e.currentFrame && (this.itemDownId = e.currentFrame - 1, this.shopItemCursor.visible = !0, this.shopItemCursor.gotoAndStop(this.itemDownId), e == this.shopDialog.getChild("zbutton") ? Game.bobZButton = 0 : e == this.shopDialog.getChild("xbutton") ? Game.bobXButton = 0 : e == this.shopDialog.getChild("cbutton") && (Game.bobCButton = 0), this.updateMoneyAndScore()) } , m.prototype.slotInputUp = function() { if (this.shopItemCursor.visible) { var e = Game.getGame().input.activePointer.worldX , t = Game.getGame().input.activePointer.worldY; Math.abs(e - this.shopDialog.getChild("zbutton").x) < 25 && Math.abs(t - this.shopDialog.getChild("zbutton").y) < 25 && (Game.bobZButton = this.itemDownId), Math.abs(e - this.shopDialog.getChild("xbutton").x) < 25 && Math.abs(t - this.shopDialog.getChild("xbutton").y) < 25 && (Game.bobXButton = this.itemDownId), Math.abs(e - this.shopDialog.getChild("cbutton").x) < 25 && Math.abs(t - this.shopDialog.getChild("cbutton").y) < 25 && (Game.bobCButton = this.itemDownId), this.itemDownId = -1, this.shopItemCursor.visible = !1, this.updateMoneyAndScore(), Game.saveCookies() } } , m.prototype.itemInputDown = function(e) { this.itemDownId = e, this.itemDownX = Game.getGame().input.activePointer.worldX, this.itemDownY = Game.getGame().input.activePointer.worldY } , m.prototype.itemInputUp = function(e) { this.shopItemCursor.visible ? this.slotInputUp() : Game.totalMoney >= m.Prices[e - 1][this.priceIndex] && this.numItemsTotal(e) < 9 && (Game.totalMoney -= m.Prices[e - 1][this.priceIndex], Game.gameShopItems[e - 1]++, this.shopThankYou()), this.itemDownId = -1, this.shopItemCursor.visible = !1, this.updateMoneyAndScore(), Game.saveCookies() } , m.prototype.update = function() { if (l.prototype.update.call(this), 0 < this.itemDownId && !this.shopItemCursor.visible && 0 < this.numItemsTotal(this.itemDownId) - this.numItemsPlaced(this.itemDownId)) { var e = this.itemDownX - Game.getGame().input.activePointer.worldX , t = this.itemDownY - Game.getGame().input.activePointer.worldY; 100 < e * e + t * t && (this.shopItemCursor.visible = !0, this.shopItemCursor.gotoAndStop(this.itemDownId), this.updateMoneyAndScore()) } this.shopItemCursor.visible && this.shopItemCursor.setxy(Game.getGame().input.activePointer.worldX, Game.getGame().input.activePointer.worldY) } , m.prototype.updateMoneyAndScore = function() { OzUtil.MakeDigits(Game.totalPoints(), this.scoreDigs, !0, !1), OzUtil.MakeDigits(Game.totalMoney, this.moneyDigs, !0, !1), OzUtil.MakeDigits(Game.totalMoney, this.shopMoneyDigs, !0, !1); for (var e = 0; e < 5; e++) { var t = this.shopDialog.getChild("shopItem" + (e + 1)) , i = this.numItemsTotal(e + 1) - this.numItemsPlaced(e + 1); t.getChild("kol").gotoAndStop(i + 1), 0 == i ? t.changeButtonFrameOffset(0) : t.changeButtonFrameOffset(2) } this.shopDialog.getChild("zbutton").gotoAndStop(Game.bobZButton + 1), this.shopDialog.getChild("zbutton").input.enabled = 0 < Game.bobZButton, this.shopDialog.getChild("xbutton").gotoAndStop(Game.bobXButton + 1), this.shopDialog.getChild("xbutton").input.enabled = 0 < Game.bobXButton, this.shopDialog.getChild("cbutton").gotoAndStop(Game.bobCButton + 1), this.shopDialog.getChild("cbutton").input.enabled = 0 < Game.bobCButton } , m.prototype.gotoShop = function() { this.mc.getChild("gotoShop").changeFrame1(), this.mc.getChild("gotoShop").input.enabled = !1, this.shopDialog.visible = !0, this.shopSilence(); this.adjustShopInst(-1), this.shopItemCursor.visible = !1 } , m.prototype.adjustShopInst = function(e) { (e < 0 || 3 < e) && (e = -1), this.shopInstI = e; var t = this.shopDialog.getChild("instArrow") , i = this.shopDialog.getChild("instText"); this.shopInstI < 0 ? t.visible = i.visible = !1 : (0 == e && t.playLoop(), i.gotoAndStop(e + 1), i.setxy(this.shopInstText[e][0], this.shopInstText[e][1]), i.degrees = this.shopInstText[e][2], t.setxy(this.shopInstArrow[e][0], this.shopInstArrow[e][1]), t.degrees = this.shopInstArrow[e][2]) } , m.prototype.hideShop = function() { var e = this; Fabrique.AdHandler.getInstance().showAd("exitCredits", function() { e.mc.getChild("gotoShop").input.enabled = !0, e.shopDialog.visible = !1, e.shopItemCursor.visible = !1 }) } , m.prototype.playLevel = function(e) { var t = this; GameplayState.currentLevel = e, Fabrique.AdHandler.getInstance().showAd("startLevel", function() { t.switchState(GameplayState.Name) }) } , m.prototype.hideClearProgress = function() { this.mc.getChild("clearProgress").input.enabled = !0, this.clearDialog.visible = !1 } , m.prototype.clearProgress = function() { this.mc.getChild("clearProgress").input.enabled = !1, this.clearDialog.visible = !0 } , m.prototype.actualClearProgress = function() { Game.clearProgress(), this.switchState(t.MenuState.Name, !1) } , m.prototype.BacktoMenu = function() { var e = this; Fabrique.AdHandler.getInstance().showAd("exitCredits", function() { e.switchState(t.MenuState.Name) }) } , m.Name = "levels", m.Prices = [[65, 65, 70, 80, 90, 100, 110, 125, 140, 160, 180, 200], [70, 70, 75, 85, 95, 110, 120, 135, 150, 170, 190, 215], [80, 80, 85, 100, 110, 125, 140, 155, 175, 195, 220, 245], [90, 90, 100, 110, 125, 140, 155, 175, 195, 220, 245, 275], [100, 100, 110, 125, 140, 155, 175, 195, 220, 245, 275, 310]], m }(t.OzState); t.LevelsState = e }(states || (states = {})); var Boot = states.Boot , Game = function() { function o() { var i = this; o.instance = this, o.LEFT_CURTAIN_OPEN_X = -390, o.RIGHT_CURTAIN_OPEN_X = o.WIDTH + 408, o.initCookies(), o.readCookies(), o.maxLevel = 21, o.currentLevel = 1, this.game = new Phaser.Game({ width: o.WIDTH, height: o.HEIGHT, renderer: Phaser.AUTO, parent: "content", forceSetTimeOut: !1 }), this.game.clearBeforeRender = !1, Phaser.Device.whenReady(function() { var e = i.game.device.desktop ? "click" : "touchstart" , t = !1; document.getElementById("content").addEventListener(e, function(e) { i.game.gameResumed(e), !1 === t && (i.game.sound.context.resume(), t = !0) }) }), h5branding.Branding.analyticsEnabled = !0; var r = h5branding.SplashLoader.getInstance({ gameId: "34d6aae0257d4e4c8068cbdfc11a8758", gameTitle: Constants.GAME_TITLE, gameName: Constants.GAME_TITLE, libs: [], version: version, barColor: "" }); r.create().then(function() { h5branding.Branding.analyticsEnabled && Fabrique.RayGun.getInstance(), i.game.state.add("pre-game", { create: i.stateCreator.bind(i), preload: i.statePreloader.bind(i) }, !0) }), Fabrique.AdHandler.getInstance().init(), h5ads.adWrapper.once(h5ads.AdEvents.AD_PROVIDER_LOADED, function() { if (r.bannerAllowed && h5branding.Branding.outGoingLinksAllowed()) { var t = h5ads.adWrapper.createBanner(h5ads.GameDistributionBannerSize.LargeRectangle); t.loadBanner().then(function() { var e = r.showBanner(); e ? e.appendChild(t.element) : t.destroy() }, function() { t.destroy() }) } }) } return o.getGame = function() { return o.instance.game } , o.fnPause = function() { null != o.instance && (o.instance.game.paused = !0) } , o.fnResume = function() { null != o.instance && (o.instance.game.paused = !1) } , o.sponsor = function() { OzUtil.GetURL("https://www.kizi.com/") } , o.walkthrough = function() { OzUtil.GetURL("https://www.agame.com/game/bob-the-robber-2") } , o.showBanner = function() { window.gdsdk.showBanner() } , o.Touch = function() { return o.isTouchInitted || (o.isTouchInitted = !0, o.isTouch = !o.getGame().device.desktop && o.getGame().device.touch), o.isTouch } , o.AdjustPad = function() { if (o.PadLeft) { o.PadLeft.x = Math.floor(Boot.PADH + 1.9), o.PadLeft.y = 0, o.PadRight.x = Boot.PADH + o.WIDTH - .9, o.PadRight.y = 0, o.CurtainContainer.x = Boot.PADH; this.instance.game } } , o.AdjustCross = function() { GameplayState.HeroCross && (GameplayState.HeroCross.x = o.PadLeft.x + GameplayState.WalkTargetX, GameplayState.HeroCross.y = GameplayState.WalkTargetY) } , o.MDown = function() { return o.getGame().input.activePointer.isDown } , o.LS = function(e) { return e + o.LocalStorageName } , o.initCookies = function() {} , o.readCookies = function() { localStorage.getItem(o.LS("levelsScore")) ? (o.levelsStatus = JSON.parse(localStorage.getItem(o.LS("levelsStatus"))), o.levelsScore = JSON.parse(localStorage.getItem(o.LS("levelsScore"))), o.levelsStars = JSON.parse(localStorage.getItem(o.LS("levelsStars"))), o.gameShopItems = JSON.parse(localStorage.getItem(o.LS("gameShopItems"))), o.totalMoney = JSON.parse(localStorage.getItem(o.LS("totalMoney"))), o.totalScore = JSON.parse(localStorage.getItem(o.LS("totalScore"))), o.bobZButton = JSON.parse(localStorage.getItem(o.LS("bobZButton"))), o.bobXButton = JSON.parse(localStorage.getItem(o.LS("bobXButton"))), o.bobCButton = JSON.parse(localStorage.getItem(o.LS("bobCButton")))) : o.clearProgress() } , o.saveCookies = function() { localStorage.setItem(o.LS("levelsStatus"), JSON.stringify(o.levelsStatus)), localStorage.setItem(o.LS("levelsScore"), JSON.stringify(o.levelsScore)), localStorage.setItem(o.LS("levelsStars"), JSON.stringify(o.levelsStars)), localStorage.setItem(o.LS("gameShopItems"), JSON.stringify(o.gameShopItems)), localStorage.setItem(o.LS("totalMoney"), JSON.stringify(o.totalMoney)), localStorage.setItem(o.LS("totalScore"), JSON.stringify(o.totalScore)), localStorage.setItem(o.LS("bobZButton"), JSON.stringify(o.bobZButton)), localStorage.setItem(o.LS("bobXButton"), JSON.stringify(o.bobXButton)), localStorage.setItem(o.LS("bobCButton"), JSON.stringify(o.bobCButton)) } , o.TotalStars = function() { for (var e = 0, t = 0; t < this.levelsStars.length; t++) 0 < this.levelsStars[t] && (e += this.levelsStars[t]); return e } , o.totalPoints = function() { for (var e = 0, t = 0; t < o.NUM_LEVELS; t++) e += 0 < o.levelsScore[t] ? o.levelsScore[t] : 0; return e } , o.MX = function(e) { return Math.round(e * o.getGame().scale.scaleFactor.x + o.getGame().world.camera.x) } , o.MY = function(e) { return Math.round(e * o.getGame().scale.scaleFactor.y) } , o.clearProgress = function() { (o.levelsStatus = new Array(o.NUM_LEVELS))[0] = "open"; for (var e = 1; e < o.NUM_LEVELS; e++) o.levelsStatus[e] = "close"; o.levelsScore = new Array(o.NUM_LEVELS); for (e = 0; e < o.NUM_LEVELS; e++) o.levelsScore[e] = 0; o.levelsStars = new Array(o.NUM_LEVELS); for (e = 0; e < o.NUM_LEVELS; e++) o.levelsStars[e] = 0; o.gameShopItems = new Array(10); for (e = 0; e < 10; e++) o.gameShopItems[e] = 0; o.bobZButton = o.bobXButton = o.bobCButton = 0, o.totalScore = 0, o.totalMoney = 0, o.saveCookies() } , o.prototype.statePreloader = function() { var t = this; libs.forEach(function(e) { t.game.load.script(e, e) }) } , o.prototype.stateCreator = function() { this.game.plugins.add(PhaserSuperStorage.StoragePlugin), this.game.plugins.add(PhaserCachebuster.CacheBuster), this.game.plugins.add(PhaserSpine.SpinePlugin), this.game.storage.forcePromises = !0, this.game.state.add(states.Boot.Name, states.Boot, !1), this.game.state.add(states.MenuState.Name, states.MenuState, !1), this.game.state.add(states.LevelsState.Name, states.LevelsState, !1), this.game.state.add(GameplayState.Name, GameplayState, !1), TweenMax.Init(this.game), MovieClip.game = this.game, this.game.state.start(states.Boot.Name), this.game.state.remove("pre-game") } , o.DEBUG = !1, o.instance = null, o.frame = 0, o.WIDTH = 640, o.HEIGHT = 520, o.WIDTH_HALF = 320, o.HEIGHT_HALF = 260, o.TILE_SIZE = 35, o.NUM_LEVELS = 11, o.JoypadLeft = null, o.JoypadRight = null, o.PadLeft = null, o.PadRight = null, o.CurtainContainer = null, o.LeftCurtain = null, o.RightCurtain = null, o.isTouchInitted = !1, o.isTouch = !1, o.LocalStorageName = "BOB2Robb3r", o }() , BobHero = function() { function e() { this.bTint = 1, this.wallLeft = !1, this.wallRight = !1, this.bobElevatorOut = !1, this.BobAction = "stay", this.BobLastDirrection = "left", this.bobActive = !0, this.currentElevatorGroupId = 0, this.currentElevatorNumber = 0, this.speedUp = !1, this.odorless = !1, this.moreStrength = !1, this.increaseWaiting = !1, this.moreMoney = !1, this.runShadow = !1, this.goldPadLock = !1, this.fadeOut = new Timer(30,0), this.fadeOutElev = new Timer(30,0), this.fadeIn = new Timer(30,0), this.strikeTimer = new Timer(200,0), this.elevatorMoveTimer = new Timer(1e3,0), this.elevatorDelayInTimer = new Timer(500,0), this.elevatorDelayOutTimer = new Timer(500,0), this.progressTimer = new Timer(100,0), this.progressFrame = 1, this.speedUpTimer = new Timer(5e3,0), this.marker = new MovieClip("BobMarker"), this.mdelta = 0, this.fadeOut.addEventListener(this.bobFadeOut, this), this.fadeOutElev.addEventListener(this.bobFadeOutElev, this), this.fadeIn.addEventListener(this.bobFadeIn, this), this.strikeTimer.addEventListener(this.bobStrikeEnd, this), this.elevatorMoveTimer.addEventListener(this.bobMoveInElevatorEnd, this), this.elevatorDelayInTimer.addEventListener(this.bobDeleayInElevatorEnd, this), this.elevatorDelayOutTimer.addEventListener(this.bobDeleayOutElevatorEnd, this), this.progressTimer.addEventListener(this.progressTick, this), this.speedUpTimer.addEventListener(this.speedUpEnd, this), this.bobInShadow = !1, this.bbody = new Phaser.Rectangle(-11,-19,22,24), this.leftHand = new Phaser.Rectangle(-14,-5,7,17), this.rightHand = new Phaser.Rectangle(7,-5,7,17), this.foot = new Phaser.Rectangle(-5,18,10,2), this.leftLightning = new Phaser.Rectangle(-552,-4,530,8), this.rightLightning = new Phaser.Rectangle(22,-4,530,8), this.lightning = new MovieClip("BobFireLightningOz"), this.lightning.visible = !1, this.lightningMask = Game.getGame().add.graphics(0, 0), this.lightningMask.beginFill(16711680), this.lightningMask.drawRect(0, 0, 530, 8), this.lightningMask.endFill(), this.lightning.addChild(this.lightningMask), this.lightning.mask = this.lightningMask, this.currentEnemyId = 0, this.currentZombieId = 0 } return e.prototype.speedUpEnd = function(e) { this.speedUpTimer.stop(), this.speedUp = !1, this.bClip.getChild("speedLight").visible = !1 } , e.prototype.progressTick = function(e) { this.bProgressSkill.gotoAndStop(Math.max(1, Math.min(100, this.progressFrame))), 55 == this.progressTimer.delay ? this.progressFrame += 20 : this.progressFrame++ } , e.prototype.bobDeleayInElevatorEnd = function(e) { this.elevatorDelayInTimer.stop(), GameplayState.Instance.findElevatorOut() > this.marker.y ? (this.mdelta = 2.3, this.elevatorMoveTimer.delay = (GameplayState.Instance.findElevatorOut() - this.marker.y) / 70 * 1e3) : (this.mdelta = -2.3, this.elevatorMoveTimer.delay = (this.marker.y - GameplayState.Instance.findElevatorOut()) / 70 * 1e3), this.marker.visible = !0, this.bClip.addEventListener(this.checkFrame, this), this.elevatorMoveTimer.start() } , e.prototype.bobDeleayOutElevatorEnd = function(e) { this.elevatorDelayOutTimer.stop(), this.bClip.visible = !0, GameplayState.Instance.elevators[this.currentElevatorNumber].getChild("bob").visible = !1, this.BobAction = "goOut", this.bClip.gotoLabel(this.BobAction), this.fadeIn.start() } , e.prototype.bobMoveInElevatorEnd = function(e) { this.bClip.removeEventListener(this.checkFrame), GameplayState.Instance.gameScreen.contains(this.marker) && (GameplayState.Instance.gameScreen.removeChild(this.marker), this.marker.visible = !1), SoundManager.getInstance().playSound("SElevatorArrive"), this.elevatorMoveTimer.stop(), this.bClip.y += 1400, this.bClip.y = GameplayState.Instance.findElevatorOut(), this.bClip.setTint(1, 0), this.bClip.visible = !1, this.bobElevatorOut = !0, GameplayState.Instance.elevators[this.currentElevatorNumber].getChild("bob").visible = !0, this.elevatorDelayOutTimer.start() } , e.prototype.stopMove = function() { this.marker.visible && (this.bClip.removeEventListener(this.checkFrame), this.elevatorMoveTimer.stop()) } , e.prototype.startMove = function() { this.marker.visible && (this.bClip.addEventListener(this.checkFrame, this), GameplayState.Instance.findElevatorOut() > this.marker.y ? (this.mdelta = 2.3, this.elevatorMoveTimer.delay = (GameplayState.Instance.findElevatorOut() - this.marker.y) / 70 * 1e3) : (this.mdelta = -2.3, this.elevatorMoveTimer.delay = (this.marker.y - GameplayState.Instance.findElevatorOut()) / 70 * 1e3), this.elevatorMoveTimer.start()) } , e.prototype.bobStrikeEnd = function(e) { this.strikeTimer.stop(), GameplayState.Instance.BobOnEnemy(), GameplayState.Instance.BobOnZombie(), this.BobAction = "stay" } , e.prototype.bobFadeOut = function(e) { this.bTint -= .1, this.bClip.setTint(0, 1 - this.bTint), this.bTint <= .10001 && (this.fadeOut.stop(), this.doorCoor = GameplayState.Instance.findDoorOut(), this.bClip.x = this.doorCoor.x, this.bClip.y = this.doorCoor.y, this.BobAction = "goOut", this.bClip.gotoLabel(this.BobAction), this.fadeIn.start()) } , e.prototype.bobFadeOutElev = function(e) { this.bTint -= .1, this.bClip.setTint(0, 1 - this.bTint), this.bTint <= .10001 && (this.fadeOutElev.stop(), GameplayState.Instance.gameScreen.addChild(this.marker), this.marker.x = this.bClip.x, this.marker.y = this.bClip.y, this.marker.visible = !1, this.bClip.y -= 1400, GameplayState.Instance.elevators[this.currentElevatorNumber].getChild("bob").visible = !0, this.elevatorDelayInTimer.start()) } , e.prototype.checkFrame = function(e) { this.marker.y += this.mdelta } , e.prototype.bobFadeIn = function(e) { this.bTint += .1, 0 == this.bobElevatorOut && this.bClip.setTint(1 - this.bTint, 0), 1.0001 <= this.bTint && (this.fadeIn.stop(), this.BobAction = "stay", this.bobElevatorOut && GameplayState.Instance.ActivateControls(), this.bobElevatorOut = !1, this.bobActive = !0) } , e.prototype.reset = function() { this.fadeOut.stop(), this.fadeOutElev.stop(), this.fadeIn.stop(), this.strikeTimer.stop(), this.elevatorMoveTimer.stop(), this.elevatorDelayInTimer.stop(), this.elevatorDelayOutTimer.stop(), this.BobAction = "stay", this.bTint = 1, this.wallLeft = !1, this.wallRight = !1, this.bobElevatorOut = !1, this.mdelta = 0, this.speedUp = !1, this.odorless = !1, this.runShadow = !1, this.marker.visible = !1, null == this.bClip.getChild("speedLight") && (this.bClip.addChild(new MovieClip("SpeedLight",7,-1,"speedLight")), this.bClip.addChildAt(new MovieClip("BobTailPlace",0,0,"tailPlace"), 0), this.addBobAnimations(this.bClip)), this.bClip.getChild("speedLight").visible = !1 } , e.prototype.gotoWorkRightLoop = function() { this.bClip.gotoLabel("workRightLoop") } , e.prototype.gotoWorkLeftLoop = function() { this.bClip.gotoLabel("workLeftLoop") } , e.prototype.gotoWorkLoop = function() { this.bClip.gotoLabel("workLoop") } , e.prototype.gotoStay = function() { this.bClip.gotoLabel("stay") } , e.prototype.addBobAnimations = function(e) { e.registerAnimation("stay", 1), e.registerAnimation("stay2", 2), e.registerAnimation("goleft", 3, 14), e.registerAnimation("goright", 15, 26), e.registerAnimation("goIn", 27, 36, -1, !1), e.registerAnimation("goOut", 37, 46, -1, !1), e.registerAnimation("climb", 47, 56), e.registerAnimation("hideIn", 57, 68, -1, !1), e.registerAnimation("hideOut", 69, 80, -1, !1), e.registerAnimation("fightright", 81, 84, -1, !1, function() { e.gotoLabel("stay") }, this), e.registerAnimation("fightleft", 85, 88, -1, !1, function() { e.gotoLabel("stay") }, this), e.registerAnimation("emptyPushRight", 89, 96, -1, !1, function() { e.gotoLabel("stay") }, this), e.registerAnimation("emptyPushLeft", 97, 104, -1, !1, function() { e.gotoLabel("stay") }, this), e.registerAnimation("work", 105, 114, -1, !1), e.registerAnimation("workLoop", 114, 129, -1, !1, function() { e.gotoAndStop(114) }, this), e.registerAnimation("workLeft", 130, 134, -1, !1), e.registerAnimation("workLeftLoop", 134, 145, -1, !1, function() { e.gotoAndStop(134) }, this), e.registerAnimation("workRight", 146, 150, -1, !1), e.registerAnimation("workRightLoop", 150, 161, -1, !1, function() { e.gotoAndStop(150) }, this), e.registerAnimation("busted", 162), e.registerAnimation("photo", 163, 192, -1, !1), e.registerAnimation("drink", 193, 230, -1, !1), e.registerAnimation("spray", 231, 268, -1, !1), e.registerAnimation("fireLeft", 269, 283, -1, !1), e.registerAnimation("fireRight", 284, 298, -1, !1) } , e.prototype.bClip_bWork_play = function() { 114 == this.bClip.currentFrame ? this.bClip.gotoLabel("workLoop") : 134 == this.bClip.currentFrame ? this.bClip.gotoLabel("workLeftLoop") : 150 == this.bClip.currentFrame && this.bClip.gotoLabel("workRightLoop") } , e }() , Camera = function() { function e(e) { this.switchTimerIdle = new Timer(3e3,0), this.prepareWarningTimer = new Timer(1e3,0), this.searchBobTimer = new Timer(100,0), this.blindTimer = new Timer(300,0), this.countDelay = new Timer(1e3,0), this.delta = 0, this.pastDelay = 0, this.IdleTimer = e.params.IdleTimer, this.Direction = e.params.Direction, this.ViewZoneLeft = e.params.ViewZoneLeft, this.ViewZoneRight = e.params.ViewZoneRight, this.cameraClip = e, this.cameraClip.gotoAndStop(7), this.switchTimerIdle.delay = this.IdleTimer, this.switchTimerIdle.addEventListener(this.cameraSwitch, this), this.switchTimerIdle.start(), this.countDelay.addEventListener(this.delayCount, this), this.countDelay.start(), this.prepareWarningTimer.addEventListener(this.warningStart, this), this.blindTimer.addEventListener(this.blindTimerEnd, this), this.passed = !1, this.cameraBlind = !1, this.stopped = !1, this.cameraClip.applyLayout("CameraOverlay"), this.cameraClip.addEventListener(this.on_enter_frame, this) } return e.prototype.on_enter_frame = function(e) { var t = this.cameraClip; this.passed && (t = this.cameraClipPassed), t.curFrameCheckAndProc(1) ? this.passed || (t.getChild("lightRight").visible = t.getChild("lightLeft").visible = !1) : t.curFrameCheckAndProc(5) ? this.passed || (t.getChild("lightLeft").visible = !0, t.getChild("lightRight").visible = !1) : t.curFrameCheckAndProc(7) ? (this.passed || (t.getChild("lightLeft").visible = !0, t.getChild("lightRight").visible = !1), this.stopped = !0) : t.curFrameCheckAndProc(8) ? this.passed || (t.getChild("lightRight").visible = t.getChild("lightLeft").visible = !1) : t.curFrameCheckAndProc(12) ? this.passed || (t.getChild("lightLeft").visible = !1, t.getChild("lightRight").visible = !0) : t.curFrameCheckAndProc(14) && (this.passed || (t.getChild("lightLeft").visible = !1, t.getChild("lightRight").visible = !0), this.stopped = !0), this.stopped || t.gotoAndStop(t.currentFrame % 14 + 1) } , e.prototype.blindTimerEnd = function(e) { this.blindTimer.stop(), this.cameraBlind = !1 } , e.prototype.warningStart = function(e) { this.prepareWarningTimer.stop(), this.passed || (this.cameraClip.getChild("lightLeft").gotoAndStop(3), this.cameraClip.getChild("lightRight").gotoAndStop(3)), this.cameraClip.getChild("sign").gotoAndStop(3), 1 < GameplayState.Instance.getLevelNumber() && (GameplayState.Instance.gameStatus = "alert"), this.switchTimerIdle.delay = 500 } , e.prototype.delayCount = function(e) { this.pastDelay += 1e3 } , e.prototype.cameraSwitch = function(e) { var t = this.cameraClip; this.passed ? t = this.cameraClipPassed : t.getChild("lightRight").visible = t.getChild("lightLeft").visible = !1, this.pastDelay = 0, "alert" != GameplayState.Instance.gameStatus && (this.switchTimerIdle.delay = this.IdleTimer), this.cameraBlind = !0, this.blindTimer.start(), this.passed, this.stopped = !1, 5 != this.cameraClip.currentFrame && 6 != this.cameraClip.currentFrame && 7 != this.cameraClip.currentFrame || (this.Direction = "right"), 12 != this.cameraClip.currentFrame && 13 != this.cameraClip.currentFrame && 14 != this.cameraClip.currentFrame || (this.Direction = "left") } , e.prototype.resetCamera = function() { this.cameraClip.getChild("sign").gotoAndStop(1), null != this.cameraClip.getChild("lightLeft") && this.cameraClip.getChild("lightLeft").gotoAndStop(1), null != this.cameraClip.getChild("lightRight") && this.cameraClip.getChild("lightRight").gotoAndStop(1), this.prepareWarningTimer.stop(), this.switchTimerIdle.delay = this.IdleTimer, this.switchTimerIdle.start() } , e.prototype.cameraPassed = function() { this.passed = !0, this.cameraClip.removeEventListener(this.on_enter_frame), this.cameraClipPassed.addEventListener(this.on_enter_frame, this), this.cameraClip.visible = !1, this.cameraClipPassed.visible = !0, this.cameraClipPassed.gotoAndStop(this.cameraClip.currentFrame) } , e.prototype.setupCameraPassed = function() { this.cameraClipPassed.visible = !1, this.cameraClipPassed.x = this.cameraClip.x, this.cameraClipPassed.y = this.cameraClip.y } , e.prototype.stopTurn = function() { this.prepareWarningTimer.stop(), this.switchTimerIdle.stop(), this.countDelay.stop() } , e.prototype.startTurn = function() { "alert" == GameplayState.Instance.gameStatus ? this.switchTimerIdle.delay = 500 : this.IdleTimer - this.pastDelay <= 0 ? (this.pastDelay = 0, this.switchTimerIdle.delay = this.IdleTimer) : this.switchTimerIdle.delay = this.IdleTimer - this.pastDelay, 5 != this.cameraClip.currentFrame && 6 != this.cameraClip.currentFrame && 7 != this.cameraClip.currentFrame || (this.Direction = "left"), 12 != this.cameraClip.currentFrame && 13 != this.cameraClip.currentFrame && 14 != this.cameraClip.currentFrame || (this.Direction = "right"), this.switchTimerIdle.start(), this.countDelay.start() } , e }() , CitrusEngine = function() { function e() { this._playing = !0, this.input = Input.Init(), this.input.addKeyAction("up", Phaser.Keyboard.UP), this.input.addKeyAction("up", Phaser.Keyboard.W), this.input.addKeyAction("left", Phaser.Keyboard.LEFT), this.input.addKeyAction("left", Phaser.Keyboard.A), this.input.addKeyAction("right", Phaser.Keyboard.RIGHT), this.input.addKeyAction("right", Phaser.Keyboard.D), this.input.addKeyAction("down", Phaser.Keyboard.DOWN), this.input.addKeyAction("down", Phaser.Keyboard.S), this.input.addKeyAction("space", Phaser.Keyboard.SPACEBAR), this.input.addKeyAction("escape", Phaser.Keyboard.ESC), this.input.addKeyAction("backspace", Phaser.Keyboard.BACKSPACE), this.input.addKeyAction("p", Phaser.Keyboard.P), this.input.addKeyAction("r", Phaser.Keyboard.R), this.input.addKeyAction("z", Phaser.Keyboard.Z), this.input.addKeyAction("x", Phaser.Keyboard.X), this.input.addKeyAction("c", Phaser.Keyboard.C), this.input.addKeyAction("next", Phaser.Keyboard.K), this.input.addKeyAction("previous", Phaser.Keyboard.J), this.input.addKeyAction("d0", Phaser.Keyboard.ZERO), this.input.addKeyAction("d0", Phaser.Keyboard.NUMPAD_0), this.input.addKeyAction("d1", Phaser.Keyboard.ONE), this.input.addKeyAction("d1", Phaser.Keyboard.NUMPAD_1), this.input.addKeyAction("d2", Phaser.Keyboard.TWO), this.input.addKeyAction("d2", Phaser.Keyboard.NUMPAD_2), this.input.addKeyAction("d3", Phaser.Keyboard.THREE), this.input.addKeyAction("d3", Phaser.Keyboard.NUMPAD_3), this.input.addKeyAction("d4", Phaser.Keyboard.FOUR), this.input.addKeyAction("d4", Phaser.Keyboard.NUMPAD_4), this.input.addKeyAction("d5", Phaser.Keyboard.FIVE), this.input.addKeyAction("d5", Phaser.Keyboard.NUMPAD_5), this.input.addKeyAction("d6", Phaser.Keyboard.SIX), this.input.addKeyAction("d6", Phaser.Keyboard.NUMPAD_6), this.input.addKeyAction("d7", Phaser.Keyboard.SEVEN), this.input.addKeyAction("d7", Phaser.Keyboard.NUMPAD_7), this.input.addKeyAction("d8", Phaser.Keyboard.EIGHT), this.input.addKeyAction("d8", Phaser.Keyboard.NUMPAD_8), this.input.addKeyAction("d9", Phaser.Keyboard.NINE), this.input.addKeyAction("d9", Phaser.Keyboard.NUMPAD_9) } return e.getInstance = function() { return null == e.instance && (e.instance = new e), e.instance } , e.Init = function() { return e.instance = new e } , Object.defineProperty(e.prototype, "playing", { get: function() { return this._playing }, set: function(e) { this._playing = e }, enumerable: !0, configurable: !0 }), e.instance = null, e }() , Enemy = function() { function e(e, t) { this.stunStars = new MovieClip("StunStars"), this.stunProgress = new MovieClip("StunProgress"), this.enemySign = new MovieClip("EnemySigns"), this.bobDetected = !1, this.enemyAction = "walk", this.enemyLastDirrection = "left", this.DistancePassed = 0, this.DistancePassedAlarm = 0, this.cutDownTimer = new Timer(3e4,0), this.stopWalkTimer = new Timer(1e3,0), this.prepareWarningTimer = new Timer(1e3,0), this.prepareWarningWalkTimer = new Timer(1500,0), this.stopWarningWalkTimer = new Timer(1500,0), this.shockTimer = new Timer(1e3,0), this.stunProgressTimer = new Timer(100,0), this.stunProgressTimerEnd = new Timer(1e3,0), this.roarTimer = new Timer(1e3,0), this.roarBegin = !0, this.countDelay = new Timer(1e3,0), this.pastDelay = 0, this.enemyClip = e, this.enemyType = t, this.fireStart = -1, this.fireEnd = -1, this.alarmStart = -1, this.alarmEnd = -1, this.biteStart = -1, this.biteEnd = -1, this.enemyClip.addEventListener(this.enter_frame, this), "Robot" == e.mc ? (this.bbody = new Phaser.Rectangle(-8,-4,16,14), e.registerAnimation("walkR", 1, 18), e.registerAnimation("standR", 19), e.registerAnimation("standL", 20), e.registerAnimation("walkL", 21, 38), e.registerAnimation("stunL", 39), e.registerAnimation("stunR", 40), e.registerAnimation("alarmR", 41), e.registerAnimation("alarmL", 42), e.registerAnimation("alarm_walkL", 43), e.registerAnimation("alarm_walkR", 44), e.registerAnimation("stand", 45)) : "Securityman" == e.mc ? (this.bbody = new Phaser.Rectangle(-8,-2,16,14), e.registerAnimation("stand", 1), e.registerAnimation("standR", 2), e.registerAnimation("standL", 3), e.registerAnimation("walkR", 4, 15), e.registerAnimation("walkL", 16, 27), e.registerAnimation("alarmR", 28, 39), e.registerAnimation("alarmL", 40, 51), this.fireStart = 52, e.registerAnimation("fireR", 52, 85, -1, !1), e.registerAnimation("fireL", 86, 119, -1, !1), this.fireEnd = 119, e.registerAnimation("alarm_walkR", 120, 131), e.registerAnimation("alarm_walkL", 132, 143), this.alarmStart = 144, e.registerAnimation("alarm_stand", 144, 192), this.alarmEnd = 192, e.registerAnimation("stunR", 193), e.registerAnimation("stunL", 194), e.registerAnimation("stunR2", 195), e.registerAnimation("stunL2", 196)) : "Dog" == e.mc ? (this.bbody = new Phaser.Rectangle(-12,-9,24,15), e.registerAnimation("stand", 1, 45), this.alarmStart = 1, e.registerAnimation("alarm_stand", 1, 45), this.alarmEnd = 45, e.registerAnimation("alarm_standR", 1, 45), e.registerAnimation("walkR", 46, 61), e.registerAnimation("walkL", 62, 77), e.registerAnimation("standR", 78), e.registerAnimation("standL", 79), e.registerAnimation("alarm_walkR", 80, 94), e.registerAnimation("alarm_walkL", 95, 109), this.biteStart = 110, e.registerAnimation("biteR", 110, 120, -1, !1), e.registerAnimation("biteL", 121, 131, -1, !1), this.biteEnd = 131, e.registerAnimation("stunR", 132), e.registerAnimation("stunL", 133), e.registerAnimation("alarm_standL", 134, 178)) : "Ambal" == e.mc ? (this.bbody = new Phaser.Rectangle(-8,-2,16,14), e.registerAnimation("stand", 1), e.registerAnimation("standR", 2), e.registerAnimation("standL", 3), e.registerAnimation("walkR", 4, 15), e.registerAnimation("walkL", 16, 27), e.registerAnimation("alarmR", 28, 47), e.registerAnimation("alarmL", 48, 67), this.fireStart = 68, e.registerAnimation("fireR", 68, 109, -1, !1), e.registerAnimation("fireL", 110, 151, -1, !1), this.fireEnd = 151, e.registerAnimation("alarm_walkR", 152, 163), e.registerAnimation("alarm_walkL", 164, 175), this.alarmStart = 176, e.registerAnimation("alarm_stand", 176, 215), this.alarmEnd = 215, e.registerAnimation("stunR", 216), e.registerAnimation("stunL", 217)) : "Oldman" == e.mc ? (this.bbody = new Phaser.Rectangle(-8,-2,16,14), e.registerAnimation("stand", 1), e.registerAnimation("walkR", 2, 13), e.registerAnimation("walkL", 14, 25), e.registerAnimation("alarmR", 26, 38), e.registerAnimation("alarmL", 39, 51), e.registerAnimation("stunL", 52), e.registerAnimation("stunR", 53), e.registerAnimation("alarm_walkR", 54, 65), e.registerAnimation("alarm_walkL", 66, 77), this.alarmStart = 78, e.registerAnimation("alarm_stand", 78, 125, -1, !1), this.alarmEnd = 125, e.registerAnimation("standR", 126), e.registerAnimation("standL", 127)) : "Policeman" == e.mc && (this.bbody = new Phaser.Rectangle(-8,-2,16,14), e.registerAnimation("stand", 1), e.registerAnimation("standR", 2), e.registerAnimation("standL", 3), e.registerAnimation("walkR", 4, 15), e.registerAnimation("walkL", 16, 27), e.registerAnimation("alarmR", 28, 47), e.registerAnimation("alarmL", 48, 67), this.fireStart = 68, e.registerAnimation("fireR", 68, 109, -1, !1), e.registerAnimation("fireL", 110, 151, -1, !1), this.fireEnd = 151, e.registerAnimation("stunR", 152), e.registerAnimation("stunL", 153), e.registerAnimation("alarm_walkR", 154, 165), e.registerAnimation("alarm_walkL", 166, 177), this.alarmStart = 178, e.registerAnimation("alarm_stand", 178, 225), this.alarmEnd = 225, e.registerAnimation("stunR2", 226), e.registerAnimation("stunL2", 227)), "Robot" == e.mc && e.addChild(new MovieClip("RobotLights",0,0,"light")), "left" == this.enemyClip.params.Direction ? (this.rightPosition = this.enemyClip.x, this.leftPosition = this.enemyClip.x - this.enemyClip.params.Distance, this.enemyLastDirrection = "right") : (this.leftPosition = this.enemyClip.x, this.rightPosition = this.enemyClip.x + this.enemyClip.params.Distance, this.enemyLastDirrection = "left"), this.stopWalkTimer.delay = this.enemyClip.params.StopMoveWaitTime, this.enemyClip.addEventListener(this.checkFrame, this), this.cutDownTimer.addEventListener(this.stunnedEnd, this), this.stopWalkTimer.addEventListener(this.stopWalkEnd, this), this.prepareWarningTimer.addEventListener(this.warningStart, this), this.prepareWarningWalkTimer.addEventListener(this.warningWalkStart, this), this.stopWarningWalkTimer.addEventListener(this.stopWarningWalkEnd, this), this.shockTimer.addEventListener(this.shockEnemyEnd, this), this.stunProgressTimer.addEventListener(this.stunProgressGo, this), this.stunProgressTimerEnd.addEventListener(this.stunProgressEnd, this), this.roarTimer.addEventListener(this.roarTimerEnd, this), this.countDelay.addEventListener(this.delayCount, this), this.enemyClip.addChild(this.stunStars), this.enemyClip.addChild(this.stunProgress), this.stunStars.visible = !1, this.stunProgress.visible = !1, this.stunStars.x = 0, this.stunStars.y -= 26, this.stunProgress.x -= 10, this.stunProgress.y -= 26, "[object Dog]" == this.enemyType ? (this.enemyShock = new MovieClip("DogShock"), this.soundEnemyAlarm = "SDogAlarm", this.soundEnemyOut = "SDogBite", this.soundEnemyWarn = "SDogWarn", this.soundEnemyBite = "SDogBite", this.cash = 0) : "[object Robot]" == this.enemyType ? (this.enemyShock = new MovieClip("RobotShock"), this.soundEnemyAlarm = "SRobotAlarm", this.soundEnemyOut = "SRobotOut", this.soundEnemyWarn = "SRobotWarn", this.cash = 0) : (this.enemyShock = new MovieClip("EnemyShock"), "[object Securityman]" == this.enemyType ? this.soundShot = "SShootBurst" : "[object Ambal]" == this.enemyType ? this.soundShot = "SShootAmbal" : this.soundShot = "SShoot"), "[object Oldman]" == this.enemyType && (this.soundEnemyAlarm = "SOldmanAlarm", this.soundEnemyOut = "SOldmanWarn", this.soundEnemyWarn = "SOldmanOut", this.cash = 5), "[object Policeman]" == this.enemyType && (this.soundEnemyAlarm = "SPolicemanAlarm", this.soundEnemyOut = "SPolicemanOut", this.soundEnemyWarn = "SPolicemanWarn", this.cash = 10), "[object Ambal]" == this.enemyType && (this.soundEnemyAlarm = "SAmbalAlarm", this.soundEnemyOut = "SAmbalOut", this.soundEnemyWarn = "SAmbalWarn", this.cash = 25), "[object Securityman]" == this.enemyType && (this.soundEnemyAlarm = "SSecurityAlarm", this.soundEnemyOut = "SSecurityOut", this.soundEnemyWarn = "SSecurityWarn", this.cash = 30, this.prepareWarningTimer.delay = 750) } return e.prototype.enter_frame = function() { if ("Robot" == this.enemyClip.mc) { var e = this.enemyClip , t = e.currentFrame , i = e.getChild("light"); 1 <= t && t <= 19 || 41 == t || 44 == t || 45 == t ? (i.visible = !0, i.scaleX = 1) : 20 <= t && t <= 38 || 42 == t || 43 == t ? (i.visible = !0, i.scaleX = -1) : i.visible = !1 } } , e.prototype.delayCount = function(e) { this.pastDelay += 1e3 } , e.prototype.roarTimerEnd = function(e) { this.roarTimer.stop(), this.roarBegin = !0 } , e.prototype.stunProgressGo = function(e) { this.stunProgress.gotoAndStop(Math.min(100, this.stunProgress.currentFrame + 1)) } , e.prototype.stunProgressEnd = function(e) { this.stunProgressTimerEnd.stop(), this.stunProgress.visible = !1, this.stunProgress.gotoAndStop(1), this.enemyClip.addEventListener(this.checkFrame, this), this.wakeUpFromStunned() } , e.prototype.shockEnemyEnd = function(e) { this.shockTimer.stop(), GameplayState.Instance.gameScreen.contains(this.enemyShock) && GameplayState.Instance.gameScreen.removeChild(this.enemyShock), this.enemyClip.visible = !0, this.stunnedBegin() } , e.prototype.warningWalkStart = function(e) { this.prepareWarningWalkTimer.stop(), this.enemyAction = "warning_walk" } , e.prototype.warningStart = function(e) { this.prepareWarningTimer.stop(), this.bobCoor = GameplayState.Instance.getBobCoor(), "[object Robot]" != this.enemyType && (this.bobCoor.x < this.enemyClip.x ? this.enemyLastDirrection = "left" : this.enemyLastDirrection = "right"), "[object Dog]" == this.enemyType && (SoundManager.getInstance().playSound(this.soundEnemyAlarm), this.enemyAction = "zombieAttack", this.DistancePassedAlarm = 0, this.bobCoor = GameplayState.Instance.getBobCoor(), this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20), "[object Robot]" == this.enemyType && this.enemyClip.getChild("light").gotoAndStop(3), this.enemySign.gotoAndStop(3), 1 < GameplayState.Instance.getLevelNumber() && (GameplayState.Instance.gameStatus = "alert") } , e.prototype.stopWarningWalkEnd = function(e) { this.stopWarningWalkTimer.stop(), "alert" != GameplayState.Instance.gameStatus && (this.enemyAction = "walk") } , e.prototype.stopWalkEnd = function(e) { this.stopWalkTimer.stop(), this.enemyAction = "walk" } , e.prototype.stunnedEnd = function(e) { this.cutDownTimer.stop(), this.stunProgressTimer.stop(), this.countDelay.stop(), this.pastDelay = 0, this.stunStars.visible = !1, this.stunProgressTimerEnd.start() } , e.prototype.wakeUpFromStunned = function(e) { void 0 === e && (e = "stun"), "stun" == e ? "[object Robot]" != this.enemyType ? (this.enemyAction = "seeAbout", this.enemyClip.gotoLabel("alarm_stand"), this.enemySign.gotoAndStop(2)) : this.enemyAction = "walk" : ("warning" != GameplayState.Instance.gameStatus && "silent" != GameplayState.Instance.gameStatus || (this.enemyAction = "walk"), "alert" == GameplayState.Instance.gameStatus && (this.enemySign.gotoAndStop(3), "[object Oldman]" == this.enemyType ? this.enemyAction = "alarm_walk" : this.enemyAction = "waitForWarningWalk")) } , e.prototype.stunnedBegin = function() { this.enemySign.gotoAndStop(1), this.prepareWarningTimer.stop(), this.stopWalkTimer.stop(), this.cutDownTimer.stop(), this.stunProgressTimerEnd.stop(), this.enemyClip.removeEventListener(this.checkFrame), SoundManager.getInstance().playSound(this.soundEnemyOut), this.cutDownTimer.delay = 3e4, "[object Securityman]" == this.enemyType && (this.cutDownTimer.delay = 15e3), this.cutDownTimer.start(), "[object Policeman]" == this.enemyType || "[object Securityman]" == this.enemyType ? .5 < 1 * Math.random() ? "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("stunR") : this.enemyClip.gotoLabel("stunL") : "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("stunR2") : this.enemyClip.gotoLabel("stunL2") : "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("stunR") : this.enemyClip.gotoLabel("stunL"), this.stunStars.visible = !0, this.stunStars.playLoop(), this.stunProgress.visible = !0, this.stunProgress.gotoAndStop(1), this.stunProgressTimer.delay = this.cutDownTimer.delay / 100, this.stunProgressTimer.start(), this.countDelay.start(), this.enemyAction = "stun" } , e.prototype.checkFrame = function(e) { if (this.isBobDetected() && ("warning" == GameplayState.Instance.gameStatus && "zombieAttack" != this.enemyAction && ("left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("standR") : this.enemyClip.gotoLabel("standL")), "alert" == GameplayState.Instance.gameStatus)) { if ("[object Oldman]" == this.enemyType && ("left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("alarmR") : this.enemyClip.gotoLabel("alarmL")), "[object Policeman]" == this.enemyType || "[object Ambal]" == this.enemyType || "[object Securityman]" == this.enemyType) { if (this.bobCoor.x < this.enemyClip.x ? this.enemyLastDirrection = "right" : this.enemyLastDirrection = "left", this.enemyClip.currentFrame >= this.fireStart && this.enemyClip.currentFrame <= this.fireEnd) { var t = this.fireStart + (this.fireEnd - this.fireStart + 1) / 2 , i = void 0 , r = void 0 , o = void 0; o = this.enemyClip.currentFrame < t ? (i = this.enemyClip.currentFrame - this.fireStart + 1, r = this.fireStart, t - 1) : (i = this.enemyClip.currentFrame - t + 1, r = t, this.fireEnd), 29 != i && 33 != i && 37 != i || "[object Policeman]" != this.enemyType ? 20 == i && "[object Securityman]" == this.enemyType ? SoundManager.getInstance().playSound(this.soundShot) : 28 != i && 32 != i && 36 != i || "[object Ambal]" != this.enemyType || SoundManager.getInstance().playSound(this.soundShot) : SoundManager.getInstance().playSound(this.soundShot), this.enemyClip.currentFrame == o && (this.enemyClip.gotoAndStop(r), GameplayState.Instance.totalAlerts = 4) } "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("fireR") : this.enemyClip.gotoLabel("fireL") } "[object Dog]" == this.enemyType && (this.bobCoor.x < this.enemyClip.x ? this.enemyLastDirrection = "right" : this.enemyLastDirrection = "left", this.enemySign.gotoAndStop(3), this.enemyAction = "zombieAttack"), this.roarBegin && (SoundManager.getInstance().playSound(this.soundEnemyAlarm), this.roarTimer.start(), this.roarBegin = !1) } if ("seeAbout" == this.enemyAction) { var s = this.enemyClip.currentFrame - this.alarmStart + 1; "[object Policeman]" != this.enemyType && "[object Oldman]" != this.enemyType || (this.enemyLastDirrection = 1 <= s && s < 24 ? "left" : "right", 47 < s && this.wakeUpFromStunned("endSeeAbout")), "[object Ambal]" == this.enemyType && (this.enemyLastDirrection = 1 <= s && s < 24 ? "left" : "right", 39 < s && this.wakeUpFromStunned("endSeeAbout")), "[object Dog]" == this.enemyType && (this.enemyLastDirrection = 1 <= s && s < 19 ? "left" : "right", 39 < s && this.wakeUpFromStunned("endSeeAbout")), "[object Securityman]" == this.enemyType && (this.enemyLastDirrection = 1 <= s && s < 24 ? "left" : "right", 48 < s && this.wakeUpFromStunned("endSeeAbout")) } if ("walk" != this.enemyAction || this.bobDetected || ("left" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("walkR"), this.enemyClip.x += 1, this.DistancePassed += 1, "[object Securityman]" == this.enemyType && (this.enemyClip.x += .5, this.DistancePassed += .5), this.enemySign.x = this.enemyClip.x), "right" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("walkL"), this.enemyClip.x -= 1, this.DistancePassed -= 1, "[object Securityman]" == this.enemyType && (this.enemyClip.x -= .5, this.DistancePassed -= .5), this.enemySign.x = this.enemyClip.x), ("right" == this.enemyLastDirrection && this.enemyClip.x <= this.leftPosition || "left" == this.enemyLastDirrection && this.enemyClip.x >= this.rightPosition) && (this.DistancePassed = 0, "left" == this.enemyLastDirrection ? this.enemyLastDirrection = "right" : this.enemyLastDirrection = "left", "[object Dog]" == this.enemyType ? "left" == this.enemyLastDirrection ? this.enemyAction = "alarm_standL" : this.enemyAction = "alarm_standR" : this.enemyAction = "stand", this.enemyClip.gotoLabel(this.enemyAction), this.stopWalkTimer.start())), "waitForWarningWalk" != this.enemyAction || this.bobDetected || ("[object Oldman]" == this.enemyType ? (this.enemySign.gotoAndStop(2), this.enemyAction = "alarm_walk", "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("alarm_walkR") : this.enemyClip.gotoLabel("alarm_walkL")) : (this.enemyClip.gotoLabel("alarm_stand"), this.enemySign.gotoAndStop(2))), "alarm_walk" == this.enemyAction && !this.bobDetected && "[object Oldman]" == this.enemyType) { this.enemyClip.gotoLabel("alarm_stand"), this.enemySign.gotoAndStop(2); s = this.enemyClip.currentFrame - this.alarmStart + 1; this.enemyLastDirrection = 1 <= s && s < 24 ? "left" : "right" } "warning_walk" != this.enemyAction || this.bobDetected || "[object Policeman]" != this.enemyType && "[object Ambal]" != this.enemyType && "[object Securityman]" != this.enemyType || (this.enemySign.gotoAndStop(2), "left" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("alarm_walkR"), this.enemyClip.x += 1, this.DistancePassedAlarm += 1, this.DistancePassed += 1, this.enemySign.x = this.enemyClip.x), "right" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("alarm_walkL"), this.enemyClip.x -= 1, this.DistancePassedAlarm -= 1, this.DistancePassed -= 1, this.enemySign.x = this.enemyClip.x), (Math.abs(this.DistancePassedAlarm) >= this.bobDetectedPoint || Math.abs(this.DistancePassed) >= this.enemyClip.params.Distance) && (this.DistancePassedAlarm = 0, this.enemyAction = "waitForWarningWalk", this.stopWarningWalkTimer.start())), "zombieAttack" == this.enemyAction && ("left" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("alarm_walkR"), this.enemyClip.x += 3, this.DistancePassedAlarm += 3, this.DistancePassed += 3, this.enemySign.x = this.enemyClip.x), "right" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("alarm_walkL"), this.enemyClip.x -= 3, this.DistancePassedAlarm -= 3, this.DistancePassed -= 3, this.enemySign.x = this.enemyClip.x), (Math.abs(this.DistancePassedAlarm) >= this.bobDetectedPoint || Math.abs(this.DistancePassed) >= this.enemyClip.params.Distance) && (this.DistancePassedAlarm = 0, this.enemyAction = "waitForWarningWalk", this.stopWarningWalkTimer.start())) } , e.prototype.catchBob = function() { GameplayState.Instance.bobBitten = !0, "[object Dog]" == this.enemyType ? (this.enemyClip.removeEventListener(this.checkFrame), SoundManager.getInstance().playSound(this.soundEnemyBite), "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("biteR") : this.enemyClip.gotoLabel("biteL"), this.enemyClip.addEventListener(this.biteUpdate, this)) : ("left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("alarmR") : this.enemyClip.gotoLabel("alarmL"), GameplayState.Instance.totalAlerts = 4) } , e.prototype.biteUpdate = function(e) { if (this.enemyClip.currentFrame < this.biteStart || this.enemyClip.currentFrame > this.biteEnd) this.enemyClip.removeEventListener(this.biteUpdate); else { var t = this.biteStart + (this.biteEnd - this.biteStart + 1) / 2; this.enemyClip.currentFrame != t - 1 && this.enemyClip.currentFrame != this.biteEnd || (GameplayState.Instance.totalAlerts = 4, this.enemyClip.removeEventListener(this.biteUpdate)) } } , e.prototype.isBobDetected = function(e) { if (void 0 === e && (e = !1), this.bobCoor = GameplayState.Instance.getBobCoor(), this.bobDetected = !1, GameplayState.Instance.isBobHide()) return !1; if ("stun" == this.enemyAction || "shock" == this.enemyAction) return !1; if (this.bobCoor.x < this.rightPosition + 40 && this.bobCoor.x > this.leftPosition - 40 && Math.abs(this.enemyClip.y - this.bobCoor.y) < 30) { if ("left" == this.enemyLastDirrection && this.bobCoor.x > this.enemyClip.x) return this.bobDetected = !0, "seeAbout" == this.enemyAction && this.wakeUpFromStunned("endSeeAbout"), this.prepareWarningWalkTimer.stop(), this.stopWarningWalkTimer.stop(), this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20, !0; if ("right" == this.enemyLastDirrection && this.bobCoor.x < this.enemyClip.x) return this.bobDetected = !0, "seeAbout" == this.enemyAction && this.wakeUpFromStunned("endSeeAbout"), this.prepareWarningWalkTimer.stop(), this.stopWarningWalkTimer.stop(), this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20, !0; if (0 == e && (Math.abs(this.bobCoor.x - this.enemyClip.x) < 10 || "alert" == GameplayState.Instance.gameStatus)) return "seeAbout" == this.enemyAction && this.wakeUpFromStunned("endSeeAbout"), this.bobDetected = !0, this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20, !0 } return !1 } , e.prototype.shockEnemy = function() { this.enemyClip.visible = !1, this.enemyAction = "shock", this.stopWalkTimer.stop(), this.enemyClip.removeEventListener(this.checkFrame), GameplayState.Instance.gameScreen.addChild(this.enemyShock), this.enemyShock.x = this.enemyClip.x, this.enemyShock.y = this.enemyClip.y, this.shockTimer.start() } , e.prototype.setSearchBobMode = function() { this.bobCoor = GameplayState.Instance.getBobCoor(), "[object Oldman]" == this.enemyType && (this.enemySign.gotoAndStop(2), this.enemyAction = "alarm_walk", "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("alarm_walkR") : this.enemyClip.gotoLabel("alarm_walkL")), "[object Policeman]" != this.enemyType && "[object Ambal]" != this.enemyType && "[object Securityman]" != this.enemyType || (this.enemySign.gotoAndStop(2), this.enemyAction = "waitForWarningWalk", 50 < Math.abs(this.bobCoor.x - this.enemyClip.x) && this.prepareWarningWalkTimer.start()), this.DistancePassedAlarm = 0 } , e.prototype.resetEnemyAfterAlert = function() { 1 != this.enemySign.currentFrame && "seeAbout" != this.enemyAction && 0 == this.stunProgress.visible && (this.enemySign.gotoAndStop(1), this.prepareWarningTimer.stop(), this.enemyAction = "walk", "[object Robot]" == this.enemyType && (this.enemyClip.getChild("light").gotoAndStop(1), this.enemySign.gotoAndStop(1), this.enemyAction = "walk")) } , e.prototype.stopAnyActions = function() { this.enemyClip.removeEventListener(this.checkFrame), "stun" == this.enemyAction ? (this.stunProgressTimer.stop(), this.countDelay.stop(), this.cutDownTimer.stop()) : this.enemyClip.gotoLabel("stand") } , e.prototype.startActions = function() { this.enemyClip.addEventListener(this.checkFrame, this), "stun" == this.enemyAction && (this.cutDownTimer.delay - this.pastDelay <= 0 ? this.cutDownTimer.delay = 0 : this.cutDownTimer.delay = this.cutDownTimer.delay - this.pastDelay, this.pastDelay = 0, this.cutDownTimer.start(), this.stunProgressTimer.start(), this.countDelay.start()) } , e.prototype.dispose = function() { this.cutDownTimer.stop(), this.stopWalkTimer.stop(), this.prepareWarningTimer.stop(), this.prepareWarningWalkTimer.stop(), this.stopWarningWalkTimer.stop(), this.shockTimer.stop(), this.stunProgressTimer.stop(), this.enemyClip.removeEventListener(this.checkFrame), this.enemyClip = null } , e }() , FlyingMoney = function() { function e(e) { this.fClip = new MovieClip("FlyMoney"), this.fClip.playOnce(), this.faClip = new MovieClip, this.speed = 15, this.amount = e, this.bobCoor = GameplayState.Instance.getBobCoor(), GameplayState.Instance.messageScreen.addChild(this.fClip), this.fClip.x = this.bobCoor.x, this.fClip.y = this.bobCoor.y, this.dx = this.fClip.x - 134, this.dy = this.fClip.y - 70, this.angle = Math.atan2(this.dx, this.dy), this.distance = Math.sqrt(this.dx * this.dx + this.dy * this.dy), GameplayState.Instance.messageScreen.addChild(this.faClip), this.faClip.x = this.bobCoor.x, this.faClip.y = this.bobCoor.y - 20; for (var t = this.amount, i = 0, r = new Array; 9 < t; ) { new MovieClip("ctxtMenuScore",0,0).gotoAndStop(t % 10 + 1), r.push(new MovieClip("ctxtMenuScore",0,0)), r[i++].gotoAndStop(t % 10 + 1), t = Math.floor(t / 10) } r.push(new MovieClip("ctxtMenuScore",0,0)), r[i++].gotoAndStop(t % 10 + 1); for (var o = -(20 + 16 * (i - 1)) / 2, s = i - 1; 0 <= s; s--) this.faClip.addChild(r[s]), r[s].setxy(o, 0), o += 16; this.fClip.addEventListener(this.checkFrame, this), this.faFrame = 1, this.faClip.alpha = 0, this.faClip.addEventListener(this.checkFaFrame, this) } return e.prototype.checkFaFrame = function(e) { this.faFrame++, this.faFrame < 10 || (this.faFrame < 23 ? (this.faClip.alpha = Math.min(1, this.faClip.alpha + .05), this.faClip.y -= 1) : this.faFrame < 28 || (this.faFrame < 33 ? (this.faClip.alpha = Math.max(0, this.faClip.alpha - .2), this.faClip.y += .5) : (this.faClip.removeEventListener(this.checkFaFrame), GameplayState.Instance.messageScreen.removeChild(this.faClip)))) } , e.prototype.checkFrame = function(e) { 11 == this.fClip.currentFrame && (this.distance -= this.speed, this.fClip.x = 134 + this.distance * Math.sin(this.angle), this.fClip.y = 70 + this.distance * Math.cos(this.angle), this.distance < 2 && (GameplayState.Instance.moneyCollected += this.amount, GameplayState.Instance.calcMoney(), this.fClip.removeEventListener(this.checkFrame), GameplayState.Instance.messageScreen.removeChild(this.fClip))) } , e }() , Levels = function() { function e() {} return e.data = { frames: [{ filename: "Blades0000", frame: { x: 3938, y: 950, w: 34, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0001", frame: { x: 3938, y: 950, w: 34, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0002", frame: { x: 3892, y: 1119, w: 35, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -15.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0003", frame: { x: 3892, y: 1119, w: 35, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -15.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0004", frame: { x: 2865, y: 1438, w: 36, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0005", frame: { x: 2865, y: 1438, w: 36, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0006", frame: { x: 2931, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0007", frame: { x: 2931, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0008", frame: { x: 2968, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0009", frame: { x: 2968, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0010", frame: { x: 3938, y: 950, w: 34, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0011", frame: { x: 3938, y: 950, w: 34, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0012", frame: { x: 3938, y: 950, w: 34, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0013", frame: { x: 3938, y: 950, w: 34, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0014", frame: { x: 3938, y: 950, w: 34, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0015", frame: { x: 3892, y: 1119, w: 35, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -15.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0016", frame: { x: 3892, y: 1119, w: 35, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -15.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0017", frame: { x: 3892, y: 1119, w: 35, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -15.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0018", frame: { x: 3892, y: 1119, w: 35, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -15.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0019", frame: { x: 3892, y: 1119, w: 35, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -15.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0020", frame: { x: 2865, y: 1438, w: 36, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0021", frame: { x: 2865, y: 1438, w: 36, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0022", frame: { x: 2865, y: 1438, w: 36, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0023", frame: { x: 2865, y: 1438, w: 36, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0024", frame: { x: 2865, y: 1438, w: 36, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0025", frame: { x: 2931, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0026", frame: { x: 2931, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0027", frame: { x: 2931, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0028", frame: { x: 2931, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0029", frame: { x: 2931, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0030", frame: { x: 2968, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0031", frame: { x: 2968, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0032", frame: { x: 2968, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0033", frame: { x: 2968, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "Blades0034", frame: { x: 2968, y: 1438, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.6, y: -17.8, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "BobBack0000", frame: { x: 4012, y: 378, w: 65, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -27.7, w: 65, h: 55 }, sourceSize: { w: 65, h: 55 } }, { filename: "BobInElevatorSmall0000", frame: { x: 3861, y: 3, w: 204, h: 137 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -75.6, y: -136.6, w: 204, h: 137 }, sourceSize: { w: 204, h: 137 } }, { filename: "Captive0000", frame: { x: 3896, y: 950, w: 39, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 39, h: 52 }, sourceSize: { w: 39, h: 52 } }, { filename: "Captive0001", frame: { x: 2810, y: 1446, w: 24, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7, y: 22, w: 39, h: 52 }, sourceSize: { w: 39, h: 52 } }, { filename: "Codelock0000", frame: { x: 2897, y: 1516, w: 19, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9, y: -11, w: 19, h: 23 }, sourceSize: { w: 19, h: 23 } }, { filename: "Computer0000", frame: { x: 3042, y: 1522, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -10, w: 20, h: 20 }, sourceSize: { w: 20, h: 20 } }, { filename: "DoorSensor0000", frame: { x: 4012, y: 305, w: 55, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.5, y: -35, w: 55, h: 70 }, sourceSize: { w: 55, h: 70 } }, { filename: "DoorSteel10000", frame: { x: 3980, y: 992, w: 39, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10001", frame: { x: 3966, y: 1101, w: 35, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10002", frame: { x: 3951, y: 1320, w: 30, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10003", frame: { x: 3979, y: 1403, w: 27, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10004", frame: { x: 2255, y: 1503, w: 22, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10005", frame: { x: 2411, y: 1503, w: 18, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10006", frame: { x: 2623, y: 1509, w: 13, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10007", frame: { x: 2851, y: 1516, w: 9, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10008", frame: { x: 2053, y: 1542, w: 5, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10009", frame: { x: 3212, y: 969, w: 3, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -32, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10010", frame: { x: 4003, y: 619, w: 43, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10011", frame: { x: 3893, y: 879, w: 38, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10012", frame: { x: 3930, y: 1098, w: 33, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10013", frame: { x: 3162, y: 1344, w: 28, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10014", frame: { x: 2838, y: 1438, w: 24, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10015", frame: { x: 4070, y: 1317, w: 20, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10016", frame: { x: 3835, y: 1508, w: 16, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10017", frame: { x: 3967, y: 1509, w: 11, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 13, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10018", frame: { x: 4087, y: 1194, w: 6, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel10019", frame: { x: 4091, y: 113, w: 2, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel20000", frame: { x: 4e3, y: 878, w: 42, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19, y: -26, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20001", frame: { x: 3930, y: 1043, w: 37, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19, y: -26, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20002", frame: { x: 4009, y: 1258, w: 33, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -25, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20003", frame: { x: 3918, y: 1366, w: 28, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -25, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20004", frame: { x: 2904, y: 1438, w: 24, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20005", frame: { x: 2304, y: 1503, w: 20, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20006", frame: { x: 2508, y: 1509, w: 14, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20007", frame: { x: 2800, y: 1516, w: 10, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20008", frame: { x: 2940, y: 1539, w: 5, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20009", frame: { x: 3212, y: 969, w: 3, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -32, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorSteel20010", frame: { x: 4012, y: 143, w: 47, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -28, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20011", frame: { x: 4049, y: 556, w: 41, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -27, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20012", frame: { x: 3853, y: 992, w: 36, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -27, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20013", frame: { x: 4004, y: 1104, w: 31, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5, y: -27, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20014", frame: { x: 3886, y: 1368, w: 26, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -27, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20015", frame: { x: 4036, y: 1431, w: 22, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4, y: -26, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20016", frame: { x: 2470, y: 1503, w: 16, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9, y: -26, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20017", frame: { x: 2759, y: 1509, w: 11, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 14, y: -26, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20018", frame: { x: 3092, y: 1522, w: 7, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18, y: -26, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorSteel20019", frame: { x: 4062, y: 143, w: 2, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23, y: -26, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorlabDoor0000", frame: { x: 3162, y: 969, w: 39, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0001", frame: { x: 3892, y: 1064, w: 35, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0002", frame: { x: 4005, y: 1313, w: 31, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0003", frame: { x: 3883, y: 1426, w: 26, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0004", frame: { x: 3135, y: 1480, w: 22, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0005", frame: { x: 2327, y: 1503, w: 18, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0006", frame: { x: 4080, y: 362, w: 13, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0007", frame: { x: 4057, y: 1510, w: 9, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0008", frame: { x: 4088, y: 1430, w: 5, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0009", frame: { x: 3212, y: 969, w: 3, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -32, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0010", frame: { x: 4003, y: 497, w: 43, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -28, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0011", frame: { x: 3852, y: 879, w: 38, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0012", frame: { x: 4059, y: 436, w: 34, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -11, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0013", frame: { x: 3886, y: 1309, w: 29, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0014", frame: { x: 4061, y: 1430, w: 24, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0015", frame: { x: 4069, y: 1488, w: 21, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 3, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0016", frame: { x: 2432, y: 1503, w: 16, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0017", frame: { x: 2731, y: 1509, w: 11, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 13, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0018", frame: { x: 4059, y: 204, w: 6, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor0019", frame: { x: 4091, y: 3, w: 2, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20000", frame: { x: 3853, y: 938, w: 40, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20001", frame: { x: 4049, y: 1051, w: 36, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20002", frame: { x: 3162, y: 1290, w: 32, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20003", frame: { x: 4061, y: 1376, w: 27, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20004", frame: { x: 2230, y: 1503, w: 22, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20005", frame: { x: 3197, y: 1290, w: 18, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20006", frame: { x: 2607, y: 1509, w: 13, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20007", frame: { x: 2826, y: 1516, w: 10, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20008", frame: { x: 4088, y: 1051, w: 5, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20009", frame: { x: 3212, y: 969, w: 3, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -32, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20010", frame: { x: 4049, y: 497, w: 44, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20011", frame: { x: 4049, y: 615, w: 39, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20012", frame: { x: 3162, y: 1024, w: 35, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -11, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20013", frame: { x: 3918, y: 1309, w: 30, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20014", frame: { x: 3825, y: 1425, w: 25, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20015", frame: { x: 2280, y: 1503, w: 21, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 3, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20016", frame: { x: 3816, y: 1508, w: 16, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20017", frame: { x: 3953, y: 1509, w: 11, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 13, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20018", frame: { x: 1903, y: 1524, w: 7, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorlabDoor20019", frame: { x: 4091, y: 58, w: 2, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0000", frame: { x: 3975, y: 933, w: 40, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0001", frame: { x: 3970, y: 1046, w: 36, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0002", frame: { x: 4061, y: 937, w: 32, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0003", frame: { x: 3853, y: 1373, w: 27, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0004", frame: { x: 2107, y: 1503, w: 22, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0005", frame: { x: 2348, y: 1503, w: 18, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0006", frame: { x: 2559, y: 1509, w: 13, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0007", frame: { x: 2787, y: 1516, w: 10, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0008", frame: { x: 3152, y: 1535, w: 5, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0009", frame: { x: 3212, y: 969, w: 3, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -32, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0010", frame: { x: 4012, y: 204, w: 44, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -28, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0011", frame: { x: 3958, y: 832, w: 39, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0012", frame: { x: 4022, y: 992, w: 35, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -11, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0013", frame: { x: 4045, y: 1258, w: 30, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0014", frame: { x: 3915, y: 1421, w: 25, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0015", frame: { x: 2182, y: 1503, w: 21, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 3, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0016", frame: { x: 2451, y: 1503, w: 16, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0017", frame: { x: 2745, y: 1509, w: 11, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 13, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0018", frame: { x: 3082, y: 1522, w: 7, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorpoliceDoor0019", frame: { x: 4091, y: 113, w: 2, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10000", frame: { x: 4018, y: 937, w: 40, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10001", frame: { x: 3853, y: 1051, w: 36, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10002", frame: { x: 3970, y: 1265, w: 32, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10003", frame: { x: 3949, y: 1374, w: 27, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10004", frame: { x: 2132, y: 1503, w: 22, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10005", frame: { x: 2369, y: 1503, w: 18, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10006", frame: { x: 2575, y: 1509, w: 13, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10007", frame: { x: 2813, y: 1516, w: 10, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10008", frame: { x: 2948, y: 1539, w: 5, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10009", frame: { x: 3212, y: 969, w: 3, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -32, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10010", frame: { x: 4012, y: 436, w: 44, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -28, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10011", frame: { x: 4045, y: 878, w: 39, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10012", frame: { x: 3892, y: 1005, w: 35, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -11, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10013", frame: { x: 3853, y: 1259, w: 30, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10014", frame: { x: 3797, y: 1425, w: 25, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10015", frame: { x: 2206, y: 1503, w: 21, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 3, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10016", frame: { x: 2489, y: 1503, w: 16, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10017", frame: { x: 2773, y: 1509, w: 11, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 13, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10018", frame: { x: 3102, y: 1522, w: 7, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor10019", frame: { x: 4091, y: 168, w: 2, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20000", frame: { x: 4018, y: 937, w: 40, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20001", frame: { x: 3853, y: 1051, w: 36, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20002", frame: { x: 3970, y: 1265, w: 32, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20003", frame: { x: 3949, y: 1374, w: 27, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20004", frame: { x: 2132, y: 1503, w: 22, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20005", frame: { x: 2369, y: 1503, w: 18, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20006", frame: { x: 2575, y: 1509, w: 13, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20007", frame: { x: 2813, y: 1516, w: 10, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20008", frame: { x: 2948, y: 1539, w: 5, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20009", frame: { x: 3212, y: 969, w: 3, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -32, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20010", frame: { x: 4012, y: 436, w: 44, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -28, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20011", frame: { x: 3934, y: 891, w: 38, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -27, w: 51, h: 66 }, sourceSize: { w: 51, h: 66 } }, { filename: "DoorwoodDoor20012", frame: { x: 3930, y: 1098, w: 33, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20013", frame: { x: 4004, y: 1104, w: 31, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5, y: -27, w: 52, h: 66 }, sourceSize: { w: 52, h: 66 } }, { filename: "DoorwoodDoor20014", frame: { x: 3915, y: 1421, w: 25, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20015", frame: { x: 4069, y: 1488, w: 21, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 3, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20016", frame: { x: 3816, y: 1508, w: 16, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20017", frame: { x: 2773, y: 1509, w: 11, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 13, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20018", frame: { x: 3102, y: 1522, w: 7, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor20019", frame: { x: 4091, y: 223, w: 2, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23, y: -26, w: 51, h: 66 }, sourceSize: { w: 51, h: 66 } }, { filename: "DoorwoodDoor30000", frame: { x: 3938, y: 988, w: 39, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30001", frame: { x: 3162, y: 1082, w: 35, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30002", frame: { x: 3853, y: 1318, w: 30, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30003", frame: { x: 4031, y: 1376, w: 27, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30004", frame: { x: 2157, y: 1503, w: 22, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30005", frame: { x: 2390, y: 1503, w: 18, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30006", frame: { x: 2591, y: 1509, w: 13, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30007", frame: { x: 2839, y: 1516, w: 9, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30008", frame: { x: 2956, y: 1539, w: 5, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -25, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30009", frame: { x: 3212, y: 969, w: 3, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -32, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30010", frame: { x: 4003, y: 558, w: 43, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -28, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30011", frame: { x: 3934, y: 891, w: 38, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -27, w: 51, h: 66 }, sourceSize: { w: 51, h: 66 } }, { filename: "DoorwoodDoor30012", frame: { x: 4060, y: 992, w: 33, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30013", frame: { x: 4039, y: 1317, w: 28, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30014", frame: { x: 4009, y: 1431, w: 24, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -27, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30015", frame: { x: 4070, y: 305, w: 20, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30016", frame: { x: 3797, y: 1508, w: 16, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30017", frame: { x: 3922, y: 1509, w: 11, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 13, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30018", frame: { x: 4087, y: 860, w: 6, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "DoorwoodDoor30019", frame: { x: 4091, y: 615, w: 2, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23, y: -26, w: 50, h: 66 }, sourceSize: { w: 50, h: 66 } }, { filename: "Effects0000", frame: { x: 2876, y: 1551, w: 10, h: 10 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 10, h: 10 }, sourceSize: { w: 10, h: 10 } }, { filename: "ElectricPanel0000", frame: { x: 4009, y: 1163, w: 26, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13, y: -15, w: 44, h: 32 }, sourceSize: { w: 44, h: 32 } }, { filename: "ElectricPanel0001", frame: { x: 3984, y: 1368, w: 44, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14, y: -16, w: 44, h: 32 }, sourceSize: { w: 44, h: 32 } }, { filename: "ElevatorBack0000", frame: { x: 4009, y: 1051, w: 37, h: 50 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 37, h: 50 }, sourceSize: { w: 37, h: 50 } }, { filename: "ElevatorDoorsAnim0000", frame: { x: 4038, y: 1105, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0001", frame: { x: 3853, y: 1106, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0002", frame: { x: 3162, y: 1137, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0003", frame: { x: 3892, y: 1156, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0004", frame: { x: 3931, y: 1156, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0005", frame: { x: 4038, y: 1156, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0006", frame: { x: 3853, y: 1157, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0007", frame: { x: 3970, y: 1163, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0008", frame: { x: 3162, y: 1188, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0009", frame: { x: 3892, y: 1207, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0010", frame: { x: 3931, y: 1207, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0011", frame: { x: 4009, y: 1207, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0012", frame: { x: 4048, y: 1207, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0013", frame: { x: 3853, y: 1208, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0014", frame: { x: 3970, y: 1214, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0015", frame: { x: 3162, y: 1239, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0016", frame: { x: 3892, y: 1258, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0017", frame: { x: 3162, y: 1137, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0018", frame: { x: 3931, y: 1258, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "ElevatorDoorsAnim0019", frame: { x: 4038, y: 1105, w: 36, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 36, h: 48 }, sourceSize: { w: 36, h: 48 } }, { filename: "Floor0000", frame: { x: 2535, y: 1438, w: 300, h: 5 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -150, y: -2.5, w: 300, h: 5 }, sourceSize: { w: 300, h: 5 } }, { filename: "GameExit0000", frame: { x: 4023, y: 734, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0001", frame: { x: 3852, y: 735, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0002", frame: { x: 3852, y: 735, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0003", frame: { x: 3905, y: 735, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0004", frame: { x: 3905, y: 735, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0005", frame: { x: 4023, y: 782, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0006", frame: { x: 4023, y: 782, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0007", frame: { x: 4023, y: 782, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0008", frame: { x: 4023, y: 782, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0009", frame: { x: 3852, y: 783, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0010", frame: { x: 3852, y: 783, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0011", frame: { x: 3852, y: 783, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0012", frame: { x: 3852, y: 783, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0013", frame: { x: 3852, y: 783, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0014", frame: { x: 4023, y: 782, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0015", frame: { x: 4023, y: 782, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0016", frame: { x: 3905, y: 735, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0017", frame: { x: 3905, y: 735, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0018", frame: { x: 3852, y: 735, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameExit0019", frame: { x: 4023, y: 734, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0000", frame: { x: 3905, y: 783, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0001", frame: { x: 3958, y: 784, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0002", frame: { x: 3958, y: 784, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0003", frame: { x: 4011, y: 830, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0004", frame: { x: 4011, y: 830, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0005", frame: { x: 3852, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0006", frame: { x: 3852, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0007", frame: { x: 3852, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0008", frame: { x: 3852, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0009", frame: { x: 3905, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0010", frame: { x: 3905, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0011", frame: { x: 3905, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0012", frame: { x: 3905, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0013", frame: { x: 3905, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0014", frame: { x: 3852, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0015", frame: { x: 3852, y: 831, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0016", frame: { x: 4011, y: 830, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0017", frame: { x: 4011, y: 830, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0018", frame: { x: 3958, y: 784, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "GameTarget0019", frame: { x: 3905, y: 783, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -23, w: 50, h: 45 }, sourceSize: { w: 50, h: 45 } }, { filename: "Laser0000", frame: { x: 4033, y: 1510, w: 9, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.5, y: -30, w: 9, h: 60 }, sourceSize: { w: 9, h: 60 } }, { filename: "Laser0001", frame: { x: 4045, y: 1510, w: 9, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.5, y: -30, w: 9, h: 60 }, sourceSize: { w: 9, h: 60 } }, { filename: "Laser0002", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.5, y: 0, w: 9, h: 60 }, sourceSize: { w: 9, h: 60 } }, { filename: "Lattice0000", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0001", frame: { x: 4049, y: 674, w: 14, h: 4 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0002", frame: { x: 3934, y: 879, w: 14, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0003", frame: { x: 3017, y: 1545, w: 14, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0004", frame: { x: 2061, y: 1542, w: 14, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0005", frame: { x: 1999, y: 1524, w: 14, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0006", frame: { x: 3992, y: 1457, w: 14, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0007", frame: { x: 2863, y: 1516, w: 14, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0008", frame: { x: 3975, y: 891, w: 14, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0009", frame: { x: 3984, y: 1320, w: 14, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0010", frame: { x: 2654, y: 1509, w: 14, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0011", frame: { x: 2525, y: 1509, w: 14, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0012", frame: { x: 3888, y: 1508, w: 14, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0013", frame: { x: 1256, y: 1437, w: 14, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0014", frame: { x: 4076, y: 730, w: 14, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -31, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0015", frame: { x: 4076, y: 730, w: 14, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -31, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0016", frame: { x: 1256, y: 1437, w: 14, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0017", frame: { x: 3888, y: 1508, w: 14, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0018", frame: { x: 2525, y: 1509, w: 14, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0019", frame: { x: 2654, y: 1509, w: 14, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0020", frame: { x: 3984, y: 1320, w: 14, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0021", frame: { x: 3975, y: 891, w: 14, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0022", frame: { x: 2863, y: 1516, w: 14, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0023", frame: { x: 3992, y: 1457, w: 14, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0024", frame: { x: 1999, y: 1524, w: 14, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0025", frame: { x: 2061, y: 1542, w: 14, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0026", frame: { x: 3017, y: 1545, w: 14, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0027", frame: { x: 3934, y: 879, w: 14, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0028", frame: { x: 4049, y: 674, w: 14, h: 4 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice0029", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20000", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20001", frame: { x: 3913, y: 938, w: 14, h: 4 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20002", frame: { x: 3896, y: 938, w: 14, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20003", frame: { x: 3034, y: 1545, w: 14, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20004", frame: { x: 2078, y: 1542, w: 14, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20005", frame: { x: 2016, y: 1524, w: 14, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20006", frame: { x: 3065, y: 1522, w: 14, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20007", frame: { x: 2880, y: 1516, w: 14, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20008", frame: { x: 3141, y: 1438, w: 14, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20009", frame: { x: 3936, y: 1509, w: 14, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20010", frame: { x: 2671, y: 1509, w: 14, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20011", frame: { x: 2542, y: 1509, w: 14, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20012", frame: { x: 3905, y: 1508, w: 14, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20013", frame: { x: 1256, y: 1500, w: 14, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20014", frame: { x: 4076, y: 795, w: 14, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -31, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20015", frame: { x: 4076, y: 795, w: 14, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -31, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20016", frame: { x: 1256, y: 1500, w: 14, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20017", frame: { x: 3905, y: 1508, w: 14, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20018", frame: { x: 2542, y: 1509, w: 14, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20019", frame: { x: 2671, y: 1509, w: 14, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20020", frame: { x: 3936, y: 1509, w: 14, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20021", frame: { x: 3141, y: 1438, w: 14, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20022", frame: { x: 2880, y: 1516, w: 14, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20023", frame: { x: 3065, y: 1522, w: 14, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20024", frame: { x: 2016, y: 1524, w: 14, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20025", frame: { x: 2078, y: 1542, w: 14, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20026", frame: { x: 3034, y: 1545, w: 14, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20027", frame: { x: 3896, y: 938, w: 14, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20028", frame: { x: 3913, y: 938, w: 14, h: 4 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -33, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "Lattice20029", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 14, h: 64 }, sourceSize: { w: 14, h: 64 } }, { filename: "LeftSideDoor0000", frame: { x: 2717, y: 1509, w: 11, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.8, y: -23.8, w: 24, h: 61 }, sourceSize: { w: 24, h: 61 } }, { filename: "LeftSideDoor0001", frame: { x: 4020, y: 1510, w: 10, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.8, y: -23.8, w: 24, h: 61 }, sourceSize: { w: 24, h: 61 } }, { filename: "LeftSideDoor0002", frame: { x: 2639, y: 1509, w: 12, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.8, y: -22.8, w: 24, h: 61 }, sourceSize: { w: 24, h: 61 } }, { filename: "LeftSideDoor0003", frame: { x: 3193, y: 1344, w: 22, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.8, y: -27.8, w: 24, h: 61 }, sourceSize: { w: 24, h: 61 } }, { filename: "LeftSideDoor0004", frame: { x: 3871, y: 1508, w: 14, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.8, y: -22.8, w: 24, h: 61 }, sourceSize: { w: 24, h: 61 } }, { filename: "LeftSideDoor0005", frame: { x: 3994, y: 1510, w: 10, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.8, y: -23.8, w: 24, h: 61 }, sourceSize: { w: 24, h: 61 } }, { filename: "LeftSideDoor0006", frame: { x: 3943, y: 1429, w: 24, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.8, y: -22.8, w: 24, h: 61 }, sourceSize: { w: 24, h: 61 } }, { filename: "Level01Back0000", frame: { x: 3, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level01Front0000", frame: { x: 1273, y: 1436, w: 627, h: 402 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.3, y: 47.8, w: 627, h: 402 }, sourceSize: { w: 627, h: 402 } }, { filename: "Level02Back0000", frame: { x: 646, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level02Front0000", frame: { x: 630, y: 1437, w: 623, h: 399 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.6, y: 48.3, w: 623, h: 399 }, sourceSize: { w: 623, h: 399 } }, { filename: "Level03Back0000", frame: { x: 1289, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level03Front0000", frame: { x: 3, y: 1437, w: 624, h: 400 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.6, y: 47.8, w: 624, h: 400 }, sourceSize: { w: 624, h: 400 } }, { filename: "Level04Back0000", frame: { x: 1932, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level04Front0000", frame: { x: 3218, y: 957, w: 632, h: 465 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 48.8, w: 632, h: 465 }, sourceSize: { w: 632, h: 465 } }, { filename: "Level05Back0000", frame: { x: 2575, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level05Front0000", frame: { x: 3, y: 969, w: 632, h: 465 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 1.5, y: 48.8, w: 632, h: 465 }, sourceSize: { w: 632, h: 465 } }, { filename: "Level06Back0000", frame: { x: 3218, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level06Front0000", frame: { x: 3218, y: 486, w: 631, h: 468 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 48, w: 631, h: 468 }, sourceSize: { w: 631, h: 468 } }, { filename: "Level07Back0000", frame: { x: 3, y: 486, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level07Front0000", frame: { x: 2535, y: 969, w: 624, h: 466 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: 48, w: 624, h: 466 }, sourceSize: { w: 624, h: 466 } }, { filename: "Level08Back0000", frame: { x: 646, y: 486, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level08Front0000", frame: { x: 1908, y: 969, w: 624, h: 468 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: 49, w: 624, h: 468 }, sourceSize: { w: 624, h: 468 } }, { filename: "Level09Back0000", frame: { x: 1289, y: 486, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level09Front0000", frame: { x: 638, y: 969, w: 632, h: 465 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 48, w: 632, h: 465 }, sourceSize: { w: 632, h: 465 } }, { filename: "Level10Back0000", frame: { x: 1932, y: 486, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level10Front0000", frame: { x: 3162, y: 1425, w: 632, h: 402 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: .4, y: 113.1, w: 632, h: 402 }, sourceSize: { w: 632, h: 402 } }, { filename: "Level11Back0000", frame: { x: 2575, y: 486, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 40, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "Level11Front0000", frame: { x: 1273, y: 969, w: 632, h: 464 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 49, w: 632, h: 464 }, sourceSize: { w: 632, h: 464 } }, { filename: "Level9Box0000", frame: { x: 3970, y: 682, w: 101, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 115, h: 50 }, sourceSize: { w: 115, h: 50 } }, { filename: "Level9Box0001", frame: { x: 3852, y: 682, w: 115, h: 50 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8, y: -1, w: 115, h: 50 }, sourceSize: { w: 115, h: 50 } }, { filename: "Message0000", frame: { x: 2897, y: 1542, w: 15, h: 16 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -8, w: 15, h: 16 }, sourceSize: { w: 15, h: 16 } }, { filename: "MoneyBonus0000", frame: { x: 2996, y: 1522, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -10, w: 20, h: 20 }, sourceSize: { w: 20, h: 20 } }, { filename: "Padlock0000", frame: { x: 2919, y: 1519, w: 18, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -12, w: 19, h: 24 }, sourceSize: { w: 19, h: 24 } }, { filename: "Padlock0001", frame: { x: 1963, y: 1524, w: 15, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7.5, y: -11, w: 19, h: 24 }, sourceSize: { w: 19, h: 24 } }, { filename: "Padlock0002", frame: { x: 4077, y: 1168, w: 16, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.5, y: -11, w: 19, h: 24 }, sourceSize: { w: 19, h: 24 } }, { filename: "Padlock0003", frame: { x: 3970, y: 1457, w: 19, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -12, w: 19, h: 24 }, sourceSize: { w: 19, h: 24 } }, { filename: "Padlock0004", frame: { x: 1981, y: 1524, w: 15, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7.5, y: -11, w: 19, h: 24 }, sourceSize: { w: 19, h: 24 } }, { filename: "Padlock0005", frame: { x: 3112, y: 1522, w: 16, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.5, y: -11, w: 19, h: 24 }, sourceSize: { w: 19, h: 24 } }, { filename: "Poster0000", frame: { x: 4076, y: 674, w: 17, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.5, y: -26.5, w: 17, h: 53 }, sourceSize: { w: 17, h: 53 } }, { filename: "Poster0001", frame: { x: 2688, y: 1509, w: 12, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3.5, y: -26.5, w: 17, h: 53 }, sourceSize: { w: 17, h: 53 } }, { filename: "PrisonGift0000", frame: { x: 4009, y: 1403, w: 19, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -12.1, w: 19, h: 25 }, sourceSize: { w: 19, h: 25 } }, { filename: "ProgressBarSkill0000", frame: { x: 3005, y: 1438, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0001", frame: { x: 3005, y: 1438, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0002", frame: { x: 3005, y: 1438, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0003", frame: { x: 3073, y: 1438, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0004", frame: { x: 3073, y: 1438, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0005", frame: { x: 1903, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0006", frame: { x: 1903, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0007", frame: { x: 1971, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0008", frame: { x: 2039, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0009", frame: { x: 2039, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0010", frame: { x: 2107, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0011", frame: { x: 2107, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0012", frame: { x: 2175, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0013", frame: { x: 2243, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0014", frame: { x: 2243, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0015", frame: { x: 2311, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0016", frame: { x: 2311, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0017", frame: { x: 2379, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0018", frame: { x: 2379, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0019", frame: { x: 2447, y: 1440, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0020", frame: { x: 2515, y: 1446, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0021", frame: { x: 2515, y: 1446, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0022", frame: { x: 2583, y: 1446, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0023", frame: { x: 2583, y: 1446, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0024", frame: { x: 2651, y: 1446, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0025", frame: { x: 2651, y: 1446, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0026", frame: { x: 2719, y: 1446, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0027", frame: { x: 3005, y: 1459, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0028", frame: { x: 3005, y: 1459, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0029", frame: { x: 3073, y: 1459, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0030", frame: { x: 3073, y: 1459, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0031", frame: { x: 1903, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0032", frame: { x: 1971, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0033", frame: { x: 1971, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0034", frame: { x: 2039, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0035", frame: { x: 2039, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0036", frame: { x: 2107, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0037", frame: { x: 2107, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0038", frame: { x: 2175, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0039", frame: { x: 2243, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0040", frame: { x: 2243, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0041", frame: { x: 2311, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0042", frame: { x: 2311, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0043", frame: { x: 2379, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0044", frame: { x: 2447, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0045", frame: { x: 2447, y: 1461, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0046", frame: { x: 2515, y: 1467, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0047", frame: { x: 2515, y: 1467, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0048", frame: { x: 2583, y: 1467, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0049", frame: { x: 2583, y: 1467, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0050", frame: { x: 2651, y: 1467, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0051", frame: { x: 2719, y: 1467, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0052", frame: { x: 2719, y: 1467, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0053", frame: { x: 2931, y: 1477, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0054", frame: { x: 2931, y: 1477, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0055", frame: { x: 2999, y: 1480, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0056", frame: { x: 3067, y: 1480, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0057", frame: { x: 3067, y: 1480, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0058", frame: { x: 1903, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0059", frame: { x: 1903, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0060", frame: { x: 1971, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0061", frame: { x: 1971, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0062", frame: { x: 2039, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0063", frame: { x: 2107, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0064", frame: { x: 2107, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0065", frame: { x: 2175, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0066", frame: { x: 2175, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0067", frame: { x: 2243, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0068", frame: { x: 2243, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0069", frame: { x: 2311, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0070", frame: { x: 2379, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0071", frame: { x: 2379, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0072", frame: { x: 2447, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0073", frame: { x: 2447, y: 1482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0074", frame: { x: 3797, y: 1487, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0075", frame: { x: 3865, y: 1487, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0076", frame: { x: 3865, y: 1487, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0077", frame: { x: 2515, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0078", frame: { x: 2515, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0079", frame: { x: 2583, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0080", frame: { x: 2583, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0081", frame: { x: 2651, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0082", frame: { x: 2719, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0083", frame: { x: 2719, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0084", frame: { x: 3933, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0085", frame: { x: 3933, y: 1488, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0086", frame: { x: 4001, y: 1489, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0087", frame: { x: 2787, y: 1495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0088", frame: { x: 2787, y: 1495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0089", frame: { x: 2855, y: 1495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0090", frame: { x: 2855, y: 1495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0091", frame: { x: 2923, y: 1498, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0092", frame: { x: 2923, y: 1498, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0093", frame: { x: 2991, y: 1501, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0094", frame: { x: 3059, y: 1501, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0095", frame: { x: 3059, y: 1501, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0096", frame: { x: 1903, y: 1503, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0097", frame: { x: 1903, y: 1503, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0098", frame: { x: 1971, y: 1503, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "ProgressBarSkill0099", frame: { x: 2039, y: 1503, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "RightSideDoor0000", frame: { x: 2703, y: 1509, w: 11, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.3, y: -23.3, w: 25, h: 62 }, sourceSize: { w: 25, h: 62 } }, { filename: "RightSideDoor0001", frame: { x: 4007, y: 1510, w: 10, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.3, y: -23.3, w: 25, h: 62 }, sourceSize: { w: 25, h: 62 } }, { filename: "RightSideDoor0002", frame: { x: 4078, y: 1258, w: 12, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.3, y: -22.3, w: 25, h: 62 }, sourceSize: { w: 25, h: 62 } }, { filename: "RightSideDoor0003", frame: { x: 4077, y: 1105, w: 16, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.3, y: -28.3, w: 25, h: 62 }, sourceSize: { w: 25, h: 62 } }, { filename: "RightSideDoor0004", frame: { x: 3854, y: 1508, w: 14, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.3, y: -22.3, w: 25, h: 62 }, sourceSize: { w: 25, h: 62 } }, { filename: "RightSideDoor0005", frame: { x: 3981, y: 1509, w: 10, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.3, y: -24.3, w: 25, h: 62 }, sourceSize: { w: 25, h: 62 } }, { filename: "RightSideDoor0006", frame: { x: 3853, y: 1428, w: 24, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.3, y: -22.3, w: 25, h: 62 }, sourceSize: { w: 25, h: 62 } }, { filename: "Shadow0000", frame: { x: 2787, y: 1446, w: 20, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -20, w: 20, h: 40 }, sourceSize: { w: 20, h: 40 } }, { filename: "Stair0000", frame: { x: 4068, y: 3, w: 20, h: 299 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -150, w: 20, h: 299 }, sourceSize: { w: 20, h: 299 } }, { filename: "Terminal0000", frame: { x: 2996, y: 1522, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -10, w: 20, h: 20 }, sourceSize: { w: 20, h: 20 } }, { filename: "TipInGame0000", frame: { x: 3019, y: 1522, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -10, w: 20, h: 20 }, sourceSize: { w: 20, h: 20 } }, { filename: "Turret0000", frame: { x: 2915, y: 1546, w: 14, h: 10 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0001", frame: { x: 4069, y: 1545, w: 14, h: 11 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0002", frame: { x: 2810, y: 1479, w: 14, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0003", frame: { x: 2983, y: 1545, w: 14, h: 14 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0004", frame: { x: 3201, y: 1271, w: 14, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0005", frame: { x: 1913, y: 1543, w: 15, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0006", frame: { x: 2964, y: 1542, w: 16, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0007", frame: { x: 2079, y: 1524, w: 18, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0008", frame: { x: 2057, y: 1524, w: 19, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -11.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0009", frame: { x: 2033, y: 1524, w: 21, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0010", frame: { x: 1913, y: 1524, w: 22, h: 16 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0011", frame: { x: 2865, y: 1476, w: 24, h: 16 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0012", frame: { x: 2940, y: 1519, w: 25, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0013", frame: { x: 3162, y: 1401, w: 27, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0014", frame: { x: 3162, y: 1401, w: 27, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0015", frame: { x: 4012, y: 265, w: 47, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -39.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0016", frame: { x: 4012, y: 265, w: 47, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -39.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0017", frame: { x: 3162, y: 1401, w: 27, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0018", frame: { x: 3162, y: 1401, w: 27, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0019", frame: { x: 4012, y: 265, w: 47, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -39.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0020", frame: { x: 4012, y: 265, w: 47, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -39.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0021", frame: { x: 3162, y: 1401, w: 27, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0022", frame: { x: 3162, y: 1401, w: 27, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0023", frame: { x: 3162, y: 1401, w: 27, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0024", frame: { x: 2968, y: 1522, w: 25, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0025", frame: { x: 3192, y: 1406, w: 23, h: 16 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0026", frame: { x: 1938, y: 1524, w: 22, h: 16 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0027", frame: { x: 4064, y: 860, w: 20, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -12.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0028", frame: { x: 3131, y: 1535, w: 18, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0029", frame: { x: 2033, y: 1542, w: 17, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0030", frame: { x: 1931, y: 1543, w: 15, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0031", frame: { x: 3201, y: 1271, w: 14, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0032", frame: { x: 3201, y: 1271, w: 14, h: 15 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0033", frame: { x: 2983, y: 1545, w: 14, h: 14 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0034", frame: { x: 3e3, y: 1545, w: 14, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0035", frame: { x: 2810, y: 1479, w: 14, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0036", frame: { x: 4069, y: 1545, w: 14, h: 11 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0037", frame: { x: 2915, y: 1546, w: 14, h: 10 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Turret0038", frame: { x: 2915, y: 1546, w: 14, h: 10 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.4, y: -6.9, w: 47, h: 36 }, sourceSize: { w: 47, h: 36 } }, { filename: "Wall0000", frame: { x: 3204, y: 969, w: 5, h: 299 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2.5, y: -150, w: 5, h: 299 }, sourceSize: { w: 5, h: 299 } }, { filename: "WaterInfect0000", frame: { x: 3861, y: 143, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0001", frame: { x: 3861, y: 192, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0002", frame: { x: 3861, y: 241, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0003", frame: { x: 3861, y: 290, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0004", frame: { x: 3861, y: 339, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0005", frame: { x: 3861, y: 388, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0006", frame: { x: 3861, y: 437, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0007", frame: { x: 3852, y: 486, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0008", frame: { x: 3852, y: 535, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0009", frame: { x: 3852, y: 584, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "WaterInfect0010", frame: { x: 3852, y: 633, w: 148, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: 0, w: 148, h: 46 }, sourceSize: { w: 148, h: 46 } }, { filename: "ZombieBack0000", frame: { x: 3970, y: 734, w: 50, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 50, h: 47 }, sourceSize: { w: 50, h: 47 } }, { filename: "bombColon0000", frame: { x: 3958, y: 735, w: 8, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: .3, y: 0, w: 8, h: 8 }, sourceSize: { w: 8, h: 8 } }, { filename: "ctxtBomgTimerDigs0000", frame: { x: 4080, y: 417, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0001", frame: { x: 1949, y: 1543, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0002", frame: { x: 3051, y: 1545, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0003", frame: { x: 3112, y: 1548, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0004", frame: { x: 1962, y: 1550, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0005", frame: { x: 1975, y: 1550, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0006", frame: { x: 1988, y: 1550, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0007", frame: { x: 2001, y: 1550, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0008", frame: { x: 2014, y: 1550, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0009", frame: { x: 2863, y: 1551, w: 10, h: 13 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2, y: 3, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }, { filename: "ctxtBomgTimerDigs0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 10, h: 13 }, sourceSize: { w: 10, h: 13 } }], meta: { app: "Adobe Flash Professional", version: "13.1.0.226", image: "Levels.png", format: "RGBA8888", size: { w: 4096, h: 4096 }, scale: "1" } }, e }() , LevelsLayouts = function() { function e() {} return e.data = [{ name: "bombTimer", children: [{ mc: "ctxtBomgTimerDigs", name: "m2", x: -15, y: -8 }, { mc: "ctxtBomgTimerDigs", name: "m1", x: -24, y: -8 }, { mc: "bombColon", name: "", x: -6, y: -2 }, { mc: "ctxtBomgTimerDigs", name: "s2", x: 5, y: -8 }, { mc: "ctxtBomgTimerDigs", name: "s1", x: -4, y: -8 }] }, { name: "Door", children: [{ mc: "DoorSensor", name: "sensor", x: 0, y: 0, scaleX: .4542694091796875, scaleY: .7142791748046875 }] }, { name: "Elevator", children: [{ mc: "ElevatorBack", name: "back", x: -18, y: -24 }, { mc: "DoorSensor", name: "sensor", x: 0, y: 0, scaleX: .4542694091796875, scaleY: .7142791748046875 }, { mc: "BobInElevatorSmall", name: "bob", x: 0, y: 23, scaleX: .2835693359375, scaleY: .2834930419921875 }, { mc: "ElevatorDoorsAnim", name: "door", x: -18, y: -24 }] }, { name: "Level01", children: [{ mc: "Level01Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 19, y: 276, scaleY: 1.066986083984375 }, { mc: "Wall", name: "", x: 623, y: 349, scaleY: .6668701171875 }, { mc: "Wall", name: "", x: 542, y: 76, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 95, y: 77, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 213, y: 347, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 243, y: 347, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 623, y: 145, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 640, y: 209, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 326, y: 438, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 104, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 322, y: 171, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 373, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 304, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 237, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 120, y: 322, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 275, y: 390, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 525, y: 388, scaleY: .266754150390625 }, { mc: "Door", name: "", x: 179, y: 143, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 179, y: 76, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d1" } }, { mc: "Door", name: "", x: 520, y: 142, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 59, y: 278, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 59, y: 210, parameters: { idGroup: 3, Open: !1, DoorType: "Steel1", DoorName: "d4" } }, { mc: "Door", name: "", x: 519, y: 209, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "SideDoor", name: "", x: 397, y: 207, parameters: { Open: !1, DoorType: "Wood1", DoorName: "ds1" } }, { mc: "Padlock", name: "", x: 400, y: 216, parameters: { DoorName: "ds1", PadlockType: "GrayRight", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "Codelock", name: "", x: 94, y: 208, parameters: { Code: "1234", DoorName: "d4", Locked: !0 } }, { mc: "Elevator", name: "", x: 581, y: 278, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 581, y: 345, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Message", name: "", x: 160, y: 204, parameters: { LinkTo: "codeLevel", DoorName: "d4" } }, { mc: "ElectricPanel", name: "", x: 170, y: 339, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "Lattice", name: "", x: 283, y: 279, parameters: { LatticeName: "l", Locked: !1 } }, { mc: "SideDoor", name: "", x: 482, y: 345, parameters: { Open: !1, DoorType: "Wood1", DoorName: "ds2" } }, { mc: "Padlock", name: "", x: 452, y: 349, parameters: { DoorName: "ds2", PadlockType: "GrayLeft", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "SideDoor", name: "", x: 201, y: 410, parameters: { Open: !1, DoorType: "Wood1", DoorName: "ds3" } }, { mc: "Padlock", name: "", x: 204, y: 419, parameters: { DoorName: "ds3", PadlockType: "GrayRight", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "Message", name: "", x: 217, y: 140, parameters: { LinkTo: "aboutCameras", DoorName: "d" } }, { mc: "Message", name: "", x: 90, y: 275, parameters: { LinkTo: "aboutLaser", DoorName: "d" } }, { mc: "Message", name: "", x: 504, y: 340, parameters: { LinkTo: "aboutRobot", DoorName: "d" } }, { mc: "MoneyBonus", name: "", x: 131, y: 81, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 231, y: 88, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 379, y: 91, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 515, y: 83, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 44, y: 154, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 133, y: 148, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 310, y: 154, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 583, y: 154, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 455, y: 157, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 193, y: 223, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 457, y: 215, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 256, y: 290, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 327, y: 282, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 428, y: 291, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 502, y: 282, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 46, y: 350, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 414, y: 349, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 318, y: 350, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 561, y: 407, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 89, y: 417, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 48, y: 409, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "TipInGame", name: "", x: 379, y: 88, parameters: { Used: !1, TipFrame: 2 } }, { mc: "TipInGame", name: "", x: 179, y: 88, parameters: { Used: !1, TipFrame: 3 } }, { mc: "TipInGame", name: "", x: 410, y: 217, parameters: { Used: !1, TipFrame: 5 } }, { mc: "TipInGame", name: "", x: 375, y: 344, parameters: { Used: !1, TipFrame: 6 } }, { mc: "TipInGame", name: "", x: 217, y: 140, parameters: { Used: !1, TipFrame: 4 } }, { mc: "TipInGame", name: "", x: 470, y: 84, parameters: { Used: !1, TipFrame: 1 } }, { mc: "Laser", name: "", x: 170, y: 279, parameters: { LaserName: "l1", Type: 1 } }, { mc: "Robot", name: "chobo", x: 220, y: 417, scaleX: .79998779296875, scaleY: .79998779296875, parameters: { Distance: 380, Direction: "r", StopMoveWaitTime: 1e3 } }, { mc: "VideoCamera", name: "", x: 427, y: 123, parameters: { IdleTimer: 2e3, Direction: "left", ViewZoneLeft: 167, ViewZoneRight: 190 } }, { mc: "GameTarget", name: "", x: 375, y: 345, scaleX: 1.39996337890625, scaleY: 1.39996337890625 }, { mc: "Shadow", name: "", x: 28, y: 285, scaleX: 1.49700927734375, scaleY: .75 }, { mc: "Shadow", name: "", x: 25, y: 149, scaleX: 1.49700927734375, scaleY: .75 }, { mc: "Shadow", name: "", x: 402, y: 286, scaleX: 1.99932861328125, scaleY: .75 }, { mc: "GameExit", name: "", x: 621, y: 214, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Shadow", name: "", x: 203, y: 421, scaleX: 1.49700927734375, scaleY: .75 }, { mc: "Shadow", name: "", x: 309, y: 151, scaleX: 5.9979095458984375, scaleY: .75 }, { mc: "Shadow", name: "", x: 319, y: 85, scaleX: 1.49700927734375, scaleY: .75 }, { mc: "Shadow", name: "", x: 613, y: 153, scaleX: 1.49700927734375, scaleY: .75 }, { mc: "Shadow", name: "", x: 121, y: 85, scaleX: 3.5013427734375, scaleY: .75 }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "Bob", name: "", x: 470, y: 86, scaleX: .75, scaleY: .75 }, { mc: "Level01Front", name: "", x: 0, y: -1 }, { mc: "ProgressBarSkill", name: "", x: 674, y: 177, scaleX: .75, scaleY: .75 }] }, { name: "Level02", children: [{ mc: "Level02Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 18, y: 174, scaleY: .900299072265625 }, { mc: "Wall", name: "", x: 622, y: 245, scaleY: 1.333740234375 }, { mc: "Wall", name: "", x: 343, y: 78, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 0, y: 347, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 311, y: 77, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 18, y: 414, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 326, y: 440, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 104, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 322, y: 171, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 325, y: 372, scaleX: 2.166595458984375 }, { mc: "Floor", name: "", x: 326, y: 304, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 237, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 161, y: 390, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 586, y: 120, scaleY: .266754150390625 }, { mc: "Door", name: "", x: 418, y: 277, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 418, y: 209, parameters: { idGroup: 1, Open: !1, DoorType: "woodDoor3", DoorName: "d3" } }, { mc: "Elevator", name: "", x: 580, y: 210, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 581, y: 345, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Door", name: "", x: 58, y: 209, parameters: { idGroup: 2, Open: !1, DoorType: "woodDoor1", DoorName: "d2" } }, { mc: "Door", name: "", x: 58, y: 141, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 271, y: 141, parameters: { idGroup: 3, Open: !1, DoorType: "Steel1", DoorName: "d4" } }, { mc: "Door", name: "", x: 271, y: 74, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Padlock", name: "", x: 73, y: 212, parameters: { DoorName: "d2", PadlockType: "GrayFront", PadlockLevel: "1", HoleWidth: "2" } }, { mc: "Padlock", name: "", x: 434, y: 211, parameters: { DoorName: "d3", PadlockType: "GoldFront", PadlockLevel: "2", HoleWidth: "3" } }, { mc: "Codelock", name: "", x: 234, y: 138, parameters: { Code: "4512", DoorName: "d4", Locked: !0 } }, { mc: "ElectricPanel", name: "", x: 345, y: 406, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "Message", name: "", x: 366, y: 74, parameters: { LinkTo: "aboutBob", DoorName: "d4" } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 52, y: 82, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 208, y: 81, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 70, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 427, y: 86, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 507, y: 83, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 453, y: 147, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 20, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 507, y: 157, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 352, y: 210, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 520, y: 220, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 319, y: 285, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 36, y: 290, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 606, y: 282, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 511, y: 349, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 237, y: 350, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 596, y: 417, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 534, y: 417, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 49, y: 415, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 204, y: 283, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 118, y: 278, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 221, y: 212, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "Oldman", name: "", x: 595, y: 420, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 290, Direction: "left", StopMoveWaitTime: 1e3 } }, { mc: "Laser", name: "", x: 345, y: 346, parameters: { LaserName: "l1", Type: 2 } }, { mc: "Oldman", name: "", x: 190, y: 217, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 245, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "Lattice2", name: "", x: 405, y: 346, parameters: { LatticeName: "l", Locked: !1 } }, { mc: "GameTarget", name: "", x: 156, y: 82, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 19, y: 356, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "Bob", name: "", x: 30, y: 354, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 300, y: 324, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 200, ViewZoneRight: 150 } }, { mc: "VideoCamera", name: "", x: 224, y: 124, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 195, ViewZoneRight: 85 } }, { mc: "Level02Front", name: "", x: 0, y: 0 }, { mc: "Shadow", name: "", x: 279, y: 420, scaleX: 3.4988250732421875, scaleY: .75 }, { mc: "Shadow", name: "", x: 410, y: 352, scaleX: 5.00189208984375, scaleY: .75 }, { mc: "Shadow", name: "", x: 264, y: 287, scaleX: 2.50341796875, scaleY: .75 }, { mc: "Shadow", name: "", x: 24, y: 421, scaleX: 1.5030517578125, scaleY: .75 }, { mc: "Shadow", name: "", x: 558, y: 416, scaleX: 6.504730224609375, scaleY: .75 }, { mc: "Shadow", name: "", x: 170, y: 217, scaleX: 2.0007171630859375, scaleY: .75 }, { mc: "Shadow", name: "", x: 455, y: 217, scaleX: 2.0007171630859375, scaleY: .75 }, { mc: "Shadow", name: "", x: 505, y: 151, scaleX: 3.503753662109375, scaleY: .75 }, { mc: "Shadow", name: "", x: 348, y: 84, scaleX: 1.5030517578125, scaleY: .75 }, { mc: "ProgressBarSkill", name: "", x: 677, y: 201, scaleX: .75, scaleY: .75 }] }, { name: "Level03", children: [{ mc: "Level03Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 624, y: 278, scaleY: 1.1336669921875 }, { mc: "Wall", name: "", x: 583, y: 78, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 17, y: 220, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 108, y: 146, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 18, y: 414, scaleY: .2000579833984375 }, { mc: "Wall", name: "", x: 14, y: 82, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 0, y: 312, scaleY: .400146484375 }, { mc: "Floor", name: "", x: 326, y: 438, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 104, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 372, y: 171, scaleX: 1.83331298828125 }, { mc: "Floor", name: "", x: 326, y: 372, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 304, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 237, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 47, y: 149, scaleY: .466796875 }, { mc: "Stair", name: "", x: 547, y: 121, scaleY: .266754150390625 }, { mc: "Door", name: "", x: 310, y: 277, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 310, y: 344, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 584, y: 344, parameters: { idGroup: 2, Open: !1, DoorType: "Steel1", DoorName: "d1" } }, { mc: "Door", name: "", x: 584, y: 411, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 405, y: 210, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 405, y: 277, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 461, y: 142, parameters: { idGroup: 4, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 461, y: 209, parameters: { idGroup: 4, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Codelock", name: "", x: 550, y: 341, parameters: { Code: "4512", DoorName: "d1", Locked: !0 } }, { mc: "SideDoor", name: "", x: 373, y: 409, parameters: { Open: !1, DoorType: "Wood2", DoorName: "ds1" } }, { mc: "Padlock", name: "", x: 378, y: 413, parameters: { DoorName: "ds1", PadlockType: "GoldRight", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "ElectricPanel", name: "", x: 355, y: 340, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "SideDoor", name: "", x: 340, y: 208, parameters: { Open: !1, DoorType: "Wood2", DoorName: "ds2" } }, { mc: "Padlock", name: "", x: 311, y: 212, parameters: { DoorName: "ds2", PadlockType: "GrayLeft", PadlockLevel: "1", HoleWidth: "2" } }, { mc: "SideDoor", name: "", x: 340, y: 141, parameters: { Open: !1, DoorType: "Wood2", DoorName: "ds3" } }, { mc: "Padlock", name: "", x: 344, y: 144, parameters: { DoorName: "ds3", PadlockType: "GoldRight", PadlockLevel: "2", HoleWidth: "3" } }, { mc: "Message", name: "", x: 261, y: 201, parameters: { LinkTo: "aboutBob", DoorName: "d1" } }, { mc: "SideDoor", name: "", x: 104, y: 208, parameters: { Open: !1, DoorType: "Wood3", DoorName: "ds4" } }, { mc: "Padlock", name: "", x: 76, y: 212, parameters: { DoorName: "ds4", PadlockType: "GrayLeft", PadlockLevel: "1", HoleWidth: "2" } }, { mc: "SideDoor", name: "", x: 166, y: 275, parameters: { Open: !1, DoorType: "Wood3", DoorName: "ds5" } }, { mc: "Padlock", name: "", x: 171, y: 278, parameters: { DoorName: "ds5", PadlockType: "GrayRight", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "Message", name: "", x: 525, y: 341, parameters: { LinkTo: "aboutDogs", DoorName: "d" } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 178, y: 352, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 409, y: 352, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 456, y: 352, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 305, y: 410, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 62, y: 414, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 65, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 108, y: 287, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 359, y: 289, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 299, y: 80, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 502, y: 81, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 196, y: 152, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 90, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 283, y: 147, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 601, y: 148, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 192, y: 223, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 501, y: 221, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 590, y: 221, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 564, y: 289, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 20, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 427, y: 414, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "TipInGame", name: "", x: 489, y: 148, parameters: { Used: !1, TipFrame: 7 } }, { mc: "Dog", name: "", x: 400, y: 422, scaleX: .29998779296875, scaleY: .29998779296875, parameters: { Distance: 200, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "Laser", name: "", x: 338, y: 280, parameters: { LaserName: "l1", Type: 2 } }, { mc: "Oldman", name: "", x: 360, y: 219, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 240, Direction: "r", StopMoveWaitTime: 1500 } }, { mc: "Oldman", name: "", x: 130, y: 85, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 420, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "GameTarget", name: "", x: 122, y: 415, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 20, y: 280, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "Bob", name: "", x: 37, y: 354, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 490, y: 121, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 135, ViewZoneRight: 115 } }, { mc: "Level03Front", name: "", x: 0, y: 0 }, { mc: "ProgressBarSkill", name: "", x: 686, y: 207, scaleX: .75, scaleY: .75 }, { mc: "Shadow", name: "", x: 214, y: 353, scaleX: 3.753875732421875, scaleY: .75 }, { mc: "Shadow", name: "", x: 348, y: 420, scaleX: 2.49676513671875, scaleY: .75 }, { mc: "Shadow", name: "", x: 109, y: 220, scaleX: 1.497039794921875, scaleY: .75 }, { mc: "Shadow", name: "", x: 353, y: 148, scaleX: 2.7491455078125, scaleY: .75 }, { mc: "Shadow", name: "", x: 535, y: 85, scaleX: 3.9987640380859375, scaleY: .75 }, { mc: "Shadow", name: "", x: 168, y: 85, scaleX: 6.997650146484375, scaleY: .75 }, { mc: "Shadow", name: "", x: 593, y: 148, scaleX: 2.249267578125, scaleY: .75 }] }, { name: "Level04", children: [{ mc: "Level04Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 623, y: 278, scaleY: 1.5337982177734375 }, { mc: "Wall", name: "", x: 483, y: 280, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 18, y: 277, scaleY: 1.06695556640625 }, { mc: "Wall", name: "", x: 454, y: 281, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 483, y: 415, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 454, y: 414, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 278, y: 211, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 248, y: 212, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 1, y: 76, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 1, y: 482, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 326, y: 438, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 104, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 373, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 306, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 237, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 506, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 170, scaleX: 2.1666259765625 }, { mc: "Door", name: "", x: 183, y: 479, parameters: { idGroup: 1, Open: !1, DoorType: "woodDoor1", DoorName: "d1" } }, { mc: "Door", name: "", x: 183, y: 411, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Padlock", name: "", x: 198, y: 482, parameters: { DoorName: "d1", PadlockType: "GrayFront", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "Door", name: "", x: 584, y: 479, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 584, y: 411, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 526, y: 411, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 526, y: 343, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "SideDoor", name: "", x: 275, y: 341, parameters: { Open: !1, DoorType: "Wood2", DoorName: "ds1" } }, { mc: "Padlock", name: "", x: 282, y: 350, parameters: { DoorName: "ds1", PadlockType: "GrayRight", PadlockLevel: "1", HoleWidth: "2" } }, { mc: "Door", name: "", x: 526, y: 277, parameters: { idGroup: 4, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 526, y: 208, parameters: { idGroup: 4, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 585, y: 209, parameters: { idGroup: 5, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 585, y: 142, parameters: { idGroup: 5, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 526, y: 140, parameters: { idGroup: 6, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 526, y: 74, parameters: { idGroup: 6, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 405, y: 343, parameters: { idGroup: 7, Open: !1, DoorType: "woodDoor1", DoorName: "d2" } }, { mc: "Door", name: "", x: 405, y: 276, parameters: { idGroup: 7, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 57, y: 209, parameters: { idGroup: 8, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 57, y: 142, parameters: { idGroup: 8, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Elevator", name: "", x: 406, y: 210, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 405, y: 480, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !1, DoorName: "el1" } }, { mc: "Codelock", name: "", x: 372, y: 482, parameters: { Code: "1234", DoorName: "el1", Locked: !0 } }, { mc: "Padlock", name: "", x: 422, y: 346, parameters: { DoorName: "d2", PadlockType: "GoldFront", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "ElectricPanel", name: "", x: 310, y: 405, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "Computer", name: "", x: 62, y: 340, parameters: { DoorName: "el1", Locked: !0, tempField: "" } }, { mc: "Message", name: "", x: 369, y: 341, parameters: { LinkTo: "aboutAmbal", DoorName: "d" } }, { mc: "Message", name: "", x: 174, y: 340, parameters: { LinkTo: "aboutCompCode2", DoorName: "d" } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 224, y: 422, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 329, y: 490, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 43, y: 417, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 432, y: 425, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 532, y: 478, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 20, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 578, y: 351, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 217, y: 351, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 582, y: 282, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 581, y: 72, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 401, y: 82, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 164, y: 148, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 354, y: 148, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 306, y: 220, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 137, y: 220, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 100, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 51, y: 280, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 104, y: 279, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 199, y: 282, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 356, y: 287, scaleX: .998748779296875, scaleY: 1.00628662109375, parameters: { Amount: 55, TakeIt: !1 } }, { mc: "Oldman", name: "", x: 160, y: 488, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 270, Direction: "r", StopMoveWaitTime: 1e3 } }, { mc: "Captive", name: "", x: 190, y: 189 }, { mc: "Ambal", name: "", x: 430, y: 285, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 390, Direction: "left", StopMoveWaitTime: 1e3 } }, { mc: "Laser", name: "", x: 315, y: 347, parameters: { LaserName: "l1", Type: 1 } }, { mc: "GameTarget", name: "", x: 205, y: 215, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 89, y: 88, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "Bob", name: "", x: 87, y: 489, scaleX: .75, scaleY: .75 }, { mc: "Level04Front", name: "", x: 0, y: 0 }, { mc: "VideoCamera", name: "", x: 245, y: 123, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 225, ViewZoneRight: 200 } }, { mc: "Shadow", name: "", x: 218, y: 286, scaleX: 1.7506103515625, scaleY: .75 }, { mc: "Shadow", name: "", x: 233, y: 353, scaleX: 3.00103759765625, scaleY: .75 }, { mc: "Shadow", name: "", x: 453, y: 487, scaleX: 1.7506103515625, scaleY: .75 }, { mc: "Shadow", name: "", x: 22, y: 216, scaleX: 1.7506103515625, scaleY: .75 }, { mc: "Shadow", name: "", x: 390, y: 150, scaleX: 7.99249267578125, scaleY: .75 }, { mc: "Shadow", name: "", x: 448, y: 416, scaleX: 1.7506103515625, scaleY: .75 }, { mc: "Shadow", name: "", x: 268, y: 416, scaleX: 1.0003509521484375, scaleY: .75 }, { mc: "ProgressBarSkill", name: "progressSkill", x: 683, y: 201, scaleX: .75, scaleY: .75 }] }, { name: "Level05", children: [{ mc: "Level05Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 18, y: 243, scaleX: .9986572265625, scaleY: 1.3337249755859375 }, { mc: "Wall", name: "", x: 623, y: 275, scaleX: 1.149993896484375, scaleY: 1.5337982177734375 }, { mc: "Wall", name: "", x: 280, y: 481, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 312, y: 481, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 5, y: 482, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 323, y: 509, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 437, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 103, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 322, y: 171, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 371, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 304, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 236, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 47, y: 391, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 242, y: 460, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 282, y: 123, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 589, y: 192, scaleY: .266754150390625 }, { mc: "Door", name: "", x: 360, y: 479, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 359, y: 411, parameters: { idGroup: 1, Open: !1, DoorType: "Steel2", DoorName: "d1" } }, { mc: "Padlock", name: "", x: 373, y: 411, parameters: { DoorName: "d1", PadlockType: "GrayFront", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "ElectricPanel", name: "", x: 490, y: 275, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "Laser", name: "", x: 493, y: 212, parameters: { LaserName: "l1", Type: 2 } }, { mc: "Elevator", name: "", x: 63, y: 77, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 63, y: 211, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !1, DoorName: "el1" } }, { mc: "ElectricPanel", name: "", x: 350, y: 75, parameters: { Type: "h", LaserName: "blades", Locked: !0 } }, { mc: "Door", name: "", x: 254, y: 344, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 254, y: 277, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 141, y: 277, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 141, y: 209, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "SideDoor", name: "", x: 205, y: 410, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds1" } }, { mc: "Padlock", name: "", x: 211, y: 419, parameters: { DoorName: "ds1", PadlockType: "GrayRight", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "SideDoor", name: "", x: 205, y: 340, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds2" } }, { mc: "Padlock", name: "", x: 174, y: 348, parameters: { DoorName: "ds2", PadlockType: "GrayLeft", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "SideDoor", name: "", x: 255, y: 210, parameters: { Open: !1, DoorType: "Mass", DoorName: "ds8" } }, { mc: "SideDoor", name: "", x: 433, y: 341, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds3" } }, { mc: "Padlock", name: "", x: 401, y: 349, parameters: { DoorName: "ds3", PadlockType: "GrayLeft", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "SideDoor", name: "", x: 459, y: 73, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds4" } }, { mc: "Padlock", name: "", x: 428, y: 78, parameters: { DoorName: "ds4", PadlockType: "GoldLeft", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Codelock", name: "", x: 99, y: 208, parameters: { Code: "1234", DoorName: "el1", Locked: !0 } }, { mc: "Computer", name: "", x: 418, y: 275, parameters: { DoorName: "el1", Locked: !0, tempField: "" } }, { mc: "Turret", name: "", x: 283, y: 190, scaleX: -1, parameters: { TurretName: "t", Locked: !1, View: "right" } }, { mc: "PrisonGift", name: "", x: 364, y: 227 }, { mc: "MoneyBonus", name: "", x: 125, y: 82, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 31, y: 153, parameters: { Amount: 120, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 489, y: 75, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 399, y: 82, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 550, y: 75, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 598, y: 75, parameters: { Amount: 70, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 47, y: 284, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 91, y: 290, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 524, y: 281, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 150, y: 356, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 483, y: 358, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 573, y: 349, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 89, y: 416, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 501, y: 420, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 600, y: 424, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 449, y: 486, parameters: { Amount: 60, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 486, y: 486, parameters: { Amount: 80, TakeIt: !1 } }, { mc: "Oldman", name: "", x: 330, y: 488, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 270, Direction: "r", StopMoveWaitTime: 1e3 } }, { mc: "Policeman", name: "", x: 390, y: 354, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 170, Direction: "left", StopMoveWaitTime: 1e3 } }, { mc: "Policeman", name: "", x: 310, y: 286, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 270, Direction: "left", StopMoveWaitTime: 1e3 } }, { mc: "Policeman", name: "", x: 200, y: 84, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 210, Direction: "r", StopMoveWaitTime: 1e3 } }, { mc: "Dog", name: "", x: 45, y: 221, scaleX: .29998779296875, scaleY: .29998779296875, parameters: { Distance: 160, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "GameTarget", name: "", x: 363, y: 215, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 77, y: 486, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Poster", name: "poster", x: 526, y: 212 }, { mc: "Bob", name: "", x: 107, y: 488, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 190, y: 255, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 180, ViewZoneRight: 150 } }, { mc: "Blades", name: "", x: 350, y: 146 }, { mc: "Shadow", name: "", x: 313, y: 490, scaleX: 5.50439453125, scaleY: .75 }, { mc: "Shadow", name: "", x: 99, y: 489, scaleX: 9.0023193359375, scaleY: .75 }, { mc: "Shadow", name: "", x: 145, y: 419, scaleX: 8.00201416015625, scaleY: .75 }, { mc: "Shadow", name: "", x: 105, y: 148, scaleX: 9.00225830078125, scaleY: .75 }, { mc: "Shadow", name: "", x: 186, y: 286, scaleX: 1.5029296875, scaleY: .75 }, { mc: "Shadow", name: "", x: 448, y: 352, scaleX: 3.25091552734375, scaleY: .75 }, { mc: "Shadow", name: "", x: 581, y: 352, scaleX: 4.0010986328125, scaleY: .75 }, { mc: "Level05Front", name: "", x: 0, y: -1 }, { mc: "ProgressBarSkill", name: "progressSkill", x: 683, y: 190, scaleX: .75, scaleY: .75 }] }, { name: "Level06", children: [{ mc: "Level06Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 19, y: 212, scaleY: .633514404296875 }, { mc: "Wall", name: "", x: 621, y: 278, scaleY: 1.5337982177734375 }, { mc: "Wall", name: "", x: 0, y: 347, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: -1, y: 79, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 411, y: 78, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 19, y: 447, scaleY: .400115966796875 }, { mc: "Wall", name: "", x: 442, y: 78, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 321, y: 506, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 438, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 104, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 322, y: 171, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 372, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 305, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 237, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 47, y: 456, scaleY: .266754150390625 }, { mc: "Door", name: "", x: 299, y: 142, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 299, y: 75, parameters: { idGroup: 1, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Elevator", name: "", x: 583, y: 278, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 583, y: 480, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Door", name: "", x: 188, y: 276, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 187, y: 208, parameters: { idGroup: 2, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 364, y: 345, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 364, y: 277, parameters: { idGroup: 3, Open: !0, DoorType: "woodDoor1", DoorName: "d" } }, { mc: "Door", name: "", x: 305, y: 411, parameters: { idGroup: 4, Open: !1, DoorType: "policeDoor", DoorName: "d1" } }, { mc: "Door", name: "", x: 304, y: 344, parameters: { idGroup: 4, Open: !0, DoorType: "policeDoor", DoorName: "d" } }, { mc: "Padlock", name: "", x: 319, y: 412, parameters: { DoorName: "d1", PadlockType: "GrayFront", PadlockLevel: "1", HoleWidth: "2" } }, { mc: "Elevator", name: "", x: 62, y: 143, scaleX: .75, scaleY: .75, parameters: { idGroup: 2, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 62, y: 278, scaleX: .75, scaleY: .75, parameters: { idGroup: 2, Open: !0, DoorName: "el" } }, { mc: "Door", name: "", x: 580, y: 142, parameters: { idGroup: 5, Open: !1, DoorType: "policeDoor", DoorName: "d2" } }, { mc: "Door", name: "", x: 579, y: 75, parameters: { idGroup: 5, Open: !0, DoorType: "policeDoor", DoorName: "d" } }, { mc: "Padlock", name: "", x: 591, y: 143, parameters: { DoorName: "d2", PadlockType: "GoldFront", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "SideDoor", name: "", x: 184, y: 478, parameters: { Open: !1, DoorType: "policeDoor", DoorName: "ds1" } }, { mc: "Padlock", name: "", x: 191, y: 486, parameters: { DoorName: "ds1", PadlockType: "GrayRight", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "SideDoor", name: "", x: 528, y: 478, parameters: { Open: !1, DoorType: "policeDoor", DoorName: "ds2" } }, { mc: "Padlock", name: "", x: 535, y: 486, parameters: { DoorName: "ds2", PadlockType: "GrayRight", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "SideDoor", name: "", x: 528, y: 410, parameters: { Open: !1, DoorType: "policeDoor", DoorName: "ds4" } }, { mc: "Padlock", name: "", x: 497, y: 415, parameters: { DoorName: "ds4", PadlockType: "GrayLeft", PadlockLevel: "1", HoleWidth: "3" } }, { mc: "SideDoor", name: "", x: 369, y: 208, parameters: { Open: !1, DoorType: "policeDoor", DoorName: "ds5" } }, { mc: "Codelock", name: "", x: 319, y: 211, parameters: { Code: "1234", DoorName: "ds5", Locked: !0 } }, { mc: "Computer", name: "", x: 160, y: 407, parameters: { DoorName: "ds5", Locked: !0, tempField: "" } }, { mc: "MoneyBonus", name: "", x: 388, y: 78, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 250, y: 152, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 514, y: 80, parameters: { Amount: 65, TakeIt: !1 } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 465, y: 74, parameters: { Amount: 100, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 194, y: 149, parameters: { Amount: 20, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 392, y: 146, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 500, y: 146, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 571, y: 209, parameters: { Amount: 100, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 398, y: 218, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 256, y: 213, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 55, y: 216, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 104, y: 279, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 282, y: 282, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 466, y: 275, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 170, y: 347, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 451, y: 344, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 573, y: 354, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 421, y: 417, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 570, y: 417, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 42, y: 413, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 113, y: 484, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 284, y: 481, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 454, y: 476, parameters: { Amount: 20, TakeIt: !1 } }, { mc: "Dog", name: "", x: 475, y: 490, scaleX: .29998779296875, scaleY: .29998779296875, parameters: { Distance: 260, Direction: "left", StopMoveWaitTime: 3e3 } }, { mc: "Oldman", name: "", x: 35, y: 353, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 180, Direction: "r", StopMoveWaitTime: 1e3 } }, { mc: "Policeman", name: "", x: 600, y: 286, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 330, Direction: "left", StopMoveWaitTime: 1e3 } }, { mc: "Oldman", name: "", x: 270, y: 286, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 330, Direction: "r", StopMoveWaitTime: 3e3 } }, { mc: "Policeman", name: "", x: 40, y: 218, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 280, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "Ambal", name: "", x: 585, y: 151, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 190, Direction: "left", StopMoveWaitTime: 2e3 } }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "GameTarget", name: "", x: 516, y: 215, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 44, y: 356, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Bob", name: "", x: 50, y: 86, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 400, y: 393, parameters: { IdleTimer: 4e3, Direction: "left", ViewZoneLeft: 140, ViewZoneRight: 100 } }, { mc: "VideoCamera", name: "", x: 360, y: 460, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 170, ViewZoneRight: 140 } }, { mc: "VideoCamera", name: "", x: 190, y: 189, parameters: { IdleTimer: 4e3, Direction: "left", ViewZoneLeft: 190, ViewZoneRight: 155 } }, { mc: "VideoCamera", name: "", x: 160, y: 123, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 140, ViewZoneRight: 180 } }, { mc: "Shadow", name: "", x: 47, y: 151, scaleX: 4.0010986328125, scaleY: .75 }, { mc: "Shadow", name: "", x: 190, y: 489, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 499, y: 419, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 340, y: 151, scaleX: 1.5029144287109375, scaleY: .75 }, { mc: "Shadow", name: "", x: 337, y: 216, scaleX: 1.7504730224609375, scaleY: .75 }, { mc: "Shadow", name: "", x: 274, y: 417, scaleX: 3.50341796875, scaleY: .75 }, { mc: "Level06Front", name: "", x: 0, y: 0 }, { mc: "ProgressBarSkill", name: "progressSkill", x: 683, y: 190, scaleX: .75, scaleY: .75 }] }, { name: "Level07", children: [{ mc: "Level07Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 18, y: 277, scaleY: 1.06695556640625 }, { mc: "Wall", name: "", x: 622, y: 317, scaleY: 1.333740234375 }, { mc: "Wall", name: "", x: 2, y: 484, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: -1, y: 79, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 377, y: 344, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 405, y: 344, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 638, y: 79, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 546, y: 142, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 574, y: 142, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 321, y: 507, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 438, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 104, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 274, y: 171, scaleX: 1.8666229248046875 }, { mc: "Floor", name: "", x: 326, y: 373, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 306, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 238, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 598, y: 151, scaleY: .5001678466796875 }, { mc: "Door", name: "", x: 274, y: 479, parameters: { idGroup: 1, Open: !0, DoorType: "labDoor", DoorName: "d" } }, { mc: "Door", name: "", x: 274, y: 411, parameters: { idGroup: 1, Open: !0, DoorType: "labDoor", DoorName: "d" } }, { mc: "Elevator", name: "", x: 581, y: 278, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 581, y: 480, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Door", name: "", x: 58, y: 276, parameters: { idGroup: 2, Open: !1, DoorType: "Steel1", DoorName: "d3" } }, { mc: "Door", name: "", x: 58, y: 209, parameters: { idGroup: 2, Open: !0, DoorType: "labDoor", DoorName: "d" } }, { mc: "ElectricPanel", name: "", x: 440, y: 340, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "Door", name: "", x: 336, y: 411, parameters: { idGroup: 3, Open: !1, DoorType: "labDoor", DoorName: "d1" } }, { mc: "Door", name: "", x: 336, y: 343, parameters: { idGroup: 3, Open: !0, DoorType: "labDoor", DoorName: "d" } }, { mc: "Padlock", name: "", x: 352, y: 413, parameters: { DoorName: "d1", PadlockType: "GrayFront", PadlockLevel: "1", HoleWidth: "2" } }, { mc: "Door", name: "", x: 581, y: 412, parameters: { idGroup: 4, Open: !0, DoorType: "labDoor", DoorName: "d" } }, { mc: "Door", name: "", x: 581, y: 344, parameters: { idGroup: 4, Open: !0, DoorType: "labDoor", DoorName: "d" } }, { mc: "Door", name: "", x: 383, y: 142, parameters: { idGroup: 5, Open: !0, DoorType: "labDoor", DoorName: "d" } }, { mc: "Door", name: "", x: 383, y: 75, parameters: { idGroup: 5, Open: !1, DoorType: "labDoor", DoorName: "d2" } }, { mc: "Codelock", name: "", x: 94, y: 274, parameters: { Code: "1234", DoorName: "d3", Locked: !0 } }, { mc: "Message", name: "", x: 89, y: 210, parameters: { LinkTo: "aboutZombies", DoorName: "d" } }, { mc: "Computer", name: "", x: 40, y: 340, parameters: { DoorName: "d3", Locked: !0, tempField: "" } }, { mc: "Padlock", name: "", x: 398, y: 76, parameters: { DoorName: "d2", PadlockType: "GoldFront", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "ZombieBack", name: "", x: 260, y: 194, parameters: { Distance: 280, Direction: "left", StopMoveWaitTime: 1e3, DistancePassed: 240 } }, { mc: "Turret", name: "", x: 504, y: 122, parameters: { TurretName: "t", Locked: !1, View: "l" } }, { mc: "MoneyBonus", name: "", x: 108, y: 482, parameters: { Amount: 20, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 141, y: 282, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 155, y: 482, parameters: { Amount: 5, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 418, y: 482, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 474, y: 482, parameters: { Amount: 20, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 395, y: 413, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 533, y: 413, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 155, y: 413, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 123, y: 350, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 277, y: 350, parameters: { Amount: 80, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 493, y: 353, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 531, y: 348, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 490, y: 282, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 285, y: 285, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 111, y: 213, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 150, y: 213, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 355, y: 208, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 483, y: 150, parameters: { Amount: 120, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 66, y: 149, parameters: { Amount: 150, TakeIt: !1 } }, { mc: "Policeman", name: "", x: 50, y: 286, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 310, Direction: "r", StopMoveWaitTime: 1500 } }, { mc: "Policeman", name: "", x: 220, y: 487, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 380, Direction: "r", StopMoveWaitTime: 1500 } }, { mc: "Policeman", name: "", x: 470, y: 83, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 140, Direction: "r", StopMoveWaitTime: 3e3 } }, { mc: "Oldman", name: "", x: 165, y: 421, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 130, Direction: "left", StopMoveWaitTime: 3e3 } }, { mc: "Ambal", name: "", x: 520, y: 152, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 480, Direction: "left", StopMoveWaitTime: 1e3 } }, { mc: "Laser", name: "", x: 459, y: 278, parameters: { LaserName: "l1", Type: 1 } }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "GameTarget", name: "", x: 515, y: 209, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 70, y: 82, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Bob", name: "", x: 25, y: 490, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 240, y: 256, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 200, ViewZoneRight: 140 } }, { mc: "VideoCamera", name: "", x: 240, y: 391, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 20, ViewZoneRight: 240 } }, { mc: "Shadow", name: "", x: 369, y: 353, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 56, y: 151, scaleX: 3.50091552734375, scaleY: .75 }, { mc: "Shadow", name: "", x: 213, y: 486, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 285, y: 150, scaleX: 2.0005340576171875, scaleY: .75 }, { mc: "Level07Front", name: "", x: 0, y: 0 }, { mc: "ProgressBarSkill", name: "progressSkill", x: 683, y: 203, scaleX: .75, scaleY: .75 }] }, { name: "Level08", children: [{ mc: "Level08Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 18, y: 143, scaleY: .633514404296875 }, { mc: "Wall", name: "", x: 622, y: 278, scaleY: 1.5337982177734375 }, { mc: "Wall", name: "", x: 409, y: 145, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 149, y: 211, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 18, y: 418, scaleY: .6668548583984375 }, { mc: "Wall", name: "", x: 440, y: 145, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 146, y: 346, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 177, y: 346, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 277, y: 415, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 308, y: 415, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 321, y: 508, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 439, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 103, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 322, y: 170, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 373, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 306, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 79, y: 238, scaleX: .5 }, { mc: "Stair", name: "", x: 41, y: 386, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 599, y: 456, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 332, y: 217, scaleY: .466827392578125 }, { mc: "Laser", name: "", x: 555, y: 413, parameters: { LaserName: "l1", Type: 2 } }, { mc: "ElectricPanel", name: "", x: 545, y: 475, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "SideDoor", name: "", x: 216, y: 74, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds1" } }, { mc: "SideDoor", name: "", x: 305, y: 478, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds2" } }, { mc: "Codelock", name: "", x: 245, y: 477, parameters: { Code: "4512", DoorName: "ds2", Locked: !0 } }, { mc: "Padlock", name: "", x: 223, y: 78, parameters: { DoorName: "ds1", PadlockType: "GoldRight", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Door", name: "", x: 113, y: 480, parameters: { idGroup: 1, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 113, y: 412, parameters: { idGroup: 1, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 230, y: 412, parameters: { idGroup: 2, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 230, y: 344, parameters: { idGroup: 2, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 580, y: 345, parameters: { idGroup: 3, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 581, y: 277, parameters: { idGroup: 3, Open: !1, DoorType: "Steel1", DoorName: "d7" } }, { mc: "Door", name: "", x: 56, y: 210, parameters: { idGroup: 4, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 56, y: 142, parameters: { idGroup: 4, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 269, y: 142, parameters: { idGroup: 5, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 269, y: 75, parameters: { idGroup: 5, Open: !1, DoorType: "Steel1", DoorName: "d1" } }, { mc: "Padlock", name: "", x: 285, y: 78, parameters: { DoorName: "d1", PadlockType: "GoldFront", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Door", name: "", x: 580, y: 142, parameters: { idGroup: 6, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 580, y: 76, parameters: { idGroup: 6, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Elevator", name: "", x: 485, y: 142, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 485, y: 413, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Terminal", name: "", x: 126, y: 208, parameters: { DoorName: "d7", Locked: !0 } }, { mc: "Message", name: "", x: 532, y: 141, parameters: { LinkTo: "aboutSecurity", DoorName: "d" } }, { mc: "Computer", name: "", x: 119, y: 338, parameters: { DoorName: "ds2", Locked: !0, tempField: "" } }, { mc: "Turret", name: "", x: 340, y: 391, scaleX: -1, parameters: { TurretName: "t", Locked: !1, View: "right" } }, { mc: "MoneyBonus", name: "", x: 53, y: 490, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 174, y: 483, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 344, y: 483, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 346, y: 413, parameters: { Amount: 80, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 176, y: 413, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 517, y: 350, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 55, y: 343, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 377, y: 347, parameters: { Amount: 60, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 120, y: 282, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 221, y: 288, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 398, y: 281, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 466, y: 282, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 22, y: 213, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 386, y: 149, parameters: { Amount: 30, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 204, y: 149, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 448, y: 77, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 495, y: 77, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 330, y: 81, parameters: { Amount: 90, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 110, y: 75, parameters: { Amount: 100, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 50, y: 77, parameters: { Amount: 140, TakeIt: !1 } }, { mc: "Dog", name: "", x: 40, y: 490, scaleX: .29998779296875, scaleY: .29998779296875, parameters: { Distance: 220, Direction: "r", StopMoveWaitTime: 3e3 } }, { mc: "Oldman", name: "", x: 390, y: 152, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 350, Direction: "left", StopMoveWaitTime: 3e3 } }, { mc: "Securityman", name: "", x: 600, y: 84, parameters: { Distance: 350, Direction: "left", StopMoveWaitTime: 1100 } }, { mc: "Dog", name: "", x: 200, y: 289, scaleX: .29998779296875, scaleY: .29998779296875, parameters: { Distance: 400, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "Zombieman", name: "", x: 600, y: 489, parameters: { Distance: 270, Direction: "left", StopMoveWaitTime: 1500 } }, { mc: "Securityman", name: "", x: 200, y: 353, parameters: { Distance: 240, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "GameTarget", name: "", x: 393, y: 410, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 25, y: 280, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "Bob", name: "", x: 40, y: 287, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 270, y: 120, parameters: { IdleTimer: 2500, Direction: "left", ViewZoneLeft: 230, ViewZoneRight: 140 } }, { mc: "VideoCamera", name: "", x: 324, y: 323, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 130, ViewZoneRight: 140 } }, { mc: "Level08Front", name: "", x: 0, y: 0 }, { mc: "Shadow", name: "", x: 269, y: 150, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 55, y: 149, scaleX: 3.50341796875, scaleY: .75 }, { mc: "Shadow", name: "", x: 293, y: 487, scaleX: 3.50341796875, scaleY: .75 }, { mc: "Shadow", name: "", x: 612, y: 350, scaleX: 1.000244140625, scaleY: .75 }, { mc: "Shadow", name: "", x: 609, y: 80, scaleX: 1.000244140625, scaleY: .75 }, { mc: "Shadow", name: "", x: 321, y: 350, scaleX: 2.503173828125, scaleY: .75 }, { mc: "Shadow", name: "", x: 405, y: 81, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "ProgressBarSkill", name: "progressSkill", x: 683, y: 203, scaleX: .75, scaleY: .75 }, { mc: "Wall", name: "", x: 4, y: 281, scaleY: .2767486572265625 }] }, { name: "Level09", children: [{ mc: "Level09Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 17, y: 109, scaleX: .9955902099609375, scaleY: .4334564208984375 }, { mc: "Wall", name: "", x: 623, y: 278, scaleY: 1.5337982177734375 }, { mc: "Wall", name: "", x: 0, y: 216, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 206, y: 347, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 17, y: 379, scaleY: .866912841796875 }, { mc: "Wall", name: "", x: 237, y: 347, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 321, y: 508, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 438, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 104, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 322, y: 171, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 372, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 306, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 237, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 107, y: 254, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 404, y: 254, scaleY: .266754150390625 }, { mc: "Door", name: "", x: 57, y: 479, parameters: { idGroup: 1, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 56, y: 411, parameters: { idGroup: 1, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 168, y: 411, parameters: { idGroup: 2, Open: !1, DoorType: "labDoor", DoorName: "d1" } }, { mc: "Door", name: "", x: 167, y: 343, parameters: { idGroup: 2, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Padlock", name: "", x: 182, y: 413, parameters: { DoorName: "d1", PadlockType: "GoldFront", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Door", name: "", x: 422, y: 411, parameters: { idGroup: 3, Open: !1, DoorType: "Steel1", DoorName: "d2" } }, { mc: "Door", name: "", x: 421, y: 344, parameters: { idGroup: 3, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 56, y: 142, parameters: { idGroup: 4, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 55, y: 75, parameters: { idGroup: 4, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 579, y: 209, parameters: { idGroup: 5, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 579, y: 142, parameters: { idGroup: 5, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Elevator", name: "", x: 579, y: 76, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !1, DoorName: "el1" } }, { mc: "Elevator", name: "", x: 579, y: 481, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el1" } }, { mc: "Codelock", name: "", x: 455, y: 409, parameters: { Code: "4512", DoorName: "d2", Locked: !0 } }, { mc: "SideDoor", name: "", x: 523, y: 410, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds1" } }, { mc: "Padlock", name: "", x: 493, y: 413, parameters: { DoorName: "ds1", PadlockType: "GoldLeft", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "SideDoor", name: "", x: 448, y: 479, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds2" } }, { mc: "Padlock", name: "", x: 454, y: 483, parameters: { DoorName: "ds2", PadlockType: "GoldRight", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "SideDoor", name: "", x: 501, y: 275, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds3" } }, { mc: "Padlock", name: "", x: 471, y: 279, parameters: { DoorName: "ds3", PadlockType: "GoldLeft", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Laser", name: "", x: 370, y: 346, parameters: { LaserName: "l1", Type: 2 } }, { mc: "ElectricPanel", name: "", x: 365, y: 407, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "SideDoor", name: "", x: 388, y: 74, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds4" } }, { mc: "Padlock", name: "", x: 357, y: 78, parameters: { DoorName: "ds4", PadlockType: "GoldLeft", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Codelock", name: "", x: 542, y: 75, parameters: { Code: "1234", DoorName: "el1", Locked: !0 } }, { mc: "Computer", name: "", x: 568, y: 269, parameters: { DoorName: "el1", Locked: !0, tempField: "" } }, { mc: "Message", name: "", x: 61, y: 339, parameters: { LinkTo: "aboutBob", DoorName: "d2" } }, { mc: "Level9Box", name: "", x: 234, y: 325 }, { mc: "Turret", name: "", x: 256, y: 325, scaleX: -1, parameters: { TurretName: "t", Locked: !1, View: "right" } }, { mc: "Turret", name: "", x: 181, y: 189, scaleX: -1, parameters: { TurretName: "t", Locked: !1, View: "right" } }, { mc: "Turret", name: "", x: 611, y: 189, parameters: { TurretName: "t", Locked: !1, View: "l" } }, { mc: "MoneyBonus", name: "", x: 130, y: 80, parameters: { Amount: 25, TakeIt: !1 } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 277, y: 77, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 414, y: 83, parameters: { Amount: 10, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 470, y: 80, parameters: { Amount: 70, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 237, y: 143, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 457, y: 149, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 530, y: 215, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 233, y: 219, parameters: { Amount: 60, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 71, y: 286, parameters: { Amount: 40, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 200, y: 283, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 613, y: 283, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 123, y: 415, parameters: { Amount: 60, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 548, y: 415, parameters: { Amount: 85, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 595, y: 415, parameters: { Amount: 200, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 310, y: 349, parameters: { Amount: 250, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 302, y: 488, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 105, y: 485, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "Securityman", name: "", x: 190, y: 353, parameters: { Distance: 150, Direction: "left", StopMoveWaitTime: 2e3 } }, { mc: "Lattice2", name: "", x: 393, y: 346, parameters: { LatticeName: "l", Locked: !1 } }, { mc: "Dog", name: "", x: 160, y: 153, scaleX: .29998779296875, scaleY: .29998779296875, parameters: { Distance: 310, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "Dog", name: "", x: 470, y: 153, scaleX: .29998779296875, scaleY: .29998779296875, parameters: { Distance: 310, Direction: "left", StopMoveWaitTime: 1e3 } }, { mc: "Zombieman", name: "", x: 35, y: 286, parameters: { Distance: 415, Direction: "r", StopMoveWaitTime: 1e3 } }, { mc: "Securityman", name: "", x: 40, y: 490, parameters: { Distance: 360, Direction: "r", StopMoveWaitTime: 3e3 } }, { mc: "Securityman", name: "", x: 400, y: 490, parameters: { Distance: 360, Direction: "left", StopMoveWaitTime: 2500 } }, { mc: "GameTarget", name: "", x: 265, y: 350, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 552, y: 348, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "Bob", name: "", x: 30, y: 220, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 185, y: 54, parameters: { IdleTimer: 2e3, Direction: "left", ViewZoneLeft: 165, ViewZoneRight: 175 } }, { mc: "VideoCamera", name: "", x: 405, y: 188, parameters: { IdleTimer: 2e3, Direction: "left", ViewZoneLeft: 245, ViewZoneRight: 210 } }, { mc: "VideoCamera", name: "", x: 495, y: 323, parameters: { IdleTimer: 5e3, Direction: "left", ViewZoneLeft: 255, ViewZoneRight: 135 } }, { mc: "Level09Front", name: "", x: 0, y: 0 }, { mc: "Shadow", name: "", x: 356, y: 82, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 38, y: 282, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 475, y: 282, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 491, y: 418, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 74, y: 418, scaleX: 5.0013427734375, scaleY: .75 }, { mc: "Shadow", name: "", x: 416, y: 487, scaleX: 2.503173828125, scaleY: .75 }, { mc: "Shadow", name: "", x: 259, y: 282, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "ProgressBarSkill", name: "progressSkill", x: 683, y: 190, scaleX: .75, scaleY: .75 }, { mc: "Shadow", name: "", x: 312, y: 150, scaleX: 2.00054931640625, scaleY: .75 }] }, { name: "Level10", children: [{ mc: "Level10Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 17, y: 244, scaleY: .400115966796875 }, { mc: "Wall", name: "", x: 624, y: 345, scaleY: 1.1002197265625 }, { mc: "Wall", name: "", x: 0, y: 347, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 419, y: 209, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 634, y: 143, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 17, y: 447, scaleY: .400115966796875 }, { mc: "Wall", name: "", x: 450, y: 209, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 7, y: 145, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 419, y: 277, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 450, y: 277, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 196, y: 345, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 227, y: 345, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 196, y: 482, scaleX: 2.0001220703125, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 321, y: 508, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 439, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 322, y: 169, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 370, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 303, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 236, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 49, y: 457, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 575, y: 389, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 247, y: 456, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 49, y: 185, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 590, y: 254, scaleY: .266754150390625 }, { mc: "Stair", name: "", x: 590, y: 183, scaleY: .266754150390625 }, { mc: "Elevator", name: "", x: 375, y: 276, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 376, y: 481, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Door", name: "", x: 159, y: 343, parameters: { idGroup: 1, Open: !0, DoorType: "labDoor2", DoorName: "d" } }, { mc: "Door", name: "", x: 159, y: 275, parameters: { idGroup: 1, Open: !0, DoorType: "labDoor2", DoorName: "d" } }, { mc: "Door", name: "", x: 516, y: 343, parameters: { idGroup: 2, Open: !1, DoorType: "labDoor2", DoorName: "d1" } }, { mc: "Door", name: "", x: 516, y: 275, parameters: { idGroup: 2, Open: !0, DoorType: "labDoor2", DoorName: "d" } }, { mc: "Codelock", name: "", x: 475, y: 340, parameters: { Code: "4512", DoorName: "d1", Locked: !0 } }, { mc: "Message", name: "", x: 600, y: 475, parameters: { LinkTo: "aboutBob", DoorName: "ds2" } }, { mc: "SideDoor", name: "", x: 324, y: 274, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds1" } }, { mc: "Padlock", name: "", x: 294, y: 278, parameters: { DoorName: "ds1", PadlockType: "GoldLeft", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "SideDoor", name: "", x: 354, y: 409, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds2" } }, { mc: "Codelock", name: "", x: 295, y: 410, parameters: { Code: "4512", DoorName: "ds2", Locked: !0 } }, { mc: "SideDoor", name: "", x: 449, y: 478, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds3" } }, { mc: "Padlock", name: "", x: 418, y: 482, parameters: { DoorName: "ds3", PadlockType: "GoldLeft", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Computer", name: "", x: 258, y: 335, parameters: { DoorName: "d1", Locked: !0, tempField: "" } }, { mc: "Laser", name: "", x: 380, y: 344, parameters: { LaserName: "blades", Type: 2 } }, { mc: "ElectricPanel", name: "", x: 382, y: 410, parameters: { Type: "h", LaserName: "blades", Locked: !0 } }, { mc: "Laser", name: "", x: 516, y: 412, parameters: { LaserName: "l1", Type: 2 } }, { mc: "ElectricPanel", name: "", x: 518, y: 477, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "bombTimer", name: "", x: 304, y: 198 }, { mc: "Message", name: "", x: 89, y: 336, parameters: { LinkTo: "aboutTimeBomb", DoorName: "d" } }, { mc: "Turret", name: "", x: 381, y: 392, scaleX: -1, parameters: { TurretName: "t", Locked: !1, View: "right" } }, { mc: "Turret", name: "", x: 247, y: 323, scaleX: -1, parameters: { TurretName: "t", Locked: !1, View: "right" } }, { mc: "MoneyBonus", name: "", x: 160, y: 480, parameters: { Amount: 200, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 480, y: 480, parameters: { Amount: 150, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 301, y: 480, parameters: { Amount: 60, TakeIt: !1 } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 572, y: 480, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 180, y: 415, parameters: { Amount: 70, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 430, y: 415, parameters: { Amount: 60, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 342, y: 340, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 49, y: 278, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 530, y: 210, parameters: { Amount: 85, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 551, y: 150, parameters: { Amount: 100, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 390, y: 208, parameters: { Amount: 500, TakeIt: !1 } }, { mc: "GameTarget", name: "", x: 240, y: 210, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 104, y: 210, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Securityman", name: "", x: 280, y: 284, parameters: { Distance: 240, Direction: "left", StopMoveWaitTime: 1500 } }, { mc: "Securityman", name: "", x: 40, y: 421, parameters: { Distance: 270, Direction: "r", StopMoveWaitTime: 1500 } }, { mc: "Zombieman", name: "", x: 40, y: 488, parameters: { Distance: 130, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "Zombieman", name: "", x: 40, y: 149, parameters: { Distance: 570, Direction: "r", StopMoveWaitTime: 1500 } }, { mc: "Zombieman", name: "", x: 600, y: 149, parameters: { Distance: 570, Direction: "left", StopMoveWaitTime: 1500 } }, { mc: "Lattice2", name: "", x: 416, y: 345, parameters: { LatticeName: "l", Locked: !1 } }, { mc: "WaterInfect", name: "", x: 234, y: 44 }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "Bob", name: "", x: 34, y: 353, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 213, y: 254, parameters: { IdleTimer: 4e3, Direction: "left", ViewZoneLeft: 170, ViewZoneRight: 70 } }, { mc: "VideoCamera", name: "", x: 450, y: 321, parameters: { IdleTimer: 4e3, Direction: "left", ViewZoneLeft: 210, ViewZoneRight: 150 } }, { mc: "Shadow", name: "", x: 194, y: 147, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 417, y: 147, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 321, y: 418, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 415, y: 487, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 30, y: 420, scaleX: 1.000244140625, scaleY: .75 }, { mc: "Level10Front", name: "", x: 0, y: 0 }, { mc: "ProgressBarSkill", name: "progressSkill", x: 683, y: 190, scaleX: .75, scaleY: .75 }] }, { name: "Level11", children: [{ mc: "Level11Back", name: "", x: 0, y: 0 }, { mc: "Wall", name: "", x: 16, y: 178, scaleY: .400115966796875 }, { mc: "Wall", name: "", x: 624, y: 280, scaleY: 1.5337982177734375 }, { mc: "Wall", name: "", x: -3, y: 280, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 55, y: 79, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 410, y: 143, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 16, y: 416, scaleY: .633514404296875 }, { mc: "Wall", name: "", x: 441, y: 143, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 585, y: 79, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 296, y: 381, scaleY: .400115966796875 }, { mc: "Wall", name: "", x: 323, y: 381, scaleY: .400115966796875 }, { mc: "Wall", name: "", x: 156, y: 277, scaleY: .166717529296875 }, { mc: "Wall", name: "", x: 187, y: 277, scaleY: .166717529296875 }, { mc: "Floor", name: "", x: 321, y: 507, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 442, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 324, y: 103, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 322, y: 171, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 372, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 305, scaleX: 2.1666259765625 }, { mc: "Floor", name: "", x: 326, y: 236, scaleX: 2.1666259765625 }, { mc: "Stair", name: "", x: 257, y: 322, scaleY: .266754150390625 }, { mc: "Door", name: "", x: 51, y: 480, parameters: { idGroup: 1, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 51, y: 411, parameters: { idGroup: 1, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 119, y: 346, parameters: { idGroup: 2, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 119, y: 277, parameters: { idGroup: 2, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 53, y: 210, parameters: { idGroup: 3, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 52, y: 143, parameters: { idGroup: 3, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Elevator", name: "", x: 373, y: 143, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Elevator", name: "", x: 373, y: 413, scaleX: .75, scaleY: .75, parameters: { idGroup: 1, Open: !0, DoorName: "el" } }, { mc: "Door", name: "", x: 543, y: 144, parameters: { idGroup: 4, Open: !1, DoorType: "labDoor", DoorName: "d1" } }, { mc: "Door", name: "", x: 542, y: 76, parameters: { idGroup: 4, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Padlock", name: "", x: 556, y: 144, parameters: { DoorName: "d1", PadlockType: "GoldFront", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Door", name: "", x: 483, y: 210, parameters: { idGroup: 5, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 482, y: 143, parameters: { idGroup: 5, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 542, y: 278, parameters: { idGroup: 6, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 542, y: 209, parameters: { idGroup: 6, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 429, y: 413, parameters: { idGroup: 7, Open: !1, DoorType: "Steel1", DoorName: "d2" } }, { mc: "Door", name: "", x: 429, y: 346, parameters: { idGroup: 7, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Padlock", name: "", x: 444, y: 413, parameters: { DoorName: "d2", PadlockType: "GoldFront", PadlockLevel: "2", HoleWidth: "2" } }, { mc: "Door", name: "", x: 558, y: 480, parameters: { idGroup: 8, Open: !0, DoorType: "Steel1", DoorName: "d" } }, { mc: "Door", name: "", x: 558, y: 412, parameters: { idGroup: 8, Open: !1, DoorType: "Steel1", DoorName: "d3" } }, { mc: "Codelock", name: "", x: 519, y: 410, parameters: { Code: "4512", DoorName: "d3", Locked: !0 } }, { mc: "Laser", name: "", x: 329, y: 144, parameters: { LaserName: "l1", Type: 2 } }, { mc: "ElectricPanel", name: "", x: 329, y: 74, parameters: { Type: "h", LaserName: "l1", Locked: !0 } }, { mc: "Laser", name: "", x: 470, y: 414, parameters: { LaserName: "blades", Type: 2 } }, { mc: "ElectricPanel", name: "", x: 469, y: 345, parameters: { Type: "h", LaserName: "blades", Locked: !0 } }, { mc: "Computer", name: "", x: 126, y: 70, parameters: { DoorName: "ds2", Locked: !0, tempField: "" } }, { mc: "SideDoor", name: "", x: 184, y: 73, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds1" } }, { mc: "Padlock", name: "", x: 189, y: 77, parameters: { DoorName: "ds1", PadlockType: "GrayRight", PadlockLevel: "1", HoleWidth: "2" } }, { mc: "SideDoor", name: "", x: 184, y: 141, parameters: { Open: !1, DoorType: "Steel1", DoorName: "ds2" } }, { mc: "Codelock", name: "", x: 129, y: 140, parameters: { Code: "4512", DoorName: "ds2", Locked: !0 } }, { mc: "ZombieBack", name: "", x: 160, y: 329, parameters: { Distance: 230, Direction: "left", StopMoveWaitTime: 3e3, DistancePassed: 80 } }, { mc: "ZombieBack", name: "", x: 380, y: 464, parameters: { Distance: 560, Direction: "left", StopMoveWaitTime: 2e3, DistancePassed: 190 } }, { mc: "SideDoor", name: "", x: 167, y: 409, parameters: { Open: !1, DoorType: "BankDoor", DoorName: "ds3" } }, { mc: "Terminal", name: "", x: 98, y: 409, parameters: { DoorName: "ds3", Locked: !0 } }, { mc: "Computer", name: "", x: 588, y: 345, parameters: { DoorName: "d3", Locked: !0, tempField: "" } }, { mc: "Turret", name: "", x: 405, y: 122, parameters: { TurretName: "t", Locked: !1, View: "l" } }, { mc: "MoneyBonus", name: "", x: 238, y: 81, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 80, y: 78, parameters: { Amount: 70, TakeIt: !1 } }, { mc: "BobBack", name: "", x: 707, y: 250, scaleX: .75, scaleY: .75 }, { mc: "MoneyBonus", name: "", x: 440, y: 81, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 219, y: 141, parameters: { Amount: 150, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 613, y: 151, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 125, y: 210, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 211, y: 213, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 277, y: 213, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 218, y: 277, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 317, y: 280, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 587, y: 282, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 50, y: 348, parameters: { Amount: 45, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 186, y: 352, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 409, y: 487, parameters: { Amount: 15, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 356, y: 348, parameters: { Amount: 75, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 515, y: 345, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 600, y: 420, parameters: { Amount: 50, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 205, y: 413, parameters: { Amount: 600, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 125, y: 480, parameters: { Amount: 35, TakeIt: !1 } }, { mc: "MoneyBonus", name: "", x: 294, y: 480, parameters: { Amount: 250, TakeIt: !1 } }, { mc: "Policeman", name: "", x: 330, y: 219, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 130, Direction: "left", StopMoveWaitTime: 3e3 } }, { mc: "Policeman", name: "", x: 345, y: 354, scaleX: .2769775390625, scaleY: .2769775390625, parameters: { Distance: 260, Direction: "r", StopMoveWaitTime: 2e3 } }, { mc: "Securityman", name: "", x: 600, y: 285, parameters: { Distance: 390, Direction: "left", StopMoveWaitTime: 1500 } }, { mc: "Zombieman", name: "", x: 200, y: 152, parameters: { Distance: 190, Direction: "r", StopMoveWaitTime: 1500 } }, { mc: "Dog", name: "", x: 600, y: 492, scaleX: .29998779296875, scaleY: .29998779296875, parameters: { Distance: 560, Direction: "left", StopMoveWaitTime: 2e3 } }, { mc: "GameTarget", name: "", x: 260, y: 415, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "GameExit", name: "", x: 23, y: 280, scaleX: 1.399993896484375, scaleY: 1.399993896484375 }, { mc: "Effects", name: "", x: 0, y: 0 }, { mc: "Bob", name: "", x: 35, y: 286, scaleX: .75, scaleY: .75 }, { mc: "VideoCamera", name: "", x: 330, y: 54, parameters: { IdleTimer: 4e3, Direction: "left", ViewZoneLeft: 140, ViewZoneRight: 240 } }, { mc: "VideoCamera", name: "", x: 420, y: 254, parameters: { IdleTimer: 4e3, Direction: "left", ViewZoneLeft: 230, ViewZoneRight: 170 } }, { mc: "VideoCamera", name: "", x: 515, y: 121, parameters: { IdleTimer: 2e3, Direction: "left", ViewZoneLeft: 65, ViewZoneRight: 100 } }, { mc: "VideoCamera", name: "", x: 300, y: 460, parameters: { IdleTimer: 3e3, Direction: "left", ViewZoneLeft: 270, ViewZoneRight: 300 } }, { mc: "VideoCamera", name: "", x: 85, y: 188, parameters: { IdleTimer: 1500, Direction: "left", ViewZoneLeft: 65, ViewZoneRight: 75 } }, { mc: "Level11Front", name: "", x: 0, y: 0 }, { mc: "Shadow", name: "", x: 549, y: 82, scaleX: 4.0010833740234375, scaleY: .75 }, { mc: "Shadow", name: "", x: 189, y: 84, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 349, y: 283, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 196, y: 487, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "Shadow", name: "", x: 455, y: 487, scaleX: 2.00054931640625, scaleY: .75 }, { mc: "ProgressBarSkill", name: "progressSkill", x: 683, y: 190, scaleX: .75, scaleY: .75 }] }, { name: "SideDoor", children: [{ mc: "RightSideDoor", name: "r", x: 0, y: 0 }, { mc: "LeftSideDoor", name: "l", x: 0, y: 0 }] }], e }() , MovieClip = function(n) { function p(e, t, i, r, o, s) { void 0 === e && (e = null), void 0 === t && (t = 0), void 0 === i && (i = 0), void 0 === r && (r = ""), void 0 === o && (o = null), void 0 === s && (s = null); var a = this; if (e instanceof Phaser.BitmapData) a = n.call(this, p.game, t, i, e) || this; else { if (e) o || (o = p.GetSpriteSheetName(e)), s || (s = p.GetLayoutData(e)), OzUtil.PE(s, null, "name", e) ? (a = n.call(this, p.game, t, i, null) || this).createLayout(s, e) : a = n.call(this, p.game, t, i, o, e + "0000") || this; else a = n.call(this, p.game, t, i, null) || this; a.mc = e } return a.name = r, a.params = {}, a.labels = {}, a.spriteSheetName = o, a._currentFrameNumber = 1, a._degrees = a.rotation = 0, a.butFrameOffset = 0, a.physicsEnabled = !1, a.frameProc = -1, a.cf1 = a.cf2 = null, a } return __extends(p, n), p.prototype.processEnterFrameEvents = function() { for (var e = 0; e < this.children.length; e++) { var t = this.children[e]; t instanceof p && t.processEnterFrameEvents() } if (this.enterFrameListeners) { for (e = 0; e < this.enterFrameListeners.length; e++) { (i = this.enterFrameListeners[e]) && i.call(this.enterFrameListenersContexts[e], null) } for (e = this.enterFrameListeners.length - 1; 0 <= e; e--) { var i; if (!(e >= this.enterFrameListeners.length)) (i = this.enterFrameListeners[e]) || (this.enterFrameListeners.splice(e, 1), this.enterFrameListenersContexts.splice(e, 1)) } } } , p.prototype.addEventListener = function(e, t) { if (this.enterFrameListeners) for (var i = 0; i < this.enterFrameListeners.length; i++) if (this.enterFrameListeners[i] == e) return; this.enterFrameListeners || (this.enterFrameListeners = new Array, this.enterFrameListenersContexts = new Array), this.enterFrameListeners.push(e), this.enterFrameListenersContexts.push(t) } , p.prototype.removeEventListener = function(e) { if (this.enterFrameListeners) for (var t = 0; t < this.enterFrameListeners.length; t++) if (this.enterFrameListeners[t] == e) { this.enterFrameListeners[t] = null, this.enterFrameListenersContexts[t] = null; break } } , p.RegisterSpritesheet = function(e, t, i) { Game.getGame().load.atlas(e, "assets/atlases/" + e + ".png", null, t), p.SpriteSheetDatas || (p.SpriteSheetDatas = {}); for (var r = null, o = (p.SpriteSheetDatas[e] = t).frames, s = 0; s < o.length; s++) { if (r != (a = (a = o[s].filename).substring(0, a.length - 4))) { if (p.GetSpriteSheetName(a) || p.GetLayoutData(a)) throw new Error("ALREADY DEFINED " + a); p.MCName2SpriteSheetName[a] = e } r = a } for (s = 0; s < i.length; s++) { var a = i[s].name; if (p.GetSpriteSheetName(a) || p.GetLayoutData(a)) throw new Error("ALREADY DEFINED " + a); p.MCName2SpriteSheetLayoutData[a] = i } } , p.GetSpriteSheetName = function(e) { return p.MCName2SpriteSheetName[e] } , p.GetLayoutData = function(e) { return p.MCName2SpriteSheetLayoutData[e] } , p.FrameRate = function(e) { return e < 0 ? 30 : Math.round(60 * e / 30) } , p.prototype.applyLayout = function(e) { this.createLayout(p.GetLayoutData(e), e) } , p.prototype.curFrameCheckAndProc = function(e) { return this.currentFrame == e && this.frameProc != e && (this.frameProc = e, !0) } , p.prototype.hasTint = function() { return 16777215 != this.tint } , p.prototype.removeTint = function() { this.tint = 16777215 } , p.prototype.setTint = function(e, t) { e ^= 16777215, this.tintRed = 255 - (e >> 16 & 255) * t, this.tintGreen = 255 - (e >> 8 & 255) * t, this.tintBlue = 255 - (255 & e) * t } , Object.defineProperty(p.prototype, "tintRed", { get: function() { return this.tint >> 16 & 255 }, set: function(e) { this.tint = (Math.round(Math.min(255, Math.max(0, e))) << 16) + (65535 & this.tint) }, enumerable: !0, configurable: !0 }), Object.defineProperty(p.prototype, "tintGreen", { get: function() { return this.tint >> 8 & 255 }, set: function(e) { this.tint = (Math.round(Math.min(255, Math.max(0, e))) << 8) + (this.tint & 510 << 16) }, enumerable: !0, configurable: !0 }), Object.defineProperty(p.prototype, "tintBlue", { get: function() { return 255 & this.tint }, set: function(e) { this.tint = Math.round(Math.min(255, Math.max(0, e))) + (16776960 & this.tint) }, enumerable: !0, configurable: !0 }), p.prototype.generateDefaultAnimation = function(e) { void 0 === e && (e = -1); var t = Phaser.Animation.generateFrameNames(this.mc, 0, this.totalFrames(), "", 4); this.animations.add("_null", t, p.FrameRate(e)) } , p.prototype.playLoop = function(e, t) { void 0 === e && (e = -1), void 0 === t && (t = "_null"), this.playAnimation2(t, p.FrameRate(e), !0) } , p.prototype.playOnce = function(e, t) { void 0 === e && (e = -1), void 0 === t && (t = "_null"), this.playAnimation2(t, p.FrameRate(e), !1) } , p.prototype.playToEnd = function(e, t, i) { void 0 === e && (e = -1), void 0 === t && (t = -1), void 0 === i && (i = !1), t < 0 && (t = this.currentFrame); var r = "_null"; if (1 < t && (r += t, !this.animations.getAnimation(r))) { var o = Phaser.Animation.generateFrameNames(this.mc, t - 1, this.totalFrames(), "", 4); this.animations.add(r, o, p.FrameRate(e)) } i ? this.playLoop(e, r) : this.playOnce(e, r) } , p.prototype.getOffsetToCenterX = function() { var e = this.mc + p.getPaddedNumber(this.currentFrameNumber - 1, 4) , t = p.SpriteSheetDatas[this.spriteSheetName] , i = OzUtil.PE(t, "frames", "filename", e); return i ? i.frame.w / 2 + i.spriteSourceSize.x : 0 } , p.prototype.getOffsetToCenterY = function() { var e = this.mc + p.getPaddedNumber(this.currentFrameNumber - 1, 4) , t = p.SpriteSheetDatas[this.spriteSheetName] , i = OzUtil.PE(t, "frames", "filename", e); return i ? i.frame.h / 2 + i.spriteSourceSize.y : 0 } , p.getSpriteSourceX = function(e, t) { void 0 === t && (t = null), t || (t = "Objects"); var i = e + p.getPaddedNumber(0, 4) , r = p.SpriteSheetDatas[t] , o = OzUtil.PE(r, "frames", "filename", i); return o && o.spriteSourceSize.x, 0 } , p.getSpriteSourceY = function(e, t) { void 0 === t && (t = null), t || (t = "Objects"); var i = e + p.getPaddedNumber(0, 4) , r = p.SpriteSheetDatas[t] , o = OzUtil.PE(r, "frames", "filename", i); return o && o.spriteSourceSize.y, 0 } , p.prototype.parentRect = function(e) { e[0] *= this.scaleX, e[1] *= this.scaleY, e[2] *= this.scaleX, e[3] *= this.scaleY, e[0] += this.x, e[1] += this.y, e[2] < 0 && (e[0] += e[2], e[2] = -e[2]), e[3] < 0 && (e[1] += e[3], e[3] = -e[3]) } , p.prototype.getRect = function(e) { var t = 1e7 , i = -1e7 , r = 1e7 , o = -1e7 , s = this.mc + p.getPaddedNumber(this.currentFrameNumber - 1, 4) , a = p.SpriteSheetDatas[this.spriteSheetName] , n = OzUtil.PE(a, "frames", "filename", s); n && (t = n.spriteSourceSize.x, r = n.spriteSourceSize.y, i = t + n.frame.w, o = r + n.frame.h), e[0] = t, e[1] = r, e[2] = i - t, e[3] = o - r, this.parentRect(e) } , p.prototype.getMcBounds = function() { var e = 1e6 , t = -1e6 , i = 1e6 , r = -1e6; if (this.mc) { var o = this.mc + p.getPaddedNumber(this.currentFrameNumber - 1, 4) , s = p.SpriteSheetDatas[this.spriteSheetName] , a = OzUtil.PE(s, "frames", "filename", o); a && (e = a.spriteSourceSize.x, i = a.spriteSourceSize.y, t = e + a.frame.w, r = i + a.frame.h) } if (0 < this.children.length) { var n = 0; for (n = 0; n < this.children.length; n++) if (this.children[n]instanceof p) { var h = this.children[n]; if ("putDoor" != h.name && "putElevator" != h.name && "putVector" != h.name) { var c = h.getMcBounds(); c.x += h.x, c.y += h.y, c.x < e && (e = c.x), c.x + c.width > t && (t = c.x + c.width), c.y < i && (i = c.y), c.y + c.height > r && (r = c.y + c.height) } } } var l = this.degrees * Math.PI / 180 , m = new PIXI.Rectangle; return p.updateRectWithPointRot(m, e, i, l, !0), p.updateRectWithPointRot(m, t, i, l), p.updateRectWithPointRot(m, t, r, l), p.updateRectWithPointRot(m, e, r, l), m.width = m.width - m.x, m.height = m.height - m.y, m } , p.updateRectWithPointRot = function(e, t, i, r, o) { void 0 === o && (o = !1); var s = t * Math.cos(r) - i * Math.sin(r) , a = t * Math.sin(r) + i * Math.cos(r); o ? (e.x = s, e.width = s, e.y = a, e.height = a) : (s < e.x && (e.x = s), s > e.width && (e.width = s), a < e.y && (e.y = a), a > e.height && (e.height = a)) } , p.prototype.drawOutline = function() { var e = Game.getGame().add.graphics(0, 0); if (this.addChildAt(e, 0), e.lineStyle(3, 65280), "CameraGraphicsComp" == this.mc) e.drawCircle(0, -2, 24); else { var t = this.getMcBounds(); e.drawPolygon([new Phaser.Point(t.x,t.y), new Phaser.Point(t.x + t.width,t.y), new Phaser.Point(t.x + t.width,t.y + t.height), new Phaser.Point(t.x,t.y + t.height), new Phaser.Point(t.x,t.y)]) } return e.endFill(), e.rotation = this.rotation, e } , p.prototype.cloneMeToChildren = function(e, t, i, r, o) { void 0 === i && (i = 0), void 0 === r && (r = 0), void 0 === o && (o = 0); for (var s = 0; s < e; s++) { var a = new p(this.mc); a.x = r + (s + 1) * t, a.y = o + (s + 1) * i, this.addChild(a) } } , p.prototype.meAndMyKids = function(e) { void 0 === e && (e = !0); for (var t = [this], i = 0; i < this.children.length; i++) { var r = this.getChildAt(i); e && this.mc != r.mc || t.push(r) } return t } , p.prototype.fatherBrother = function(e) { var t = this.parent.getChild(e); t.x -= this.x, t.y -= this.y, this.addChild(t) } , p.prototype.p2cX = function(e, t) { return e != this && (t = this.parent.p2cX(e, t)), t -= this.x, t /= this.scaleX } , p.prototype.p2cY = function(e, t) { return e != this && (t = this.parent.p2cY(e, t)), t -= this.y, t /= this.scaleY } , p.prototype.pointSelects = function(e, t) { if ("putVector" == this.name) return !1; e -= this.x, t -= this.y, e /= this.scaleX, t /= this.scaleY; var i = -this.degrees * Math.PI / 180 , r = e * Math.cos(i) - t * Math.sin(i) , o = e * Math.sin(i) + t * Math.cos(i); e = r, t = o; if (0 < this.children.length) { var s = 0; for (s = 0; s < this.children.length; s++) { var a = this.children[s]; if (this.children[s]instanceof p && a.pointSelects(e, t)) return !0 } } if (this.mc) { var n = this.mc + p.getPaddedNumber(this.currentFrameNumber - 1, 4) , h = p.SpriteSheetDatas[this.spriteSheetName] , c = OzUtil.PE(h, "frames", "filename", n); if (c) { var l = c.spriteSourceSize.x , m = c.spriteSourceSize.y , u = l + c.frame.w , d = m + c.frame.h; if (OzUtil.OnSegment(l, e, u) && OzUtil.OnSegment(m, t, d)) return !0 } } return !1 } , p.prototype.xyFrom = function(e) { this.x = e.x, this.y = e.y } , p.prototype.setxy = function(e, t) { this.x = e, this.y = t } , Object.defineProperty(p.prototype, "scaleX", { get: function() { return this.scale.x }, set: function(e) { this.scale.x = e }, enumerable: !0, configurable: !0 }), Object.defineProperty(p.prototype, "scaleY", { get: function() { return this.scale.y }, set: function(e) { this.scale.y = e }, enumerable: !0, configurable: !0 }), Object.defineProperty(p.prototype, "degrees", { get: function() { return 180 * this.rotation / Math.PI }, set: function(e) { this._degrees = e, this.rotation = e * Math.PI / 180 }, enumerable: !0, configurable: !0 }), Object.defineProperty(p.prototype, "numChildren", { get: function() { return this.children.length }, enumerable: !0, configurable: !0 }), p.prototype.totalFrames = function() { for (var e = 0; ; ) { var t = this.mc + p.getPaddedNumber(e, 4) , i = p.SpriteSheetDatas[this.spriteSheetName]; if (!OzUtil.PE(i, "frames", "filename", t)) break; e++ } return e } , p.FrameFromName = function(e, t) { void 0 === t && (t = 4); for (var i = 1, r = 1, o = 0; o < t; o++) { i += parseInt(e.charAt(e.length - 1 - o)) * r, r *= 10 } return i } , p.getPaddedNumber = function(e, t) { for (var i = "" + Math.round(e), r = t - i.length, o = 0; o < r; o++) i = "0" + i; return i } , p.prototype.registerAnimation = function(e, t, i, r, o, s, a) { void 0 === i && (i = -1), void 0 === r && (r = -1), void 0 === o && (o = !0), void 0 === s && (s = null), void 0 === a && (a = null), -1 == i || t == i ? this.registerLabel(e, t) : this.addAnimation(e, t, i, r, o, s, a) } , p.prototype.addAnimation = function(e, t, i, r, o, s, a) { void 0 === r && (r = -1), void 0 === o && (o = !0), void 0 === s && (s = null), void 0 === a && (a = null); var n = Phaser.Animation.generateFrameNames(this.mc, t - 1, i - 1, "", 4) , h = this.animations.add(e, n, p.FrameRate(r), o); s && h.onComplete.add(s, a) } , p.prototype.playResume = function() { this.currentAnimation && this.animations.currentAnim.paused && (this.animations.currentAnim.paused = !1, this.animations.currentAnim.next(2)) } , p.prototype.playAnimation = function(e) { this.currentAnimation = e; this.animations.play(e) } , p.prototype.playAnimation2 = function(e, t, i) { "_null" != e || this.animations.getAnimation("_null") || this.generateDefaultAnimation(t), this.currentAnimation = e; this.animations.play(e, t, i) } , Object.defineProperty(p.prototype, "currentFrame", { get: function() { var e = this._currentFrameNumber; return this.currentAnimation && this.animations.currentAnim && (e = p.FrameFromName(this.animations.currentAnim.currentFrame.name)), e }, enumerable: !0, configurable: !0 }), Object.defineProperty(p.prototype, "currentFrameNumber", { get: function() { return this._currentFrameNumber }, set: function(e) { this._currentFrameNumber = e, e--; var t = this.mc; t += p.getPaddedNumber(e, 4), this.frameName = t, this.currentAnimation && this.animations.currentAnim.setFrame(e, !0) }, enumerable: !0, configurable: !0 }), p.prototype.gotoLabel = function(e) { if ("Bob" == this.mc) { var t = this.currentFrame; if ("work" == e && 105 <= t && t <= 129) return; if ("workLeft" == e && 130 <= t && t <= 145) return; if ("workRight" == e && 146 <= t && t <= 161) return } this.gotoAndStopLabel(e) || this.gotoAndPlayLabel(e) } , p.prototype.isPlaying = function() { return this.currentAnimation && this.animations.currentAnim.isPlaying && !this.animations.currentAnim.isPaused } , p.prototype.gotoAndPlayLabel = function(e) { if (null == this.animations.getAnimation(e)) throw new Error("NO SUCH ANIM " + e); this.playAnimation(e) } , p.prototype.gotoAndPlay = function(e, t, i, r) { void 0 === t && (t = !0), void 0 === i && (i = -1), void 0 === r && (r = "_null"), this.isPlaying() && this.currentAnimation == r || this.playAnimation2(r, p.FrameRate(i), t), this.currentFrameNumber = e } , p.prototype.registerLabel = function(e, t) { this.labels[e] = t } , p.prototype.gotoAndStopLabel = function(e) { return !!this.labels[e] && (this.gotoAndStop(this.labels[e]), !(this.currentAnimation = null)) } , p.prototype.gotoAndStop = function(e) { e = Math.max(1, e), this.stop(), this.currentAnimation = null, this.currentFrameNumber = e } , p.prototype.stop = function() { this.isPlaying() && this.animations.stop() } , p.prototype.centerInputRect = function() { this.hitArea = new Phaser.Rectangle(-this.width / 2,-this.height / 2,this.width,this.height) } , p.prototype.getChild = function(e) { for (var t = 0, i = this.children; t < i.length; t++) { var r = i[t]; if (r instanceof p) { var o = r; if (o.name == e) return o } } return null } , p.prototype.clickedLevelSelect = function() {} , p.prototype.makeLink = function(e, t, i, r, o) { void 0 === t && (t = !0), void 0 === i && (i = null), void 0 === r && (r = !0), void 0 === o && (o = !0), this.makeButton(e, t, i, r, o, !0) } , p.prototype.addButtonUpFunc = function(e, t) { this.events.onInputUp.add(e, t) } , p.prototype.addOverDown = function(e, t) { Game.Touch() ? this.events.onInputDown.add(e, t) : this.events.onInputOver.add(e, t) } , p.prototype.makeButton = function(e, t, i, r, o, s, a) { var n = this; void 0 === t && (t = !0), void 0 === i && (i = null), void 0 === r && (r = !0), void 0 === o && (o = !0), void 0 === s && (s = !1), void 0 === a && (a = !1), i || (i = this), this.inputEnabled = !0, this.input.useHandCursor = !0, s ? this.events.onInputDown.add(e, i) : this.events.onInputUp.add(e, i), a && t ? Game.Touch() ? (this.events.onInputDown.add(this.changeFrame2, this), this.events.onInputUp.add(this.changeFrame1, this)) : (this.events.onInputOver.add(this.changeFrame2, this), this.events.onInputDown.add(this.changeFrame2, this), this.events.onInputOut.add(this.changeFrame1, this)) : t ? (Game.Touch() ? this.events.onInputDown.add(this.changeFrame2, this) : (this.events.onInputOver.add(function() { Game.MDown() || n.changeFrame2() }, this), this.events.onInputDown.add(this.changeFrame1, this), this.events.onInputOut.add(this.changeFrame1, this)), this.events.onInputUp.add(this.changeFrame1, this)) : a && (this.events.onInputOver.add(this.changeFrame1, this), this.events.onInputDown.add(this.changeFrame2, this), this.events.onInputOut.add(this.changeFrame1, this), this.events.onInputUp.add(this.changeFrame1, this)), r && (this.events.onInputOver.add(this.mouseOverSound, this), this.events.onInputDown.add(this.mouseClickSound, this)), o && this.centerInputRect() } , p.prototype.mouseOverSound = function() { SoundManager.getInstance().playSound("SButtonSelect") } , p.prototype.mouseClickSound = function() { SoundManager.getInstance().playSound("SButtonClick") } , p.prototype.editClick = function() {} , p.prototype.colorClick = function() {} , p.prototype.getButFrameOffset = function() { return this.butFrameOffset } , p.prototype.changeButtonFrameOffset = function(e) { var t = e - this.butFrameOffset; this.butFrameOffset = e, this.currentFrameNumber = this.currentFrameNumber + t } , p.prototype.changeFrame1 = function() { this.currentFrameNumber = 1 + this.butFrameOffset, this.cf1 && this.cf1.call(this.cf1c) } , p.prototype.changeFrame2 = function() { this.currentFrameNumber = 2 + this.butFrameOffset, this.cf2 && this.cf2.call(this.cf2c) } , p.prototype.makeMusicButton = function(e) { void 0 === e && (e = !0), this.butFrameOffset = SoundManager.muteMusic ? 2 : 0, this.changeFrame1(), this.makeButton(this.toggleMuteMusic, !0, this, !1, e) } , p.prototype.toggleMuteMusic = function() { SoundManager.ToggleMuteMusic(), this.changeButtonFrameOffset(1 < this.getButFrameOffset() ? 0 : 2) } , p.prototype.makeSoundButton = function(e) { void 0 === e && (e = !0), this.butFrameOffset = SoundManager.muteSound ? 2 : 0, this.changeFrame1(), this.makeButton(this.toggleMuteSound, !0, this, !1, e) } , p.prototype.toggleMuteSound = function() { SoundManager.ToggleMuteSound(), this.changeButtonFrameOffset(1 < this.getButFrameOffset() ? 0 : 2) } , p.prototype.createLayout = function(e, t) { for (var i = OzUtil.PE(e, null, "name", t), r = OzUtil.ARR(i.children), o = 0; o < r.length; o++) { var s = r[o] , a = new p(s.mc,s.x,s.y,s.name); if (s.hasOwnProperty("degrees") && (a.degrees = s.degrees), s.hasOwnProperty("scaleX") && (a.scale.x = s.scaleX), s.hasOwnProperty("scaleY") && (a.scale.y = s.scaleY), s.hasOwnProperty("alpha") && (a.alpha = s.alpha), s.parameters) { var n = s.parameters; for (var h in n) n.hasOwnProperty(h) && (a.params[h] = n[h]) } this.addChild(a) } } , p.prototype.removeAllChildren = function() { for (var e = this.children.length - 1; 0 <= e; e--) { var t = this.children[e]; this.removeChild(t) } } , p.prototype.removeChildrenMCs = function(e) { for (var t = this.children.length - 1; 0 <= t; t--) { var i = this.children[t]; 0 <= e.indexOf(i.mc) && this.removeChild(i) } } , p.prototype.changeChildByName = function(e, t, i, r) { var o = this.getChild(e); this.removeChild(o); var s = new p(t,o.x,o.y,o.name,i,r); this.addChild(s) } , p.prototype.remove = function() { this.destroy(!0) } , p.prototype.disableAllInput = function() { this.inputEnabled && (this.inputEnabled = !1); for (var e = 0; e < this.children.length; e++) { var t = this.children[e]; t && t.disableAllInput() } } , p.prototype.setPropsFrom = function(e) { this.x = e.x, this.y = e.y, this.scaleX = e.scaleX, this.scaleY = e.scaleY, this.degrees = e.degrees, this.alpha = e.alpha, this.visible = e.visible, this.name = e.name } , p.prototype.getFrameFromMC = function() { for (var e = 0, t = this.mc.length - 1; 0 <= OzUtil.digits.indexOf(this.mc.charAt(t)); ) t--; var i = this.mc.length - 1 - t; return 0 < i && (e = parseInt(this.mc.substr(t + 1, i))), e } , p.prototype.replaceByFrame = function(e) { var t = this.getFrameFromMC(); if (t == e) return this; var i = new p(this.mc.substring(0, this.mc.length - OzUtil.numDigits0is0(t)) + (0 == e ? "" : "" + e),0,0,this.name); i.setPropsFrom(this); var r = this.parent.getChildIndex(this) , o = this.parent; return this.destroy(), o.addChildAt(i, r), i } , p.prototype.maskMake = function(e) { if (void 0 === e && (e = !1), this.parent) { var t = Game.getGame().make.bitmapData(this.width, this.height); t.draw(this, 0, 0); var i = Game.getGame().make.bitmapData(this.width, this.height) , r = Game.getGame().make.bitmapData(this.width, this.height); e && r.draw(this, 0, 0); var o = new p(r,this.x,this.y); o.setPropsFrom(this), o.scaleX = o.scaleY = 1; var s = this.parent.getChildIndex(this); return this.parent.addChildAt(o, s + 1), this.parent.removeChild(this), o.bottomBmd = t, o.topBmd = i, o.mcBmd = r, (o.oldMC = this).maskMC = o } } , p.prototype.maskChangeBottomFrame = function(e, t) { void 0 === t && (t = !0), e != this.oldMC.currentFrameNumber && (this.oldMC.gotoAndStop(e), this.bottomBmd.clear(), this.bottomBmd.draw(this.oldMC, 0, 0), this.drawMaskDestIn()) } , p.prototype.drawMaskDestIn = function() { this.mcBmd.clear(), this.mcBmd.draw(this.bottomBmd).blendDestinationIn(), this.mcBmd.draw(this.topBmd).blendReset() } , p.prototype.drawMaskDestOut = function() { this.mcBmd.clear(), this.mcBmd.draw(this.bottomBmd).blendDestinationOut(), this.mcBmd.draw(this.topBmd).blendReset() } , p.prototype.maskDrawCircle = function(e, t, i) { this.topBmd.circle(e, t, i, "green"), this.drawMaskDestIn() } , p.prototype.maskRemoveCircle = function(e, t, i) { this.topBmd.circle(e, t, i, "green"), this.drawMaskDestOut() } , p.prototype.maskClearTop = function(e, t) { void 0 === e && (e = !1), void 0 === t && (t = !1), this.topBmd.clear(), e && (t ? this.drawMaskDestOut() : this.drawMaskDestIn()) } , p.prototype.int = function(e) { return Math.round(e) } , p.prototype.addShapkaStarsAnimation = function() { this.addAnimation("stars", 3, 18) } , p.prototype.base_play = function() { "Turret" == this.mc && (1 == this.currentFrame ? this.gotoLabel("close") : 14 == this.currentFrame ? this.gotoLabel("fire") : 24 == this.currentFrame && this.gotoLabel("open")) } , p.MCName2SpriteSheetName = {}, p.MCName2SpriteSheetLayoutData = {}, p }(Phaser.Sprite) , Objects = function() { function e() {} return e.data = { frames: [{ filename: "Ambal0000", frame: { x: 61, y: 2208, w: 58, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0001", frame: { x: 842, y: 2319, w: 46, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.7, y: -20.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0002", frame: { x: 4040, y: 1352, w: 50, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.7, y: -20.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0003", frame: { x: 1302, y: 2245, w: 48, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0004", frame: { x: 1302, y: 2245, w: 48, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0005", frame: { x: 1302, y: 2245, w: 48, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0006", frame: { x: 3841, y: 2275, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0007", frame: { x: 3841, y: 2275, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0008", frame: { x: 3841, y: 2275, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0009", frame: { x: 1460, y: 2313, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0010", frame: { x: 1460, y: 2313, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0011", frame: { x: 1460, y: 2313, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0012", frame: { x: 2079, y: 2319, w: 48, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0013", frame: { x: 2079, y: 2319, w: 48, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0014", frame: { x: 2079, y: 2319, w: 48, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0015", frame: { x: 3791, y: 2261, w: 47, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0016", frame: { x: 3791, y: 2261, w: 47, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0017", frame: { x: 3791, y: 2261, w: 47, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0018", frame: { x: 3660, y: 2306, w: 48, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0019", frame: { x: 3660, y: 2306, w: 48, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0020", frame: { x: 3660, y: 2306, w: 48, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0021", frame: { x: 1691, y: 2314, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0022", frame: { x: 1691, y: 2314, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0023", frame: { x: 1691, y: 2314, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0024", frame: { x: 3535, y: 2307, w: 49, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0025", frame: { x: 3535, y: 2307, w: 49, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0026", frame: { x: 3535, y: 2307, w: 49, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0027", frame: { x: 1793, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0028", frame: { x: 1793, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0029", frame: { x: 231, y: 2309, w: 44, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0030", frame: { x: 231, y: 2309, w: 44, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0031", frame: { x: 1719, y: 2220, w: 58, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0032", frame: { x: 3678, y: 2212, w: 60, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0033", frame: { x: 741, y: 2174, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0034", frame: { x: 741, y: 2174, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0035", frame: { x: 741, y: 2174, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0036", frame: { x: 2346, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0037", frame: { x: 2346, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0038", frame: { x: 2346, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0039", frame: { x: 3929, y: 2181, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0040", frame: { x: 3929, y: 2181, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0041", frame: { x: 3929, y: 2181, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0042", frame: { x: 3390, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0043", frame: { x: 3390, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0044", frame: { x: 3390, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0045", frame: { x: 3693, y: 2165, w: 67, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0046", frame: { x: 868, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0047", frame: { x: 1844, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0048", frame: { x: 1844, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0049", frame: { x: 1339, y: 2309, w: 44, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0050", frame: { x: 1339, y: 2309, w: 44, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0051", frame: { x: 740, y: 2221, w: 58, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0052", frame: { x: 1135, y: 2213, w: 60, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0053", frame: { x: 3216, y: 2184, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0054", frame: { x: 3216, y: 2184, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0055", frame: { x: 3216, y: 2184, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0056", frame: { x: 3997, y: 2192, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0057", frame: { x: 3997, y: 2192, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0058", frame: { x: 3997, y: 2192, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0059", frame: { x: 1286, y: 2198, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0060", frame: { x: 1286, y: 2198, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0061", frame: { x: 1286, y: 2198, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0062", frame: { x: 2745, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0063", frame: { x: 2745, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0064", frame: { x: 2745, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0065", frame: { x: 1001, y: 2172, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0066", frame: { x: 2115, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0067", frame: { x: 1793, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0068", frame: { x: 1793, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0069", frame: { x: 231, y: 2309, w: 44, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0070", frame: { x: 231, y: 2309, w: 44, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0071", frame: { x: 1719, y: 2220, w: 58, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0072", frame: { x: 3678, y: 2212, w: 60, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0073", frame: { x: 741, y: 2174, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0074", frame: { x: 741, y: 2174, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0075", frame: { x: 741, y: 2174, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0076", frame: { x: 2346, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0077", frame: { x: 2346, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0078", frame: { x: 2346, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0079", frame: { x: 3929, y: 2181, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0080", frame: { x: 3929, y: 2181, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0081", frame: { x: 3929, y: 2181, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0082", frame: { x: 3390, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0083", frame: { x: 3390, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0084", frame: { x: 3390, y: 2171, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0085", frame: { x: 3693, y: 2165, w: 67, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0086", frame: { x: 868, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0087", frame: { x: 868, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0088", frame: { x: 868, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0089", frame: { x: 3369, y: 2218, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0090", frame: { x: 3369, y: 2218, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0091", frame: { x: 441, y: 2173, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0092", frame: { x: 441, y: 2173, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0093", frame: { x: 441, y: 2173, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0094", frame: { x: 2750, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0095", frame: { x: 2750, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0096", frame: { x: 1982, y: 2202, w: 64, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0097", frame: { x: 1982, y: 2202, w: 64, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0098", frame: { x: 2750, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0099", frame: { x: 2750, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0100", frame: { x: 1982, y: 2202, w: 64, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0101", frame: { x: 1982, y: 2202, w: 64, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0102", frame: { x: 2750, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0103", frame: { x: 2750, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0104", frame: { x: 1982, y: 2202, w: 64, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0105", frame: { x: 1982, y: 2202, w: 64, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0106", frame: { x: 3369, y: 2218, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0107", frame: { x: 3369, y: 2218, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0108", frame: { x: 868, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0109", frame: { x: 1844, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0110", frame: { x: 1844, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0111", frame: { x: 1339, y: 2309, w: 44, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0112", frame: { x: 1339, y: 2309, w: 44, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0113", frame: { x: 740, y: 2221, w: 58, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0114", frame: { x: 1135, y: 2213, w: 60, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0115", frame: { x: 3216, y: 2184, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0116", frame: { x: 3216, y: 2184, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0117", frame: { x: 3216, y: 2184, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0118", frame: { x: 3997, y: 2192, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0119", frame: { x: 3997, y: 2192, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0120", frame: { x: 3997, y: 2192, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0121", frame: { x: 1286, y: 2198, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0122", frame: { x: 1286, y: 2198, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0123", frame: { x: 1286, y: 2198, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -21.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0124", frame: { x: 2745, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0125", frame: { x: 2745, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0126", frame: { x: 2745, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0127", frame: { x: 1001, y: 2172, w: 66, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0128", frame: { x: 2115, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0129", frame: { x: 2115, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0130", frame: { x: 2115, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0131", frame: { x: 3431, y: 2218, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0132", frame: { x: 3431, y: 2218, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0133", frame: { x: 2813, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0134", frame: { x: 2813, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0135", frame: { x: 2813, y: 2199, w: 65, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0136", frame: { x: 3278, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0137", frame: { x: 3278, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0138", frame: { x: 253, y: 2207, w: 63, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0139", frame: { x: 253, y: 2207, w: 63, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0140", frame: { x: 3278, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0141", frame: { x: 3278, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0142", frame: { x: 253, y: 2207, w: 63, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0143", frame: { x: 253, y: 2207, w: 63, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0144", frame: { x: 3278, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0145", frame: { x: 3278, y: 2085, w: 84, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0146", frame: { x: 253, y: 2207, w: 63, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0147", frame: { x: 253, y: 2207, w: 63, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0148", frame: { x: 3431, y: 2218, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0149", frame: { x: 3431, y: 2218, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0150", frame: { x: 2115, y: 2227, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0151", frame: { x: 2556, y: 2169, w: 57, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0152", frame: { x: 2556, y: 2169, w: 57, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0153", frame: { x: 2556, y: 2169, w: 57, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0154", frame: { x: 2287, y: 2224, w: 56, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0155", frame: { x: 2287, y: 2224, w: 56, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0156", frame: { x: 2287, y: 2224, w: 56, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0157", frame: { x: 1851, y: 2210, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0158", frame: { x: 1851, y: 2210, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0159", frame: { x: 1851, y: 2210, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0160", frame: { x: 2516, y: 2270, w: 52, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0161", frame: { x: 2516, y: 2270, w: 52, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0162", frame: { x: 2516, y: 2270, w: 52, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0163", frame: { x: 1660, y: 2172, w: 56, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0164", frame: { x: 1660, y: 2172, w: 56, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0165", frame: { x: 1660, y: 2172, w: 56, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0166", frame: { x: 2616, y: 2219, w: 57, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0167", frame: { x: 2616, y: 2219, w: 57, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0168", frame: { x: 2616, y: 2219, w: 57, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -24.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0169", frame: { x: 3618, y: 2210, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0170", frame: { x: 3618, y: 2210, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0171", frame: { x: 3618, y: 2210, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0172", frame: { x: 3493, y: 2224, w: 56, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0173", frame: { x: 3493, y: 2224, w: 56, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0174", frame: { x: 3493, y: 2224, w: 56, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -23.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0175", frame: { x: 3864, y: 2158, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0176", frame: { x: 3864, y: 2158, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0177", frame: { x: 3864, y: 2158, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0178", frame: { x: 3864, y: 2158, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0179", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0180", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0181", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0182", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0183", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0184", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0185", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0186", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0187", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0188", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0189", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0190", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0191", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0192", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0193", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0194", frame: { x: 3763, y: 2203, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0195", frame: { x: 3864, y: 2158, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0196", frame: { x: 3864, y: 2158, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0197", frame: { x: 3864, y: 2158, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0198", frame: { x: 3864, y: 2158, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -25.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0199", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0200", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0201", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0202", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0203", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0204", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0205", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0206", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0207", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0208", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0209", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0210", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0211", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0212", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0213", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0214", frame: { x: 3553, y: 2204, w: 62, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -22.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0215", frame: { x: 3587, y: 2307, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -20.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Ambal0216", frame: { x: 972, y: 2308, w: 50, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -20.9, w: 101, h: 54 }, sourceSize: { w: 101, h: 54 } }, { filename: "Barrier0000", frame: { x: 3635, y: 410, w: 5, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2.5, y: -20, w: 5, h: 40 }, sourceSize: { w: 5, h: 40 } }, { filename: "Blast0000", frame: { x: 2993, y: 2202, w: 52, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -26, w: 52, h: 52 }, sourceSize: { w: 52, h: 52 } }, { filename: "Blast0001", frame: { x: 2993, y: 2202, w: 52, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -26, w: 52, h: 52 }, sourceSize: { w: 52, h: 52 } }, { filename: "Blast0002", frame: { x: 2993, y: 2202, w: 52, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -26, w: 52, h: 52 }, sourceSize: { w: 52, h: 52 } }, { filename: "Blast0003", frame: { x: 2993, y: 2202, w: 52, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -26, w: 52, h: 52 }, sourceSize: { w: 52, h: 52 } }, { filename: "Blast0004", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 52, h: 52 }, sourceSize: { w: 52, h: 52 } }, { filename: "Bob0000", frame: { x: 985, y: 2399, w: 43, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0001", frame: { x: 801, y: 2228, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0002", frame: { x: 3473, y: 2319, w: 48, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0003", frame: { x: 3473, y: 2319, w: 48, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0004", frame: { x: 3473, y: 2319, w: 48, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0005", frame: { x: 2552, y: 2354, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0006", frame: { x: 2552, y: 2354, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0007", frame: { x: 2552, y: 2354, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0008", frame: { x: 3123, y: 1702, w: 48, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0009", frame: { x: 3123, y: 1702, w: 48, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0010", frame: { x: 3123, y: 1702, w: 48, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0011", frame: { x: 3619, y: 2390, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0012", frame: { x: 3619, y: 2390, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0013", frame: { x: 3619, y: 2390, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0014", frame: { x: 919, y: 2297, w: 50, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0015", frame: { x: 919, y: 2297, w: 50, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0016", frame: { x: 919, y: 2297, w: 50, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0017", frame: { x: 686, y: 2368, w: 50, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0018", frame: { x: 686, y: 2368, w: 50, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0019", frame: { x: 686, y: 2368, w: 50, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0020", frame: { x: 2345, y: 2272, w: 48, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0021", frame: { x: 2345, y: 2272, w: 48, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0022", frame: { x: 2345, y: 2272, w: 48, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0023", frame: { x: 4006, y: 2239, w: 48, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0024", frame: { x: 4006, y: 2239, w: 48, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0025", frame: { x: 4006, y: 2239, w: 48, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0026", frame: { x: 2049, y: 2211, w: 63, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0027", frame: { x: 2049, y: 2211, w: 63, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0028", frame: { x: 3561, y: 2439, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0029", frame: { x: 3561, y: 2439, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0030", frame: { x: 3762, y: 2315, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0031", frame: { x: 3762, y: 2315, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0032", frame: { x: 2952, y: 2346, w: 47, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0033", frame: { x: 2952, y: 2346, w: 47, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0034", frame: { x: 3359, y: 2265, w: 53, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0035", frame: { x: 3359, y: 2265, w: 53, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0036", frame: { x: 1660, y: 1768, w: 62, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0037", frame: { x: 1660, y: 1768, w: 62, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0038", frame: { x: 2665, y: 2309, w: 56, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0039", frame: { x: 2665, y: 2309, w: 56, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0040", frame: { x: 426, y: 2310, w: 56, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0041", frame: { x: 426, y: 2310, w: 56, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0042", frame: { x: 2708, y: 2432, w: 42, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0043", frame: { x: 2708, y: 2432, w: 42, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0044", frame: { x: 291, y: 2262, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0045", frame: { x: 291, y: 2262, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0046", frame: { x: 1070, y: 2211, w: 62, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0047", frame: { x: 1070, y: 2211, w: 62, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0048", frame: { x: 1070, y: 2211, w: 62, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0049", frame: { x: 1070, y: 2211, w: 62, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0050", frame: { x: 1070, y: 2211, w: 62, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0051", frame: { x: 861, y: 2274, w: 55, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0052", frame: { x: 861, y: 2274, w: 55, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0053", frame: { x: 861, y: 2274, w: 55, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0054", frame: { x: 861, y: 2274, w: 55, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0055", frame: { x: 861, y: 2274, w: 55, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0056", frame: { x: 985, y: 2399, w: 43, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0057", frame: { x: 985, y: 2399, w: 43, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0058", frame: { x: 985, y: 2399, w: 43, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0059", frame: { x: 890, y: 2402, w: 41, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0060", frame: { x: 890, y: 2402, w: 41, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0061", frame: { x: 890, y: 2402, w: 41, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0062", frame: { x: 2923, y: 1818, w: 41, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0063", frame: { x: 2923, y: 1818, w: 41, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0064", frame: { x: 2923, y: 1818, w: 41, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0065", frame: { x: 1192, y: 2399, w: 43, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0066", frame: { x: 1192, y: 2399, w: 43, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0067", frame: { x: 1238, y: 2399, w: 43, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0068", frame: { x: 3886, y: 2228, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0069", frame: { x: 3886, y: 2228, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0070", frame: { x: 3886, y: 2228, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0071", frame: { x: 3188, y: 2231, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0072", frame: { x: 3188, y: 2231, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0073", frame: { x: 3188, y: 2231, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0074", frame: { x: 181, y: 2211, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0075", frame: { x: 181, y: 2211, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0076", frame: { x: 181, y: 2211, w: 57, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0077", frame: { x: 1780, y: 2236, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0078", frame: { x: 1780, y: 2236, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0079", frame: { x: 1780, y: 2236, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0080", frame: { x: 3741, y: 2251, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0081", frame: { x: 2376, y: 1877, w: 47, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0082", frame: { x: 3552, y: 2252, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0083", frame: { x: 1559, y: 2119, w: 71, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0084", frame: { x: 528, y: 2356, w: 46, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0085", frame: { x: 1940, y: 2348, w: 46, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0086", frame: { x: 637, y: 2356, w: 46, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0087", frame: { x: 3725, y: 2117, w: 72, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -51.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0088", frame: { x: 3741, y: 2251, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0089", frame: { x: 241, y: 2254, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0090", frame: { x: 3309, y: 2244, w: 47, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0091", frame: { x: 1252, y: 2245, w: 47, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0092", frame: { x: 1409, y: 2207, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0093", frame: { x: 3109, y: 2246, w: 55, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0094", frame: { x: 3048, y: 2213, w: 58, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0095", frame: { x: 1785, y: 2188, w: 63, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0096", frame: { x: 528, y: 2356, w: 46, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0097", frame: { x: 1587, y: 2265, w: 46, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -26.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0098", frame: { x: 1989, y: 2348, w: 46, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0099", frame: { x: 1025, y: 2349, w: 46, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -21.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0100", frame: { x: 3, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0101", frame: { x: 928, y: 2249, w: 55, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0102", frame: { x: 1785, y: 1641, w: 59, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -38.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0103", frame: { x: 932, y: 2201, w: 63, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0104", frame: { x: 187, y: 2161, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0105", frame: { x: 187, y: 2161, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0106", frame: { x: 187, y: 2161, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0107", frame: { x: 1088, y: 2161, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0108", frame: { x: 1088, y: 2161, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0109", frame: { x: 1088, y: 2161, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0110", frame: { x: 1154, y: 2163, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0111", frame: { x: 1154, y: 2163, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0112", frame: { x: 1154, y: 2163, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0113", frame: { x: 1468, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0114", frame: { x: 1468, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0115", frame: { x: 1468, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0116", frame: { x: 1468, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0117", frame: { x: 1916, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0118", frame: { x: 1916, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0119", frame: { x: 1916, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0120", frame: { x: 1916, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0121", frame: { x: 2424, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0122", frame: { x: 2424, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0123", frame: { x: 2424, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0124", frame: { x: 2424, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0125", frame: { x: 2490, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0126", frame: { x: 2490, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0127", frame: { x: 2490, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0128", frame: { x: 2490, y: 2164, w: 63, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0129", frame: { x: 2498, y: 2368, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0130", frame: { x: 2498, y: 2368, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0131", frame: { x: 2498, y: 2368, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0132", frame: { x: 2498, y: 2368, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0133", frame: { x: 448, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0134", frame: { x: 448, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0135", frame: { x: 448, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0136", frame: { x: 448, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0137", frame: { x: 739, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0138", frame: { x: 739, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0139", frame: { x: 739, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0140", frame: { x: 739, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0141", frame: { x: 1486, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0142", frame: { x: 1486, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0143", frame: { x: 1486, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0144", frame: { x: 1486, y: 2369, w: 46, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0145", frame: { x: 1353, y: 2254, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0146", frame: { x: 1353, y: 2254, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0147", frame: { x: 1353, y: 2254, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0148", frame: { x: 1353, y: 2254, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0149", frame: { x: 503, y: 2255, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0150", frame: { x: 503, y: 2255, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0151", frame: { x: 503, y: 2255, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0152", frame: { x: 503, y: 2255, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0153", frame: { x: 639, y: 2256, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0154", frame: { x: 639, y: 2256, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0155", frame: { x: 639, y: 2256, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0156", frame: { x: 639, y: 2256, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0157", frame: { x: 689, y: 2256, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0158", frame: { x: 689, y: 2256, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0159", frame: { x: 689, y: 2256, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0160", frame: { x: 689, y: 2256, w: 47, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -20.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0161", frame: { x: 3271, y: 2300, w: 50, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -18.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0162", frame: { x: 332, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0163", frame: { x: 332, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0164", frame: { x: 265, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0165", frame: { x: 265, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0166", frame: { x: 265, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0167", frame: { x: 265, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0168", frame: { x: 1425, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0169", frame: { x: 1425, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0170", frame: { x: 3198, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0171", frame: { x: 3198, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0172", frame: { x: 265, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0173", frame: { x: 265, y: 2088, w: 64, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -37.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0174", frame: { x: 332, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0175", frame: { x: 332, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0176", frame: { x: 332, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0177", frame: { x: 332, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0178", frame: { x: 332, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0179", frame: { x: 332, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0180", frame: { x: 3365, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0181", frame: { x: 3365, y: 2089, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0182", frame: { x: 941, y: 2090, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0183", frame: { x: 941, y: 2090, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0184", frame: { x: 3594, y: 2093, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0185", frame: { x: 3594, y: 2093, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -30.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0186", frame: { x: 3222, y: 1430, w: 52, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0187", frame: { x: 3222, y: 1430, w: 52, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0188", frame: { x: 1516, y: 2270, w: 50, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0189", frame: { x: 1516, y: 2270, w: 50, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0190", frame: { x: 3711, y: 2306, w: 48, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0191", frame: { x: 3711, y: 2306, w: 48, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0192", frame: { x: 1031, y: 2399, w: 39, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0193", frame: { x: 1073, y: 2436, w: 39, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0194", frame: { x: 2431, y: 2387, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0195", frame: { x: 2431, y: 2387, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0196", frame: { x: 3516, y: 2405, w: 42, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0197", frame: { x: 3516, y: 2405, w: 42, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0198", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0199", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0200", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0201", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0202", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0203", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0204", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0205", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0206", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0207", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0208", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0209", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0210", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0211", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0212", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0213", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0214", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0215", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0216", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0217", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0218", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0219", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0220", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0221", frame: { x: 2860, y: 1476, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -25.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0222", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0223", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0224", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0225", frame: { x: 439, y: 1683, w: 44, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0226", frame: { x: 3516, y: 2405, w: 42, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0227", frame: { x: 3516, y: 2405, w: 42, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.4, y: -23.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0228", frame: { x: 1073, y: 2436, w: 39, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0229", frame: { x: 1031, y: 2399, w: 39, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0230", frame: { x: 2645, y: 1764, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0231", frame: { x: 2993, y: 2257, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0232", frame: { x: 2993, y: 2257, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0233", frame: { x: 1534, y: 2167, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0234", frame: { x: 1534, y: 2167, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0235", frame: { x: 1597, y: 2167, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0236", frame: { x: 1597, y: 2167, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0237", frame: { x: 2622, y: 2167, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0238", frame: { x: 2622, y: 2167, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0239", frame: { x: 2697, y: 1693, w: 67, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0240", frame: { x: 2697, y: 1693, w: 67, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0241", frame: { x: 400, y: 2113, w: 64, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0242", frame: { x: 400, y: 2113, w: 64, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0243", frame: { x: 3057, y: 1773, w: 63, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0244", frame: { x: 3057, y: 1773, w: 63, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0245", frame: { x: 3493, y: 2118, w: 66, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0246", frame: { x: 3493, y: 2118, w: 66, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0247", frame: { x: 1924, y: 2112, w: 67, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0248", frame: { x: 1924, y: 2112, w: 67, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0249", frame: { x: 61, y: 2156, w: 61, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0250", frame: { x: 61, y: 2156, w: 61, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0251", frame: { x: 935, y: 2149, w: 63, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0252", frame: { x: 935, y: 2149, w: 63, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0253", frame: { x: 3265, y: 2132, w: 64, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0254", frame: { x: 3265, y: 2132, w: 64, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0255", frame: { x: 2622, y: 2112, w: 63, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0256", frame: { x: 2622, y: 2112, w: 63, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -24.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0257", frame: { x: 3562, y: 2152, w: 63, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0258", frame: { x: 3562, y: 2152, w: 63, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0259", frame: { x: 1852, y: 2158, w: 61, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0260", frame: { x: 1852, y: 2158, w: 61, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0261", frame: { x: 618, y: 2168, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0262", frame: { x: 618, y: 2168, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0263", frame: { x: 1722, y: 2168, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0264", frame: { x: 1722, y: 2168, w: 60, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0265", frame: { x: 2993, y: 2257, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0266", frame: { x: 2993, y: 2257, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0267", frame: { x: 2645, y: 1764, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0268", frame: { x: 3493, y: 2170, w: 57, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0269", frame: { x: 3493, y: 2170, w: 57, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0270", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0271", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0272", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0273", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0274", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0275", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0276", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0277", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0278", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0279", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0280", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0281", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0282", frame: { x: 681, y: 2204, w: 56, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0283", frame: { x: 809, y: 2174, w: 56, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0284", frame: { x: 809, y: 2174, w: 56, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0285", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0286", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0287", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0288", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0289", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0290", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0291", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0292", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0293", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0294", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0295", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0296", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "Bob0297", frame: { x: 3828, y: 2209, w: 55, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -22.7, w: 103, h: 74 }, sourceSize: { w: 103, h: 74 } }, { filename: "BobFireLightningOz0000", frame: { x: 442, y: 2024, w: 530, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 530, h: 8 }, sourceSize: { w: 530, h: 8 } }, { filename: "BobFireLightningOz0001", frame: { x: 442, y: 2024, w: 530, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 530, h: 8 }, sourceSize: { w: 530, h: 8 } }, { filename: "BobFireLightningOz0002", frame: { x: 2066, y: 2031, w: 530, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 530, h: 8 }, sourceSize: { w: 530, h: 8 } }, { filename: "BobFireLightningOz0003", frame: { x: 2066, y: 2031, w: 530, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 530, h: 8 }, sourceSize: { w: 530, h: 8 } }, { filename: "BobFireLightningOz0004", frame: { x: 442, y: 2035, w: 530, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 530, h: 8 }, sourceSize: { w: 530, h: 8 } }, { filename: "BobFireLightningOz0005", frame: { x: 442, y: 2035, w: 530, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 530, h: 8 }, sourceSize: { w: 530, h: 8 } }, { filename: "BobFireLightningOz0006", frame: { x: 2066, y: 2031, w: 530, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 530, h: 8 }, sourceSize: { w: 530, h: 8 } }, { filename: "BobFireLightningOz0007", frame: { x: 2066, y: 2031, w: 530, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 530, h: 8 }, sourceSize: { w: 530, h: 8 } }, { filename: "BobMarker0000", frame: { x: 2595, y: 2438, w: 41, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.1, y: -21.2, w: 41, h: 43 }, sourceSize: { w: 41, h: 43 } }, { filename: "BobTailLeft0000", frame: { x: 1501, y: 1934, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0001", frame: { x: 1684, y: 2411, w: 43, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0002", frame: { x: 2480, y: 2416, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.9, y: -22.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0003", frame: { x: 99, y: 2366, w: 43, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -22.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0004", frame: { x: 3573, y: 2389, w: 43, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -22.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0005", frame: { x: 1783, y: 2404, w: 41, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0006", frame: { x: 2130, y: 2366, w: 43, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -22.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0007", frame: { x: 3817, y: 2407, w: 41, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0008", frame: { x: 3262, y: 2349, w: 48, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.9, y: -20.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0009", frame: { x: 1510, y: 2320, w: 48, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0010", frame: { x: 3002, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0011", frame: { x: 1535, y: 2369, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0012", frame: { x: 2345, y: 2413, w: 43, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0013", frame: { x: 1561, y: 2320, w: 48, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.9, y: -21.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailLeft0014", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.9, y: -.9, w: 48, h: 49 }, sourceSize: { w: 48, h: 49 } }, { filename: "BobTailRight0000", frame: { x: 2132, y: 2418, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0001", frame: { x: 3906, y: 2432, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0002", frame: { x: 2391, y: 2434, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0003", frame: { x: 2435, y: 2434, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0004", frame: { x: 2753, y: 2434, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0005", frame: { x: 2867, y: 2434, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0006", frame: { x: 3321, y: 2435, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0007", frame: { x: 420, y: 2417, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0008", frame: { x: 724, y: 2417, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0009", frame: { x: 1478, y: 2417, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0010", frame: { x: 2278, y: 2417, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0011", frame: { x: 98, y: 2418, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0012", frame: { x: 1874, y: 2418, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0013", frame: { x: 3365, y: 2435, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.9, y: -21.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailRight0014", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.9, y: -.3, w: 42, h: 44 }, sourceSize: { w: 42, h: 44 } }, { filename: "BobTailUp0000", frame: { x: 3893, y: 2275, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0001", frame: { x: 3167, y: 2278, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0002", frame: { x: 1769, y: 2283, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0003", frame: { x: 2733, y: 2286, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0004", frame: { x: 3945, y: 2286, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0005", frame: { x: 3219, y: 2290, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0006", frame: { x: 2785, y: 2291, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0007", frame: { x: 2327, y: 2323, w: 49, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0008", frame: { x: 3884, y: 2325, w: 49, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0009", frame: { x: 789, y: 2326, w: 49, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0010", frame: { x: 3149, y: 2328, w: 49, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0011", frame: { x: 1741, y: 2333, w: 49, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0012", frame: { x: 2724, y: 2336, w: 49, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0013", frame: { x: 3936, y: 2336, w: 49, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.8, y: -24.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BobTailUp0014", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.8, y: -.4, w: 49, h: 47 }, sourceSize: { w: 49, h: 47 } }, { filename: "BodySensor0000", frame: { x: 819, y: 1373, w: 67, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 67, h: 23 }, sourceSize: { w: 67, h: 23 } }, { filename: "BonusLevelTip0000", frame: { x: 3966, y: 663, w: 113, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -56, y: -34.2, w: 113, h: 69 }, sourceSize: { w: 113, h: 69 } }, { filename: "Busted0000", frame: { x: 912, y: 1e3, w: 251, h: 187 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -125.4, y: -93.9, w: 251, h: 187 }, sourceSize: { w: 251, h: 187 } }, { filename: "ButtonBackToGame0000", frame: { x: 3, y: 1835, w: 200, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 210, h: 33 }, sourceSize: { w: 210, h: 33 } }, { filename: "ButtonBackToGame0001", frame: { x: 1840, y: 1830, w: 210, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5, y: -.8, w: 210, h: 33 }, sourceSize: { w: 210, h: 33 } }, { filename: "ButtonBackToGame0002", frame: { x: 3, y: 1835, w: 200, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 210, h: 33 }, sourceSize: { w: 210, h: 33 } }, { filename: "ButtonClearProgress0000", frame: { x: 1381, y: 1865, w: 210, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.7, y: -.8, w: 220, h: 31 }, sourceSize: { w: 220, h: 31 } }, { filename: "ButtonClearProgress0001", frame: { x: 368, y: 1831, w: 220, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.7, y: -.8, w: 220, h: 31 }, sourceSize: { w: 220, h: 31 } }, { filename: "ButtonLevelsMap0000", frame: { x: 1381, y: 1898, w: 162, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 170, h: 34 }, sourceSize: { w: 170, h: 34 } }, { filename: "ButtonLevelsMap0001", frame: { x: 3, y: 1870, w: 170, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.1, y: -.8, w: 170, h: 34 }, sourceSize: { w: 170, h: 34 } }, { filename: "ButtonLevelsMap0002", frame: { x: 1381, y: 1898, w: 162, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 170, h: 34 }, sourceSize: { w: 170, h: 34 } }, { filename: "ButtonShop0000", frame: { x: 2860, y: 1558, w: 154, h: 129 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 24, w: 170, h: 170 }, sourceSize: { w: 170, h: 170 } }, { filename: "ButtonShop0001", frame: { x: 3104, y: 1257, w: 170, h: 170 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -8, w: 170, h: 170 }, sourceSize: { w: 170, h: 170 } }, { filename: "ButtonSponsorLevelMap0000", frame: { x: 176, y: 1426, w: 155, h: 153 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 171, h: 194 }, sourceSize: { w: 171, h: 194 } }, { filename: "ButtonSponsorLevelMap0001", frame: { x: 3866, y: 1206, w: 171, h: 194 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -32, w: 171, h: 194 }, sourceSize: { w: 171, h: 194 } }, { filename: "ButtonWalkthrough0000", frame: { x: 1937, y: 1869, w: 195, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.4, y: -.8, w: 205, h: 31 }, sourceSize: { w: 205, h: 31 } }, { filename: "ButtonWalkthrough0001", frame: { x: 265, y: 1865, w: 205, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.4, y: -.8, w: 205, h: 31 }, sourceSize: { w: 205, h: 31 } }, { filename: "ButtonZXC0000", frame: { x: 1627, y: 1509, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30, y: -30, w: 61, h: 61 }, sourceSize: { w: 61, h: 61 } }, { filename: "ButtonZXC0001", frame: { x: 3134, y: 2057, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30, y: -30, w: 61, h: 61 }, sourceSize: { w: 61, h: 61 } }, { filename: "ButtonZXC0002", frame: { x: 3971, y: 2057, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30, y: -30, w: 61, h: 61 }, sourceSize: { w: 61, h: 61 } }, { filename: "ButtonZXC0003", frame: { x: 1041, y: 2063, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30, y: -30, w: 61, h: 61 }, sourceSize: { w: 61, h: 61 } }, { filename: "ButtonZXC0004", frame: { x: 1797, y: 2063, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30, y: -30, w: 61, h: 61 }, sourceSize: { w: 61, h: 61 } }, { filename: "ButtonZXC0005", frame: { x: 1297, y: 2070, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30, y: -30, w: 61, h: 61 }, sourceSize: { w: 61, h: 61 } }, { filename: "CodeWinBut0000", frame: { x: 2955, y: 2450, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0001", frame: { x: 3707, y: 2450, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0002", frame: { x: 46, y: 2451, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0003", frame: { x: 465, y: 2451, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0004", frame: { x: 3244, y: 2451, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0005", frame: { x: 3409, y: 2451, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0006", frame: { x: 3452, y: 2451, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0007", frame: { x: 231, y: 2452, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0008", frame: { x: 588, y: 2452, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0009", frame: { x: 863, y: 2452, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0010", frame: { x: 2220, y: 2452, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0011", frame: { x: 3750, y: 2452, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0012", frame: { x: 631, y: 2453, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0013", frame: { x: 674, y: 2453, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0014", frame: { x: 3495, y: 2453, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0015", frame: { x: 1782, y: 2454, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0016", frame: { x: 1971, y: 2455, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0017", frame: { x: 3793, y: 2456, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0018", frame: { x: 1681, y: 2457, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CodeWinBut0019", frame: { x: 2323, y: 2459, w: 40, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 40, h: 41 }, sourceSize: { w: 40, h: 41 } }, { filename: "CompInfo0000", frame: { x: 1709, y: 1227, w: 165, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8, y: 17, w: 165, h: 197 }, sourceSize: { w: 165, h: 197 } }, { filename: "CompInfo0001", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 165, h: 197 }, sourceSize: { w: 165, h: 197 } }, { filename: "CompInfo0002", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 165, h: 197 }, sourceSize: { w: 165, h: 197 } }, { filename: "CompInfo0003", frame: { x: 3731, y: 1250, w: 131, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: 0, w: 165, h: 197 }, sourceSize: { w: 165, h: 197 } }, { filename: "CompInfo0004", frame: { x: 3434, y: 1427, w: 125, h: 166 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: 31, w: 165, h: 197 }, sourceSize: { w: 165, h: 197 } }, { filename: "CompInfo0005", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 165, h: 197 }, sourceSize: { w: 165, h: 197 } }, { filename: "CompMenu0000", frame: { x: 2e3, y: 1676, w: 144, h: 91 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0001", frame: { x: 3330, y: 1676, w: 144, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0002", frame: { x: 486, y: 1677, w: 144, h: 90 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0003", frame: { x: 3920, y: 1674, w: 144, h: 92 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0004", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0005", frame: { x: 1475, y: 1509, w: 149, h: 137 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0006", frame: { x: 819, y: 1532, w: 149, h: 136 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0007", frame: { x: 3562, y: 1440, w: 152, h: 136 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0008", frame: { x: 2035, y: 1537, w: 149, h: 136 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0009", frame: { x: 556, y: 1538, w: 149, h: 136 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0010", frame: { x: 2556, y: 1476, w: 149, h: 138 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0011", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0012", frame: { x: 3717, y: 1521, w: 149, h: 137 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0013", frame: { x: 334, y: 1544, w: 149, h: 136 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0014", frame: { x: 2244, y: 1476, w: 152, h: 136 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0015", frame: { x: 1848, y: 1550, w: 149, h: 136 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0016", frame: { x: 3, y: 1554, w: 149, h: 136 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "CompMenu0017", frame: { x: 2708, y: 1476, w: 149, h: 138 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 1, w: 152, h: 139 }, sourceSize: { w: 152, h: 139 } }, { filename: "DatchicDanger0000", frame: { x: 3845, y: 1368, w: 17, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8, y: -14, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0001", frame: { x: 3201, y: 668, w: 13, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -13, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0002", frame: { x: 3109, y: 2207, w: 76, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -18, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0003", frame: { x: 3109, y: 2207, w: 76, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -18, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0004", frame: { x: 3109, y: 2207, w: 76, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -18, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0005", frame: { x: 3109, y: 2207, w: 76, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -18, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0006", frame: { x: 3109, y: 2207, w: 76, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -18, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0007", frame: { x: 2952, y: 2309, w: 66, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -19, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0008", frame: { x: 2952, y: 2309, w: 66, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -19, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0009", frame: { x: 2952, y: 2309, w: 66, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -19, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0010", frame: { x: 2952, y: 2309, w: 66, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -19, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0011", frame: { x: 2952, y: 2309, w: 66, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -19, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0012", frame: { x: 2739, y: 2246, w: 67, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -20, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0013", frame: { x: 2739, y: 2246, w: 67, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -20, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0014", frame: { x: 2739, y: 2246, w: 67, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -20, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0015", frame: { x: 2739, y: 2246, w: 67, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -20, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0016", frame: { x: 2739, y: 2246, w: 67, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -20, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "DatchicDanger0017", frame: { x: 2739, y: 2246, w: 67, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -20, w: 76, h: 38 }, sourceSize: { w: 76, h: 38 } }, { filename: "Ded0000", frame: { x: 3332, y: 2148, w: 55, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0001", frame: { x: 3332, y: 2148, w: 55, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0002", frame: { x: 3332, y: 2148, w: 55, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0003", frame: { x: 3332, y: 2148, w: 55, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0004", frame: { x: 2234, y: 2102, w: 61, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0005", frame: { x: 2234, y: 2102, w: 61, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0006", frame: { x: 2234, y: 2102, w: 61, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0007", frame: { x: 2234, y: 2102, w: 61, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0008", frame: { x: 3222, y: 1492, w: 52, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0009", frame: { x: 3222, y: 1492, w: 52, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0010", frame: { x: 3222, y: 1492, w: 52, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0011", frame: { x: 3222, y: 1492, w: 52, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0012", frame: { x: 817, y: 2112, w: 55, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0013", frame: { x: 817, y: 2112, w: 55, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0014", frame: { x: 817, y: 2112, w: 55, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0015", frame: { x: 817, y: 2112, w: 55, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0016", frame: { x: 3947, y: 2121, w: 56, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0017", frame: { x: 3947, y: 2121, w: 56, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0018", frame: { x: 3947, y: 2121, w: 56, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0019", frame: { x: 3947, y: 2121, w: 56, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0020", frame: { x: 2298, y: 2107, w: 61, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0021", frame: { x: 2298, y: 2107, w: 61, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0022", frame: { x: 2298, y: 2107, w: 61, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0023", frame: { x: 2298, y: 2107, w: 61, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0024", frame: { x: 1729, y: 1697, w: 52, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0025", frame: { x: 1729, y: 1697, w: 52, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0026", frame: { x: 1729, y: 1697, w: 52, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0027", frame: { x: 1729, y: 1697, w: 52, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0028", frame: { x: 1794, y: 2127, w: 55, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0029", frame: { x: 1794, y: 2127, w: 55, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0030", frame: { x: 1794, y: 2127, w: 55, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0031", frame: { x: 1794, y: 2127, w: 55, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0032", frame: { x: 3947, y: 2121, w: 56, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0033", frame: { x: 3332, y: 2148, w: 55, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0034", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0035", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0036", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0037", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0038", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0039", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0040", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0041", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0042", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0043", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0044", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0045", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0046", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0047", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0048", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0049", frame: { x: 812, y: 2046, w: 60, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0050", frame: { x: 812, y: 2046, w: 60, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0051", frame: { x: 812, y: 2046, w: 60, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0052", frame: { x: 812, y: 2046, w: 60, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0053", frame: { x: 812, y: 2046, w: 60, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0054", frame: { x: 812, y: 2046, w: 60, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0055", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0056", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0057", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0058", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0059", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0060", frame: { x: 3449, y: 1971, w: 71, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0061", frame: { x: 1994, y: 1984, w: 69, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0062", frame: { x: 1994, y: 1984, w: 69, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0063", frame: { x: 1994, y: 1984, w: 69, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0064", frame: { x: 1994, y: 1984, w: 69, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0065", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0066", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0067", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0068", frame: { x: 557, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0069", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0070", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0071", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0072", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0073", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0074", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0075", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0076", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0077", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0078", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0079", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0080", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0081", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0082", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0083", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0084", frame: { x: 1968, y: 2050, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0085", frame: { x: 1968, y: 2050, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0086", frame: { x: 1968, y: 2050, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0087", frame: { x: 1968, y: 2050, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0088", frame: { x: 1968, y: 2050, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0089", frame: { x: 1968, y: 2050, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0090", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0091", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0092", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0093", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0094", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0095", frame: { x: 3995, y: 1995, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0096", frame: { x: 1826, y: 2001, w: 70, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0097", frame: { x: 1826, y: 2001, w: 70, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0098", frame: { x: 1826, y: 2001, w: 70, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0099", frame: { x: 1826, y: 2001, w: 70, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0100", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0101", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0102", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0103", frame: { x: 625, y: 2046, w: 65, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -27.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0104", frame: { x: 2175, y: 2165, w: 56, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29, y: -21.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Ded0105", frame: { x: 2287, y: 2169, w: 56, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29, y: -21.6, w: 80, h: 63 }, sourceSize: { w: 80, h: 63 } }, { filename: "Dog0000", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0001", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0002", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0003", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0004", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0005", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0006", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0007", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0008", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0009", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0010", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0011", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0012", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0013", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0014", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0015", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0016", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0017", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0018", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0019", frame: { x: 1041, y: 2023, w: 40, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0020", frame: { x: 1041, y: 2023, w: 40, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0021", frame: { x: 1994, y: 2112, w: 38, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0022", frame: { x: 1994, y: 2112, w: 38, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0023", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0024", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0025", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0026", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0027", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0028", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0029", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0030", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0031", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0032", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0033", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0034", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0035", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0036", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0037", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0038", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0039", frame: { x: 2685, y: 2478, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0040", frame: { x: 1994, y: 2112, w: 38, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0041", frame: { x: 1994, y: 2112, w: 38, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0042", frame: { x: 1041, y: 2023, w: 40, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0043", frame: { x: 1041, y: 2023, w: 40, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0044", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0045", frame: { x: 2631, y: 2352, w: 50, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0046", frame: { x: 2631, y: 2352, w: 50, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0047", frame: { x: 193, y: 2410, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0048", frame: { x: 193, y: 2410, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0049", frame: { x: 1284, y: 2410, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -16.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0050", frame: { x: 1284, y: 2410, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -16.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0051", frame: { x: 1425, y: 2410, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0052", frame: { x: 1425, y: 2410, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0053", frame: { x: 3173, y: 1872, w: 57, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0054", frame: { x: 3173, y: 1872, w: 57, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0055", frame: { x: 1730, y: 2429, w: 49, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0056", frame: { x: 1730, y: 2429, w: 49, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0057", frame: { x: 3031, y: 2436, w: 49, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -16.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0058", frame: { x: 3031, y: 2436, w: 49, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -16.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0059", frame: { x: 2438, y: 2346, w: 57, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0060", frame: { x: 2438, y: 2346, w: 57, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0061", frame: { x: 342, y: 2353, w: 50, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0062", frame: { x: 342, y: 2353, w: 50, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0063", frame: { x: 2034, y: 2410, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0064", frame: { x: 2034, y: 2410, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0065", frame: { x: 2225, y: 2412, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -16.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0066", frame: { x: 2225, y: 2412, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -16.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0067", frame: { x: 671, y: 2413, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0068", frame: { x: 671, y: 2413, w: 50, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0069", frame: { x: 3731, y: 2365, w: 57, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0070", frame: { x: 3731, y: 2365, w: 57, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0071", frame: { x: 3149, y: 2429, w: 49, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0072", frame: { x: 3149, y: 2429, w: 49, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0073", frame: { x: 1919, y: 2438, w: 49, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -16.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0074", frame: { x: 1919, y: 2438, w: 49, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -16.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0075", frame: { x: 2892, y: 2346, w: 57, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0076", frame: { x: 2892, y: 2346, w: 57, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0077", frame: { x: 2571, y: 2312, w: 57, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0078", frame: { x: 152, y: 2313, w: 57, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0079", frame: { x: 342, y: 2313, w: 60, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0080", frame: { x: 342, y: 2313, w: 60, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0081", frame: { x: 342, y: 2313, w: 60, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0082", frame: { x: 2090, y: 2274, w: 55, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0083", frame: { x: 2090, y: 2274, w: 55, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0084", frame: { x: 2090, y: 2274, w: 55, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0085", frame: { x: 374, y: 2167, w: 64, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0086", frame: { x: 374, y: 2167, w: 64, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0087", frame: { x: 374, y: 2167, w: 64, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0088", frame: { x: 3415, y: 2265, w: 61, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0089", frame: { x: 3415, y: 2265, w: 61, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0090", frame: { x: 3415, y: 2265, w: 61, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0091", frame: { x: 3415, y: 2307, w: 55, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.7, y: -21.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0092", frame: { x: 3415, y: 2307, w: 55, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.7, y: -21.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0093", frame: { x: 3415, y: 2307, w: 55, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.7, y: -21.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0094", frame: { x: 2438, y: 2306, w: 61, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0095", frame: { x: 2438, y: 2306, w: 61, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0096", frame: { x: 2438, y: 2306, w: 61, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0097", frame: { x: 1712, y: 2267, w: 54, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0098", frame: { x: 1712, y: 2267, w: 54, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0099", frame: { x: 1712, y: 2267, w: 54, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0100", frame: { x: 1994, y: 2153, w: 67, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0101", frame: { x: 1994, y: 2153, w: 67, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0102", frame: { x: 1994, y: 2153, w: 67, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0103", frame: { x: 986, y: 2266, w: 61, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0104", frame: { x: 986, y: 2266, w: 61, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0105", frame: { x: 986, y: 2266, w: 61, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -17.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0106", frame: { x: 2038, y: 2368, w: 54, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -19.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0107", frame: { x: 2038, y: 2368, w: 54, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -19.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0108", frame: { x: 2038, y: 2368, w: 54, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -19.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0109", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0110", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0111", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0112", frame: { x: 2242, y: 2366, w: 49, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0113", frame: { x: 2242, y: 2366, w: 49, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0114", frame: { x: 2242, y: 2366, w: 49, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0115", frame: { x: 2242, y: 2366, w: 49, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0116", frame: { x: 3415, y: 2307, w: 55, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0117", frame: { x: 3415, y: 2307, w: 55, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0118", frame: { x: 3415, y: 2307, w: 55, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -20.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0119", frame: { x: 2931, y: 2395, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0120", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0121", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0122", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0123", frame: { x: 2379, y: 2367, w: 49, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0124", frame: { x: 2379, y: 2367, w: 49, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0125", frame: { x: 2379, y: 2367, w: 49, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0126", frame: { x: 2379, y: 2367, w: 49, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0127", frame: { x: 2038, y: 2368, w: 54, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0128", frame: { x: 2038, y: 2368, w: 54, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0129", frame: { x: 2038, y: 2368, w: 54, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0130", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0131", frame: { x: 3364, y: 2398, w: 57, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.7, y: -10.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0132", frame: { x: 1581, y: 2436, w: 52, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.7, y: -10.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0133", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0134", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0135", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0136", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0137", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0138", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0139", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0140", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0141", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0142", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0143", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0144", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0145", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0146", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0147", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0148", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0149", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0150", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0151", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0152", frame: { x: 3006, y: 2161, w: 40, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0153", frame: { x: 3006, y: 2161, w: 40, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0154", frame: { x: 2366, y: 2481, w: 37, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0155", frame: { x: 2366, y: 2481, w: 37, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0156", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0157", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0158", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0159", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0160", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0161", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0162", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0163", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0164", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0165", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0166", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0167", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0168", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0169", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0170", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0171", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0172", frame: { x: 3879, y: 2479, w: 38, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0173", frame: { x: 2366, y: 2481, w: 37, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0174", frame: { x: 2366, y: 2481, w: 37, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0175", frame: { x: 3006, y: 2161, w: 40, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0176", frame: { x: 3006, y: 2161, w: 40, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16.7, y: -15.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "Dog0177", frame: { x: 3, y: 2397, w: 50, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.7, y: -18.5, w: 75, h: 49 }, sourceSize: { w: 75, h: 49 } }, { filename: "DogShock0000", frame: { x: 1467, y: 2214, w: 60, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -21.3, w: 63, h: 44 }, sourceSize: { w: 63, h: 44 } }, { filename: "DogShock0001", frame: { x: 1467, y: 2214, w: 60, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.4, y: -21.3, w: 63, h: 44 }, sourceSize: { w: 63, h: 44 } }, { filename: "DogShock0002", frame: { x: 510, y: 2208, w: 62, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.3, w: 63, h: 44 }, sourceSize: { w: 63, h: 44 } }, { filename: "DogShock0003", frame: { x: 510, y: 2208, w: 62, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.4, y: -21.3, w: 63, h: 44 }, sourceSize: { w: 63, h: 44 } }, { filename: "EnemyShock0000", frame: { x: 618, y: 2108, w: 61, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.2, y: -28.6, w: 61, h: 57 }, sourceSize: { w: 61, h: 57 } }, { filename: "EnemyShock0001", frame: { x: 618, y: 2108, w: 61, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.2, y: -28.6, w: 61, h: 57 }, sourceSize: { w: 61, h: 57 } }, { filename: "EnemyShock0002", frame: { x: 1730, y: 2108, w: 61, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.2, y: -28.6, w: 61, h: 57 }, sourceSize: { w: 61, h: 57 } }, { filename: "EnemyShock0003", frame: { x: 1730, y: 2108, w: 61, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.2, y: -28.6, w: 61, h: 57 }, sourceSize: { w: 61, h: 57 } }, { filename: "EnemySigns0000", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.5, y: -.3, w: 17, h: 30 }, sourceSize: { w: 17, h: 30 } }, { filename: "EnemySigns0001", frame: { x: 889, y: 1373, w: 17, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.6, y: -6.4, w: 17, h: 30 }, sourceSize: { w: 17, h: 30 } }, { filename: "EnemySigns0002", frame: { x: 3201, y: 696, w: 13, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.6, y: -9.4, w: 17, h: 30 }, sourceSize: { w: 17, h: 30 } }, { filename: "Exit0000", frame: { x: 2662, y: 2413, w: 43, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.2, y: -21.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0001", frame: { x: 1827, y: 2404, w: 44, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.2, y: -21.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0002", frame: { x: 1735, y: 2381, w: 45, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.2, y: -22.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0003", frame: { x: 2148, y: 2316, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.2, y: -23.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0004", frame: { x: 291, y: 2307, w: 48, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.2, y: -23.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0005", frame: { x: 3, y: 2261, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.2, y: -24.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0006", frame: { x: 2862, y: 1953, w: 51, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.2, y: -25.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0007", frame: { x: 578, y: 1770, w: 52, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.2, y: -26.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0008", frame: { x: 125, y: 2201, w: 53, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.2, y: -26.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0009", frame: { x: 3, y: 2151, w: 55, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.2, y: -27.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0010", frame: { x: 125, y: 2201, w: 53, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.2, y: -26.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0011", frame: { x: 1354, y: 2198, w: 52, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.2, y: -26.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0012", frame: { x: 1198, y: 2216, w: 51, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.2, y: -25.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0013", frame: { x: 1976, y: 2249, w: 50, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.2, y: -24.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0014", frame: { x: 179, y: 2261, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.2, y: -24.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0015", frame: { x: 2277, y: 2316, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.2, y: -23.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0016", frame: { x: 1228, y: 2349, w: 46, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.2, y: -23.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0017", frame: { x: 3179, y: 2381, w: 45, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.2, y: -22.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0018", frame: { x: 2984, y: 2404, w: 44, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.2, y: -21.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0019", frame: { x: 2662, y: 2413, w: 43, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.2, y: -21.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0020", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.2, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0021", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.2, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0022", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -12.1, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0023", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.1, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0024", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7.1, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0025", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.1, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0026", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -12.1, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0027", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15.2, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "Exit0028", frame: { x: 3167, y: 764, w: 37, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.2, y: -12.4, w: 58, h: 55 }, sourceSize: { w: 58, h: 55 } }, { filename: "FlyMoney0000", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -12.5, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0001", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -17.5, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0002", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -22.5, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0003", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -26.6, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0004", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -31.6, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0005", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -36.6, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0006", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -41.6, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0007", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -46.6, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0008", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -51.6, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0009", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -57.6, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "FlyMoney0010", frame: { x: 3222, y: 1552, w: 38, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.3, y: -62.6, w: 38, h: 77 }, sourceSize: { w: 38, h: 77 } }, { filename: "GameTips0000", frame: { x: 1249, y: 1746, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0001", frame: { x: 3576, y: 1753, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0002", frame: { x: 1385, y: 1754, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0003", frame: { x: 3, y: 1693, w: 139, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0004", frame: { x: 2556, y: 1693, w: 138, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0005", frame: { x: 2697, y: 1745, w: 134, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0006", frame: { x: 2261, y: 1280, w: 173, h: 93 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -86.6, y: -46.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0007", frame: { x: 3123, y: 1755, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0008", frame: { x: 963, y: 1762, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0009", frame: { x: 633, y: 1763, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0010", frame: { x: 3, y: 1764, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0011", frame: { x: 2509, y: 1764, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0012", frame: { x: 3712, y: 1764, w: 133, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -66.6, y: -34.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GameTips0013", frame: { x: 155, y: 1582, w: 173, h: 93 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -86.6, y: -46.1, w: 173, h: 93 }, sourceSize: { w: 173, h: 93 } }, { filename: "GoldBox0000", frame: { x: 941, y: 2046, w: 30, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -17.9, w: 30, h: 35 }, sourceSize: { w: 30, h: 35 } }, { filename: "Gora0000", frame: { x: 1361, y: 2075, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0001", frame: { x: 1361, y: 2075, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0002", frame: { x: 1361, y: 2075, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0003", frame: { x: 1361, y: 2075, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0004", frame: { x: 1361, y: 2075, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0005", frame: { x: 875, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0006", frame: { x: 875, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0007", frame: { x: 875, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0008", frame: { x: 875, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0009", frame: { x: 875, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0010", frame: { x: 1228, y: 2034, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0011", frame: { x: 1228, y: 2034, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0012", frame: { x: 1228, y: 2034, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0013", frame: { x: 1228, y: 2034, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0014", frame: { x: 1228, y: 2034, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0015", frame: { x: 1665, y: 2045, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0016", frame: { x: 1665, y: 2045, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0017", frame: { x: 1665, y: 2045, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0018", frame: { x: 1665, y: 2045, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0019", frame: { x: 1665, y: 2045, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0020", frame: { x: 378, y: 1963, w: 61, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0021", frame: { x: 378, y: 1963, w: 61, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0022", frame: { x: 378, y: 1963, w: 61, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0023", frame: { x: 378, y: 1963, w: 61, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0024", frame: { x: 378, y: 1963, w: 61, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0025", frame: { x: 1540, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0026", frame: { x: 1540, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0027", frame: { x: 1540, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0028", frame: { x: 1540, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0029", frame: { x: 1540, y: 2046, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0030", frame: { x: 309, y: 1963, w: 66, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0031", frame: { x: 309, y: 1963, w: 66, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0032", frame: { x: 309, y: 1963, w: 66, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0033", frame: { x: 309, y: 1963, w: 66, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0034", frame: { x: 309, y: 1963, w: 66, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.5, y: -28, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0035", frame: { x: 3750, y: 1990, w: 68, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0036", frame: { x: 3750, y: 1990, w: 68, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0037", frame: { x: 3750, y: 1990, w: 68, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0038", frame: { x: 3750, y: 1990, w: 68, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0039", frame: { x: 3750, y: 1990, w: 68, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0040", frame: { x: 3, y: 2086, w: 59, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.5, y: -27, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0041", frame: { x: 2362, y: 2107, w: 59, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.5, y: -27, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0042", frame: { x: 2992, y: 1973, w: 75, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0043", frame: { x: 2992, y: 1973, w: 75, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0044", frame: { x: 2992, y: 1973, w: 75, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0045", frame: { x: 1179, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0046", frame: { x: 1179, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0047", frame: { x: 1179, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0048", frame: { x: 3666, y: 1835, w: 106, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0049", frame: { x: 3666, y: 1835, w: 106, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0050", frame: { x: 3666, y: 1835, w: 106, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0051", frame: { x: 3666, y: 1835, w: 106, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0052", frame: { x: 1179, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0053", frame: { x: 1179, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0054", frame: { x: 1179, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0055", frame: { x: 1179, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0056", frame: { x: 3666, y: 1835, w: 106, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0057", frame: { x: 3824, y: 1978, w: 75, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0058", frame: { x: 3824, y: 1978, w: 75, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0059", frame: { x: 3824, y: 1978, w: 75, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0060", frame: { x: 1266, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -49.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0061", frame: { x: 1266, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -49.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0062", frame: { x: 1266, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -49.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0063", frame: { x: 3277, y: 1362, w: 107, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -68.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0064", frame: { x: 3277, y: 1362, w: 107, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -68.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0065", frame: { x: 3277, y: 1362, w: 107, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -68.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0066", frame: { x: 3277, y: 1362, w: 107, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -68.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0067", frame: { x: 1266, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -49.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0068", frame: { x: 1266, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -49.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0069", frame: { x: 1266, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -49.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0070", frame: { x: 1266, y: 1907, w: 84, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -49.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0071", frame: { x: 3277, y: 1362, w: 107, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -68.5, y: -29, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0072", frame: { x: 845, y: 1942, w: 75, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0073", frame: { x: 2285, y: 1877, w: 88, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -38.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0074", frame: { x: 265, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0075", frame: { x: 265, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0076", frame: { x: 265, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0077", frame: { x: 2497, y: 1901, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0078", frame: { x: 2497, y: 1901, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0079", frame: { x: 2497, y: 1901, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0080", frame: { x: 265, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0081", frame: { x: 265, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0082", frame: { x: 265, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0083", frame: { x: 2497, y: 1901, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0084", frame: { x: 2497, y: 1901, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0085", frame: { x: 2497, y: 1901, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0086", frame: { x: 2285, y: 1877, w: 88, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -38.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0087", frame: { x: 845, y: 1942, w: 75, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0088", frame: { x: 160, y: 1946, w: 75, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -39.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0089", frame: { x: 2825, y: 1889, w: 88, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0090", frame: { x: 354, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0091", frame: { x: 354, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0092", frame: { x: 354, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0093", frame: { x: 1937, y: 1902, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0094", frame: { x: 1937, y: 1902, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0095", frame: { x: 1937, y: 1902, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0096", frame: { x: 354, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0097", frame: { x: 354, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0098", frame: { x: 354, y: 1899, w: 86, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0099", frame: { x: 1937, y: 1902, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0100", frame: { x: 1937, y: 1902, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0101", frame: { x: 1937, y: 1902, w: 83, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0102", frame: { x: 2825, y: 1889, w: 88, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "Gora0103", frame: { x: 160, y: 1946, w: 75, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -39.5, y: -30, w: 137, h: 72 }, sourceSize: { w: 137, h: 72 } }, { filename: "GoraMayak0000", frame: { x: 3521, y: 410, w: 111, h: 97 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -55.5, y: -54.6, w: 111, h: 97 }, sourceSize: { w: 111, h: 97 } }, { filename: "Hand0000", frame: { x: 4061, y: 329, w: 8, h: 8 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 8, h: 8 }, sourceSize: { w: 8, h: 8 } }, { filename: "Hero0000", frame: { x: 2424, y: 2107, w: 65, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0001", frame: { x: 2651, y: 1988, w: 73, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0002", frame: { x: 1730, y: 2045, w: 64, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0003", frame: { x: 1730, y: 2045, w: 64, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0004", frame: { x: 1730, y: 2045, w: 64, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0005", frame: { x: 1730, y: 2045, w: 64, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0006", frame: { x: 2929, y: 2035, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0007", frame: { x: 2929, y: 2035, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0008", frame: { x: 2929, y: 2035, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0009", frame: { x: 2929, y: 2035, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0010", frame: { x: 128, y: 2079, w: 62, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0011", frame: { x: 128, y: 2079, w: 62, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0012", frame: { x: 128, y: 2079, w: 62, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0013", frame: { x: 128, y: 2079, w: 62, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0014", frame: { x: 693, y: 2082, w: 62, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0015", frame: { x: 693, y: 2082, w: 62, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0016", frame: { x: 693, y: 2082, w: 62, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0017", frame: { x: 693, y: 2082, w: 62, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0018", frame: { x: 3470, y: 2045, w: 64, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0019", frame: { x: 3470, y: 2045, w: 64, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0020", frame: { x: 3470, y: 2045, w: 64, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0021", frame: { x: 3470, y: 2045, w: 64, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0022", frame: { x: 2998, y: 2035, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0023", frame: { x: 2998, y: 2035, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0024", frame: { x: 2998, y: 2035, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0025", frame: { x: 2998, y: 2035, w: 66, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0026", frame: { x: 2628, y: 2049, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0027", frame: { x: 2628, y: 2049, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0028", frame: { x: 2628, y: 2049, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0029", frame: { x: 2628, y: 2049, w: 63, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0030", frame: { x: 975, y: 2023, w: 63, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0031", frame: { x: 975, y: 2023, w: 63, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0032", frame: { x: 975, y: 2023, w: 63, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0033", frame: { x: 975, y: 2023, w: 63, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0034", frame: { x: 3606, y: 1963, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0035", frame: { x: 3606, y: 1963, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0036", frame: { x: 3606, y: 1963, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0037", frame: { x: 3606, y: 1963, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0038", frame: { x: 3664, y: 1897, w: 84, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0039", frame: { x: 3664, y: 1897, w: 84, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0040", frame: { x: 3664, y: 1897, w: 84, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0041", frame: { x: 3664, y: 1897, w: 84, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0042", frame: { x: 2450, y: 1965, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0043", frame: { x: 2450, y: 1965, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0044", frame: { x: 2450, y: 1965, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0045", frame: { x: 2450, y: 1965, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0046", frame: { x: 3664, y: 1897, w: 84, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0047", frame: { x: 3664, y: 1897, w: 84, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0048", frame: { x: 3664, y: 1897, w: 84, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0049", frame: { x: 3664, y: 1897, w: 84, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0050", frame: { x: 2450, y: 1965, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0051", frame: { x: 2450, y: 1965, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0052", frame: { x: 2450, y: 1965, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0053", frame: { x: 2450, y: 1965, w: 73, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0054", frame: { x: 3523, y: 1982, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0055", frame: { x: 3523, y: 1982, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0056", frame: { x: 3523, y: 1982, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0057", frame: { x: 3523, y: 1982, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0058", frame: { x: 2916, y: 1940, w: 73, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0059", frame: { x: 2916, y: 1940, w: 73, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0060", frame: { x: 2916, y: 1940, w: 73, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0061", frame: { x: 2916, y: 1940, w: 73, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0062", frame: { x: 1589, y: 1983, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0063", frame: { x: 1589, y: 1983, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0064", frame: { x: 1589, y: 1983, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0065", frame: { x: 1589, y: 1983, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0066", frame: { x: 2916, y: 1940, w: 73, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0067", frame: { x: 2916, y: 1940, w: 73, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0068", frame: { x: 2916, y: 1940, w: 73, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0069", frame: { x: 2916, y: 1940, w: 73, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0070", frame: { x: 1589, y: 1983, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0071", frame: { x: 1589, y: 1983, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0072", frame: { x: 1589, y: 1983, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0073", frame: { x: 1589, y: 1983, w: 73, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0074", frame: { x: 2769, y: 1617, w: 84, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0075", frame: { x: 2769, y: 1617, w: 84, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0076", frame: { x: 2769, y: 1617, w: 84, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0077", frame: { x: 2769, y: 1617, w: 84, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0078", frame: { x: 2769, y: 1617, w: 84, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0079", frame: { x: 2374, y: 1953, w: 73, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0080", frame: { x: 2374, y: 1953, w: 73, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0081", frame: { x: 2374, y: 1953, w: 73, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0082", frame: { x: 2374, y: 1953, w: 73, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0083", frame: { x: 2374, y: 1953, w: 73, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0084", frame: { x: 2424, y: 2107, w: 65, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0085", frame: { x: 2424, y: 2107, w: 65, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0086", frame: { x: 2424, y: 2107, w: 65, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0087", frame: { x: 3, y: 2020, w: 65, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0088", frame: { x: 3, y: 2020, w: 65, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0089", frame: { x: 3, y: 2020, w: 65, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0090", frame: { x: 2492, y: 2107, w: 65, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0091", frame: { x: 2492, y: 2107, w: 65, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0092", frame: { x: 2492, y: 2107, w: 65, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0093", frame: { x: 2035, y: 2094, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0094", frame: { x: 2035, y: 2094, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0095", frame: { x: 2103, y: 2094, w: 65, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0096", frame: { x: 2688, y: 2158, w: 54, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0097", frame: { x: 2688, y: 2158, w: 54, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0098", frame: { x: 2688, y: 2158, w: 54, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -32.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0099", frame: { x: 1227, y: 2160, w: 56, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0100", frame: { x: 1227, y: 2160, w: 56, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0101", frame: { x: 1227, y: 2160, w: 56, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0102", frame: { x: 1168, y: 2098, w: 56, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0103", frame: { x: 1168, y: 2098, w: 56, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0104", frame: { x: 1168, y: 2098, w: 56, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0105", frame: { x: 875, y: 2171, w: 54, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0106", frame: { x: 875, y: 2171, w: 54, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0107", frame: { x: 875, y: 2171, w: 54, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0108", frame: { x: 2285, y: 1941, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -59.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0109", frame: { x: 2285, y: 1941, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -59.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0110", frame: { x: 2285, y: 1941, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -59.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0111", frame: { x: 1015, y: 1950, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0112", frame: { x: 1015, y: 1950, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0113", frame: { x: 1015, y: 1950, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0114", frame: { x: 1840, y: 1866, w: 94, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0115", frame: { x: 1840, y: 1866, w: 94, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0116", frame: { x: 1840, y: 1866, w: 94, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0117", frame: { x: 1840, y: 1866, w: 94, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0118", frame: { x: 1840, y: 1866, w: 94, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0119", frame: { x: 443, y: 1942, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0120", frame: { x: 443, y: 1942, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0121", frame: { x: 443, y: 1942, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0122", frame: { x: 690, y: 1951, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0123", frame: { x: 690, y: 1951, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0124", frame: { x: 690, y: 1951, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0125", frame: { x: 2508, y: 1835, w: 100, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -65.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0126", frame: { x: 2508, y: 1835, w: 100, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -65.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0127", frame: { x: 2508, y: 1835, w: 100, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -65.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0128", frame: { x: 2508, y: 1835, w: 100, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -65.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0129", frame: { x: 2508, y: 1835, w: 100, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -65.6, y: -31.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0130", frame: { x: 2285, y: 1941, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -59.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0131", frame: { x: 2285, y: 1941, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -59.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0132", frame: { x: 2285, y: 1941, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -59.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0133", frame: { x: 1015, y: 1950, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0134", frame: { x: 1015, y: 1950, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0135", frame: { x: 1015, y: 1950, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0136", frame: { x: 1015, y: 1950, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0137", frame: { x: 2784, y: 1953, w: 75, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0138", frame: { x: 2784, y: 1953, w: 75, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0139", frame: { x: 2784, y: 1953, w: 75, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0140", frame: { x: 2784, y: 1953, w: 75, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0141", frame: { x: 2784, y: 1953, w: 75, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0142", frame: { x: 443, y: 1942, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0143", frame: { x: 443, y: 1942, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0144", frame: { x: 443, y: 1942, w: 86, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0145", frame: { x: 690, y: 1951, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0146", frame: { x: 690, y: 1951, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0147", frame: { x: 690, y: 1951, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0148", frame: { x: 690, y: 1951, w: 67, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0149", frame: { x: 3, y: 1907, w: 81, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0150", frame: { x: 3, y: 1907, w: 81, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0151", frame: { x: 3, y: 1907, w: 81, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0152", frame: { x: 3, y: 1907, w: 81, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0153", frame: { x: 3, y: 1907, w: 81, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0154", frame: { x: 3209, y: 2024, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0155", frame: { x: 3209, y: 2024, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0156", frame: { x: 3209, y: 2024, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0157", frame: { x: 3599, y: 2029, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0158", frame: { x: 3599, y: 2029, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0159", frame: { x: 3599, y: 2029, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0160", frame: { x: 1899, y: 2031, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0161", frame: { x: 1899, y: 2031, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0162", frame: { x: 1899, y: 2031, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0163", frame: { x: 3902, y: 2031, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0164", frame: { x: 3902, y: 2031, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0165", frame: { x: 3902, y: 2031, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0166", frame: { x: 3902, y: 2031, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0167", frame: { x: 3668, y: 2032, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0168", frame: { x: 3668, y: 2032, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0169", frame: { x: 3668, y: 2032, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0170", frame: { x: 3668, y: 2032, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0171", frame: { x: 196, y: 2034, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0172", frame: { x: 196, y: 2034, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0173", frame: { x: 196, y: 2034, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0174", frame: { x: 196, y: 2034, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0175", frame: { x: 1159, y: 2034, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0176", frame: { x: 1159, y: 2034, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0177", frame: { x: 1159, y: 2034, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0178", frame: { x: 1159, y: 2034, w: 66, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -30.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0179", frame: { x: 4040, y: 1206, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0180", frame: { x: 4040, y: 1206, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0181", frame: { x: 4040, y: 1206, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0182", frame: { x: 4040, y: 1206, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0183", frame: { x: 2187, y: 1537, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0184", frame: { x: 2187, y: 1537, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0185", frame: { x: 2187, y: 1537, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0186", frame: { x: 2187, y: 1537, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0187", frame: { x: 4040, y: 1279, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0188", frame: { x: 4040, y: 1279, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0189", frame: { x: 4040, y: 1279, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0190", frame: { x: 4040, y: 1279, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0191", frame: { x: 71, y: 2020, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0192", frame: { x: 71, y: 2020, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0193", frame: { x: 71, y: 2020, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0194", frame: { x: 71, y: 2020, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0195", frame: { x: 4035, y: 2057, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0196", frame: { x: 4035, y: 2057, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0197", frame: { x: 4035, y: 2057, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0198", frame: { x: 4035, y: 2057, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0199", frame: { x: 3537, y: 2045, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0200", frame: { x: 3537, y: 2045, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0201", frame: { x: 3537, y: 2045, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0202", frame: { x: 3537, y: 2045, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0203", frame: { x: 2694, y: 2085, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0204", frame: { x: 2694, y: 2085, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0205", frame: { x: 2694, y: 2085, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0206", frame: { x: 2694, y: 2085, w: 53, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0207", frame: { x: 1606, y: 2046, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0208", frame: { x: 1606, y: 2046, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0209", frame: { x: 1606, y: 2046, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0210", frame: { x: 1606, y: 2046, w: 54, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -28.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0211", frame: { x: 2861, y: 2076, w: 61, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -24.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hero0212", frame: { x: 2424, y: 2107, w: 65, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -27.5, w: 131, h: 75 }, sourceSize: { w: 131, h: 75 } }, { filename: "Hole0000", frame: { x: 220, y: 1035, w: 29, h: 88 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14, y: -44, w: 42, h: 88 }, sourceSize: { w: 42, h: 88 } }, { filename: "Hole0001", frame: { x: 4038, y: 238, w: 33, h: 88 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -44, w: 42, h: 88 }, sourceSize: { w: 42, h: 88 } }, { filename: "Hole0002", frame: { x: 4038, y: 3, w: 42, h: 88 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -44, w: 42, h: 88 }, sourceSize: { w: 42, h: 88 } }, { filename: "Hole20000", frame: { x: 2437, y: 1328, w: 29, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14, y: -22, w: 42, h: 46 }, sourceSize: { w: 42, h: 46 } }, { filename: "Hole20001", frame: { x: 2437, y: 1280, w: 33, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -22, w: 42, h: 46 }, sourceSize: { w: 42, h: 46 } }, { filename: "Hole20002", frame: { x: 3962, y: 2400, w: 42, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -23, w: 42, h: 46 }, sourceSize: { w: 42, h: 46 } }, { filename: "HumanBlock0000", frame: { x: 708, y: 1643, w: 65, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 65, h: 21 }, sourceSize: { w: 65, h: 21 } }, { filename: "IndicatorAlert0000", frame: { x: 3, y: 1981, w: 123, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.5, y: -18, w: 123, h: 36 }, sourceSize: { w: 123, h: 36 } }, { filename: "IndicatorAlert0001", frame: { x: 3070, y: 1985, w: 122, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.5, y: -18, w: 123, h: 36 }, sourceSize: { w: 123, h: 36 } }, { filename: "IndicatorAlert0002", frame: { x: 3195, y: 1985, w: 122, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.5, y: -18, w: 123, h: 36 }, sourceSize: { w: 123, h: 36 } }, { filename: "IndicatorAlert0003", frame: { x: 2526, y: 1988, w: 122, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.5, y: -18, w: 123, h: 36 }, sourceSize: { w: 123, h: 36 } }, { filename: "IndicatorAlert0004", frame: { x: 1665, y: 2007, w: 120, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.5, y: -17, w: 123, h: 36 }, sourceSize: { w: 123, h: 36 } }, { filename: "InformationPanelBG0000", frame: { x: 2244, y: 1433, w: 640, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 40 }, sourceSize: { w: 640, h: 40 } }, { filename: "Lazer0000", frame: { x: 3616, y: 510, w: 14, h: 85 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -41, w: 14, h: 85 }, sourceSize: { w: 14, h: 85 } }, { filename: "Lazer0001", frame: { x: 3201, y: 526, w: 14, h: 85 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -41, w: 14, h: 85 }, sourceSize: { w: 14, h: 85 } }, { filename: "Lazer0002", frame: { x: 4074, y: 455, w: 14, h: 11 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: 33, w: 14, h: 85 }, sourceSize: { w: 14, h: 85 } }, { filename: "Lazer0003", frame: { x: 4075, y: 1066, w: 14, h: 11 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: 33, w: 14, h: 85 }, sourceSize: { w: 14, h: 85 } }, { filename: "Lazerbox0000", frame: { x: 220, y: 1126, w: 29, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.6, y: -40.1, w: 48, h: 64 }, sourceSize: { w: 48, h: 64 } }, { filename: "Lazerbox0001", frame: { x: 2261, y: 1201, w: 48, h: 63 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14.6, y: -39.1, w: 48, h: 64 }, sourceSize: { w: 48, h: 64 } }, { filename: "Lev10000", frame: { x: 1627, y: 1573, w: 155, h: 121 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 171, h: 162 }, sourceSize: { w: 171, h: 162 } }, { filename: "Lev10001", frame: { x: 1301, y: 1361, w: 171, h: 162 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -32, w: 171, h: 162 }, sourceSize: { w: 171, h: 162 } }, { filename: "Lev100000", frame: { x: 2399, y: 1613, w: 154, h: 100 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 53, w: 170, h: 141 }, sourceSize: { w: 170, h: 141 } }, { filename: "Lev100001", frame: { x: 3, y: 1410, w: 170, h: 141 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: 21, w: 170, h: 141 }, sourceSize: { w: 170, h: 141 } }, { filename: "Lev110000", frame: { x: 3017, y: 1578, w: 154, h: 121 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 32, w: 170, h: 162 }, sourceSize: { w: 170, h: 162 } }, { filename: "Lev110001", frame: { x: 646, y: 1373, w: 170, h: 162 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: 0, w: 170, h: 162 }, sourceSize: { w: 170, h: 162 } }, { filename: "Lev20000", frame: { x: 3277, y: 1427, w: 154, h: 153 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 170, h: 194 }, sourceSize: { w: 170, h: 194 } }, { filename: "Lev20001", frame: { x: 3, y: 1213, w: 170, h: 194 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -32, w: 170, h: 194 }, sourceSize: { w: 170, h: 194 } }, { filename: "Lev30000", frame: { x: 1173, y: 1526, w: 154, h: 132 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 21, w: 170, h: 173 }, sourceSize: { w: 170, h: 173 } }, { filename: "Lev30001", frame: { x: 176, y: 1250, w: 170, h: 173 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -11, w: 170, h: 173 }, sourceSize: { w: 170, h: 173 } }, { filename: "Lev40000", frame: { x: 2908, y: 1386, w: 154, h: 169 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -16, w: 170, h: 210 }, sourceSize: { w: 170, h: 210 } }, { filename: "Lev40001", frame: { x: 912, y: 1190, w: 170, h: 210 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -48, w: 170, h: 210 }, sourceSize: { w: 170, h: 210 } }, { filename: "Lev50000", frame: { x: 1691, y: 1408, w: 154, h: 162 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -9, w: 170, h: 203 }, sourceSize: { w: 170, h: 203 } }, { filename: "Lev50001", frame: { x: 2088, y: 1201, w: 170, h: 203 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -41, w: 170, h: 203 }, sourceSize: { w: 170, h: 203 } }, { filename: "Lev60000", frame: { x: 3065, y: 1430, w: 154, h: 145 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 8, w: 170, h: 186 }, sourceSize: { w: 170, h: 186 } }, { filename: "Lev60001", frame: { x: 473, y: 1226, w: 170, h: 186 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -24, w: 170, h: 186 }, sourceSize: { w: 170, h: 186 } }, { filename: "Lev70000", frame: { x: 3573, y: 1250, w: 155, h: 187 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -34, w: 171, h: 228 }, sourceSize: { w: 171, h: 228 } }, { filename: "Lev70001", frame: { x: 3692, y: 1019, w: 171, h: 228 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -66, w: 171, h: 228 }, sourceSize: { w: 171, h: 228 } }, { filename: "Lev80000", frame: { x: 2399, y: 1476, w: 154, h: 134 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 19, w: 170, h: 175 }, sourceSize: { w: 170, h: 175 } }, { filename: "Lev80001", frame: { x: 3400, y: 1249, w: 170, h: 175 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -13, w: 170, h: 175 }, sourceSize: { w: 170, h: 175 } }, { filename: "Lev90000", frame: { x: 1877, y: 1369, w: 155, h: 178 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -25, w: 171, h: 219 }, sourceSize: { w: 171, h: 219 } }, { filename: "Lev90001", frame: { x: 3226, y: 1035, w: 171, h: 219 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6, y: -57, w: 171, h: 219 }, sourceSize: { w: 171, h: 219 } }, { filename: "LevelWin0000", frame: { x: 1166, y: 1e3, w: 251, h: 187 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -125.4, y: -93.9, w: 251, h: 187 }, sourceSize: { w: 251, h: 187 } }, { filename: "MessageFullScreenBG0000", frame: { x: 2454, y: 763, w: 236, h: 276 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 192.5, y: 145.5, w: 236, h: 276 }, sourceSize: { w: 236, h: 276 } }, { filename: "MessageFullScreenText0000", frame: { x: 2922, y: 1054, w: 204, h: 176 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 210.5, y: 170.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0001", frame: { x: 2693, y: 982, w: 226, h: 242 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 197.5, y: 165.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0002", frame: { x: 1881, y: 1e3, w: 204, h: 200 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 212.5, y: 176.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0003", frame: { x: 1502, y: 1227, w: 204, h: 150 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 213.5, y: 173.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0004", frame: { x: 3, y: 1035, w: 214, h: 175 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 205.5, y: 175.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0005", frame: { x: 2690, y: 1227, w: 204, h: 150 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 213.5, y: 167.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0006", frame: { x: 3391, y: 1596, w: 214, h: 77 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 206.5, y: 191.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0007", frame: { x: 819, y: 1403, w: 212, h: 126 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 204.5, y: 165.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0008", frame: { x: 1674, y: 1e3, w: 204, h: 224 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 208.5, y: 167.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0009", frame: { x: 2897, y: 1233, w: 204, h: 150 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 208.5, y: 168.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0010", frame: { x: 2035, y: 1407, w: 206, h: 127 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 208.5, y: 163.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0011", frame: { x: 3457, y: 1870, w: 204, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 211.5, y: 185.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0012", frame: { x: 2187, y: 1615, w: 206, h: 77 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 210.5, y: 179.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0013", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: .5, y: .8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0014", frame: { x: 349, y: 1415, w: 204, h: 126 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 210.5, y: 180.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0015", frame: { x: 1881, y: 1203, w: 204, h: 163 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 209.5, y: 165.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0016", frame: { x: 1085, y: 1190, w: 204, h: 175 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 213.5, y: 173.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MessageFullScreenText0017", frame: { x: 2769, y: 1690, w: 214, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 206.5, y: 191.8, w: 226, h: 244 }, sourceSize: { w: 226, h: 244 } }, { filename: "MusicButtonPlay0000", frame: { x: 1323, y: 1969, w: 25, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 30, h: 31 }, sourceSize: { w: 30, h: 31 } }, { filename: "MusicButtonPlay0001", frame: { x: 816, y: 2508, w: 25, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 30, h: 31 }, sourceSize: { w: 30, h: 31 } }, { filename: "MusicButtonPlay0002", frame: { x: 2631, y: 2312, w: 30, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -1, w: 30, h: 31 }, sourceSize: { w: 30, h: 31 } }, { filename: "MusicButtonPlay0003", frame: { x: 3381, y: 2313, w: 30, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -1, w: 30, h: 31 }, sourceSize: { w: 30, h: 31 } }, { filename: "Nippers0000", frame: { x: 3966, y: 473, w: 120, h: 97 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -60, y: -48.5, w: 120, h: 97 }, sourceSize: { w: 120, h: 97 } }, { filename: "Nippers0001", frame: { x: 2147, y: 1695, w: 114, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -57, y: -40.5, w: 120, h: 97 }, sourceSize: { w: 120, h: 97 } }, { filename: "Oldman0000", frame: { x: 1911, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -22.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0001", frame: { x: 2176, y: 2402, w: 46, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0002", frame: { x: 2176, y: 2402, w: 46, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0003", frame: { x: 2176, y: 2402, w: 46, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0004", frame: { x: 143, y: 2446, w: 41, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0005", frame: { x: 143, y: 2446, w: 41, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0006", frame: { x: 143, y: 2446, w: 41, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0007", frame: { x: 2294, y: 2371, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0008", frame: { x: 2294, y: 2371, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0009", frame: { x: 2294, y: 2371, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0010", frame: { x: 4050, y: 2445, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0011", frame: { x: 4050, y: 2445, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0012", frame: { x: 4050, y: 2445, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0013", frame: { x: 3721, y: 2405, w: 45, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0014", frame: { x: 3721, y: 2405, w: 45, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0015", frame: { x: 3721, y: 2405, w: 45, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0016", frame: { x: 1423, y: 2450, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0017", frame: { x: 1423, y: 2450, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0018", frame: { x: 1423, y: 2450, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0019", frame: { x: 3863, y: 2373, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0020", frame: { x: 3863, y: 2373, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0021", frame: { x: 3863, y: 2373, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0022", frame: { x: 1115, y: 2475, w: 38, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0023", frame: { x: 1115, y: 2475, w: 38, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0024", frame: { x: 1115, y: 2475, w: 38, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0025", frame: { x: 3479, y: 2272, w: 53, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0026", frame: { x: 1969, y: 2301, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0027", frame: { x: 2024, y: 2301, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0028", frame: { x: 2024, y: 2301, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0029", frame: { x: 2024, y: 2301, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0030", frame: { x: 3313, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0031", frame: { x: 3313, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0032", frame: { x: 3313, y: 2357, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0033", frame: { x: 2024, y: 2301, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0034", frame: { x: 2024, y: 2301, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0035", frame: { x: 2024, y: 2301, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0036", frame: { x: 1969, y: 2301, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0037", frame: { x: 3479, y: 2272, w: 53, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0038", frame: { x: 1050, y: 2302, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0039", frame: { x: 55, y: 2303, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0040", frame: { x: 2837, y: 2303, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0041", frame: { x: 2837, y: 2303, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0042", frame: { x: 2837, y: 2303, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0043", frame: { x: 3812, y: 2360, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0044", frame: { x: 3812, y: 2360, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0045", frame: { x: 3812, y: 2360, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0046", frame: { x: 2837, y: 2303, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0047", frame: { x: 2837, y: 2303, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0048", frame: { x: 2837, y: 2303, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0049", frame: { x: 55, y: 2303, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0050", frame: { x: 1050, y: 2302, w: 52, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0051", frame: { x: 1377, y: 2399, w: 45, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -15.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0052", frame: { x: 788, y: 2374, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -15.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0053", frame: { x: 583, y: 2310, w: 53, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0054", frame: { x: 583, y: 2310, w: 53, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0055", frame: { x: 583, y: 2310, w: 53, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0056", frame: { x: 3670, y: 2390, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0057", frame: { x: 3670, y: 2390, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0058", frame: { x: 3670, y: 2390, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0059", frame: { x: 2776, y: 2341, w: 51, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0060", frame: { x: 2776, y: 2341, w: 51, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0061", frame: { x: 2776, y: 2341, w: 51, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0062", frame: { x: 1074, y: 2391, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0063", frame: { x: 1074, y: 2391, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0064", frame: { x: 1074, y: 2391, w: 48, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0065", frame: { x: 3078, y: 2344, w: 52, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0066", frame: { x: 3078, y: 2344, w: 52, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0067", frame: { x: 3078, y: 2344, w: 52, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0068", frame: { x: 152, y: 2355, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0069", frame: { x: 152, y: 2355, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0070", frame: { x: 152, y: 2355, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0071", frame: { x: 528, y: 2310, w: 52, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0072", frame: { x: 528, y: 2310, w: 52, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0073", frame: { x: 528, y: 2310, w: 52, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0074", frame: { x: 583, y: 2355, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0075", frame: { x: 583, y: 2355, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0076", frame: { x: 583, y: 2355, w: 51, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0077", frame: { x: 122, y: 2257, w: 54, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -24.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0078", frame: { x: 122, y: 2257, w: 54, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -24.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0079", frame: { x: 122, y: 2257, w: 54, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -24.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0080", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0081", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0082", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0083", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0084", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0085", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0086", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0087", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0088", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0089", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0090", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0091", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0092", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0093", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0094", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0095", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0096", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0097", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0098", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0099", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0100", frame: { x: 3021, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0101", frame: { x: 122, y: 2257, w: 54, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -24.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0102", frame: { x: 122, y: 2257, w: 54, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -24.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0103", frame: { x: 122, y: 2257, w: 54, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -24.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0104", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0105", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0106", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0107", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0108", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0109", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0110", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0111", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0112", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0113", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0114", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0115", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0116", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0117", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0118", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0119", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0120", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0121", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0122", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0123", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0124", frame: { x: 3324, y: 2313, w: 54, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0125", frame: { x: 2176, y: 2402, w: 46, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "Oldman0126", frame: { x: 3721, y: 2405, w: 45, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.6, y: -20.9, w: 57, h: 52 }, sourceSize: { w: 57, h: 52 } }, { filename: "OpenminiGame0000", frame: { x: 2415, y: 1019, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -10, w: 20, h: 20 }, sourceSize: { w: 20, h: 20 } }, { filename: "PadLockBG0000", frame: { x: 3, y: 789, w: 250, h: 243 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 250, h: 243 }, sourceSize: { w: 250, h: 243 } }, { filename: "PadLockBG0001", frame: { x: 3226, y: 793, w: 246, h: 239 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 250, h: 243 }, sourceSize: { w: 250, h: 243 } }, { filename: "PadlockPanelTip0000", frame: { x: 3608, y: 1661, w: 153, h: 89 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -76.7, y: -44.3, w: 153, h: 89 }, sourceSize: { w: 153, h: 89 } }, { filename: "PauseButton0000", frame: { x: 3616, y: 598, w: 24, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 28 }, sourceSize: { w: 24, h: 28 } }, { filename: "PauseButton0001", frame: { x: 2148, y: 2274, w: 24, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 28 }, sourceSize: { w: 24, h: 28 } }, { filename: "PauseButton0002", frame: { x: 3616, y: 598, w: 24, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 28 }, sourceSize: { w: 24, h: 28 } }, { filename: "PauseButton0003", frame: { x: 863, y: 2420, w: 24, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 28 }, sourceSize: { w: 24, h: 28 } }, { filename: "Perehod0000", frame: { x: 4074, y: 412, w: 15, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8, y: -20, w: 15, h: 40 }, sourceSize: { w: 15, h: 40 } }, { filename: "Picklock0000", frame: { x: 4074, y: 238, w: 19, h: 171 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -135.5, w: 19, h: 266 }, sourceSize: { w: 19, h: 266 } }, { filename: "Picklock0001", frame: { x: 4074, y: 238, w: 19, h: 171 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -154.5, w: 19, h: 266 }, sourceSize: { w: 19, h: 266 } }, { filename: "Picklock0002", frame: { x: 4074, y: 238, w: 19, h: 171 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -173.5, w: 19, h: 266 }, sourceSize: { w: 19, h: 266 } }, { filename: "Picklock0003", frame: { x: 4074, y: 238, w: 19, h: 171 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -192.5, w: 19, h: 266 }, sourceSize: { w: 19, h: 266 } }, { filename: "Picklock0004", frame: { x: 4074, y: 238, w: 19, h: 171 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -211.5, w: 19, h: 266 }, sourceSize: { w: 19, h: 266 } }, { filename: "Picklock0005", frame: { x: 3475, y: 793, w: 19, h: 171 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -230.5, w: 19, h: 266 }, sourceSize: { w: 19, h: 266 } }, { filename: "Policeman0000", frame: { x: 1530, y: 2219, w: 54, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0001", frame: { x: 2547, y: 2399, w: 45, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0002", frame: { x: 257, y: 2407, w: 45, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0003", frame: { x: 3275, y: 2404, w: 43, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0004", frame: { x: 3275, y: 2404, w: 43, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0005", frame: { x: 3275, y: 2404, w: 43, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0006", frame: { x: 2819, y: 2397, w: 45, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0007", frame: { x: 2819, y: 2397, w: 45, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0008", frame: { x: 2819, y: 2397, w: 45, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0009", frame: { x: 206, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0010", frame: { x: 206, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0011", frame: { x: 206, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0012", frame: { x: 2087, y: 2418, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0013", frame: { x: 2087, y: 2418, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0014", frame: { x: 2087, y: 2418, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0015", frame: { x: 2770, y: 2387, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0016", frame: { x: 2770, y: 2387, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0017", frame: { x: 2770, y: 2387, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0018", frame: { x: 2882, y: 2387, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0019", frame: { x: 2882, y: 2387, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0020", frame: { x: 2882, y: 2387, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0021", frame: { x: 47, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0022", frame: { x: 47, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0023", frame: { x: 47, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0024", frame: { x: 3861, y: 2419, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0025", frame: { x: 3861, y: 2419, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0026", frame: { x: 3861, y: 2419, w: 42, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -21.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0027", frame: { x: 2547, y: 2399, w: 45, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0028", frame: { x: 1827, y: 2450, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0029", frame: { x: 1827, y: 2450, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0030", frame: { x: 769, y: 2420, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0031", frame: { x: 769, y: 2420, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0032", frame: { x: 426, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0033", frame: { x: 2029, y: 2256, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0034", frame: { x: 2029, y: 2256, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0035", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0036", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0037", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0038", frame: { x: 439, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0039", frame: { x: 439, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0040", frame: { x: 439, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0041", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0042", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0043", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0044", frame: { x: 2029, y: 2256, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0045", frame: { x: 426, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0046", frame: { x: 426, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0047", frame: { x: 257, y: 2407, w: 45, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0048", frame: { x: 1636, y: 2436, w: 42, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0049", frame: { x: 1636, y: 2436, w: 42, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0050", frame: { x: 816, y: 2420, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0051", frame: { x: 816, y: 2420, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0052", frame: { x: 1060, y: 2257, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0053", frame: { x: 61, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0054", frame: { x: 61, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0055", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0056", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0057", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0058", frame: { x: 575, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0059", frame: { x: 575, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0060", frame: { x: 575, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0061", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0062", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0063", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0064", frame: { x: 61, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0065", frame: { x: 1060, y: 2257, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0066", frame: { x: 1060, y: 2257, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0067", frame: { x: 2547, y: 2399, w: 45, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0068", frame: { x: 1827, y: 2450, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0069", frame: { x: 1827, y: 2450, w: 40, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0070", frame: { x: 769, y: 2420, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0071", frame: { x: 769, y: 2420, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0072", frame: { x: 426, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0073", frame: { x: 2029, y: 2256, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0074", frame: { x: 2029, y: 2256, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0075", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0076", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0077", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0078", frame: { x: 439, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0079", frame: { x: 439, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0080", frame: { x: 439, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0081", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0082", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0083", frame: { x: 2175, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0084", frame: { x: 2029, y: 2256, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0085", frame: { x: 426, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0086", frame: { x: 426, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0087", frame: { x: 2871, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0088", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0089", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0090", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0091", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0092", frame: { x: 2932, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0093", frame: { x: 2932, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0094", frame: { x: 2932, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0095", frame: { x: 1009, y: 2127, w: 76, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0096", frame: { x: 1009, y: 2127, w: 76, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0097", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0098", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0099", frame: { x: 1009, y: 2127, w: 76, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0100", frame: { x: 1009, y: 2127, w: 76, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0101", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0102", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0103", frame: { x: 1009, y: 2127, w: 76, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0104", frame: { x: 1009, y: 2127, w: 76, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0105", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0106", frame: { x: 1911, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0107", frame: { x: 426, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0108", frame: { x: 426, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0109", frame: { x: 257, y: 2407, w: 45, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0110", frame: { x: 1636, y: 2436, w: 42, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0111", frame: { x: 1636, y: 2436, w: 42, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0112", frame: { x: 816, y: 2420, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0113", frame: { x: 816, y: 2420, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0114", frame: { x: 1060, y: 2257, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0115", frame: { x: 61, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0116", frame: { x: 61, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0117", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0118", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0119", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0120", frame: { x: 575, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0121", frame: { x: 575, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0122", frame: { x: 575, y: 2220, w: 61, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0123", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0124", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0125", frame: { x: 2285, y: 2272, w: 57, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -18.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0126", frame: { x: 61, y: 2258, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0127", frame: { x: 1060, y: 2257, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0128", frame: { x: 1060, y: 2257, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0129", frame: { x: 553, y: 2265, w: 57, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0130", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0131", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0132", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0133", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0134", frame: { x: 2809, y: 2246, w: 59, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0135", frame: { x: 2809, y: 2246, w: 59, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0136", frame: { x: 2809, y: 2246, w: 59, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0137", frame: { x: 3488, y: 1779, w: 77, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0138", frame: { x: 3488, y: 1779, w: 77, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0139", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0140", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0141", frame: { x: 3488, y: 1779, w: 77, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0142", frame: { x: 3488, y: 1779, w: 77, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0143", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0144", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0145", frame: { x: 3488, y: 1779, w: 77, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0146", frame: { x: 3488, y: 1779, w: 77, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0147", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0148", frame: { x: 2415, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0149", frame: { x: 1060, y: 2257, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0150", frame: { x: 1060, y: 2257, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0151", frame: { x: 2035, y: 1369, w: 49, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -7.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0152", frame: { x: 1034, y: 1467, w: 45, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.1, y: -7.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0153", frame: { x: 2606, y: 2267, w: 56, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0154", frame: { x: 2606, y: 2267, w: 56, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0155", frame: { x: 2606, y: 2267, w: 56, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0156", frame: { x: 1587, y: 2219, w: 60, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0157", frame: { x: 1587, y: 2219, w: 60, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0158", frame: { x: 1587, y: 2219, w: 60, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0159", frame: { x: 4032, y: 2355, w: 53, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0160", frame: { x: 4032, y: 2355, w: 53, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0161", frame: { x: 4032, y: 2355, w: 53, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0162", frame: { x: 639, y: 2311, w: 53, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0163", frame: { x: 639, y: 2311, w: 53, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0164", frame: { x: 639, y: 2311, w: 53, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0165", frame: { x: 1403, y: 2259, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0166", frame: { x: 1403, y: 2259, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0167", frame: { x: 1403, y: 2259, w: 58, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0168", frame: { x: 1650, y: 2226, w: 59, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0169", frame: { x: 1650, y: 2226, w: 59, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0170", frame: { x: 1650, y: 2226, w: 59, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0171", frame: { x: 2892, y: 2303, w: 57, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0172", frame: { x: 2892, y: 2303, w: 57, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0173", frame: { x: 2892, y: 2303, w: 57, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.1, y: -19.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0174", frame: { x: 1403, y: 2304, w: 54, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0175", frame: { x: 1403, y: 2304, w: 54, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0176", frame: { x: 1403, y: 2304, w: 54, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0177", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0178", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0179", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0180", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0181", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0182", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0183", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0184", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0185", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0186", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0187", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0188", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0189", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0190", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0191", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0192", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0193", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0194", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0195", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0196", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0197", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0198", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0199", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0200", frame: { x: 2480, y: 2214, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0201", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0202", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0203", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0204", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0205", frame: { x: 3628, y: 2159, w: 62, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -26.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0206", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0207", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0208", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0209", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0210", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0211", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0212", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0213", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0214", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0215", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0216", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0217", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0218", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0219", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0220", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0221", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0222", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0223", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0224", frame: { x: 374, y: 2216, w: 62, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -20.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0225", frame: { x: 935, y: 2390, w: 47, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.1, y: -15.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Policeman0226", frame: { x: 839, y: 2374, w: 48, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -15.3, w: 83, h: 54 }, sourceSize: { w: 83, h: 54 } }, { filename: "Progress_bar0000", frame: { x: 923, y: 1990, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0001", frame: { x: 923, y: 1990, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0002", frame: { x: 923, y: 1990, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0003", frame: { x: 760, y: 1999, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0004", frame: { x: 760, y: 1999, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0005", frame: { x: 2284, y: 2e3, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0006", frame: { x: 2284, y: 2e3, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0007", frame: { x: 442, y: 2001, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0008", frame: { x: 3287, y: 2482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0009", frame: { x: 3287, y: 2482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0010", frame: { x: 3604, y: 2482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0011", frame: { x: 3604, y: 2482, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0012", frame: { x: 906, y: 2483, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0013", frame: { x: 2568, y: 2484, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0014", frame: { x: 2568, y: 2484, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0015", frame: { x: 2879, y: 2484, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0016", frame: { x: 2879, y: 2484, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0017", frame: { x: 274, y: 2490, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0018", frame: { x: 274, y: 2490, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0019", frame: { x: 1156, y: 2491, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0020", frame: { x: 2763, y: 2491, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0021", frame: { x: 2763, y: 2491, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0022", frame: { x: 974, y: 2492, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0023", frame: { x: 974, y: 2492, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0024", frame: { x: 1042, y: 2492, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0025", frame: { x: 1042, y: 2492, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0026", frame: { x: 1305, y: 2492, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0027", frame: { x: 3994, y: 2492, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0028", frame: { x: 3994, y: 2492, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0029", frame: { x: 508, y: 2493, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0030", frame: { x: 508, y: 2493, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0031", frame: { x: 3920, y: 2493, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0032", frame: { x: 132, y: 2494, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0033", frame: { x: 132, y: 2494, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0034", frame: { x: 1224, y: 2494, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0035", frame: { x: 1224, y: 2494, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0036", frame: { x: 3672, y: 2494, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0037", frame: { x: 3672, y: 2494, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0038", frame: { x: 3, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0039", frame: { x: 436, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0040", frame: { x: 436, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0041", frame: { x: 1373, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0042", frame: { x: 1373, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0043", frame: { x: 3192, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0044", frame: { x: 3355, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0045", frame: { x: 3355, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0046", frame: { x: 3423, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0047", frame: { x: 3423, y: 2495, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0048", frame: { x: 200, y: 2496, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0049", frame: { x: 200, y: 2496, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0050", frame: { x: 2160, y: 2496, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0051", frame: { x: 576, y: 2497, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0052", frame: { x: 576, y: 2497, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0053", frame: { x: 644, y: 2497, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0054", frame: { x: 644, y: 2497, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0055", frame: { x: 3491, y: 2497, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0056", frame: { x: 1767, y: 2498, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0057", frame: { x: 1767, y: 2498, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0058", frame: { x: 1952, y: 2499, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0059", frame: { x: 1952, y: 2499, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0060", frame: { x: 3740, y: 2500, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0061", frame: { x: 3740, y: 2500, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0062", frame: { x: 1652, y: 2501, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0063", frame: { x: 3260, y: 2503, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0064", frame: { x: 3260, y: 2503, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0065", frame: { x: 3559, y: 2503, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0066", frame: { x: 3559, y: 2503, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0067", frame: { x: 846, y: 2504, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0068", frame: { x: 846, y: 2504, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0069", frame: { x: 2522, y: 2505, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0070", frame: { x: 2590, y: 2505, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0071", frame: { x: 2590, y: 2505, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0072", frame: { x: 2879, y: 2505, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0073", frame: { x: 2879, y: 2505, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0074", frame: { x: 2443, y: 2506, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0075", frame: { x: 342, y: 2507, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0076", frame: { x: 342, y: 2507, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0077", frame: { x: 1441, y: 2507, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0078", frame: { x: 1441, y: 2507, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0079", frame: { x: 2228, y: 2507, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0080", frame: { x: 2228, y: 2507, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0081", frame: { x: 2296, y: 2507, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0082", frame: { x: 712, y: 2508, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0083", frame: { x: 712, y: 2508, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0084", frame: { x: 1835, y: 2508, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0085", frame: { x: 1835, y: 2508, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0086", frame: { x: 2020, y: 2508, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0087", frame: { x: 2088, y: 2508, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0088", frame: { x: 2088, y: 2508, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0089", frame: { x: 3808, y: 2509, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0090", frame: { x: 3808, y: 2509, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0091", frame: { x: 268, y: 2511, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0092", frame: { x: 268, y: 2511, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0093", frame: { x: 1156, y: 2512, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0094", frame: { x: 2763, y: 2512, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0095", frame: { x: 2763, y: 2512, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0096", frame: { x: 914, y: 2513, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0097", frame: { x: 914, y: 2513, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0098", frame: { x: 982, y: 2513, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "Progress_bar0099", frame: { x: 1292, y: 2513, w: 65, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 65, h: 18 }, sourceSize: { w: 65, h: 18 } }, { filename: "RestartButton0000", frame: { x: 3576, y: 1721, w: 27, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 27, h: 28 }, sourceSize: { w: 27, h: 28 } }, { filename: "RestartButton0001", frame: { x: 176, y: 1870, w: 27, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 27, h: 28 }, sourceSize: { w: 27, h: 28 } }, { filename: "RestartButton0002", frame: { x: 3576, y: 1721, w: 27, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 27, h: 28 }, sourceSize: { w: 27, h: 28 } }, { filename: "RestartButton0003", frame: { x: 2611, y: 1875, w: 27, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 27, h: 28 }, sourceSize: { w: 27, h: 28 } }, { filename: "Robot0000", frame: { x: 3988, y: 2344, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0001", frame: { x: 3988, y: 2344, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0002", frame: { x: 3988, y: 2344, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0003", frame: { x: 695, y: 2311, w: 41, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0004", frame: { x: 695, y: 2311, w: 41, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0005", frame: { x: 695, y: 2311, w: 41, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0006", frame: { x: 3988, y: 2344, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0007", frame: { x: 3988, y: 2344, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0008", frame: { x: 3988, y: 2344, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0009", frame: { x: 2238, y: 1957, w: 43, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0010", frame: { x: 2238, y: 1957, w: 43, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0011", frame: { x: 2238, y: 1957, w: 43, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0012", frame: { x: 3, y: 2313, w: 41, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0013", frame: { x: 3, y: 2313, w: 41, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0014", frame: { x: 3, y: 2313, w: 41, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0015", frame: { x: 2238, y: 1957, w: 43, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0016", frame: { x: 2238, y: 1957, w: 43, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0017", frame: { x: 2238, y: 1957, w: 43, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0018", frame: { x: 891, y: 2346, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0019", frame: { x: 646, y: 1286, w: 42, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0020", frame: { x: 1613, y: 1829, w: 42, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0021", frame: { x: 1613, y: 1829, w: 42, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0022", frame: { x: 1613, y: 1829, w: 42, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0023", frame: { x: 646, y: 1226, w: 42, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0024", frame: { x: 646, y: 1226, w: 42, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0025", frame: { x: 646, y: 1226, w: 42, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0026", frame: { x: 1613, y: 1829, w: 42, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0027", frame: { x: 1613, y: 1829, w: 42, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0028", frame: { x: 1613, y: 1829, w: 42, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0029", frame: { x: 2237, y: 2226, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0030", frame: { x: 2237, y: 2226, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0031", frame: { x: 2237, y: 2226, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0032", frame: { x: 1034, y: 1403, w: 43, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0033", frame: { x: 1034, y: 1403, w: 43, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0034", frame: { x: 1034, y: 1403, w: 43, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0035", frame: { x: 2237, y: 2226, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0036", frame: { x: 2237, y: 2226, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0037", frame: { x: 2237, y: 2226, w: 45, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0038", frame: { x: 374, y: 2261, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.7, y: -22.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0039", frame: { x: 3619, y: 2435, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.7, y: -19.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0040", frame: { x: 2198, y: 2346, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0041", frame: { x: 485, y: 2310, w: 40, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0042", frame: { x: 485, y: 2310, w: 40, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.7, y: -28.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0043", frame: { x: 2198, y: 2346, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0044", frame: { x: 2198, y: 2346, w: 41, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.7, y: -25.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0045", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0046", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0047", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0048", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0049", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0050", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0051", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0052", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0053", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0054", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0055", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0056", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0057", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0058", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0059", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0060", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0061", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0062", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0063", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0064", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0065", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0066", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0067", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0068", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0069", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0070", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0071", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0072", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0073", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0074", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0075", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0076", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0077", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0078", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0079", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0080", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0081", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0082", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "Robot0083", frame: { x: 220, y: 1189, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10.6, y: -9.1, w: 52, h: 61 }, sourceSize: { w: 52, h: 61 } }, { filename: "RobotLights0000", frame: { x: 160, y: 1907, w: 40, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -17.5, w: 175, h: 43 }, sourceSize: { w: 175, h: 43 } }, { filename: "RobotLights0001", frame: { x: 3488, y: 1824, w: 175, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -135, y: -24.5, w: 175, h: 43 }, sourceSize: { w: 175, h: 43 } }, { filename: "RobotLights0002", frame: { x: 3057, y: 1826, w: 175, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -135, y: -24.5, w: 175, h: 43 }, sourceSize: { w: 175, h: 43 } }, { filename: "RobotLights0003", frame: { x: 1609, y: 2481, w: 40, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -17.5, w: 175, h: 43 }, sourceSize: { w: 175, h: 43 } }, { filename: "RobotMayak0000", frame: { x: 556, y: 1415, w: 76, h: 103 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.8, y: -45.7, w: 76, h: 103 }, sourceSize: { w: 76, h: 103 } }, { filename: "RobotShock0000", frame: { x: 4038, y: 94, w: 48, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -34, w: 48, h: 69 }, sourceSize: { w: 48, h: 69 } }, { filename: "RobotShock0001", frame: { x: 4038, y: 94, w: 48, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -34, w: 48, h: 69 }, sourceSize: { w: 48, h: 69 } }, { filename: "RobotShock0002", frame: { x: 4038, y: 166, w: 48, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -34, w: 48, h: 69 }, sourceSize: { w: 48, h: 69 } }, { filename: "RobotShock0003", frame: { x: 4038, y: 166, w: 48, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -34, w: 48, h: 69 }, sourceSize: { w: 48, h: 69 } }, { filename: "Securityman0000", frame: { x: 238, y: 1963, w: 68, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -32.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0001", frame: { x: 3682, y: 1963, w: 65, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -33.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0002", frame: { x: 3010, y: 1909, w: 81, h: 61 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -33.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0003", frame: { x: 87, y: 1907, w: 70, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0004", frame: { x: 87, y: 1907, w: 70, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0005", frame: { x: 87, y: 1907, w: 70, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0006", frame: { x: 768, y: 1930, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0007", frame: { x: 768, y: 1930, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0008", frame: { x: 768, y: 1930, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0009", frame: { x: 1917, y: 1966, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0010", frame: { x: 1917, y: 1966, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0011", frame: { x: 1917, y: 1966, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0012", frame: { x: 2922, y: 982, w: 68, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0013", frame: { x: 2922, y: 982, w: 68, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0014", frame: { x: 2922, y: 982, w: 68, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0015", frame: { x: 1430, y: 1934, w: 68, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0016", frame: { x: 1430, y: 1934, w: 68, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0017", frame: { x: 1430, y: 1934, w: 68, h: 71 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0018", frame: { x: 1092, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0019", frame: { x: 1092, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0020", frame: { x: 1092, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0021", frame: { x: 3918, y: 1966, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0022", frame: { x: 3918, y: 1966, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0023", frame: { x: 3918, y: 1966, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0024", frame: { x: 3378, y: 1946, w: 68, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0025", frame: { x: 3378, y: 1946, w: 68, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0026", frame: { x: 3378, y: 1946, w: 68, h: 69 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0027", frame: { x: 2426, y: 1871, w: 68, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0028", frame: { x: 2426, y: 1871, w: 68, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0029", frame: { x: 2426, y: 1871, w: 68, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0030", frame: { x: 4008, y: 1592, w: 81, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0031", frame: { x: 4008, y: 1592, w: 81, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0032", frame: { x: 2426, y: 1787, w: 79, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -38.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0033", frame: { x: 2426, y: 1787, w: 79, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -38.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0034", frame: { x: 3400, y: 1152, w: 72, h: 80 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0035", frame: { x: 3400, y: 1152, w: 72, h: 80 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0036", frame: { x: 1323, y: 2003, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0037", frame: { x: 1323, y: 2003, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0038", frame: { x: 1323, y: 2003, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0039", frame: { x: 2214, y: 1875, w: 68, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0040", frame: { x: 2214, y: 1875, w: 68, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0041", frame: { x: 2214, y: 1875, w: 68, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0042", frame: { x: 3235, y: 1830, w: 81, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0043", frame: { x: 3235, y: 1830, w: 81, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0044", frame: { x: 951, y: 1833, w: 79, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0045", frame: { x: 951, y: 1833, w: 79, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0046", frame: { x: 1249, y: 1661, w: 72, h: 80 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0047", frame: { x: 1249, y: 1661, w: 72, h: 80 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0048", frame: { x: 1390, y: 2008, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0049", frame: { x: 1390, y: 2008, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0050", frame: { x: 1390, y: 2008, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -42.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0051", frame: { x: 633, y: 1677, w: 70, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -38.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0052", frame: { x: 633, y: 1677, w: 70, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -38.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0053", frame: { x: 633, y: 1677, w: 70, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -38.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0054", frame: { x: 3537, y: 1900, w: 66, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0055", frame: { x: 3537, y: 1900, w: 66, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0056", frame: { x: 3129, y: 1172, w: 80, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -47.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0057", frame: { x: 3129, y: 1172, w: 80, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -47.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0058", frame: { x: 1546, y: 1898, w: 66, h: 80 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0059", frame: { x: 1546, y: 1898, w: 66, h: 80 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0060", frame: { x: 1840, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0061", frame: { x: 1840, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0062", frame: { x: 1840, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0063", frame: { x: 1840, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0064", frame: { x: 1840, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0065", frame: { x: 1840, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0066", frame: { x: 1840, y: 1932, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0067", frame: { x: 1684, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0068", frame: { x: 1684, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0069", frame: { x: 1684, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0070", frame: { x: 2825, y: 1818, w: 95, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0071", frame: { x: 2825, y: 1818, w: 95, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0072", frame: { x: 3457, y: 1900, w: 77, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0073", frame: { x: 3457, y: 1900, w: 77, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0074", frame: { x: 2825, y: 1818, w: 95, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0075", frame: { x: 2825, y: 1818, w: 95, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0076", frame: { x: 3457, y: 1900, w: 77, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0077", frame: { x: 3457, y: 1900, w: 77, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0078", frame: { x: 2825, y: 1818, w: 95, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0079", frame: { x: 2825, y: 1818, w: 95, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0080", frame: { x: 3457, y: 1900, w: 77, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0081", frame: { x: 3457, y: 1900, w: 77, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0082", frame: { x: 1684, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0083", frame: { x: 1684, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0084", frame: { x: 1684, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0085", frame: { x: 3775, y: 1835, w: 70, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0086", frame: { x: 3775, y: 1835, w: 70, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0087", frame: { x: 3775, y: 1835, w: 70, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0088", frame: { x: 1615, y: 1901, w: 66, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0089", frame: { x: 1615, y: 1901, w: 66, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0090", frame: { x: 4008, y: 1508, w: 80, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0091", frame: { x: 4008, y: 1508, w: 80, h: 81 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0092", frame: { x: 3848, y: 1895, w: 67, h: 80 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0093", frame: { x: 3848, y: 1895, w: 67, h: 80 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -37.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0094", frame: { x: 1353, y: 1934, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0095", frame: { x: 1353, y: 1934, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0096", frame: { x: 1353, y: 1934, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0097", frame: { x: 1353, y: 1934, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0098", frame: { x: 1353, y: 1934, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0099", frame: { x: 1353, y: 1934, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0100", frame: { x: 1353, y: 1934, w: 74, h: 66 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -38.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0101", frame: { x: 1762, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0102", frame: { x: 1762, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0103", frame: { x: 1762, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0104", frame: { x: 3608, y: 1579, w: 96, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -64.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0105", frame: { x: 3608, y: 1579, w: 96, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -64.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0106", frame: { x: 3918, y: 1895, w: 78, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0107", frame: { x: 3918, y: 1895, w: 78, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0108", frame: { x: 3608, y: 1579, w: 96, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -64.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0109", frame: { x: 3608, y: 1579, w: 96, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -64.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0110", frame: { x: 3918, y: 1895, w: 78, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0111", frame: { x: 3918, y: 1895, w: 78, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0112", frame: { x: 3608, y: 1579, w: 96, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -64.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0113", frame: { x: 3608, y: 1579, w: 96, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -64.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0114", frame: { x: 3918, y: 1895, w: 78, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0115", frame: { x: 3918, y: 1895, w: 78, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0116", frame: { x: 1762, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0117", frame: { x: 1762, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0118", frame: { x: 1762, y: 1901, w: 75, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0119", frame: { x: 2023, y: 1902, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0120", frame: { x: 2023, y: 1902, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0121", frame: { x: 2023, y: 1902, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0122", frame: { x: 431, y: 2046, w: 60, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -35.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0123", frame: { x: 431, y: 2046, w: 60, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -35.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0124", frame: { x: 431, y: 2046, w: 60, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -35.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0125", frame: { x: 2583, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0126", frame: { x: 2583, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0127", frame: { x: 2583, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -34.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0128", frame: { x: 1785, y: 1573, w: 60, h: 65 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0129", frame: { x: 1785, y: 1573, w: 60, h: 65 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0130", frame: { x: 1785, y: 1573, w: 60, h: 65 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -30.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0131", frame: { x: 2650, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0132", frame: { x: 2650, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0133", frame: { x: 2650, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0134", frame: { x: 494, y: 2046, w: 60, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -35.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0135", frame: { x: 494, y: 2046, w: 60, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -35.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0136", frame: { x: 494, y: 2046, w: 60, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -35.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0137", frame: { x: 2717, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0138", frame: { x: 2717, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0139", frame: { x: 2717, y: 1906, w: 64, h: 79 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0140", frame: { x: 3821, y: 2040, w: 60, h: 65 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0141", frame: { x: 3821, y: 2040, w: 60, h: 65 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0142", frame: { x: 3821, y: 2040, w: 60, h: 65 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0143", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0144", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0145", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0146", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0147", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0148", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0149", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0150", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0151", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0152", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0153", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0154", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0155", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0156", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0157", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0158", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0159", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0160", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0161", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0162", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0163", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0164", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0165", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0166", frame: { x: 1169, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0167", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0168", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0169", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0170", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0171", frame: { x: 1085, y: 2001, w: 71, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41.1, y: -30.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0172", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0173", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0174", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0175", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0176", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0177", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0178", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0179", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0180", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0181", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0182", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0183", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0184", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0185", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0186", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0187", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0188", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0189", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0190", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0191", frame: { x: 1246, y: 1969, w: 74, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.1, y: -36.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0192", frame: { x: 2232, y: 2042, w: 68, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -22.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0193", frame: { x: 2232, y: 2042, w: 68, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32.1, y: -22.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0194", frame: { x: 2135, y: 1869, w: 76, h: 74 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.1, y: -27.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "Securityman0195", frame: { x: 3378, y: 1869, w: 76, h: 74 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -27.8, w: 116, h: 85 }, sourceSize: { w: 116, h: 85 } }, { filename: "ShopItemCursor0000", frame: { x: 2862, y: 2009, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -32, w: 64, h: 64 }, sourceSize: { w: 64, h: 64 } }, { filename: "ShopItemCursor0001", frame: { x: 129, y: 2012, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -32, w: 64, h: 64 }, sourceSize: { w: 64, h: 64 } }, { filename: "ShopItemCursor0002", frame: { x: 2727, y: 2018, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -32, w: 64, h: 64 }, sourceSize: { w: 64, h: 64 } }, { filename: "ShopItemCursor0003", frame: { x: 2794, y: 2018, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -32, w: 64, h: 64 }, sourceSize: { w: 64, h: 64 } }, { filename: "ShopItemCursor0004", frame: { x: 3320, y: 2018, w: 64, h: 64 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -32, y: -32, w: 64, h: 64 }, sourceSize: { w: 64, h: 64 } }, { filename: "ShopItemKol0000", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0001", frame: { x: 2198, y: 2316, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0002", frame: { x: 3321, y: 2404, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0003", frame: { x: 3287, y: 2451, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0004", frame: { x: 436, y: 2464, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0005", frame: { x: 106, y: 2515, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0006", frame: { x: 135, y: 2515, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0007", frame: { x: 164, y: 2515, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0008", frame: { x: 1224, y: 2515, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "ShopItemKol0009", frame: { x: 1253, y: 2515, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -40, y: 12, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "SoundButtonPlay0000", frame: { x: 1861, y: 2063, w: 34, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 35, h: 32 }, sourceSize: { w: 35, h: 32 } }, { filename: "SoundButtonPlay0001", frame: { x: 1720, y: 2512, w: 34, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 35, h: 32 }, sourceSize: { w: 35, h: 32 } }, { filename: "SoundButtonPlay0002", frame: { x: 1105, y: 2063, w: 34, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -2, w: 35, h: 32 }, sourceSize: { w: 35, h: 32 } }, { filename: "SoundButtonPlay0003", frame: { x: 1337, y: 2410, w: 34, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -2, w: 35, h: 32 }, sourceSize: { w: 35, h: 32 } }, { filename: "Stairs0000", frame: { x: 3497, y: 793, w: 20, h: 137 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -68.5, w: 20, h: 137 }, sourceSize: { w: 20, h: 137 } }, { filename: "StunProgress0000", frame: { x: 776, y: 1643, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0001", frame: { x: 3999, y: 1895, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0002", frame: { x: 1353, y: 1907, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0003", frame: { x: 1457, y: 2008, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0004", frame: { x: 3157, y: 2121, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0005", frame: { x: 4065, y: 2209, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0006", frame: { x: 891, y: 2319, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0007", frame: { x: 3, y: 2370, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0008", frame: { x: 3689, y: 2515, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0009", frame: { x: 3, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0010", frame: { x: 3, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0011", frame: { x: 30, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0012", frame: { x: 436, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0013", frame: { x: 463, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0014", frame: { x: 1360, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0015", frame: { x: 1360, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0016", frame: { x: 1360, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0017", frame: { x: 1387, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0018", frame: { x: 1414, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0019", frame: { x: 1414, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0020", frame: { x: 1387, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0021", frame: { x: 1545, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0022", frame: { x: 1545, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0023", frame: { x: 1545, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0024", frame: { x: 1545, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0025", frame: { x: 1572, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0026", frame: { x: 3192, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0027", frame: { x: 3219, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0028", frame: { x: 3354, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0029", frame: { x: 3381, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0030", frame: { x: 3408, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0031", frame: { x: 3435, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0032", frame: { x: 3462, y: 2516, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0033", frame: { x: 193, y: 2517, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0034", frame: { x: 220, y: 2517, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0035", frame: { x: 2156, y: 2517, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0036", frame: { x: 2183, y: 2517, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0037", frame: { x: 570, y: 2518, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0038", frame: { x: 597, y: 2518, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0039", frame: { x: 624, y: 2518, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0040", frame: { x: 651, y: 2518, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0041", frame: { x: 678, y: 2518, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0042", frame: { x: 2831, y: 2518, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0043", frame: { x: 3489, y: 2518, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0044", frame: { x: 3516, y: 2518, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0045", frame: { x: 1757, y: 2519, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0046", frame: { x: 1784, y: 2519, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0047", frame: { x: 1114, y: 2520, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0048", frame: { x: 1599, y: 2520, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0049", frame: { x: 1952, y: 2520, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0050", frame: { x: 1979, y: 2520, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0051", frame: { x: 2726, y: 2520, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0052", frame: { x: 2364, y: 2521, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0053", frame: { x: 2391, y: 2521, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0054", frame: { x: 2684, y: 2521, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0055", frame: { x: 2983, y: 2521, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0056", frame: { x: 3010, y: 2521, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0057", frame: { x: 3716, y: 2521, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0058", frame: { x: 3743, y: 2521, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0059", frame: { x: 3770, y: 2521, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0060", frame: { x: 1626, y: 2522, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0061", frame: { x: 1653, y: 2522, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0062", frame: { x: 1680, y: 2522, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0063", frame: { x: 3037, y: 2522, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0064", frame: { x: 3876, y: 2522, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0065", frame: { x: 1903, y: 2523, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0066", frame: { x: 3246, y: 2524, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0067", frame: { x: 3273, y: 2524, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0068", frame: { x: 3300, y: 2524, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0069", frame: { x: 3543, y: 2524, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0070", frame: { x: 3570, y: 2524, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0071", frame: { x: 3597, y: 2524, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0072", frame: { x: 844, y: 2525, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0073", frame: { x: 871, y: 2525, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0074", frame: { x: 2511, y: 2526, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0075", frame: { x: 2538, y: 2526, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0076", frame: { x: 2565, y: 2526, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0077", frame: { x: 2592, y: 2526, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0078", frame: { x: 2619, y: 2526, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0079", frame: { x: 2858, y: 2526, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0080", frame: { x: 2885, y: 2526, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0081", frame: { x: 2912, y: 2526, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0082", frame: { x: 2418, y: 2527, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0083", frame: { x: 2445, y: 2527, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0084", frame: { x: 2472, y: 2527, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0085", frame: { x: 336, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0086", frame: { x: 363, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0087", frame: { x: 1441, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0088", frame: { x: 1468, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0089", frame: { x: 2210, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0090", frame: { x: 2237, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0091", frame: { x: 2264, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0092", frame: { x: 2291, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0093", frame: { x: 2318, y: 2528, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0094", frame: { x: 705, y: 2529, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0095", frame: { x: 732, y: 2529, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0096", frame: { x: 1811, y: 2529, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0097", frame: { x: 1838, y: 2529, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0098", frame: { x: 1865, y: 2529, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunProgress0099", frame: { x: 2006, y: 2529, w: 24, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 24, h: 24 }, sourceSize: { w: 24, h: 24 } }, { filename: "StunStars0000", frame: { x: 176, y: 1213, w: 71, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0001", frame: { x: 176, y: 1213, w: 71, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0002", frame: { x: 176, y: 1213, w: 71, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0003", frame: { x: 176, y: 1213, w: 71, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0004", frame: { x: 176, y: 1213, w: 71, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0005", frame: { x: 3433, y: 2368, w: 63, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0006", frame: { x: 3433, y: 2368, w: 63, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0007", frame: { x: 3433, y: 2368, w: 63, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0008", frame: { x: 3433, y: 2368, w: 63, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0009", frame: { x: 3433, y: 2368, w: 63, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.1, y: -16, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0010", frame: { x: 2665, y: 2270, w: 65, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -19, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0011", frame: { x: 2665, y: 2270, w: 65, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -19, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0012", frame: { x: 2665, y: 2270, w: 65, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -19, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0013", frame: { x: 2665, y: 2270, w: 65, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -19, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "StunStars0014", frame: { x: 2665, y: 2270, w: 65, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -33.1, y: -19, w: 71, h: 36 }, sourceSize: { w: 71, h: 36 } }, { filename: "Target0000", frame: { x: 1535, y: 2415, w: 43, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.2, y: -21.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0001", frame: { x: 2722, y: 2384, w: 45, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.2, y: -22.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0002", frame: { x: 3524, y: 2356, w: 46, h: 46 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.2, y: -22.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0003", frame: { x: 2502, y: 2318, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.2, y: -23.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0004", frame: { x: 1464, y: 2261, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.2, y: -24.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0005", frame: { x: 2685, y: 2216, w: 51, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.2, y: -25.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0006", frame: { x: 2881, y: 2202, w: 53, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.2, y: -26.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0007", frame: { x: 2064, y: 2153, w: 55, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.2, y: -27.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0008", frame: { x: 467, y: 2113, w: 57, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.2, y: -28.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0009", frame: { x: 2560, y: 2107, w: 59, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -29.2, y: -29.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0010", frame: { x: 467, y: 2113, w: 57, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.2, y: -28.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0011", frame: { x: 3051, y: 2155, w: 55, h: 55 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27.2, y: -27.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0012", frame: { x: 2937, y: 2202, w: 53, h: 53 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.2, y: -26.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0013", frame: { x: 319, y: 2207, w: 52, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26.2, y: -25.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0014", frame: { x: 2346, y: 2218, w: 51, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25.2, y: -25.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0015", frame: { x: 3045, y: 2261, w: 49, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24.2, y: -24.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0016", frame: { x: 739, y: 2319, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.2, y: -23.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0017", frame: { x: 3914, y: 2384, w: 45, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.2, y: -22.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0018", frame: { x: 2509, y: 1716, w: 44, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22.2, y: -21.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "Target0019", frame: { x: 1535, y: 2415, w: 43, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21.2, y: -21.1, w: 59, h: 59 }, sourceSize: { w: 59, h: 59 } }, { filename: "TargetGood0000", frame: { x: 1420, y: 1e3, w: 251, h: 187 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -125.4, y: -93.9, w: 251, h: 187 }, sourceSize: { w: 251, h: 187 } }, { filename: "TransformationBG0000", frame: { x: 3643, y: 352, w: 320, h: 380 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 320, h: 380 }, sourceSize: { w: 320, h: 380 } }, { filename: "TransformatorPanelTip0000", frame: { x: 3174, y: 1663, w: 153, h: 89 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -76.8, y: -44.3, w: 153, h: 89 }, sourceSize: { w: 153, h: 89 } }, { filename: "TransformatorPanelTip0001", frame: { x: 708, y: 1671, w: 153, h: 89 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -76.8, y: -44.3, w: 153, h: 89 }, sourceSize: { w: 153, h: 89 } }, { filename: "VideoCamera0000", frame: { x: 4083, y: 29, w: 10, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0001", frame: { x: 4083, y: 29, w: 10, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0002", frame: { x: 4083, y: 29, w: 10, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0003", frame: { x: 4083, y: 29, w: 10, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0004", frame: { x: 3376, y: 1339, w: 19, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0005", frame: { x: 3376, y: 1339, w: 19, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0006", frame: { x: 3376, y: 1339, w: 19, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0007", frame: { x: 4083, y: 29, w: 10, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0008", frame: { x: 4083, y: 29, w: 10, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0009", frame: { x: 4083, y: 29, w: 10, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0010", frame: { x: 4083, y: 29, w: 10, h: 21 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0011", frame: { x: 1275, y: 1503, w: 19, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0012", frame: { x: 1275, y: 1503, w: 19, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCamera0013", frame: { x: 1275, y: 1503, w: 19, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 19, h: 22 }, sourceSize: { w: 19, h: 22 } }, { filename: "VideoCameraLight0000", frame: { x: 1612, y: 2320, w: 69, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 69, h: 32 }, sourceSize: { w: 69, h: 32 } }, { filename: "VideoCameraLight0001", frame: { x: 1156, y: 2321, w: 69, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 69, h: 32 }, sourceSize: { w: 69, h: 32 } }, { filename: "VideoCameraLight0002", frame: { x: 3812, y: 2325, w: 69, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 69, h: 32 }, sourceSize: { w: 69, h: 32 } }, { filename: "VideoCameraLight0003", frame: { x: 1115, y: 2440, w: 55, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 69, h: 32 }, sourceSize: { w: 69, h: 32 } }, { filename: "VideoCameraPassed0000", frame: { x: 3201, y: 724, w: 12, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0001", frame: { x: 3201, y: 724, w: 12, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0002", frame: { x: 3201, y: 724, w: 12, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0003", frame: { x: 3201, y: 724, w: 12, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0004", frame: { x: 3376, y: 1257, w: 21, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0005", frame: { x: 3376, y: 1257, w: 21, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0006", frame: { x: 3376, y: 1257, w: 21, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9.5, y: -10, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0007", frame: { x: 3201, y: 724, w: 12, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0008", frame: { x: 3201, y: 724, w: 12, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0009", frame: { x: 3201, y: 724, w: 12, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0010", frame: { x: 3201, y: 724, w: 12, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.5, y: -9, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0011", frame: { x: 3376, y: 1284, w: 21, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -11.5, y: -10, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0012", frame: { x: 3376, y: 1284, w: 21, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -11.5, y: -10, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraPassed0013", frame: { x: 3376, y: 1284, w: 21, h: 24 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -11.5, y: -10, w: 23, h: 26 }, sourceSize: { w: 23, h: 26 } }, { filename: "VideoCameraView0000", frame: { x: 2312, y: 1019, w: 100, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -50, y: -10, w: 100, h: 20 }, sourceSize: { w: 100, h: 20 } }, { filename: "Walls0000", frame: { x: 3521, y: 719, w: 112, h: 2 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -56, y: -1, w: 112, h: 2 }, sourceSize: { w: 112, h: 2 } }, { filename: "WireSignalEnd0000", frame: { x: 3083, y: 2472, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "WireSignalEnd0001", frame: { x: 1566, y: 2473, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Wires0000", frame: { x: 760, y: 2465, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Wires0001", frame: { x: 803, y: 2465, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Wires0002", frame: { x: 1870, y: 2465, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Wires0003", frame: { x: 2074, y: 2465, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Wires0004", frame: { x: 2117, y: 2465, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Wires0005", frame: { x: 3836, y: 2466, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Wires0006", frame: { x: 1724, y: 2469, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Wires0007", frame: { x: 3149, y: 2469, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "Writing0000", frame: { x: 4075, y: 813, w: 18, h: 19 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8.3, y: -9.3, w: 18, h: 19 }, sourceSize: { w: 18, h: 19 } }, { filename: "Zamok0000", frame: { x: 3376, y: 1311, w: 20, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9, y: -15.4, w: 20, h: 30 }, sourceSize: { w: 20, h: 30 } }, { filename: "Zamok0001", frame: { x: 4075, y: 735, w: 18, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8, y: -12.4, w: 20, h: 30 }, sourceSize: { w: 20, h: 30 } }, { filename: "Zombieman0000", frame: { x: 395, y: 2353, w: 50, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0001", frame: { x: 3424, y: 2404, w: 43, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0002", frame: { x: 3470, y: 2404, w: 43, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0003", frame: { x: 3663, y: 2435, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0004", frame: { x: 2911, y: 2438, w: 41, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0005", frame: { x: 2911, y: 2438, w: 41, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0006", frame: { x: 3097, y: 2294, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -19.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0007", frame: { x: 739, y: 2268, w: 49, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0008", frame: { x: 739, y: 2268, w: 49, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0009", frame: { x: 2545, y: 2223, w: 58, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0010", frame: { x: 3248, y: 2244, w: 58, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0011", frame: { x: 3248, y: 2244, w: 58, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0012", frame: { x: 2998, y: 2475, w: 37, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -19.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0013", frame: { x: 2784, y: 1906, w: 37, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0014", frame: { x: 2034, y: 2450, w: 37, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0015", frame: { x: 4032, y: 2398, w: 44, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0016", frame: { x: 497, y: 2405, w: 44, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0017", frame: { x: 497, y: 2405, w: 44, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0018", frame: { x: 3997, y: 2294, w: 49, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -19.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0019", frame: { x: 1179, y: 2270, w: 49, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0020", frame: { x: 1179, y: 2270, w: 49, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0021", frame: { x: 998, y: 2219, w: 59, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0022", frame: { x: 2175, y: 2226, w: 59, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0023", frame: { x: 2175, y: 2226, w: 59, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0024", frame: { x: 1913, y: 2477, w: 36, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14, y: -19.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0025", frame: { x: 3038, y: 2475, w: 36, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0026", frame: { x: 4057, y: 2239, w: 36, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -14, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0027", frame: { x: 2234, y: 2164, w: 50, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0028", frame: { x: 2234, y: 2164, w: 50, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0029", frame: { x: 2234, y: 2164, w: 50, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0030", frame: { x: 3737, y: 2055, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0031", frame: { x: 3737, y: 2055, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0032", frame: { x: 3737, y: 2055, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0033", frame: { x: 3606, y: 1900, w: 55, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0034", frame: { x: 3606, y: 1900, w: 55, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0035", frame: { x: 3606, y: 1900, w: 55, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0036", frame: { x: 4006, y: 2130, w: 54, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0037", frame: { x: 4006, y: 2130, w: 54, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0038", frame: { x: 4006, y: 2130, w: 54, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0039", frame: { x: 2122, y: 2165, w: 50, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0040", frame: { x: 2122, y: 2165, w: 50, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0041", frame: { x: 2122, y: 2165, w: 50, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0042", frame: { x: 3067, y: 2057, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0043", frame: { x: 3067, y: 2057, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0044", frame: { x: 3067, y: 2057, w: 64, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0045", frame: { x: 3320, y: 1947, w: 55, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0046", frame: { x: 3320, y: 1947, w: 55, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0047", frame: { x: 3320, y: 1947, w: 55, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -27, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0048", frame: { x: 2750, y: 2132, w: 54, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0049", frame: { x: 2750, y: 2132, w: 54, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0050", frame: { x: 2750, y: 2132, w: 54, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0051", frame: { x: 1586, y: 2389, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0052", frame: { x: 1586, y: 2389, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0053", frame: { x: 1586, y: 2389, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0054", frame: { x: 625, y: 2405, w: 43, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0055", frame: { x: 625, y: 2405, w: 43, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0056", frame: { x: 934, y: 2436, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0057", frame: { x: 934, y: 2436, w: 41, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0058", frame: { x: 4007, y: 2445, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0059", frame: { x: 4007, y: 2445, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0060", frame: { x: 1635, y: 2389, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0061", frame: { x: 1635, y: 2389, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0062", frame: { x: 1635, y: 2389, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0063", frame: { x: 1326, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0064", frame: { x: 1326, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0065", frame: { x: 3053, y: 2389, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0066", frame: { x: 3053, y: 2389, w: 46, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0067", frame: { x: 3227, y: 2397, w: 45, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0068", frame: { x: 3227, y: 2397, w: 45, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0069", frame: { x: 3133, y: 2376, w: 43, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0070", frame: { x: 1146, y: 2390, w: 43, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0071", frame: { x: 278, y: 2357, w: 45, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0072", frame: { x: 1277, y: 2349, w: 46, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -19.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0073", frame: { x: 1201, y: 1765, w: 45, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0074", frame: { x: 2090, y: 1902, w: 42, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0075", frame: { x: 557, y: 2108, w: 58, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0076", frame: { x: 3804, y: 2108, w: 57, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0077", frame: { x: 875, y: 2109, w: 57, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -36, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0078", frame: { x: 3769, y: 2407, w: 45, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -19.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0079", frame: { x: 145, y: 2400, w: 45, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0080", frame: { x: 326, y: 2399, w: 44, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -22, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0081", frame: { x: 791, y: 2275, w: 48, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0082", frame: { x: 1105, y: 2307, w: 48, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0083", frame: { x: 1821, y: 2307, w: 48, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0084", frame: { x: 1386, y: 2349, w: 46, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -19.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0085", frame: { x: 3109, y: 2155, w: 45, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0086", frame: { x: 1895, y: 2367, w: 42, h: 48 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0087", frame: { x: 3433, y: 2108, w: 57, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0088", frame: { x: 1663, y: 2110, w: 56, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0089", frame: { x: 758, y: 2112, w: 56, h: 59 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0090", frame: { x: 3102, y: 2427, w: 44, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -19.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0091", frame: { x: 577, y: 2400, w: 45, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -20.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0092", frame: { x: 373, y: 2399, w: 44, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -21, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0093", frame: { x: 2400, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0094", frame: { x: 2400, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0095", frame: { x: 2400, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0096", frame: { x: 2400, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0097", frame: { x: 2458, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0098", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0099", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0100", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0101", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0102", frame: { x: 3381, y: 2351, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0103", frame: { x: 3678, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0104", frame: { x: 3678, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0105", frame: { x: 3678, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0106", frame: { x: 3678, y: 2259, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0107", frame: { x: 1121, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0108", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0109", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0110", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0111", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0112", frame: { x: 2830, y: 2350, w: 49, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -25, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0113", frame: { x: 3946, y: 2239, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0114", frame: { x: 3946, y: 2239, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0115", frame: { x: 1840, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0116", frame: { x: 1840, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0117", frame: { x: 1840, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0118", frame: { x: 1840, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0119", frame: { x: 3602, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0120", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0121", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0122", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0123", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0124", frame: { x: 1684, y: 2364, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0125", frame: { x: 1840, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0126", frame: { x: 1840, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0127", frame: { x: 1840, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0128", frame: { x: 1840, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0129", frame: { x: 3602, y: 2260, w: 55, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0130", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0131", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0132", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0133", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0134", frame: { x: 1435, y: 2363, w: 48, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0135", frame: { x: 3946, y: 2239, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0136", frame: { x: 3946, y: 2239, w: 57, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -21.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0137", frame: { x: 1285, y: 2301, w: 51, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -24, y: -17.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0138", frame: { x: 1636, y: 2272, w: 52, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13, y: -17.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0139", frame: { x: 1940, y: 2398, w: 53, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -11.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0140", frame: { x: 2606, y: 2398, w: 53, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -26, y: -11.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0141", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0142", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0143", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0144", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0145", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0146", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0147", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0148", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0149", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0150", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0151", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0152", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0153", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0154", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0155", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0156", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0157", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0158", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "Zombieman0159", frame: { x: 2860, y: 1535, w: 21, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -7.8, w: 75, h: 60 }, sourceSize: { w: 75, h: 60 } }, { filename: "agressor0000", frame: { x: 1612, y: 2355, w: 69, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 138, h: 31 }, sourceSize: { w: 138, h: 31 } }, { filename: "agressor0001", frame: { x: 3587, y: 2355, w: 69, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 138, h: 31 }, sourceSize: { w: 138, h: 31 } }, { filename: "agressor0002", frame: { x: 935, y: 2356, w: 69, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 138, h: 31 }, sourceSize: { w: 138, h: 31 } }, { filename: "agressor0003", frame: { x: 1156, y: 2356, w: 69, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -69, y: 0, w: 138, h: 31 }, sourceSize: { w: 138, h: 31 } }, { filename: "agressor0004", frame: { x: 3659, y: 2356, w: 69, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -69, y: 0, w: 138, h: 31 }, sourceSize: { w: 138, h: 31 } }, { filename: "agressor0005", frame: { x: 1074, y: 2357, w: 69, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -69, y: 0, w: 138, h: 31 }, sourceSize: { w: 138, h: 31 } }, { filename: "arr_go0000", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: 3, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0001", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: 0, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0002", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -1, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0003", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -2, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0004", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -3, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0005", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -4, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0006", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -5, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0007", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -6, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0008", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -6, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0009", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -6, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0010", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -6, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0011", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -6, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0012", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -6, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0013", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -5, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0014", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -4, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0015", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -3, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0016", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -2, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0017", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: -1, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0018", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: 0, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "arr_go0019", frame: { x: 2e3, y: 1550, w: 29, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.5, y: 1, w: 29, h: 50 }, sourceSize: { w: 29, h: 50 } }, { filename: "but_back0000", frame: { x: 3284, y: 2208, w: 82, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 86, h: 34 }, sourceSize: { w: 86, h: 34 } }, { filename: "but_back0001", frame: { x: 527, y: 2171, w: 86, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2.1, y: -.8, w: 86, h: 34 }, sourceSize: { w: 86, h: 34 } }, { filename: "but_back0002", frame: { x: 3284, y: 2208, w: 82, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 86, h: 34 }, sourceSize: { w: 86, h: 34 } }, { filename: "but_backToGame0000", frame: { x: 3, y: 1835, w: 200, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 210, h: 33 }, sourceSize: { w: 210, h: 33 } }, { filename: "but_backToGame0001", frame: { x: 1840, y: 1830, w: 210, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5, y: -.8, w: 210, h: 33 }, sourceSize: { w: 210, h: 33 } }, { filename: "but_backToGame0002", frame: { x: 3, y: 1835, w: 200, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 210, h: 33 }, sourceSize: { w: 210, h: 33 } }, { filename: "but_clearProgress0000", frame: { x: 1381, y: 1829, w: 229, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.7, y: -.8, w: 240, h: 33 }, sourceSize: { w: 240, h: 33 } }, { filename: "but_clearProgress0001", frame: { x: 3848, y: 1769, w: 240, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -5.7, y: -.8, w: 240, h: 33 }, sourceSize: { w: 240, h: 33 } }, { filename: "but_continue0000", frame: { x: 1684, y: 1972, w: 139, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.5, y: -.8, w: 145, h: 33 }, sourceSize: { w: 145, h: 33 } }, { filename: "but_continue0001", frame: { x: 2090, y: 1957, w: 145, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3.5, y: -.8, w: 145, h: 33 }, sourceSize: { w: 145, h: 33 } }, { filename: "but_m0000", frame: { x: 1788, y: 2007, w: 33, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -16, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_m0001", frame: { x: 1523, y: 2461, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_m0002", frame: { x: 3216, y: 2148, w: 33, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -16, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_m0003", frame: { x: 2479, y: 2463, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_p0000", frame: { x: 639, y: 2220, w: 33, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -16, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_p0001", frame: { x: 393, y: 2464, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_r0000", frame: { x: 2947, y: 2494, w: 33, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -16, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_r0001", frame: { x: 717, y: 2464, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_replay0000", frame: { x: 3731, y: 1368, w: 111, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.8, y: -.8, w: 116, h: 33 }, sourceSize: { w: 116, h: 33 } }, { filename: "but_replay0001", frame: { x: 693, y: 2046, w: 116, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2.8, y: -.8, w: 116, h: 33 }, sourceSize: { w: 116, h: 33 } }, { filename: "but_s0000", frame: { x: 3627, y: 2503, w: 33, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -16, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_s0001", frame: { x: 1466, y: 2464, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_s0002", frame: { x: 1509, y: 2504, w: 33, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -16, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "but_s0003", frame: { x: 2263, y: 2464, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "cameraMayak0000", frame: { x: 4083, y: 3, w: 10, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.4, y: -1.9, w: 10, h: 23 }, sourceSize: { w: 10, h: 23 } }, { filename: "cbtnLevelDig0000", frame: { x: 1291, y: 2134, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0001", frame: { x: 2303, y: 2042, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.1, y: -31, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0002", frame: { x: 1350, y: 2139, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0003", frame: { x: 2807, y: 2140, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0004", frame: { x: 2368, y: 2042, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.1, y: -31, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0005", frame: { x: 2866, y: 2140, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0006", frame: { x: 128, y: 2142, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0007", frame: { x: 2433, y: 2042, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.1, y: -31, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0008", frame: { x: 682, y: 2145, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0009", frame: { x: 256, y: 2148, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0010", frame: { x: 2498, y: 2042, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.1, y: -31, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0011", frame: { x: 315, y: 2148, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0012", frame: { x: 1409, y: 2148, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0013", frame: { x: 2563, y: 2042, w: 62, h: 62 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -31.1, y: -31, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnLevelDig0014", frame: { x: 3157, y: 2148, w: 56, h: 56 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -28.1, y: -28, w: 62, h: 62 }, sourceSize: { w: 62, h: 62 } }, { filename: "cbtnMainMenuLevels0000", frame: { x: 532, y: 1985, w: 147, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -1, w: 155, h: 31 }, sourceSize: { w: 155, h: 31 } }, { filename: "cbtnMainMenuLevels0001", frame: { x: 532, y: 1951, w: 155, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.1, y: -1, w: 155, h: 31 }, sourceSize: { w: 155, h: 31 } }, { filename: "cbtnSubmit0000", frame: { x: 3763, y: 2170, w: 98, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.7, y: -.8, w: 103, h: 31 }, sourceSize: { w: 103, h: 31 } }, { filename: "cbtnSubmit0001", frame: { x: 3051, y: 2121, w: 103, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2.7, y: -.8, w: 103, h: 31 }, sourceSize: { w: 103, h: 31 } }, { filename: "cmcArrow0000", frame: { x: 1922, y: 1689, w: 70, h: 73 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35, y: -36.5, w: 70, h: 73 }, sourceSize: { w: 70, h: 73 } }, { filename: "cmcBarClock0000", frame: { x: 780, y: 2508, w: 33, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3.9, y: -.9, w: 33, h: 30 }, sourceSize: { w: 33, h: 30 } }, { filename: "cmcBarMoney0000", frame: { x: 646, y: 1345, w: 35, h: 25 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 35, h: 25 }, sourceSize: { w: 35, h: 25 } }, { filename: "cmcCarta0000", frame: { x: 3, y: 3, w: 640, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 520 }, sourceSize: { w: 640, h: 520 } }, { filename: "cmcClose0000", frame: { x: 3094, y: 1909, w: 70, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -35, y: -35, w: 70, h: 70 }, sourceSize: { w: 70, h: 70 } }, { filename: "cmcCodeBG0000", frame: { x: 3218, y: 410, w: 300, h: 380 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 300, h: 380 }, sourceSize: { w: 300, h: 380 } }, { filename: "cmcCompDigs0000", frame: { x: 4075, y: 835, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0001", frame: { x: 4075, y: 856, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0002", frame: { x: 4075, y: 877, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0003", frame: { x: 4075, y: 898, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0004", frame: { x: 4075, y: 919, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0005", frame: { x: 4075, y: 940, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0006", frame: { x: 4075, y: 961, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0007", frame: { x: 4075, y: 982, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0008", frame: { x: 4075, y: 1003, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0009", frame: { x: 4075, y: 1024, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcCompDigs0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 18 }, sourceSize: { w: 18, h: 18 } }, { filename: "cmcDialog0000", frame: { x: 2188, y: 763, w: 263, h: 253 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -131.6, y: -126.8, w: 263, h: 253 }, sourceSize: { w: 263, h: 253 } }, { filename: "cmcDoYouReally0000", frame: { x: 3731, y: 1403, w: 232, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 232, h: 115 }, sourceSize: { w: 232, h: 115 } }, { filename: "cmcDoorCodeDLG0000", frame: { x: 3827, y: 735, w: 245, h: 281 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -3.9, w: 245, h: 281 }, sourceSize: { w: 245, h: 281 } }, { filename: "cmcDoorCodeDig0000", frame: { x: 1009, y: 2090, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0001", frame: { x: 3562, y: 2118, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0002", frame: { x: 497, y: 2369, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0003", frame: { x: 3102, y: 2389, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0004", frame: { x: 465, y: 2417, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0005", frame: { x: 1305, y: 2450, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0006", frame: { x: 274, y: 2452, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0007", frame: { x: 1083, y: 2513, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0008", frame: { x: 3920, y: 2514, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0009", frame: { x: 3951, y: 2514, w: 28, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDoorCodeDig0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 28, h: 31 }, sourceSize: { w: 28, h: 31 } }, { filename: "cmcDragGadgets0000", frame: { x: 2994, y: 764, w: 170, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -103, y: 21.8, w: 170, h: 23 }, sourceSize: { w: 170, h: 23 } }, { filename: "cmcGrayAlphaRect0000", frame: { x: 368, y: 1773, w: 66, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 66, h: 54 }, sourceSize: { w: 66, h: 54 } }, { filename: "cmcLevelNumber0000", frame: { x: 305, y: 2446, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0001", frame: { x: 349, y: 2446, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0002", frame: { x: 544, y: 2446, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0003", frame: { x: 978, y: 2447, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0004", frame: { x: 1173, y: 2447, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0005", frame: { x: 1217, y: 2447, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0006", frame: { x: 2176, y: 2447, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0007", frame: { x: 1022, y: 2448, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0008", frame: { x: 3950, y: 2449, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0009", frame: { x: 187, y: 2450, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelNumber0010", frame: { x: 1261, y: 2450, w: 41, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20.5, y: -20.5, w: 41, h: 41 }, sourceSize: { w: 41, h: 41 } }, { filename: "cmcLevelStars0000", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 80, h: 49 }, sourceSize: { w: 80, h: 49 } }, { filename: "cmcLevelStars0001", frame: { x: 265, y: 2036, w: 80, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 80, h: 49 }, sourceSize: { w: 80, h: 49 } }, { filename: "cmcLevelStars0002", frame: { x: 1457, y: 2036, w: 80, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 80, h: 49 }, sourceSize: { w: 80, h: 49 } }, { filename: "cmcLevelStars0003", frame: { x: 348, y: 2037, w: 80, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 80, h: 49 }, sourceSize: { w: 80, h: 49 } }, { filename: "cmcLevelStars0004", frame: { x: 3387, y: 2037, w: 80, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 80, h: 49 }, sourceSize: { w: 80, h: 49 } }, { filename: "cmcLevelStars0005", frame: { x: 2066, y: 2042, w: 80, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 80, h: 49 }, sourceSize: { w: 80, h: 49 } }, { filename: "cmcLevelStars0006", frame: { x: 2149, y: 2042, w: 80, h: 49 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 80, h: 49 }, sourceSize: { w: 80, h: 49 } }, { filename: "cmcLevelWinBG0000", frame: { x: 646, y: 3, w: 640, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 520 }, sourceSize: { w: 640, h: 520 } }, { filename: "cmcLossBG0000", frame: { x: 1289, y: 3, w: 640, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 520 }, sourceSize: { w: 640, h: 520 } }, { filename: "cmcMenuDigit0000", frame: { x: 2726, y: 2481, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0001", frame: { x: 4065, y: 2171, w: 25, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0002", frame: { x: 2e3, y: 1636, w: 32, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0003", frame: { x: 2611, y: 1835, w: 31, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0004", frame: { x: 1592, y: 1649, w: 32, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0005", frame: { x: 2205, y: 1993, w: 30, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0006", frame: { x: 2571, y: 2270, w: 32, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0007", frame: { x: 2406, y: 2481, w: 34, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0008", frame: { x: 2e3, y: 1594, w: 30, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0009", frame: { x: 508, y: 2451, w: 33, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMenuDigit0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "cmcMiniGameDLG0000", frame: { x: 3643, y: 3, w: 392, h: 346 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 134, y: 76, w: 392, h: 346 }, sourceSize: { w: 392, h: 346 } }, { filename: "cmcPauseBG0000", frame: { x: 1492, y: 2109, w: 64, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 64, h: 52 }, sourceSize: { w: 64, h: 52 } }, { filename: "cmcPauseDLG0000", frame: { x: 3, y: 526, w: 346, h: 260 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 346, h: 260 }, sourceSize: { w: 346, h: 260 } }, { filename: "cmcPresenter0000", frame: { x: 2693, y: 763, w: 298, h: 216 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -117.8, y: -77.8, w: 298, h: 216 }, sourceSize: { w: 298, h: 216 } }, { filename: "cmcPresenterHead0000", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0001", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0002", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0003", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0004", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0005", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0006", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0007", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0008", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0009", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0010", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0011", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0012", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0013", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0014", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0015", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0016", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: 1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0017", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: 1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0018", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: 1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0019", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: 1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0020", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: 1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0021", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: 1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0022", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: 1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0023", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0024", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0025", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0026", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0027", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0028", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0029", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: .5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0030", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: .5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0031", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: .5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0032", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: .5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0033", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0034", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0035", frame: { x: 256, y: 789, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.2, y: -1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0036", frame: { x: 256, y: 789, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.2, y: -1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0037", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0038", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0039", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0040", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0041", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0042", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0043", frame: { x: 256, y: 789, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0044", frame: { x: 256, y: 789, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0045", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0046", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0047", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0048", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0049", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0050", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0051", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0052", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0053", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0054", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0055", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: .5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0056", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: .5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0057", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: .5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0058", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: .5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0059", frame: { x: 3129, y: 1054, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0060", frame: { x: 3129, y: 1054, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0061", frame: { x: 256, y: 789, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.2, y: -1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0062", frame: { x: 256, y: 789, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.2, y: -1.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0063", frame: { x: 3129, y: 1054, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0064", frame: { x: 3129, y: 1054, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0065", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0066", frame: { x: 3106, y: 526, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0067", frame: { x: 3129, y: 1054, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0068", frame: { x: 3129, y: 1054, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0069", frame: { x: 256, y: 789, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0070", frame: { x: 256, y: 789, w: 92, h: 115 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0071", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0072", frame: { x: 3106, y: 645, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0073", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcPresenterHead0074", frame: { x: 3521, y: 510, w: 92, h: 116 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 7.2, y: -.5, w: 93, h: 119 }, sourceSize: { w: 93, h: 119 } }, { filename: "cmcScoreChannel0000", frame: { x: 3866, y: 1019, w: 206, h: 184 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 12, y: 3, w: 206, h: 184 }, sourceSize: { w: 206, h: 184 } }, { filename: "cmcScoreDig0000", frame: { x: 4067, y: 1674, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0001", frame: { x: 4067, y: 1715, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0002", frame: { x: 443, y: 1899, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0003", frame: { x: 560, y: 1910, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0004", frame: { x: 2035, y: 2050, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0005", frame: { x: 4063, y: 2130, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0006", frame: { x: 3459, y: 2171, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0007", frame: { x: 1940, y: 2306, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0008", frame: { x: 2345, y: 2371, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0009", frame: { x: 544, y: 2405, w: 26, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcScoreDig0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 26, h: 38 }, sourceSize: { w: 26, h: 38 } }, { filename: "cmcSellerText0000", frame: { x: 139, y: 1768, w: 136, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23.6, y: 96.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0001", frame: { x: 1521, y: 1768, w: 136, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 19.6, y: 100.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0002", frame: { x: 3070, y: 2024, w: 136, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 18.6, y: 120.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0003", frame: { x: 3259, y: 1769, w: 136, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23.6, y: 102.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0004", frame: { x: 439, y: 1770, w: 136, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 15.6, y: 101.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0005", frame: { x: 971, y: 1657, w: 136, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 14.6, y: 71.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0006", frame: { x: 1110, y: 1661, w: 136, h: 101 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 14.6, y: 72.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0007", frame: { x: 1330, y: 1526, w: 136, h: 127 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 13.6, y: 73.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0008", frame: { x: 3869, y: 1521, w: 136, h: 150 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 17.6, y: 66.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0009", frame: { x: 1034, y: 1503, w: 136, h: 151 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 16.6, y: 63.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0010", frame: { x: 2066, y: 1993, w: 136, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23.6, y: 120.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcSellerText0011", frame: { x: 1927, y: 1770, w: 136, h: 57 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 23.6, y: 106.5, w: 146, h: 153 }, sourceSize: { w: 146, h: 153 } }, { filename: "cmcShopBG0000", frame: { x: 1932, y: 3, w: 640, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 520 }, sourceSize: { w: 640, h: 520 } }, { filename: "cmcShopInst0000", frame: { x: 1592, y: 1697, w: 134, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 134, h: 68 }, sourceSize: { w: 134, h: 68 } }, { filename: "cmcShopInst0001", frame: { x: 2986, y: 1702, w: 134, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 134, h: 68 }, sourceSize: { w: 134, h: 68 } }, { filename: "cmcShopInst0002", frame: { x: 2372, y: 1716, w: 134, h: 68 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 134, h: 68 }, sourceSize: { w: 134, h: 68 } }, { filename: "cmcShopItem10000", frame: { x: 65, y: 2093, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem10001", frame: { x: 3167, y: 1912, w: 70, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem10002", frame: { x: 1861, y: 2095, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem10003", frame: { x: 768, y: 1853, w: 84, h: 74 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem20000", frame: { x: 3884, y: 2095, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem20001", frame: { x: 3240, y: 1912, w: 70, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem20002", frame: { x: 3662, y: 2096, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem20003", frame: { x: 1092, y: 1855, w: 84, h: 74 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem30000", frame: { x: 1228, y: 2097, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem30001", frame: { x: 942, y: 1917, w: 70, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem30002", frame: { x: 193, y: 2098, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem30003", frame: { x: 2923, y: 1863, w: 84, h: 74 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem40000", frame: { x: 1105, y: 2098, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem40001", frame: { x: 3751, y: 1917, w: 70, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem40002", frame: { x: 2925, y: 2098, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem40003", frame: { x: 473, y: 1865, w: 84, h: 74 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem50000", frame: { x: 2988, y: 2098, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem50001", frame: { x: 3999, y: 1922, w: 70, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem50002", frame: { x: 2171, y: 2102, w: 60, h: 60 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcShopItem50003", frame: { x: 855, y: 1865, w: 84, h: 74 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -3, w: 84, h: 74 }, sourceSize: { w: 84, h: 74 } }, { filename: "cmcTimerDigs0000", frame: { x: 4075, y: 1045, w: 18, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0001", frame: { x: 2438, y: 1019, w: 13, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0002", frame: { x: 2884, y: 1535, w: 17, h: 19 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0003", frame: { x: 2967, y: 1745, w: 16, h: 19 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0004", frame: { x: 2372, y: 1695, w: 16, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0005", frame: { x: 3378, y: 1830, w: 16, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0006", frame: { x: 1179, y: 1855, w: 16, h: 18 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0007", frame: { x: 4075, y: 791, w: 18, h: 19 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0008", frame: { x: 155, y: 1554, w: 16, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0009", frame: { x: 2887, y: 1433, w: 17, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDigs0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 18, h: 20 }, sourceSize: { w: 18, h: 20 } }, { filename: "cmcTimerDots0000", frame: { x: 4083, y: 53, w: 6, h: 12 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 6, h: 12 }, sourceSize: { w: 6, h: 12 } }, { filename: "cmcWinGameBG0000", frame: { x: 2575, y: 3, w: 640, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 520 }, sourceSize: { w: 640, h: 520 } }, { filename: "compDLG0000", frame: { x: 3218, y: 3, w: 422, h: 404 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 422, h: 404 }, sourceSize: { w: 422, h: 404 } }, { filename: "ctxtMenuScore0000", frame: { x: 1297, y: 2034, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0001", frame: { x: 613, y: 2265, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0002", frame: { x: 1872, y: 2307, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0003", frame: { x: 2840, y: 2444, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0004", frame: { x: 2568, y: 2445, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0005", frame: { x: 906, y: 2452, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0006", frame: { x: 2658, y: 2500, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0007", frame: { x: 3328, y: 2503, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0008", frame: { x: 410, y: 2507, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0009", frame: { x: 3077, y: 2515, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtMenuScore0010", frame: { x: 3663, y: 2515, w: 23, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -3, w: 23, h: 28 }, sourceSize: { w: 23, h: 28 } }, { filename: "ctxtPismo0000", frame: { x: 4065, y: 1403, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0001", frame: { x: 1848, y: 1408, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0002", frame: { x: 4065, y: 1448, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0003", frame: { x: 1848, y: 1453, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0004", frame: { x: 1848, y: 1498, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0005", frame: { x: 3576, y: 1676, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0006", frame: { x: 560, y: 1865, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0007", frame: { x: 4069, y: 1995, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0008", frame: { x: 527, y: 2113, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0009", frame: { x: 1633, y: 2119, w: 24, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "ctxtPismo0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 24, h: 42 }, sourceSize: { w: 24, h: 42 } }, { filename: "dedMayak0000", frame: { x: 3966, y: 352, w: 105, h: 118 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -45.3, y: -62.6, w: 105, h: 118 }, sourceSize: { w: 105, h: 118 } }, { filename: "digits0000", frame: { x: 3278, y: 2024, w: 39, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0001", frame: { x: 3201, y: 614, w: 8, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 31, y: 3, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0002", frame: { x: 2235, y: 2285, w: 39, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0003", frame: { x: 2684, y: 2352, w: 35, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0004", frame: { x: 56, y: 2397, w: 39, h: 51 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 3, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0005", frame: { x: 4049, y: 2294, w: 39, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0006", frame: { x: 110, y: 2305, w: 39, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0007", frame: { x: 1996, y: 2398, w: 35, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0008", frame: { x: 1898, y: 2306, w: 39, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0009", frame: { x: 2396, y: 2306, w: 39, h: 58 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "digits0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 39, h: 58 }, sourceSize: { w: 39, h: 58 } }, { filename: "duga0000", frame: { x: 2474, y: 1042, w: 211, h: 172 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 211, h: 172 }, sourceSize: { w: 211, h: 172 } }, { filename: "duga0001", frame: { x: 1292, y: 1190, w: 207, h: 168 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 211, h: 172 }, sourceSize: { w: 211, h: 172 } }, { filename: "exit_yadro0000", frame: { x: 2088, y: 1e3, w: 16, h: 16 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -8, y: -8, w: 16, h: 16 }, sourceSize: { w: 16, h: 16 } }, { filename: "guiBubble0000", frame: { x: 3400, y: 1035, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0001", frame: { x: 971, y: 1532, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0002", frame: { x: 486, y: 1544, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0003", frame: { x: 4028, y: 1805, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0004", frame: { x: 206, y: 1829, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0005", frame: { x: 3319, y: 1830, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0006", frame: { x: 1033, y: 1833, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0007", frame: { x: 591, y: 1834, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0008", frame: { x: 650, y: 1834, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiBubble0009", frame: { x: 709, y: 1834, w: 56, h: 114 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 56, h: 114 }, sourceSize: { w: 56, h: 114 } }, { filename: "guiCross0000", frame: { x: 89, y: 2465, w: 40, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -20, y: -20, w: 40, h: 40 }, sourceSize: { w: 40, h: 40 } }, { filename: "heroZ0000", frame: { x: 3065, y: 1386, w: 36, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -18, y: -18, w: 36, h: 36 }, sourceSize: { w: 36, h: 36 } }, { filename: "holeLine0000", frame: { x: 2469, y: 1371, w: 208, h: 4 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -104, y: -2, w: 208, h: 4 }, sourceSize: { w: 208, h: 4 } }, { filename: "info0000", frame: { x: 349, y: 1340, w: 116, h: 67 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 116, h: 67 }, sourceSize: { w: 116, h: 67 } }, { filename: "infoItemButton0000", frame: { x: 3126, y: 2512, w: 30, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -15, w: 30, h: 30 }, sourceSize: { w: 30, h: 30 } }, { filename: "infoItemButton0001", frame: { x: 3159, y: 2512, w: 30, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -15, w: 30, h: 30 }, sourceSize: { w: 30, h: 30 } }, { filename: "infoItemButton0002", frame: { x: 1050, y: 2513, w: 30, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -15, w: 30, h: 30 }, sourceSize: { w: 30, h: 30 } }, { filename: "infoItemButton0003", frame: { x: 3988, y: 2513, w: 30, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -15, w: 30, h: 30 }, sourceSize: { w: 30, h: 30 } }, { filename: "infoItemButton0004", frame: { x: 4021, y: 2513, w: 30, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -15, w: 30, h: 30 }, sourceSize: { w: 30, h: 30 } }, { filename: "infoItemButton0005", frame: { x: 4054, y: 2513, w: 30, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -15, w: 30, h: 30 }, sourceSize: { w: 30, h: 30 } }, { filename: "levelStars0000", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.8, y: -.2, w: 85, h: 52 }, sourceSize: { w: 85, h: 52 } }, { filename: "levelStars0001", frame: { x: 3104, y: 1233, w: 20, h: 19 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 20.2, y: 9.8, w: 85, h: 52 }, sourceSize: { w: 85, h: 52 } }, { filename: "levelStars0002", frame: { x: 2840, y: 2481, w: 36, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 4.2, y: 9.8, w: 85, h: 52 }, sourceSize: { w: 85, h: 52 } }, { filename: "levelStars0003", frame: { x: 3201, y: 2340, w: 58, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17.8, y: 9.8, w: 85, h: 52 }, sourceSize: { w: 85, h: 52 } }, { filename: "levelStars0004", frame: { x: 2925, y: 2161, w: 78, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -37.8, y: 9.8, w: 85, h: 52 }, sourceSize: { w: 85, h: 52 } }, { filename: "levelStars0005", frame: { x: 1501, y: 1981, w: 85, h: 52 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -44.8, y: -4.2, w: 85, h: 52 }, sourceSize: { w: 85, h: 52 } }, { filename: "levelStars0006", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.8, y: -.2, w: 85, h: 52 }, sourceSize: { w: 85, h: 52 } }, { filename: "lights0000", frame: { x: 1330, y: 1656, w: 160, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -80, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0001", frame: { x: 155, y: 1678, w: 143, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -71, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0002", frame: { x: 3966, y: 573, w: 127, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -63, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0003", frame: { x: 3521, y: 629, w: 113, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -56, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0004", frame: { x: 1099, y: 1765, w: 99, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -49, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0005", frame: { x: 769, y: 1763, w: 89, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0006", frame: { x: 278, y: 1773, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0007", frame: { x: 2967, y: 1773, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0008", frame: { x: 861, y: 1775, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0009", frame: { x: 2066, y: 1779, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0010", frame: { x: 2156, y: 1779, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0011", frame: { x: 3398, y: 1779, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0012", frame: { x: 2246, y: 1785, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0013", frame: { x: 2336, y: 1787, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0014", frame: { x: 2336, y: 1787, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0015", frame: { x: 2336, y: 1787, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0016", frame: { x: 2336, y: 1787, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0017", frame: { x: 3848, y: 1805, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0018", frame: { x: 3938, y: 1805, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0019", frame: { x: 1660, y: 1811, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0020", frame: { x: 1750, y: 1811, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0021", frame: { x: 2645, y: 1816, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0022", frame: { x: 2735, y: 1816, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0023", frame: { x: 1201, y: 1817, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0024", frame: { x: 1291, y: 1817, w: 87, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -41, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0025", frame: { x: 256, y: 907, w: 93, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -46, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0026", frame: { x: 2264, y: 1695, w: 105, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -52, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0027", frame: { x: 349, y: 1250, w: 121, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -60, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0028", frame: { x: 301, y: 1683, w: 135, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -67, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lights0029", frame: { x: 3764, y: 1674, w: 153, h: 87 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -76, y: -36.9, w: 160, h: 87 }, sourceSize: { w: 160, h: 87 } }, { filename: "lockCode0000", frame: { x: 1252, y: 2216, w: 26, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -12.2, y: -12.2, w: 26, h: 26 }, sourceSize: { w: 26, h: 26 } }, { filename: "lock_click0000", frame: { x: 3174, y: 1583, w: 214, h: 77 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 215, h: 77 }, sourceSize: { w: 215, h: 77 } }, { filename: "lock_click0001", frame: { x: 1785, y: 1689, w: 134, h: 74 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 81, y: 2, w: 215, h: 77 }, sourceSize: { w: 215, h: 77 } }, { filename: "lock_click0002", frame: { x: 2556, y: 1617, w: 210, h: 73 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 215, h: 77 }, sourceSize: { w: 215, h: 77 } }, { filename: "lock_click0003", frame: { x: 2834, y: 1745, w: 130, h: 70 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 81, y: 2, w: 215, h: 77 }, sourceSize: { w: 215, h: 77 } }, { filename: "miniBarriers0000", frame: { x: 4038, y: 329, w: 20, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -10, w: 20, h: 20 }, sourceSize: { w: 20, h: 20 } }, { filename: "miniHero0000", frame: { x: 2107, y: 1e3, w: 20, h: 10 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -5, w: 20, h: 10 }, sourceSize: { w: 20, h: 10 } }, { filename: "miniHero0001", frame: { x: 2130, y: 1e3, w: 20, h: 10 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -5, w: 20, h: 10 }, sourceSize: { w: 20, h: 10 } }, { filename: "miniHero0002", frame: { x: 2153, y: 1e3, w: 20, h: 10 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -5, w: 20, h: 10 }, sourceSize: { w: 20, h: 10 } }, { filename: "miniHero0003", frame: { x: 3400, y: 1235, w: 20, h: 10 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -5, w: 20, h: 10 }, sourceSize: { w: 20, h: 10 } }, { filename: "miniHeroRed0000", frame: { x: 3423, y: 1235, w: 20, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -4.9, w: 20, h: 9 }, sourceSize: { w: 20, h: 9 } }, { filename: "miniHeroRed0001", frame: { x: 3446, y: 1235, w: 20, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -4.9, w: 20, h: 9 }, sourceSize: { w: 20, h: 9 } }, { filename: "miniHeroRed0002", frame: { x: 2261, y: 1267, w: 20, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -4.9, w: 20, h: 9 }, sourceSize: { w: 20, h: 9 } }, { filename: "miniHeroRed0003", frame: { x: 2284, y: 1267, w: 20, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -4.9, w: 20, h: 9 }, sourceSize: { w: 20, h: 9 } }, { filename: "miniHeroZmey0000", frame: { x: 1475, y: 1361, w: 20, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -4.9, w: 20, h: 9 }, sourceSize: { w: 20, h: 9 } }, { filename: "miniHeroZmey0001", frame: { x: 4065, y: 1493, w: 20, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -4.9, w: 20, h: 9 }, sourceSize: { w: 20, h: 9 } }, { filename: "miniHeroZmey0002", frame: { x: 3966, y: 1508, w: 20, h: 9 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -10, y: -4.9, w: 20, h: 9 }, sourceSize: { w: 20, h: 9 } }, { filename: "miniTaget0000", frame: { x: 4075, y: 765, w: 18, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -9, y: -11.7, w: 22, h: 26 }, sourceSize: { w: 22, h: 26 } }, { filename: "miniTaget0001", frame: { x: 3497, y: 933, w: 20, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -7, y: -14.7, w: 22, h: 26 }, sourceSize: { w: 22, h: 26 } }, { filename: "pismoContent0000", frame: { x: 1729, y: 1766, w: 195, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 207, y: 171.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0001", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: .3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0002", frame: { x: 2994, y: 793, w: 229, h: 258 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 196, y: 146.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0003", frame: { x: 3475, y: 972, w: 214, h: 274 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 201, y: 148.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0004", frame: { x: 691, y: 1220, w: 213, h: 150 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 205, y: 160.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0005", frame: { x: 2088, y: 1019, w: 221, h: 179 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 205, y: 149.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0006", frame: { x: 473, y: 1e3, w: 215, h: 223 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 203, y: 152.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0007", frame: { x: 256, y: 1e3, w: 214, h: 247 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 205, y: 154.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0008", frame: { x: 691, y: 1e3, w: 218, h: 217 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 213, y: 159.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0009", frame: { x: 1085, y: 1368, w: 213, h: 132 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 204, y: 161.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0010", frame: { x: 2474, y: 1217, w: 213, h: 151 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 204, y: 154.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "pismoContent0011", frame: { x: 1475, y: 1380, w: 213, h: 126 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 203, y: 161.3, w: 235, h: 276 }, sourceSize: { w: 235, h: 276 } }, { filename: "ruka0000", frame: { x: 3459, y: 1035, w: 12, h: 23 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 12, h: 23 }, sourceSize: { w: 12, h: 23 } }, { filename: "seller0000", frame: { x: 864, y: 1671, w: 96, h: 101 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0001", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0002", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0003", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0004", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0005", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0006", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0007", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0008", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0009", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0010", frame: { x: 708, y: 1538, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0011", frame: { x: 708, y: 1538, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0012", frame: { x: 708, y: 1538, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0013", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0014", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0015", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0016", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0017", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0018", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0019", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0020", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0021", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0022", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0023", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0024", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0025", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0026", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0027", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0028", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0029", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0030", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0031", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0032", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0033", frame: { x: 3966, y: 1403, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0034", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0035", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0036", frame: { x: 3277, y: 1257, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0037", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0038", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0039", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0040", frame: { x: 3477, y: 1676, w: 96, h: 100 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0041", frame: { x: 3477, y: 1676, w: 96, h: 100 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0042", frame: { x: 3477, y: 1676, w: 96, h: 100 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0043", frame: { x: 708, y: 1538, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0044", frame: { x: 708, y: 1538, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0045", frame: { x: 708, y: 1538, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0046", frame: { x: 708, y: 1538, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "seller0047", frame: { x: 1493, y: 1649, w: 96, h: 102 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.5, w: 96, h: 103 }, sourceSize: { w: 96, h: 103 } }, { filename: "sparks0000", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.8, y: 0, w: 51, h: 45 }, sourceSize: { w: 51, h: 45 } }, { filename: "sparks0001", frame: { x: 2639, y: 2459, w: 43, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.8, y: 0, w: 51, h: 45 }, sourceSize: { w: 51, h: 45 } }, { filename: "sparks0002", frame: { x: 2639, y: 2459, w: 43, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.8, y: 0, w: 51, h: 45 }, sourceSize: { w: 51, h: 45 } }, { filename: "sparks0003", frame: { x: 1231, y: 2301, w: 51, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.8, y: -1, w: 51, h: 45 }, sourceSize: { w: 51, h: 45 } }, { filename: "sparks0004", frame: { x: 1231, y: 2301, w: 51, h: 45 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -6.8, y: -1, w: 51, h: 45 }, sourceSize: { w: 51, h: 45 } }, { filename: "sparks0005", frame: { x: 2694, y: 2049, w: 30, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 11.2, y: 4, w: 51, h: 45 }, sourceSize: { w: 51, h: 45 } }, { filename: "sparks0006", frame: { x: 2694, y: 2049, w: 30, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 11.2, y: 4, w: 51, h: 45 }, sourceSize: { w: 51, h: 45 } }, { filename: "sparks0007", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.8, y: 0, w: 51, h: 45 }, sourceSize: { w: 51, h: 45 } }, { filename: "tipsBalloon0000", frame: { x: 2312, y: 1042, w: 159, h: 235 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 159, h: 235 }, sourceSize: { w: 159, h: 235 } }, { filename: "topBarBg0000", frame: { x: 2261, y: 1386, w: 644, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 644, h: 44 }, sourceSize: { w: 644, h: 44 } }, { filename: "tvStar0000", frame: { x: 439, y: 1741, w: 28, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.7, y: -.5, w: 32, h: 31 }, sourceSize: { w: 32, h: 31 } }, { filename: "tvStar0001", frame: { x: 129, y: 1981, w: 28, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.7, y: -.5, w: 32, h: 31 }, sourceSize: { w: 32, h: 31 } }, { filename: "tvStar0002", frame: { x: 504, y: 2514, w: 30, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1.7, y: -1.5, w: 32, h: 31 }, sourceSize: { w: 32, h: 31 } }, { filename: "tvStar0003", frame: { x: 2095, y: 2368, w: 32, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2.7, y: -2.6, w: 32, h: 31 }, sourceSize: { w: 32, h: 31 } }, { filename: "tvStar0004", frame: { x: 71, y: 2508, w: 32, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2.7, y: -2.6, w: 32, h: 31 }, sourceSize: { w: 32, h: 31 } }, { filename: "tvStar0005", frame: { x: 537, y: 2514, w: 30, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1.7, y: -1.5, w: 32, h: 31 }, sourceSize: { w: 32, h: 31 } }, { filename: "tvStar0006", frame: { x: 2727, y: 1988, w: 28, h: 27 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.7, y: -.5, w: 32, h: 31 }, sourceSize: { w: 32, h: 31 } }, { filename: "tvStar0007", frame: { x: 758, y: 2082, w: 28, h: 26 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.7, y: -.5, w: 32, h: 31 }, sourceSize: { w: 32, h: 31 } }, { filename: "tv_stripes0000", frame: { x: 352, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0001", frame: { x: 658, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0002", frame: { x: 964, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0003", frame: { x: 1270, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0004", frame: { x: 1576, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0005", frame: { x: 1882, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0006", frame: { x: 2188, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0007", frame: { x: 2494, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0008", frame: { x: 2800, y: 526, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0009", frame: { x: 3521, y: 735, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0010", frame: { x: 352, y: 763, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0011", frame: { x: 658, y: 763, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0012", frame: { x: 964, y: 763, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0013", frame: { x: 1270, y: 763, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0014", frame: { x: 1576, y: 763, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "tv_stripes0015", frame: { x: 1882, y: 763, w: 303, h: 234 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 303, h: 234 }, sourceSize: { w: 303, h: 234 } }, { filename: "txtMoney0000", frame: { x: 1502, y: 1190, w: 160, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.2, w: 160, h: 34 }, sourceSize: { w: 160, h: 34 } }, { filename: "txtPause0000", frame: { x: 3692, y: 972, w: 121, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 121, h: 41 }, sourceSize: { w: 121, h: 41 } }, { filename: "txtScore0000", frame: { x: 3010, y: 1872, w: 160, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.2, w: 160, h: 34 }, sourceSize: { w: 160, h: 34 } }, { filename: "wireBlue0000", frame: { x: 3, y: 2440, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 40, h: 44 }, sourceSize: { w: 40, h: 44 } }, { filename: "wireBlue0001", frame: { x: 2797, y: 2444, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 40, h: 44 }, sourceSize: { w: 40, h: 44 } }, { filename: "wireGreen0000", frame: { x: 3201, y: 2444, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 40, h: 44 }, sourceSize: { w: 40, h: 44 } }, { filename: "wireGreen0001", frame: { x: 1337, y: 2445, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 40, h: 44 }, sourceSize: { w: 40, h: 44 } }, { filename: "wireOrange0000", frame: { x: 1380, y: 2445, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 40, h: 44 }, sourceSize: { w: 40, h: 44 } }, { filename: "wireOrange0001", frame: { x: 2525, y: 2445, w: 40, h: 44 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 40, h: 44 }, sourceSize: { w: 40, h: 44 } }, { filename: "wiresInPanel0000", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 107374182, y: 107374182, w: 0, h: 0 }, sourceSize: { w: 0, h: 0 } }, { filename: "zxcInformationPanel0000", frame: { x: 1173, y: 1503, w: 99, h: 17 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2, y: -2, w: 99, h: 17 }, sourceSize: { w: 99, h: 17 } }], meta: { app: "Adobe Flash Professional", version: "13.1.0.226", image: "Objects.png", format: "RGBA8888", size: { w: 4096, h: 4096 }, scale: "1" } }, e }() , ObjectsLayouts = function() { function e() {} return e.data = [{ name: "CameraOverlay", children: [{ mc: "VideoCameraView", name: "cameraUnder", x: 0, y: 20, scaleX: .100006103515625 }, { mc: "VideoCameraView", name: "viewLeft", x: -290, y: 23, scaleX: 5.5 }, { mc: "VideoCameraView", name: "viewRight", x: 290, y: 23, scaleX: 5.5 }, { mc: "EnemySigns", name: "sign", x: 1, y: -29 }, { mc: "VideoCameraLight", name: "lightLeft", x: -7, y: 5, scaleX: -1 }, { mc: "VideoCameraLight", name: "lightRight", x: 7, y: 5 }] }, { name: "cmcClear", children: [{ mc: "cmcGrayAlphaRect", name: "bg", x: -1, y: -1, scaleX: 10, scaleY: 10 }, { mc: "cmcDialog", name: "dialog", x: 320, y: 287 }, { mc: "but_backToGame", name: "back", x: 222, y: 345 }, { mc: "but_clearProgress", name: "clearProgress", x: 208, y: 294 }, { mc: "cmcDoYouReally", name: "", x: 202, y: 179 }] }, { name: "cmcLevels", children: [{ mc: "cmcCarta", name: "", x: 0, y: 0 }, { mc: "ButtonShop", name: "gotoShop", x: 25, y: 21 }, { mc: "Lev11", name: "lev11", x: 457, y: 23 }, { mc: "Lev8", name: "lev8", x: 243, y: 43 }, { mc: "Lev9", name: "lev9", x: 143, y: 105 }, { mc: "Lev7", name: "lev7", x: 337, y: 105 }, { mc: "Lev2", name: "lev2", x: 42, y: 169 }, { mc: "cmcLevelNumber", name: "l2", x: 123, y: 220 }, { mc: "Lev10", name: "lev10", x: 243, y: 166 }, { mc: "Lev3", name: "lev3", x: 142, y: 230 }, { mc: "Lev6", name: "lev6", x: 436, y: 170 }, { mc: "Lev5", name: "lev5", x: 338, y: 232 }, { mc: "Lev4", name: "lev4", x: 242, y: 295 }, { mc: "Lev1", name: "lev1", x: 25, y: 338 }, { mc: "ButtonSponsorLevelMap", name: "sponsor", x: 457, y: 308 }, { mc: "cmcLevelNumber", name: "l1", x: 96, y: 363 }, { mc: "cmcLevelNumber", name: "l3", x: 224, y: 281 }, { mc: "cmcLevelNumber", name: "l4", x: 324, y: 345 }, { mc: "cmcLevelNumber", name: "l5", x: 420, y: 252 }, { mc: "cmcLevelNumber", name: "l6", x: 518, y: 220 }, { mc: "cmcLevelNumber", name: "l7", x: 418, y: 145 }, { mc: "cmcLevelNumber", name: "l8", x: 305, y: 94 }, { mc: "cmcLevelNumber", name: "l9", x: 224, y: 145 }, { mc: "cmcLevelNumber", name: "l10", x: 312, y: 213 }, { mc: "cmcLevelNumber", name: "l11", x: 539, y: 74 }, { mc: "txtMoney", name: "", x: 123, y: 10 }, { mc: "cbtnSubmit", name: "submit", x: 505, y: 12 }, { mc: "txtScore", name: "Score", x: 320, y: 10 }, { mc: "ctxtMenuScore", name: "s1", x: 388, y: 16 }, { mc: "ctxtMenuScore", name: "s2", x: 404, y: 16 }, { mc: "ctxtMenuScore", name: "s3", x: 420, y: 16 }, { mc: "ctxtMenuScore", name: "s4", x: 436, y: 16 }, { mc: "ctxtMenuScore", name: "s5", x: 452, y: 16 }, { mc: "ctxtMenuScore", name: "m1", x: 195, y: 16 }, { mc: "ctxtMenuScore", name: "m2", x: 211, y: 16 }, { mc: "ctxtMenuScore", name: "m3", x: 227, y: 16 }, { mc: "ctxtMenuScore", name: "m4", x: 243, y: 16 }, { mc: "ctxtMenuScore", name: "m5", x: 259, y: 16 }, { mc: "BonusLevelTip", name: "bonusLevelTip", x: 449, y: 113 }, { mc: "cbtnMainMenuLevels", name: "back", x: 28, y: 474 }, { mc: "ButtonClearProgress", name: "clearProgress", x: 431, y: 475, scaleX: .9217987060546875, scaleY: .922119140625 }, { mc: "ButtonWalkthrough", name: "walkthrough", x: 210, y: 473 }] }, { name: "cmcShop", children: [{ mc: "cmcShopBG", name: "bg", x: 0, y: 0 }, { mc: "but_back", name: "back", x: 36, y: 430 }, { mc: "seller", name: "sellerHead", x: 41, y: 34 }, { mc: "tipsBalloon", name: "sellerBubble", x: 21, y: 132 }, { mc: "cmcSellerText", name: "sellerText", x: 21, y: 132 }, { mc: "ButtonZXC", name: "zbutton", x: 425, y: 368 }, { mc: "ButtonZXC", name: "xbutton", x: 500, y: 368 }, { mc: "ButtonZXC", name: "cbutton", x: 575, y: 368 }, { mc: "cmcDragGadgets", name: "zxc", x: 499, y: 356 }, { mc: "txtMoney", name: "", x: 425, y: 430 }, { mc: "ctxtMenuScore", name: "m1", x: 496, y: 436 }, { mc: "ctxtMenuScore", name: "m2", x: 512, y: 436 }, { mc: "ctxtMenuScore", name: "m3", x: 528, y: 436 }, { mc: "ctxtMenuScore", name: "m4", x: 544, y: 436 }, { mc: "ctxtMenuScore", name: "m5", x: 560, y: 436 }, { mc: "cmcShopItem1", name: "shopItem1", x: 230, y: 148 }, { mc: "cmcShopItem2", name: "shopItem2", x: 305, y: 148 }, { mc: "cmcShopItem3", name: "shopItem3", x: 380, y: 148 }, { mc: "cmcShopItem4", name: "shopItem4", x: 455, y: 148 }, { mc: "cmcShopItem5", name: "shopItem5", x: 530, y: 148 }, { mc: "ctxtMenuScore", name: "s11", x: 234, y: 210 }, { mc: "ctxtMenuScore", name: "s12", x: 250, y: 210 }, { mc: "ctxtMenuScore", name: "s13", x: 266, y: 210 }, { mc: "ctxtMenuScore", name: "s21", x: 309, y: 210 }, { mc: "ctxtMenuScore", name: "s22", x: 325, y: 210 }, { mc: "ctxtMenuScore", name: "s23", x: 341, y: 210 }, { mc: "ctxtMenuScore", name: "s31", x: 384, y: 210 }, { mc: "ctxtMenuScore", name: "s32", x: 400, y: 210 }, { mc: "ctxtMenuScore", name: "s33", x: 416, y: 210 }, { mc: "ctxtMenuScore", name: "s41", x: 459, y: 210 }, { mc: "ctxtMenuScore", name: "s42", x: 475, y: 210 }, { mc: "ctxtMenuScore", name: "s43", x: 491, y: 210 }, { mc: "ctxtMenuScore", name: "s51", x: 534, y: 210 }, { mc: "ctxtMenuScore", name: "s52", x: 550, y: 210 }, { mc: "ctxtMenuScore", name: "s53", x: 566, y: 210 }, { mc: "cmcShopInst", name: "instText", x: 345, y: 29 }, { mc: "arr_go", name: "instArrow", x: 392, y: 102 }] }, { name: "CodeWindow", children: [{ mc: "cmcCodeBG", name: "", x: 179, y: 60 }, { mc: "CodeWinBut", name: "k1", x: 261, y: 215, scaleX: .9999542236328125, scaleY: .9999542236328125 }, { mc: "CodeWinBut", name: "k2", x: 310, y: 215 }, { mc: "CodeWinBut", name: "k3", x: 358, y: 215 }, { mc: "CodeWinBut", name: "k4", x: 261, y: 257 }, { mc: "CodeWinBut", name: "k5", x: 310, y: 257 }, { mc: "CodeWinBut", name: "k6", x: 358, y: 257 }, { mc: "CodeWinBut", name: "k7", x: 261, y: 299 }, { mc: "CodeWinBut", name: "k8", x: 310, y: 299 }, { mc: "CodeWinBut", name: "k9", x: 358, y: 299 }, { mc: "CodeWinBut", name: "k0", x: 310, y: 341 }, { mc: "digits", name: "ti", x: 245, y: 117, scaleX: .94921875, scaleY: .94921875 }, { mc: "digits", name: "so", x: 288, y: 117, scaleX: .94921875, scaleY: .94921875 }, { mc: "digits", name: "de", x: 331, y: 117, scaleX: .94921875, scaleY: .94921875 }, { mc: "digits", name: "ed", x: 374, y: 117, scaleX: .94921875, scaleY: .94921875 }, { mc: "cmcClose", name: "close", x: 460, y: 81 }] }, { name: "ComputerScreen", children: [{ mc: "compDLG", name: "bg", x: 104, y: 54 }, { mc: "CompMenu", name: "menuList", x: 161, y: 147 }, { mc: "CompInfo", name: "menuScreen", x: 318, y: 117 }, { mc: "cmcCompDigs", name: "doorcode", x: 351, y: 191 }, { mc: "cmcClose", name: "close", x: 580, y: 99 }, { mc: "cmcArrow", name: "up", x: 580, y: 362, degrees: 90 }, { mc: "cmcArrow", name: "down", x: 580, y: 448, degrees: -90 }, { mc: "cmcCompDigs", name: "doorcode2", x: 351, y: 191 }] }, { name: "FailScreen", children: [{ mc: "cmcLossBG", name: "bg", x: 0, y: 0 }, { mc: "but_replay", name: "replay", x: 30, y: 450 }, { mc: "ButtonLevelsMap", name: "levelmenu", x: 460, y: 450 }] }, { name: "IndicatorPanic", children: [{ mc: "lights", name: "PanicaLight", x: -1, y: -1 }, { mc: "cmcTimerDots", name: "PanicaDots", x: -14, y: 46 }, { mc: "cmcTimerDigs", name: "so", x: -36, y: 42 }, { mc: "cmcTimerDigs", name: "de", x: -5, y: 42 }, { mc: "cmcTimerDigs", name: "ed", x: 12, y: 42 }] }, { name: "InformationPanel", children: [{ mc: "InformationPanelBG", name: "", x: 0, y: 0 }, { mc: "SoundButtonPlay", name: "notsound", x: 565, y: 7 }, { mc: "PauseButton", name: "pause", x: 535, y: 7 }, { mc: "MusicButtonPlay", name: "notmusic", x: 605, y: 7 }, { mc: "RestartButton", name: "restart", x: 503, y: 7 }, { mc: "IndicatorAlert", name: "alerts", x: 286, y: 20 }, { mc: "infoItemButton", name: "zbutton", x: 395, y: 20 }, { mc: "infoItemButton", name: "xbutton", x: 435, y: 20 }, { mc: "infoItemButton", name: "cbutton", x: 475, y: 20 }, { mc: "zxcInformationPanel", name: "zxc", x: 378, y: 26 }, { mc: "ctxtMenuScore", name: "m1", x: 151, y: 8 }, { mc: "ctxtMenuScore", name: "m2", x: 167, y: 8 }, { mc: "ctxtMenuScore", name: "m3", x: 183, y: 8 }, { mc: "ctxtMenuScore", name: "m4", x: 199, y: 8 }, { mc: "ctxtMenuScore", name: "t1", x: 44, y: 8 }, { mc: "ctxtMenuScore", name: "t2", x: 60, y: 8 }, { mc: "ctxtMenuScore", name: "t3", x: 76, y: 8 }] }, { name: "kolMoney", children: [{ mc: "cmcTimerDigs", name: "d2", x: -9, y: -9 }, { mc: "cmcTimerDigs", name: "d3", x: 10, y: -9 }, { mc: "cmcTimerDigs", name: "d1", x: -28, y: -9 }] }, { name: "MessageFullScreen", children: [{ mc: "MessageFullScreenBG", name: "bg", x: 0, y: 0 }, { mc: "MessageFullScreenText", name: "text", x: 0, y: 0 }, { mc: "ctxtPismo", name: "dc1", x: 266, y: 350 }, { mc: "ctxtPismo", name: "dc2", x: 286, y: 350 }, { mc: "ctxtPismo", name: "dc3", x: 306, y: 350 }, { mc: "ctxtPismo", name: "dc4", x: 326, y: 350 }] }, { name: "miniGame", children: [{ mc: "cmcMiniGameDLG", name: "screen", x: 0, y: 0 }, { mc: "cmcArrow", name: "up", x: 320, y: 38, degrees: 90 }, { mc: "cmcArrow", name: "down", x: 320, y: 484, degrees: -90 }, { mc: "cmcArrow", name: "left", x: 55, y: 260 }, { mc: "cmcArrow", name: "right", x: 585, y: 260, degrees: 180 }, { mc: "miniHero", name: "key", x: 205, y: 142 }, { mc: "miniHeroRed", name: "testKey", x: 205, y: 142 }, { mc: "cmcClose", name: "close", x: 585, y: 116 }] }, { name: "miniGame1", children: [{ mc: "miniBarriers", name: "", x: 380, y: 292 }, { mc: "miniTaget", name: "target", x: 330, y: 217 }, { mc: "miniBarriers", name: "", x: 455, y: 142 }, { mc: "miniBarriers", name: "", x: 430, y: 317 }, { mc: "miniBarriers", name: "", x: 405, y: 167 }, { mc: "miniBarriers", name: "", x: 230, y: 192 }, { mc: "miniBarriers", name: "", x: 255, y: 292 }, { mc: "miniBarriers", name: "", x: 355, y: 267 }] }, { name: "miniGame2", children: [{ mc: "miniBarriers", name: "", x: 430, y: 192 }, { mc: "miniTaget", name: "target", x: 355, y: 217 }, { mc: "miniBarriers", name: "", x: 355, y: 167 }, { mc: "miniBarriers", name: "", x: 380, y: 267 }, { mc: "miniBarriers", name: "", x: 255, y: 142 }, { mc: "miniBarriers", name: "", x: 230, y: 192 }, { mc: "miniBarriers", name: "", x: 255, y: 292 }, { mc: "miniBarriers", name: "", x: 330, y: 217 }, { mc: "miniBarriers", name: "", x: 405, y: 317 }] }, { name: "miniGame3", children: [{ mc: "miniBarriers", name: "", x: 455, y: 167 }, { mc: "miniTaget", name: "target", x: 430, y: 317 }, { mc: "miniBarriers", name: "", x: 355, y: 192 }, { mc: "miniBarriers", name: "", x: 380, y: 292 }, { mc: "miniBarriers", name: "", x: 255, y: 142 }, { mc: "miniBarriers", name: "", x: 230, y: 292 }, { mc: "miniBarriers", name: "", x: 280, y: 267 }, { mc: "miniBarriers", name: "", x: 330, y: 217 }, { mc: "miniBarriers", name: "", x: 255, y: 317 }, { mc: "miniBarriers", name: "", x: 405, y: 317 }] }, { name: "miniGame4", children: [{ mc: "miniBarriers", name: "", x: 255, y: 192 }, { mc: "miniTaget", name: "target", x: 329, y: 167 }, { mc: "miniBarriers", name: "", x: 430, y: 192 }, { mc: "miniBarriers", name: "", x: 230, y: 292 }, { mc: "miniBarriers", name: "", x: 230, y: 242 }, { mc: "miniBarriers", name: "", x: 280, y: 192 }, { mc: "miniBarriers", name: "", x: 230, y: 217 }, { mc: "miniBarriers", name: "", x: 230, y: 267 }, { mc: "miniBarriers", name: "", x: 255, y: 292 }, { mc: "miniBarriers", name: "", x: 255, y: 242 }, { mc: "miniBarriers", name: "", x: 305, y: 217 }, { mc: "miniBarriers", name: "", x: 305, y: 242 }, { mc: "miniBarriers", name: "", x: 305, y: 267 }, { mc: "miniBarriers", name: "", x: 305, y: 292 }, { mc: "miniBarriers", name: "", x: 330, y: 192 }, { mc: "miniBarriers", name: "", x: 355, y: 192 }, { mc: "miniBarriers", name: "", x: 380, y: 217 }, { mc: "miniBarriers", name: "", x: 380, y: 242 }, { mc: "miniBarriers", name: "", x: 380, y: 267 }, { mc: "miniBarriers", name: "", x: 380, y: 292 }, { mc: "miniBarriers", name: "", x: 405, y: 192 }] }, { name: "PadLockBase", children: [{ mc: "duga", name: "duga", x: -103, y: -222 }, { mc: "PadLockBG", name: "frame", x: -123, y: -128 }, { mc: "lock_click", name: "larva", x: -105, y: -112 }, { mc: "Hole", name: "hole", x: -50, y: 7 }, { mc: "Hole2", name: "hole1", x: -44, y: 28 }, { mc: "Hole2", name: "hole2", x: -46, y: -14 }, { mc: "holeLine", name: "line", x: -1, y: 7 }, { mc: "Picklock", name: "pick", x: 0, y: 187 }] }, { name: "PadlockPanel", children: [{ mc: "PadlockPanelTip", name: "tip", x: 100, y: 370 }, { mc: "PadLockBase", name: "lockBase", x: 323, y: 302 }, { mc: "cmcClose", name: "close", x: 480, y: 100 }, { mc: "cmcArrow", name: "up", x: 320, y: 465, degrees: 90 }, { mc: "cmcArrow", name: "left", x: 160, y: 465 }, { mc: "cmcArrow", name: "right", x: 480, y: 465, degrees: 180 }] }, { name: "PauseScreen", children: [{ mc: "cmcGrayAlphaRect", name: "bg", x: -1, y: -1, scaleX: 10, scaleY: 10 }, { mc: "cmcDialog", name: "dialog", x: 320, y: 287 }, { mc: "ButtonBackToGame", name: "back", x: 222, y: 206 }, { mc: "ButtonLevelsMap", name: "levels", x: 243, y: 324 }, { mc: "txtPause", name: "", x: 260, y: 106 }, { mc: "ButtonWalkthrough", name: "walkthrough", x: 225, y: 267 }] }, { name: "Pismo", children: [{ mc: "cmcDoorCodeDLG", name: "", x: 184, y: 150 }, { mc: "cmcDoorCodeDig", name: "doorcode", x: 254, y: 258 }, { mc: "pismoContent", name: "content", x: 0, y: 0 }] }, { name: "TransformationPanel", children: [{ mc: "TransformationBG", name: "", x: 176, y: 73 }, { mc: "sparks", name: "sparksGreen", x: 255, y: 390 }, { mc: "sparks", name: "sparksOrange", x: 415, y: 390 }, { mc: "sparks", name: "sparksBlue", x: 336, y: 390 }, { mc: "TransformatorPanelTip", name: "tip", x: 90, y: 340 }, { mc: "wiresInPanel", name: "wires", x: 215, y: 130 }, { mc: "wireGreen", name: "green", x: 235, y: 390 }, { mc: "wireOrange", name: "orange", x: 395, y: 390 }, { mc: "wireBlue", name: "blue", x: 315, y: 390 }, { mc: "Nippers", name: "nippers", x: 200, y: 445 }, { mc: "cmcArrow", name: "b", x: 334, y: 425, degrees: 90, alpha: .01 }, { mc: "cmcArrow", name: "g", x: 254, y: 425, degrees: 90, alpha: .01 }, { mc: "cmcArrow", name: "o", x: 415, y: 425, degrees: 90, alpha: .01 }, { mc: "cmcClose", name: "close", x: 544, y: 108 }] }, { name: "WinGame", children: [{ mc: "cmcWinGameBG", name: "bg", x: 0, y: 0 }, { mc: "cmcMenuDigit", name: "ti", x: 60, y: 90 }, { mc: "cmcMenuDigit", name: "so", x: 100, y: 89 }, { mc: "cmcMenuDigit", name: "de", x: 133, y: 90 }, { mc: "cmcMenuDigit", name: "ed", x: 166, y: 89 }, { mc: "txtScore", name: "Score", x: 108, y: 58 }, { mc: "cbtnMainMenuLevels", name: "mainmenu", x: 24, y: 439 }] }, { name: "WinLevelScreen", children: [{ mc: "cmcLevelWinBG", name: "bg", x: 0, y: 0 }, { mc: "but_replay", name: "replay", x: 30, y: 450 }, { mc: "but_continue", name: "continuelev", x: 480, y: 450 }, { mc: "cmcScoreChannel", name: "score", x: 153, y: 125 }, { mc: "cmcScoreDig", name: "time", x: 250, y: 134 }, { mc: "cmcScoreDig", name: "Money", x: 250, y: 180 }, { mc: "cmcScoreDig", name: "trevoga", x: 269, y: 226 }, { mc: "cmcScoreDig", name: "total", x: 262, y: 272 }, { mc: "tvStar", name: "gStar1", x: 187, y: 314 }, { mc: "tvStar", name: "gStar2", x: 223, y: 314 }, { mc: "tvStar", name: "gStar3", x: 259, y: 314 }, { mc: "tvStar", name: "gStar4", x: 295, y: 314 }, { mc: "tvStar", name: "gStar5", x: 331, y: 314 }, { mc: "cmcPresenter", name: "newsChannel", x: 246, y: 214 }, { mc: "cmcPresenterHead", name: "newsHead", x: 275, y: 145 }, { mc: "tv_stripes", name: "stripes", x: 126, y: 118 }] }], e }() , OzBitmapData = function() { function e() {} return e.OzAlphaMask = function(e, t, i) { null == i && (i = e); var r = e.context.globalCompositeOperation; e.draw(i), e.context.globalCompositeOperation = "source-atop", e.draw(t), e.context.globalCompositeOperation = r, e.update(), e.dirty = !0 } , e }() , OzUtil = function() { function u() {} return u.PE = function(e, t, i, r) { if (e) if (e instanceof Array) for (var o = 0, s = e; o < s.length; o++) { if ((c = s[o])[i] == r) return c } else if (e instanceof Object) { var a = e[t]; if (a instanceof Array) for (var n = 0, h = a; n < h.length; n++) { var c; if ((c = h[n])[i] == r) return c } else if (a instanceof Object && a[i] == r) return e } return null } , u.ARR = function(e, t) { if (void 0 === t && (t = null), e instanceof Array) return e; if (e instanceof Object) { var i = e[t]; if (i instanceof Array) return i; if (i instanceof Object) return [i] } return null } , u.numDigits0is0 = function(e) { for (var t = 0; 0 < e; ) e = Math.floor(e / 10 + .05), t += 1; return t } , u.GetURL = function(e) { window.open(e, "_blank") } , u.OnSegment = function(e, t, i) { return e <= t && t <= i || i <= t && t <= e } , u.SqDist = function(e, t) { return Math.sqrt(e * e + t * t) } , u.NumDigits = function(e) { for (var t = 1; 10 <= e; ) e /= 10, t++; return t } , u.HitTest = function(e, t, i, r, o) { void 0 === o && (o = null); var s = e.x , a = e.y , n = i.x , h = i.y; if (null == t && (e.getRect(this.tempRect), t = new Phaser.Rectangle(this.tempRect[0],this.tempRect[1],this.tempRect[2],this.tempRect[3]), s = a = 0), null == r) { if (i.getRect(this.tempRect), o) for (var c = i; c != o; ) (c = i.parent).parentRect(this.tempRect); r = new Phaser.Rectangle(this.tempRect[0],this.tempRect[1],this.tempRect[2],this.tempRect[3]), n = h = 0 } return s += t.x, a += t.y, n += r.x, h += r.y, !(s + t.width <= n || n + r.width <= s || a + t.height <= h || h + r.height <= a) } , u.ClearDigits = function(e) { for (var t = 0; t < e.length; t++) e[t].gotoAndStop(11) } , u.MakeDigits = function(e, t, i, r) { void 0 === i && (i = !1), void 0 === r && (r = !1), e = Math.floor(e); var o = Math.round(e) , s = u.NumDigits(e) , a = t.length , n = 0 , h = 0; if (r && i) { var c = a - s; for (h = 0; h < c; h++) t[a - h - 1].gotoAndStop(11) } for (n = h; n < a; n++) { var l = t[r ? a - n - 1 : a - n - 1 - h] , m = o % 10; o < 1 && h < n && i ? l.gotoAndStop(11) : (l.visible = !0, l.gotoAndStop(1 + m)), o -= m, o /= 10 } } , u.RectHit = function(e, t) { var i = !(e[0] + e[2] < t[0] || t[0] + t[2] < e[0]) , r = !(e[1] + e[3] < t[1] || t[1] + t[3] < e[1]); return i && r } , u.digits = "0123456789", u.tempRect = [0, 0, 0, 0], u }() , PreloaderObjects = function() { function e() {} return e.data = { frames: [{ filename: "LeftCurtainGraphics0000", frame: { x: 2341, y: 486, w: 388, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 388, h: 520 }, sourceSize: { w: 388, h: 520 } }, { filename: "MusicButton0000", frame: { x: 3978, y: 449, w: 25, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13, y: -15, w: 30, h: 31 }, sourceSize: { w: 30, h: 31 } }, { filename: "MusicButton0001", frame: { x: 1259, y: 526, w: 25, h: 30 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -13, y: -15, w: 30, h: 31 }, sourceSize: { w: 30, h: 31 } }, { filename: "MusicButton0002", frame: { x: 4047, y: 611, w: 30, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -16, w: 30, h: 31 }, sourceSize: { w: 30, h: 31 } }, { filename: "MusicButton0003", frame: { x: 1113, y: 612, w: 30, h: 31 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -15, y: -16, w: 30, h: 31 }, sourceSize: { w: 30, h: 31 } }, { filename: "RightCurtainGraphics0000", frame: { x: 1932, y: 486, w: 406, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -406, y: 0, w: 406, h: 520 }, sourceSize: { w: 406, h: 520 } }, { filename: "SoundButton0000", frame: { x: 1226, y: 609, w: 34, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -14, w: 35, h: 32 }, sourceSize: { w: 35, h: 32 } }, { filename: "SoundButton0001", frame: { x: 4010, y: 611, w: 34, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -14, w: 35, h: 32 }, sourceSize: { w: 35, h: 32 } }, { filename: "SoundButton0002", frame: { x: 4010, y: 576, w: 34, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -16, w: 35, h: 32 }, sourceSize: { w: 35, h: 32 } }, { filename: "SoundButton0003", frame: { x: 4047, y: 576, w: 34, h: 32 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -17, y: -16, w: 35, h: 32 }, sourceSize: { w: 35, h: 32 } }, { filename: "cbtnContinue20000", frame: { x: 3861, y: 226, w: 164, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -.7, y: -.8, w: 169, h: 43 }, sourceSize: { w: 169, h: 43 } }, { filename: "cbtnContinue20001", frame: { x: 3861, y: 180, w: 169, h: 43 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -2.7, y: -.8, w: 169, h: 43 }, sourceSize: { w: 169, h: 43 } }, { filename: "cbtnCredits20000", frame: { x: 3861, y: 449, w: 114, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -57, y: -16, w: 120, h: 35 }, sourceSize: { w: 120, h: 35 } }, { filename: "cbtnCredits20001", frame: { x: 3950, y: 136, w: 120, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -60, y: -17, w: 120, h: 35 }, sourceSize: { w: 120, h: 35 } }, { filename: "cbtnMainMenu0000", frame: { x: 3861, y: 345, w: 163, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: -.8, w: 171, h: 34 }, sourceSize: { w: 171, h: 34 } }, { filename: "cbtnMainMenu0001", frame: { x: 3861, y: 271, w: 171, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -4.1, y: -.8, w: 171, h: 34 }, sourceSize: { w: 171, h: 34 } }, { filename: "cbtnMusic0000", frame: { x: 4037, y: 402, w: 38, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.5, y: -19.5, w: 47, h: 47 }, sourceSize: { w: 47, h: 47 } }, { filename: "cbtnMusic0001", frame: { x: 4025, y: 3, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.5, y: -23.5, w: 47, h: 47 }, sourceSize: { w: 47, h: 47 } }, { filename: "cbtnMusic0002", frame: { x: 4010, y: 535, w: 38, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.5, y: -19.5, w: 47, h: 47 }, sourceSize: { w: 47, h: 47 } }, { filename: "cbtnMusic0003", frame: { x: 4033, y: 174, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.5, y: -23.5, w: 47, h: 47 }, sourceSize: { w: 47, h: 47 } }, { filename: "cbtnNewGame0000", frame: { x: 3861, y: 381, w: 157, h: 33 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -78, y: -16, w: 165, h: 34 }, sourceSize: { w: 165, h: 34 } }, { filename: "cbtnNewGame0001", frame: { x: 3861, y: 308, w: 165, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -82, y: -17, w: 165, h: 34 }, sourceSize: { w: 165, h: 34 } }, { filename: "cbtnPlay0000", frame: { x: 1158, y: 526, w: 98, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -48, y: -20, w: 103, h: 42 }, sourceSize: { w: 103, h: 42 } }, { filename: "cbtnPlay0001", frame: { x: 3950, y: 91, w: 103, h: 42 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -51, y: -21, w: 103, h: 42 }, sourceSize: { w: 103, h: 42 } }, { filename: "cbtnSkip0000", frame: { x: 4010, y: 493, w: 73, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1.1, y: -1.3, w: 77, h: 41 }, sourceSize: { w: 77, h: 41 } }, { filename: "cbtnSkip0001", frame: { x: 4010, y: 449, w: 77, h: 41 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -3.1, y: -2.3, w: 77, h: 41 }, sourceSize: { w: 77, h: 41 } }, { filename: "cbtnSound0000", frame: { x: 4051, y: 535, w: 38, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.5, y: -19.5, w: 47, h: 47 }, sourceSize: { w: 47, h: 47 } }, { filename: "cbtnSound0001", frame: { x: 4035, y: 224, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.5, y: -23.5, w: 47, h: 47 }, sourceSize: { w: 47, h: 47 } }, { filename: "cbtnSound0002", frame: { x: 737, y: 569, w: 38, h: 38 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -19.5, y: -19.5, w: 47, h: 47 }, sourceSize: { w: 47, h: 47 } }, { filename: "cbtnSound0003", frame: { x: 4035, y: 274, w: 47, h: 47 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -23.5, y: -23.5, w: 47, h: 47 }, sourceSize: { w: 47, h: 47 } }, { filename: "cmcBarDot0000", frame: { x: 3861, y: 91, w: 86, h: 86 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -43, y: -43, w: 86, h: 86 }, sourceSize: { w: 86, h: 86 } }, { filename: "cmcBlackRect0000", frame: { x: 4027, y: 345, w: 66, h: 54 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -1, y: -1, w: 66, h: 54 }, sourceSize: { w: 66, h: 54 } }, { filename: "cmcBlackRectBottom0000", frame: { x: 251, y: 526, w: 640, h: 40 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 40 }, sourceSize: { w: 640, h: 40 } }, { filename: "cmcBlackStoryCloud0000", frame: { x: 3367, y: 486, w: 640, h: 186 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 186 }, sourceSize: { w: 640, h: 186 } }, { filename: "cmcCreditsDLG0000", frame: { x: 3083, y: 486, w: 281, h: 434 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 281, h: 434 }, sourceSize: { w: 281, h: 434 } }, { filename: "cmcKizi0000", frame: { x: 3861, y: 3, w: 161, h: 85 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -78.9, y: -41.9, w: 161, h: 85 }, sourceSize: { w: 161, h: 85 } }, { filename: "cmcLoaderBar0000", frame: { x: 251, y: 665, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0001", frame: { x: 859, y: 675, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0002", frame: { x: 3367, y: 675, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0003", frame: { x: 3611, y: 675, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0004", frame: { x: 495, y: 681, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0005", frame: { x: 251, y: 688, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0006", frame: { x: 739, y: 698, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0007", frame: { x: 983, y: 698, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0008", frame: { x: 3367, y: 698, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0009", frame: { x: 3611, y: 698, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBar0010", frame: { x: 495, y: 704, w: 241, h: 20 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 9.6, y: 12.8, w: 241, h: 20 }, sourceSize: { w: 241, h: 20 } }, { filename: "cmcLoaderBarBack0000", frame: { x: 859, y: 644, w: 243, h: 28 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 8, y: 9.3, w: 243, h: 28 }, sourceSize: { w: 243, h: 28 } }, { filename: "cmcLoaderBarFront0000", frame: { x: 601, y: 644, w: 255, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 2.7, y: 5.5, w: 255, h: 34 }, sourceSize: { w: 255, h: 34 } }, { filename: "cmcMenuBG0000", frame: { x: 3, y: 3, w: 640, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 520 }, sourceSize: { w: 640, h: 520 } }, { filename: "cmcPreloaderBG0000", frame: { x: 646, y: 3, w: 640, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 520 }, sourceSize: { w: 640, h: 520 } }, { filename: "cmcSidePad0000", frame: { x: 2732, y: 486, w: 348, h: 520 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -348, y: 0, w: 348, h: 520 }, sourceSize: { w: 348, h: 520 } }, { filename: "cmcStoryPics0000", frame: { x: 1289, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "cmcStoryPics0001", frame: { x: 1932, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "cmcStoryPics0002", frame: { x: 2575, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "cmcStoryPics0003", frame: { x: 3218, y: 3, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "cmcStoryPics0004", frame: { x: 1289, y: 486, w: 640, h: 480 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 640, h: 480 }, sourceSize: { w: 640, h: 480 } }, { filename: "cmcStoryText0000", frame: { x: 251, y: 569, w: 483, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -241.2, y: -14.6, w: 483, h: 29 }, sourceSize: { w: 483, h: 29 } }, { filename: "cmcStoryText0001", frame: { x: 251, y: 601, w: 433, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -216.2, y: -14.6, w: 483, h: 29 }, sourceSize: { w: 483, h: 29 } }, { filename: "cmcStoryText0002", frame: { x: 687, y: 612, w: 423, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -211.2, y: -14.6, w: 483, h: 29 }, sourceSize: { w: 483, h: 29 } }, { filename: "cmcStoryText0003", frame: { x: 3861, y: 417, w: 173, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -86.2, y: -14.6, w: 483, h: 29 }, sourceSize: { w: 483, h: 29 } }, { filename: "cmcStoryText0004", frame: { x: 251, y: 633, w: 347, h: 29 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -173.2, y: -14.6, w: 483, h: 29 }, sourceSize: { w: 483, h: 29 } }, { filename: "cmcTitle20000", frame: { x: 3, y: 526, w: 245, h: 187 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -123, y: -93, w: 245, h: 187 }, sourceSize: { w: 245, h: 187 } }, { filename: "ctxtLoadingDigits0000", frame: { x: 778, y: 569, w: 34, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0001", frame: { x: 4025, y: 53, w: 25, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0002", frame: { x: 848, y: 569, w: 32, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0003", frame: { x: 1228, y: 569, w: 31, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0004", frame: { x: 1158, y: 569, w: 32, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0005", frame: { x: 1193, y: 608, w: 30, h: 35 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0006", frame: { x: 1193, y: 569, w: 32, h: 36 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0007", frame: { x: 4056, y: 95, w: 34, h: 37 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0008", frame: { x: 815, y: 569, w: 30, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0009", frame: { x: 4056, y: 53, w: 33, h: 39 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "ctxtLoadingDigits0010", frame: { x: 3, y: 3, w: 0, h: 0 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: 0, y: 0, w: 34, h: 39 }, sourceSize: { w: 34, h: 39 } }, { filename: "sponsorGGG0000", frame: { x: 894, y: 526, w: 261, h: 83 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -130.7, y: -43.1, w: 261, h: 83 }, sourceSize: { w: 261, h: 83 } }, { filename: "txtPercent0000", frame: { x: 1158, y: 608, w: 32, h: 34 }, rotated: !1, trimmed: !0, spriteSourceSize: { x: -16, y: -17, w: 32, h: 34 }, sourceSize: { w: 32, h: 34 } }], meta: { app: "Adobe Flash Professional", version: "13.1.0.226", image: "PreloaderObjects.png", format: "RGBA8888", size: { w: 4096, h: 4096 }, scale: "1" } }, e }() , PreloaderObjectsLayouts = function() { function e() {} return e.data = [{ name: "cmcAnimation", children: [{ mc: "cmcBlackRectBottom", name: "bottomRect", x: 0, y: 480 }, { mc: "cmcStoryText", name: "storyText", x: 318, y: 499 }, { mc: "cmcBlackStoryCloud", name: "blackCloud", x: 0, y: 400 }, { mc: "cmcStoryPics", name: "storyPic", x: 0, y: 0 }, { mc: "cmcBlackRect", name: "blackRect", x: 0, y: 0, scaleX: 10, scaleY: 10 }, { mc: "cbtnSkip", name: "skipStory", x: 564, y: 7 }] }, { name: "cmcMenu", children: [{ mc: "cmcMenuBG", name: "", x: 0, y: 0 }, { mc: "cbtnCredits2", name: "btnCredits", x: 321, y: 322 }, { mc: "cbtnNewGame", name: "btnNewGame", x: 320, y: 277 }, { mc: "cmcTitle2", name: "title", x: 320, y: 120 }, { mc: "cbtnMainMenu", name: "back", x: 245, y: 458 }, { mc: "MusicButton", name: "music", x: 612, y: 30 }, { mc: "SoundButton", name: "sound", x: 569, y: 29 }, { mc: "cmcKizi", name: "sponsor", x: 312, y: 393 }, { mc: "cmcCreditsDLG", name: "credits", x: 180, y: 17 }] }, { name: "cmcPreloader", children: [{ mc: "cmcPreloaderBG", name: "bg", x: 0, y: 0 }, { mc: "cbtnPlay", name: "btnPlay", x: 320, y: 440 }, { mc: "cmcKizi", name: "sponsor", x: 310, y: 63 }, { mc: "cmcLoaderBarBack", name: "barBack", x: 190, y: 393 }, { mc: "cmcLoaderBar", name: "bar", x: 191, y: 394 }, { mc: "cmcLoaderBarFront", name: "barFront", x: 191, y: 395 }, { mc: "ctxtLoadingDigits", name: "ten", x: 265, y: 455 }, { mc: "ctxtLoadingDigits", name: "one", x: 300, y: 455 }, { mc: "txtPercent", name: "per", x: 354, y: 472 }] }], e }() , SoundManager = function() { function a() {} return a.AddSound = function(e, t) { a.arrSounds.push(e), Game.getGame().load.audio(e, ["assets/sound/" + e + ".ogg", "assets/sound/" + e + ".mp3"]), this.dicSounds[e] = {}, t.music ? this.dicSounds[e].music = !0 : this.dicSounds[e].music = !1, 10 < t.loops ? this.dicSounds[e].loops = !0 : this.dicSounds[e].loops = !1, t.volume ? this.dicSounds[e].volume = t.volume : this.dicSounds[e].volume = 1, a.NumSounds++ } , a.Init = function() { a.AllDecoded = !1, a.NumSounds = 0, a.muteMusic = !1, a.muteSound = !1, a.curMusic = null, a.arrSounds = new Array } , a.AddAllSounds = function() { if (!a.AllDecoded) { a.AllDecoded = !0; for (var e = Game.getGame(), t = 0; t < a.arrSounds.length; t++) { var i = a.arrSounds[t]; a.dicSounds[i].sound = e.add.audio(i) } Game.DEBUG } } , a.Preload = function() { a.AddSound("SGameMusic", { music: !0, loops: 9999 }), a.AddSound("SMainMenuMusic", { music: !0, loops: 9999 }), a.AddSound("SRobberDanger", { music: !0, loops: 9999 }), a.AddSound("SSiren", { loops: 9999 }), a.AddSound("SBobWalk", { loops: 9999 }), a.AddSound("SBobClimb", { loops: 9999 }), a.AddSound("SBobSearch", { loops: 9999 }), a.AddSound("SAccessDenied", {}), a.AddSound("SAccessGranted", {}), a.AddSound("SAmbalAlarm", {}), a.AddSound("SAmbalOut", {}), a.AddSound("SAmbalWarn", {}), a.AddSound("SAnnouncer", {}), a.AddSound("SAppertureMove", {}), a.AddSound("SBeepKey", {}), a.AddSound("SBobBusted", {}), a.AddSound("SBobDrink", {}), a.AddSound("SBobLaugh", {}), a.AddSound("SBobPhoto", {}), a.AddSound("SBobSpray", {}), a.AddSound("SBobWow", {}), a.AddSound("SButtonClick", {}), a.AddSound("SButtonSelect", {}), a.AddSound("SButtonWizzz", {}), a.AddSound("SCableCut", {}), a.AddSound("SCameraWarn", {}), a.AddSound("SCodeButtonClick", {}), a.AddSound("SDogAlarm", {}), a.AddSound("SDogBite", {}), a.AddSound("SDogShock", {}), a.AddSound("SDogWarn", {}), a.AddSound("SDoorOpen", {}), a.AddSound("SElevatorArrive", {}), a.AddSound("SElevatorDoorClose", {}), a.AddSound("SElevatorDoorOpen", {}), a.AddSound("SEnemyShock", {}), a.AddSound("SGetMoney", {}), a.AddSound("SKeyFail", {}), a.AddSound("SKeyOneshot", {}), a.AddSound("SLogoWizzz", {}), a.AddSound("SMessage", {}), a.AddSound("SMiniLockOpen", {}), a.AddSound("SOldmanAlarm", {}), a.AddSound("SOldmanOut", {}), a.AddSound("SOldmanWarn", {}), a.AddSound("SOpenCabinet", {}), a.AddSound("SPlateDown", {}), a.AddSound("SPlateUp", {}), a.AddSound("SPolicemanAlarm", {}), a.AddSound("SPolicemanOut", {}), a.AddSound("SPolicemanWarn", {}), a.AddSound("SPunch", {}), a.AddSound("SRobotAlarm", {}), a.AddSound("SRobotOut", {}), a.AddSound("SRobotShock", {}), a.AddSound("SRobotWarn", {}), a.AddSound("SSalerThankYou", {}), a.AddSound("SSalerVoice", {}), a.AddSound("SScoreSpin", {}), a.AddSound("SSecurityAlarm", {}), a.AddSound("SSecurityOut", {}), a.AddSound("SSecurityWarn", {}), a.AddSound("SShockerShot", {}), a.AddSound("SShoot", {}), a.AddSound("SShootAmbal", {}), a.AddSound("SShootBurst", {}), a.AddSound("SSwissKey", {}), a.AddSound("STargetGood", {}), a.AddSound("SUnlock", {}), a.AddSound("SWallMove", {}), a.AddSound("SWinLevel", {}), a.AddSound("SZombieAlarm", {}), a.AddSound("SZombieOut", {}), a.AddSound("SZombieWarn", {}) } , a.getInstance = function() { return null == a.instance && (a.instance = new a), a.instance } , a.prototype.stopMusic = function(e) { void 0 === e && (e = null), null == e && (e = a.playingMusic); var t = a.dicSounds[e]; t && t.sound && t.sound.stop(), a.playingMusic = null } , a.prototype.playSound = function(e, t, i, r) { void 0 === t && (t = 0), void 0 === i && (i = null), void 0 === r && (r = null); var o = a.dicSounds[e]; o && (o.music ? (a.playingMusic && a.playingMusic != e && this.stopMusic(), a.curMusic == e && a.playingMusic || !e || (a.playingMusic = a.muteMusic ? null : (a._playSound(e, o.volume, o.loops), e), a.curMusic = e)) : a.muteSound || (this.isPlaying(e) && this.stopSound(e), a._playSound(e, o.volume, o.loops, i, r))) } , a.prototype.stopAllAudio = function(e) { for (var t in void 0 === e && (e = null), a.dicSounds) (null == e || e.indexOf(t) < 0) && this.stopSound(t) } , a.prototype.stopSound = function(e) { var t = a.dicSounds[e]; t && t.sound && (t.sound.stop(), a.playingMusic == e && (a.playingMusic = null)) } , a.prototype.isPlaying = function(e) { var t = a.dicSounds[e]; return !(!t || !t.sound) && t.sound.isPlaying } , a.ToggleMuteMusic = function() { if (a.muteMusic = !a.muteMusic) a.playingMusic && (e = a.dicSounds[a.playingMusic]).sound && e.sound.pause(); else if (a.curMusic) if (a.playingMusic) { var e; (e = a.dicSounds[a.playingMusic]).sound && e.sound.resume() } else { var t = a.dicSounds[a.curMusic]; a._playSound(a.curMusic, t.volume, t.loops), a.playingMusic = a.curMusic } } , a._playSound = function(e, t, i, r, o) { void 0 === r && (r = null), void 0 === o && (o = null); var s = a.dicSounds[e].sound; i ? (s.loopFull(t), s.onLoop.getNumListeners() < 1 && s.onLoop.add(a._loopSound, a, 0, e, t)) : (s.play("", 0, t), r && s.onStop.add(r, o)) } , a._loopSound = function(e, t, i) { e.loopFull(i) } , a.ToggleMuteSound = function() { if (a.muteSound = !a.muteSound) for (var e in a.dicSounds) { var t = a.dicSounds[e]; if (!t.music) { var i = t.sound; i && i.isPlaying && i.stop() } } } , a.NewSounds = function() { a.sirenaOn = a.timersirenOn = a.playdictor = a.playMenu = a.playGame = !1, a.playlezet = a.playmove = a.playwork = !0 } , a.PlayMove = function() { a.playmove && !a.muteSound && (a.getInstance().playSound("steps", 0, a.StopMove, a), a.playmove = !1) } , a.StopMove = function() { a.playmove = !0 } , a.PlayLezet = function() { a.playlezet && !a.muteSound && (a.getInstance().playSound("climb", 0, a.StopLezet, a), a.playlezet = !1) } , a.StopLezet = function() { a.playlezet = !0 } , a.PlayWork = function(e) { if (a.playwork && !a.muteSound) { switch (e) { case 1: a.getInstance().playSound("wire", 0, a.StopWork, a); case 2: a.getInstance().playSound("search", 0, a.StopWork, a); case 3: a.getInstance().playSound("unlock", 0, a.StopWork, a); case 4: a.getInstance().playSound("search", 0, a.StopWork, a) } a.playwork = !1 } } , a.StopWork = function() { a.playwork = !0 } , a.PlayStory = function() { a.muteMusic || a.getInstance().playSound("pre_music") } , a.StopStory = function() { a.getInstance().stopMusic("pre_music") } , a.PlayMenuMusic = function() { a.muteMusic || a.getInstance().playSound("SMainMenuMusic") } , a.StopMenuMusic = function() { a.getInstance().stopMusic("SMainMenuMusic") } , a.PlayGameMusic = function() { a.muteMusic || a.getInstance().playSound("calm_music") } , a.StopGameMusic = function() { a.getInstance().stopMusic("calm_music") } , a.PlayDictor = function() { a.getInstance().playSound("dictor"), a.playdictor = !0 } , a.StopDictor = function() { a.playdictor && (a.getInstance().stopSound("dictor"), a.playdictor = !1) } , a.PlaySiren = function() { a.muteSound || (a.getInstance().playSound("siren_alarm"), a.sirenaOn = !0) } , a.StopSiren = function() { a.getInstance().stopSound("siren_alarm") } , a.PlayTimerSiren = function() { a.muteMusic || (a.getInstance().playSound("alarm_music"), a.timersirenOn = !0) } , a.StopTimerSiren = function() { a.getInstance().stopMusic("alarm_music") } , a.SirenaOn = function() { a.sirenaOn && a.getInstance().playSound("siren_alarm") } , a.SirenaTimerOn = function() { a.timersirenOn && a.getInstance().playSound("alarm_music") } , a.instance = null, a.dicSounds = {}, a }() , StarsAndScores = function() { function e() { this.timeArray = [150, 170, 120, 145, 195, 190, 165, 165, 170, 150, 200], this.moneyArray = new Array(200,320,390,460,555,665,800,955,1145,1375,1600), this.score = 0, this.starsCoefArray = [1, 1.5, 2] } return e.prototype.getTime = function(e, t) { return 0 < this.timeArray[t - 1] - e ? this.timeArray[t - 1] - e : 0 } , e.prototype.getTimeForStars = function(e, t) { return 0 <= this.timeArray[t - 1] - e ? 0 : this.timeArray[t - 1] - e } , e.prototype.getMoney = function(e) { return this.moneyArray[e - 1] } , e.prototype.getStars = function(e, t) { var i = this.moneyArray[t - 1] , r = Math.round(100 * e / i); return 100 <= r ? 7 : r <= 99 && 70 < r ? 6 : r <= 70 && 50 < r ? 5 : r <= 50 && 30 < r ? 4 : r <= 30 && 10 < r ? 3 : 2 } , e.starsQuantity = 60, e }() , TaskManager = function() { function e(e) { void 0 === e && (e = !1), this._tasks = [], this._pauseCount = 0, this.isStarted = !1, this.isPaused = !1, this.cycle = e } return Object.defineProperty(e.prototype, "currentTask", { get: function() { return 0 < this._tasks.length ? this._tasks[0].func : null }, enumerable: !0, configurable: !0 }), e.prototype.addTask = function(e, t, i, r) { void 0 === i && (i = null), void 0 === r && (r = !1), this._tasks.push({ func: t, params: i, ignoreCycle: r, context: e }), this.start() } , e.prototype.addInstantTask = function(e, t, i, r) { void 0 === i && (i = null), void 0 === r && (r = !1), this._tasks.push({ func: t, params: i, ignoreCycle: r, isInstant: !0, context: e }), this.start() } , e.prototype.addUrgentTask = function(e, t, i, r) { void 0 === i && (i = null), void 0 === r && (r = !1), this._tasks.unshift({ func: t, params: i, ignoreCycle: r, context: e }), this.start() } , e.prototype.addUrgentInstantTask = function(e, t, i, r) { void 0 === i && (i = null), void 0 === r && (r = !1), this._tasks.unshift({ func: t, params: i, ignoreCycle: r, isInstant: !0, context: e }), this.start() } , e.prototype.addPause = function(e, t) { void 0 === t && (t = !1), this.addTask(this, this.timerFrame, [e], t) } , e.prototype.timerFrame = function(e) { this._pauseCount++, this._pauseCount >= e && (this._pauseCount = 0, this.nextTask()) } , e.prototype.removeAllTasks = function() { this._tasks = new Array } , e.prototype.nextTask = function(e) { void 0 === e && (e = !1), this.cycle && !e ? this._tasks.push(this._tasks.shift()) : this._tasks.shift() } , e.prototype.start = function() { this.isStarted || (this.isStarted = !0, this.isPaused = !1) } , e.prototype.stop = function() { this.isStarted = !1 } , e.prototype.update = function() { var e = this._tasks[0]; e ? (this.result = e.func.call(e.context, e.params), e == this._tasks[0] && (e.isInstant || this.result) && this.nextTask(e.ignoreCycle)) : stop() } , Object.defineProperty(e.prototype, "pause", { get: function() { return this.isPaused }, set: function(e) { e && !this.isPaused ? this.isPaused = !0 : this._tasks[0] && this.isPaused && (this.isPaused = !1) }, enumerable: !0, configurable: !0 }), e.prototype.tasksNum = function() { return this._tasks.length } , e.ALL_TASKS_DONE = "allTasksDone", e }() , Timer = function() { function s(e, t) { void 0 === t && (t = 0), this.delay = e, this.repeatCount = t, this.next = this.prev = null, this.containerId = -1, this.currentCount = 0 } return s.Init = function() { s.TimerHeads = new Array(this.MAX_TIMES), s.CurFrame = 0 } , s.Process = function(e) { for (var t = 0; t < e; t++, s.CurFrame++) for (var i = s.CurFrame % s.MAX_TIMES; null != s.TimerHeads[i]; ) { var r = s.TimerHeads[i]; if (0 == r.repeatCount || r.currentCount < r.repeatCount) { if (r.listeners) { for (var o = 0; o < r.listeners.length && (r.listeners[o].call(r.listenersContexts[o], null), s.TimerHeads[i] == r); o++) ; for (o = r.listeners.length - 1; 0 <= o; o--) r.listeners[o] || (r.listeners.splice(o, 1), r.listenersContexts.splice(o, 1)) } r.currentCount++ } r == s.TimerHeads[i] && (0 < r.repeatCount && r.currentCount >= r.repeatCount ? r.remove() : r.add(s.CurFrame + r.delay)) } } , Object.defineProperty(s.prototype, "delay", { get: function() { return this._delay }, set: function(e) { this._delay = e, this.running && (this.stop(), this.start()) }, enumerable: !0, configurable: !0 }), Object.defineProperty(s.prototype, "running", { get: function() { return 0 <= this.containerId }, enumerable: !0, configurable: !0 }), s.prototype.addEventListener = function(e, t) { if (this.listeners) for (var i = 0; i < this.listenersContexts.length; i++) if (this.listeners[i] == e) return; this.listeners || (this.listeners = new Array, this.listenersContexts = new Array), this.listeners.push(e), this.listenersContexts.push(t) } , s.prototype.removeListener = function(e) { for (var t = 0; t < this.listeners.length; t++) this.listeners[t] == e && (this.listeners[t] = null, this.listenersContexts[t] = null) } , s.prototype.start = function() { 0 <= this.containerId || this.add(this.delay + s.CurFrame) } , s.prototype.add = function(e) { 0 <= this.containerId && this.remove(), this.containerId = Math.round(e % s.MAX_TIMES), null == s.TimerHeads[this.containerId] ? ((s.TimerHeads[this.containerId] = this).prev = this).next = this : (this.prev = s.TimerHeads[this.containerId].prev, this.next = s.TimerHeads[this.containerId], s.TimerHeads[this.containerId].prev.next = this, s.TimerHeads[this.containerId].prev = this) } , s.prototype.remove = function() { 0 <= this.containerId && (this.next == this ? s.TimerHeads[this.containerId] == this && (s.TimerHeads[this.containerId] = null) : (this.prev.next = this.next, this.next.prev = this.prev, s.TimerHeads[this.containerId] == this && (s.TimerHeads[this.containerId] = this.next))), this.next = this.prev = null, this.containerId = -1 } , s.prototype.stop = function() { this.remove() } , s.prototype.reset = function() { this.currentCount = 0, this.stop() } , s.MAX_TIMES = 80001, s }() , TweenMax = function() { function u() { this.dummy = 0 } return u.Init = function(e) { u.game = e } , u.delayedCall = function(e, t, i) { var r = new u; return e *= 1e3, r.tween = this.game.add.tween(r).to({ dummy: 1 }, e, Phaser.Easing.Linear.None, !0), r.tween.onComplete.add(t, i), r } , u.to = function(e, t, i) { var r = new u , o = 0; i.delay && (o = i.delay, delete i.delay); var s = !1; i.yoyo && (s = i.yoyo, delete i.yoyo); var a = 0; i.repeat && (a = i.repeat, delete i.repeat); var n = 0; i.repeatDelay && (n = i.repeatDelay, delete i.repeatDelay); var h = null; i.onComplete && (h = i.onComplete, delete i.onComplete); var c = e; i.onCompleteContext && (c = i.onCompleteContext, delete i.onCompleteContext); var l = Phaser.Easing.Linear.None; if (i.ease) { var m = i.ease; "Linear.easeNone" == m ? l = Phaser.Easing.Linear.None : "Quad.easeOut" == m ? l = Phaser.Easing.Quadratic.Out : "Quad.easeIn" == m ? l = Phaser.Easing.Quadratic.In : "Back.easeOut" == m ? l = Phaser.Easing.Back.Out : "Back.easeIn" == m ? l = Phaser.Easing.Back.In : "Elastic.easeOut" == m ? l = Phaser.Easing.Elastic.Out : "Elastic.easeIn" == m && (l = Phaser.Easing.Elastic.In), delete i.ease } return r.tween = this.game.add.tween(e).to(i, 1e3 * t, l, !0, 1e3 * o, a, s), h && r.tween.onComplete.add(h, c), 0 != n && (r.tween.repeatDelay(1e3 * n), s && r.tween.yoyoDelay(1e3 * n)), r } , u.pauseAll = function() { u.game.tweens.pauseAll() } , u.resumeAll = function() { u.game.tweens.resumeAll() } , u.prototype.pause = function() { this.tween.pause() } , u.prototype.paused = function() { return this.tween.isPaused } , u.prototype.resume = function() { this.tween.resume() } , u.prototype.kill = function() { this.tween.stop() } , u }() , Vector2 = function() { function o(e, t) { void 0 === e && (e = 0), void 0 === t && (t = 0), this.x = e, this.y = t } return o.prototype.clone = function() { return new o(this.x,this.y) } , o.normal = function(e, t) { var i, r = Math.sqrt(e * e + t * t); return 1e-4 < r ? new o(e * (i = 1 / r),t * i) : new o(e,t) } , o.checkCollide = function(e, t, i) { return Math.abs(e.x - t.x) <= i && Math.abs(e.y - t.y) <= i } , o }() , WireBlock = function(t) { function e() { var e = t.call(this) || this; return e.Direction = "up", e.wireClip = new MovieClip("Wires"), e.wireClip.smoothed = !1, e.wireClip.scaleX = e.wireClip.scaleY = 1.05, e.stepCount = 0, e.wireType = 9, e.addChild(e.wireClip), e } return __extends(e, t), e.prototype.clipGo = function(e) { this.wireClip.gotoAndStop(e), this.wireType = e, this.stepCount++ } , e }(MovieClip) , Zombie = function() { function e(e, t) { void 0 === t && (t = 0), this.zombieStatus = "silent", this.stunStars = new MovieClip("StunStars"), this.stunProgress = new MovieClip("StunProgress"), this.enemySign = new MovieClip("EnemySigns"), this.bobDetected = !1, this.enemyAction = "walk", this.enemyLastDirrection = "left", this.DistancePassed = 0, this.DistancePassedAlarm = 0, this.cutDownTimer = new Timer(4e3,0), this.stopWalkTimer = new Timer(1e3,0), this.prepareWarningTimer = new Timer(1500,0), this.prepareWarningWalkTimer = new Timer(1500,0), this.stopWarningWalkTimer = new Timer(1500,0), this.shockTimer = new Timer(1e3,0), this.stunProgressTimer = new Timer(150,0), this.stunProgressTimerEnd = new Timer(500,0), this.countDownAlertTimer = new Timer(2e3,0), this.countDelay = new Timer(1e3,0), this.pastDelay = 0, this.roarTimer = new Timer(1e3,0), this.roarBegin = !0, this.enemyClip = e, this.bbody = new Phaser.Rectangle(-10,-7,20,17), e.registerAnimation("stand", 1), e.registerAnimation("standR", 2), e.registerAnimation("standL", 3), e.registerAnimation("walkR", 4, 15), e.registerAnimation("walkL", 16, 27), e.registerAnimation("alarmR", 28, 39), e.registerAnimation("alarmL", 41, 51), this.biteStart = 52, e.registerAnimation("biteR", 52, 60, -1, !1), e.registerAnimation("biteL", 61, 69, -1, !1), this.biteEnd = 69, e.registerAnimation("alarm_walkR", 70, 81), e.registerAnimation("alarm_walkL", 82, 93), this.alarmStart = 94, e.registerAnimation("alarm_stand", 94, 137), this.alarmEnd = 137, e.registerAnimation("stunR", 138), e.registerAnimation("stunL", 139), e.registerAnimation("stunR2", 140), e.registerAnimation("stunL2", 141), this.enemyType = "[object Zombieman]", this.zombieStatus = "silent", this.DistancePassed = t, "left" == this.enemyClip.params.Direction ? (this.rightPosition = this.enemyClip.x + this.DistancePassed, this.leftPosition = this.enemyClip.x - this.enemyClip.params.Distance + this.DistancePassed, this.enemyLastDirrection = "right") : (this.leftPosition = this.enemyClip.x - this.DistancePassed, this.rightPosition = this.enemyClip.x + this.enemyClip.params.Distance - this.DistancePassed, this.enemyLastDirrection = "left"), this.stopWalkTimer.delay = this.enemyClip.params.StopMoveWaitTime, this.enemyClip.addEventListener(this.checkFrame, this), this.cutDownTimer.addEventListener(this.stunnedEnd, this), this.stopWalkTimer.addEventListener(this.stopWalkEnd, this), this.prepareWarningTimer.addEventListener(this.warningStart, this), this.prepareWarningWalkTimer.addEventListener(this.warningWalkStart, this), this.stopWarningWalkTimer.addEventListener(this.stopWarningWalkEnd, this), this.shockTimer.addEventListener(this.shockEnemyEnd, this), this.stunProgressTimer.addEventListener(this.stunProgressGo, this), this.countDelay.addEventListener(this.delayCount, this), this.roarTimer.addEventListener(this.roarTimerEnd, this), this.countDownAlertTimer.addEventListener(this.countSecondsAlert, this), this.enemyClip.addChild(this.stunStars), this.enemyClip.addChild(this.stunProgress), this.stunStars.visible = !1, this.stunProgress.visible = !1, this.enemyShock = new MovieClip("EnemyShock"), this.soundEnemyAlarm = "SZombieAlarm", this.soundEnemyOut = "SZombieOut", this.soundEnemyWarn = "SZombieWarn", this.soundEnemyBite = "SZombieOut", this.prepareWarningTimer.delay = 500, this.stunStars.y -= 20, this.cash = 50 } return e.prototype.delayCount = function(e) { this.pastDelay += 1e3 } , e.prototype.countSecondsAlert = function(e) { this.countDownAlertTimer.stop(), this.zombieStatus = "silent" } , e.prototype.roarTimerEnd = function(e) { this.roarTimer.stop(), this.roarBegin = !0 } , e.prototype.stunProgressGo = function(e) { this.stunProgress.gotoAndStop(Math.min(100, this.stunProgress.currentFrame + 10)), 100 == this.stunProgress.currentFrame && (this.stunProgressTimer.stop(), this.stunProgress.visible = !1, this.stunStars.visible = !1, this.enemyClip.addEventListener(this.checkFrame, this), this.wakeUpFromStunned()) } , e.prototype.stunProgressEnd = function(e) { this.stunProgressTimerEnd.stop(), this.stunProgress.visible = !1, this.enemyClip.addEventListener(this.checkFrame, this), this.wakeUpFromStunned() } , e.prototype.shockEnemyEnd = function(e) { this.shockTimer.stop(), GameplayState.Instance.gameScreen.contains(this.enemyShock) && GameplayState.Instance.gameScreen.removeChild(this.enemyShock), this.enemyClip.visible = !0, this.stunnedBegin() } , e.prototype.warningWalkStart = function(e) { this.prepareWarningWalkTimer.stop(), this.enemyAction = "warning_walk" } , e.prototype.warningStart = function(e) { this.prepareWarningTimer.stop(), this.bobCoor = GameplayState.Instance.getBobCoor(), SoundManager.getInstance().playSound(this.soundEnemyAlarm), this.enemyAction = "zombieAttack", this.DistancePassedAlarm = 0, this.bobCoor = GameplayState.Instance.getBobCoor(), this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20, this.zombieStatus = "alert", this.enemySign.gotoAndStop(3) } , e.prototype.stopWarningWalkEnd = function(e) { this.stopWarningWalkTimer.stop(), "alert" != this.zombieStatus && (this.enemyAction = "walk") } , e.prototype.stopWalkEnd = function(e) { this.stopWalkTimer.stop(), this.enemyAction = "walk" } , e.prototype.stunnedEnd = function(e) { this.cutDownTimer.stop(), this.stunProgressTimer.stop(), this.countDelay.stop(), this.pastDelay = 0, this.stunStars.visible = !1 } , e.prototype.wakeUpFromStunned = function(e) { void 0 === e && (e = "stun"), "stun" == e ? (this.enemyAction = "seeAbout", this.enemyClip.gotoLabel("alarm_stand"), this.enemySign.gotoAndStop(2)) : ("warning" != this.zombieStatus && "silent" != this.zombieStatus || (this.enemyAction = "walk"), "alert" == this.zombieStatus && (this.enemySign.gotoAndStop(3), this.enemyAction = "waitForWarningWalk")) } , e.prototype.stunnedBegin = function() { this.enemySign.gotoAndStop(1), this.prepareWarningTimer.stop(), this.stopWalkTimer.stop(), this.cutDownTimer.stop(), this.enemyClip.removeEventListener(this.checkFrame), SoundManager.getInstance().playSound(this.soundEnemyOut), this.cutDownTimer.start(), .5 < 1 * Math.random() ? "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("stunR") : this.enemyClip.gotoLabel("stunL") : "left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("stunR2") : this.enemyClip.gotoLabel("stunL2"), this.stunStars.visible = !0, this.stunStars.playLoop(), this.stunProgress.visible = !0, this.stunProgress.gotoAndStop(1), this.stunProgressTimer.delay = this.cutDownTimer.delay / 20, this.stunProgressTimer.start(), this.countDelay.start(), this.enemyAction = "stun" } , e.prototype.checkFrame = function(e) { if (this.isBobDetected() ? (this.countDownAlertTimer.stop(), "silent" != this.zombieStatus || this.prepareWarningTimer.running || (this.enemySign.gotoAndStop(2), this.prepareWarningTimer.start(), this.zombieStatus = "warning", SoundManager.getInstance().playSound(this.soundEnemyWarn)), "warning" == this.zombieStatus && (this.enemySign.gotoAndStop(2), this.prepareWarningTimer.running || (this.prepareWarningTimer.start(), SoundManager.getInstance().playSound(this.soundEnemyWarn))), "alert" == this.zombieStatus && this.enemySign.gotoAndStop(3)) : ("alert" == GameplayState.Instance.gameStatus && (this.zombieStatus = "alert", this.enemySign.gotoAndStop(2), this.enemyAction = "waitForWarningWalk"), "silent" == this.zombieStatus && "stun" != this.enemyAction && "warning_walk" != this.enemyAction && 1 != this.enemySign.currentFrame && this.resetEnemyAfterAlert(), "warning" == this.zombieStatus && this.resetEnemyAfterAlert(), "alert" == this.zombieStatus && (this.countDownAlertTimer.start(), "alarm_walk" != this.enemyAction && "stun" != this.enemyAction && (this.bobCoor = GameplayState.Instance.getBobCoor(), this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20, this.setSearchBobMode()))), this.isBobDetected() && ("warning" == this.zombieStatus && "zombieAttack" != this.enemyAction && ("left" == this.enemyLastDirrection ? this.enemyClip.gotoLabel("standR") : this.enemyClip.gotoLabel("standL")), "alert" == this.zombieStatus && (this.bobCoor.x < this.enemyClip.x ? this.enemyLastDirrection = "right" : this.enemyLastDirrection = "left", this.enemySign.gotoAndStop(3), this.enemyAction = "zombieAttack", this.roarBegin && (SoundManager.getInstance().playSound(this.soundEnemyAlarm), this.roarTimer.start(), this.roarBegin = !1))), "seeAbout" == this.enemyAction) { var t = this.enemyClip.currentFrame - this.alarmStart + 1; this.enemyLastDirrection = 1 <= t && t < 23 ? "left" : "right", 43 < t && (this.zombieStatus = "silent", this.wakeUpFromStunned("endSeeAbout")) } "walk" != this.enemyAction || this.bobDetected || ("left" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("walkR"), this.enemyClip.x += 1, this.DistancePassed += 1, this.enemySign.x = this.enemyClip.x), "right" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("walkL"), this.enemyClip.x -= 1, this.DistancePassed -= 1, this.enemySign.x = this.enemyClip.x), ("right" == this.enemyLastDirrection && this.enemyClip.x <= this.leftPosition || "left" == this.enemyLastDirrection && this.enemyClip.x >= this.rightPosition) && (this.DistancePassed = 0, "left" == this.enemyLastDirrection ? this.enemyLastDirrection = "right" : this.enemyLastDirrection = "left", this.enemyAction = "stand", this.enemyClip.gotoLabel(this.enemyAction), this.stopWalkTimer.start())), "waitForWarningWalk" != this.enemyAction || this.bobDetected || (this.enemyClip.gotoLabel("alarm_stand"), this.enemySign.gotoAndStop(2)), "zombieAttack" == this.enemyAction && ("left" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("alarm_walkR"), this.enemyClip.x += 3, this.DistancePassedAlarm += 3, this.DistancePassed += 3, this.enemySign.x = this.enemyClip.x), "right" == this.enemyLastDirrection && (this.enemyClip.gotoLabel("alarm_walkL"), this.enemyClip.x -= 3, this.DistancePassedAlarm -= 3, this.DistancePassed -= 3, this.enemySign.x = this.enemyClip.x), (Math.abs(this.DistancePassedAlarm) >= this.bobDetectedPoint || Math.abs(this.DistancePassed) >= this.enemyClip.params.Distance) && (this.enemyAction = "waitForWarningWalk", this.stopWarningWalkTimer.start())), !GameplayState.Instance.isBobHide() && OzUtil.HitTest(GameplayState.Instance.theBob.bClip, GameplayState.Instance.theBob.bbody, this.enemyClip, this.bbody) && 0 == GameplayState.Instance.theBob.odorless && (GameplayState.Instance.theBob.strikeTimer.stop(), this.catchBob(), GameplayState.Instance.theBob.bobActive = !1) } , e.prototype.catchBob = function() { GameplayState.Instance.bobBitten = !0, this.enemyClip.removeEventListener(this.checkFrame), SoundManager.getInstance().playSound(this.soundEnemyBite), GameplayState.Instance.theBob.bClip.x > this.enemyClip.x ? this.enemyClip.gotoLabel("biteR") : this.enemyClip.gotoLabel("biteL"), this.enemyClip.addEventListener(this.biteUpdate, this) } , e.prototype.biteUpdate = function(e) { if (this.enemyClip.currentFrame < this.biteStart || this.enemyClip.currentFrame > this.biteEnd) this.enemyClip.removeEventListener(this.biteUpdate); else { var t = this.biteStart + (this.biteEnd - this.biteStart + 1) / 2; this.enemyClip.currentFrame != t - 1 && this.enemyClip.currentFrame != this.biteEnd || (GameplayState.Instance.totalAlerts = 4, this.enemyClip.removeEventListener(this.biteUpdate)) } } , e.prototype.isBobDetected = function(e) { if (void 0 === e && (e = !1), this.bobCoor = GameplayState.Instance.getBobCoor(), this.bobDetected = !1, "stun" == this.enemyAction || "shock" == this.enemyAction) return !1; if (GameplayState.Instance.isBobHide()) return !1; if (this.bobCoor.x < this.rightPosition + 40 && this.bobCoor.x > this.leftPosition - 40 && Math.abs(this.enemyClip.y - this.bobCoor.y) < 30) { if ("left" == this.enemyLastDirrection && this.bobCoor.x > this.enemyClip.x) return this.bobDetected = !0, "seeAbout" == this.enemyAction && this.wakeUpFromStunned("endSeeAbout"), this.prepareWarningWalkTimer.stop(), this.stopWarningWalkTimer.stop(), this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20, !0; if ("right" == this.enemyLastDirrection && this.bobCoor.x < this.enemyClip.x) return this.bobDetected = !0, "seeAbout" == this.enemyAction && this.wakeUpFromStunned("endSeeAbout"), this.prepareWarningWalkTimer.stop(), this.stopWarningWalkTimer.stop(), this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20, !0; if (0 == e && (Math.abs(this.bobCoor.x - this.enemyClip.x) < 10 || "alert" == this.zombieStatus)) return "seeAbout" == this.enemyAction && this.wakeUpFromStunned("endSeeAbout"), this.bobDetected = !0, this.bobDetectedPoint = Math.abs(this.bobCoor.x - this.enemyClip.x) - 20, !0 } return !1 } , e.prototype.shockEnemy = function() { this.enemyClip.visible = !1, this.enemyAction = "shock", this.stopWalkTimer.stop(), this.enemyClip.removeEventListener(this.checkFrame), GameplayState.Instance.gameScreen.addChild(this.enemyShock), this.enemyShock.x = this.enemyClip.x, this.enemyShock.y = this.enemyClip.y, this.shockTimer.start() } , e.prototype.setSearchBobMode = function() { this.bobCoor = GameplayState.Instance.getBobCoor() } , e.prototype.resetEnemyAfterAlert = function() { 1 != this.enemySign.currentFrame && "seeAbout" != this.enemyAction && 0 == this.stunProgress.visible && (this.enemySign.gotoAndStop(1), this.prepareWarningTimer.stop(), this.enemyAction = "walk", this.zombieStatus) } , e.prototype.stopAnyActions = function() { this.enemyClip.removeEventListener(this.checkFrame), "stun" == this.enemyAction ? (this.stunProgressTimer.stop(), this.countDelay.stop()) : this.enemyClip.gotoLabel("stand") } , e.prototype.startActions = function() { this.enemyClip.addEventListener(this.checkFrame, this), "stun" == this.enemyAction && (this.cutDownTimer.delay - this.pastDelay <= 0 ? (this.pastDelay = 0, this.stunProgressTimer.delay = this.cutDownTimer.delay / 20) : this.stunProgressTimer.delay = (this.cutDownTimer.delay - this.pastDelay) / 20, this.stunProgressTimer.start(), this.countDelay.start()) } , e.prototype.dispose = function() { this.cutDownTimer.stop(), this.stopWalkTimer.stop(), this.prepareWarningTimer.stop(), this.prepareWarningWalkTimer.stop(), this.stopWarningWalkTimer.stop(), this.shockTimer.stop(), this.stunProgressTimer.stop(), this.enemyClip.removeEventListener(this.checkFrame), this.enemyClip = null } , e }() , GameplayState = function(b) { function v() { var e = null !== b && b.apply(this, arguments) || this; return e.PadLockTypes = ["GrayFront", "GrayLeft", "GrayRight", "GoldFront", "GoldLeft", "GoldRight"], e.MessageFullscreenFrames = ["codeLevel", "aboutCameras", "aboutLaser", "aboutRobot", "aboutTarget", "aboutDogs", "aboutCompCode", "aboutCompCode2", "aboutAmbal", "aboutZombies", "aboutSecurity", "aboutBob", "aboutTimeBomb"], e.canHitDir = 0, e.lastFramePointerDown = !1, e.thisFramePointerDown = !1, e.processClick = !1, e } return __extends(v, b), v.prototype.changeClimbingDir = function() { "climb" != this.theBob.BobAction && "stay2" != this.theBob.BobAction || (Input.getInstance().isDoing("up") || Input.getInstance().isDoing("down") ? (Input.getInstance().setDoing(0, "up", !1), Input.getInstance().setDoing(0, "down", !1)) : -1 == this.lastClimbDir ? (Input.getInstance().setDoing(0, "up", !1), Input.getInstance().setDoing(0, "down", !0), this.lastClimbDir = 1) : (Input.getInstance().setDoing(0, "up", !0), Input.getInstance().setDoing(0, "down", !1), this.lastClimbDir = -1)) } , v.prototype.bubbleTouch = function() { if (this.heroBubble.visible && this.heroCanWalkOrWork()) { this.stopWalking(!1), this.mobileWork = !0; var e = this.heroBubble.currentFrame; e < 10 ? (Input.getInstance().setDoing(0, "up", !0), 9 == e && (this.lastClimbDir = -1)) : 10 == e && (Input.getInstance().setDoing(0, "down", !0), 10 == e && (this.lastClimbDir = 1)) } } , v.prototype.stopWorking = function(e) { void 0 === e && (e = !0), Game.Touch() && (this.mobileWork = !1, e && (8 == this.heroBubble.currentFrame && Input.getInstance().isDoing("up") && this.ozKeyReleased("up"), Input.getInstance().setDoing(0, "up", !1), Input.getInstance().setDoing(0, "down", !1))) } , v.prototype.stopWalking = function(e) { void 0 === e && (e = !0), e && this.stopWorking(), this.mobileWalk = 0, Game.Touch() && (Input.getInstance().setDoing(0, "left", !1), Input.getInstance().setDoing(0, "right", !1), v.HeroCross.visible = !1) } , v.prototype.startWalking = function(e, t) { var i = e - this.theBob.bClip.x; 3 < Math.abs(i) && (this.stopWorking(), v.WalkTargetX = e, v.WalkTargetY = this.theBob.bClip.y, v.HeroCross.visible = !0, Game.AdjustCross(), this.mobileWalk = i < 0 ? -1 : 1, this.mobileWalk < 0 ? Input.getInstance().setDoing(0, "right", !1) : Input.getInstance().setDoing(0, "left", !1)) } , v.prototype.heroCanWalkOrWork = function() { return this.keyListeners && this.updateListener } , v.HideMobileGUI = function() { v.HeroCross && (v.HeroCross.visible = !1) } , v.ShowMobileGUI = function() { v.HeroCross && (v.HeroCross.visible = 0 != v.Instance.mobileWalk) } , v.prototype.adjustHeroBubble = function() { Game.Touch() && this.heroBubble.setxy(this.theBob.bClip.x - 28, this.theBob.bClip.y - 84) } , v.prototype.initVars = function() { this.lastFramePointerDown = !1, this.thisFramePointerDown = !1, this.processClick = !1, this.lastCanHit = 0, this.mobileWalk = 0, this.lastClimbDir = 0, this.mobileWork = !1, this.gameScreen = new MovieClip, this.effectsScreen = new MovieClip, this.messageScreen = new MovieClip, this.computerPanels = new Array, this.minigameBlocks = new Array, this.textCode = "", this.theBob = new BobHero, this.gameStatus = "silent", this.alertTime = 700, this.totalAlerts = 0, this.currentAlerts = 0, this.alertBegin = !1, this.holeX = 0, this.signHoleX = 1, this.doorBreakFail = !1, this.stairs = new Array, this.floors = new Array, this.walls = new Array, this.doors = new Array, this.sidedoors = new Array, this.elevators = new Array, this.padlocks = new Array, this.codelocks = new Array, this.transBoxes = new Array, this.lasers = new Array, this.lattices = new Array, this.turrets = new Array, this.shadows = new Array, this.cameras = new Array, this.enemies = new Array, this.zombies = new Array, this.zombiesBack = new Array, this.moneyHides = new Array, this.tipsHides = new Array, this.messages = new Array, this.wires = new Array, this.wireLengthArray = [0, 0, 0], this.signalsEnd = new Array, this.holeMoveTimer = new Timer(600,0), this.codeEnteredTimer = new Timer(500,0), this.padlockOpenTimer = new Timer(400,0), this.stopwatchTimer = new Timer(1e3,0), this.countDownAlertTimer = new Timer(100,0), this.closeElectricPanelTimer = new Timer(500,0), this.closeTerminalTimer = new Timer(500,0), this.bobTimerLeft = new Timer(80), this.bobTimerRight = new Timer(80), this.bobTimerUp = new Timer(80), this.bobTimerTerminal = new Timer(5), this.bustedTimer = new Timer(2e3), this.winLevelTimer = new Timer(2e3,0), this.levelHideTimer = new Timer(300,0), this.levelShowTimer = new Timer(500,0), this.levelShowMapTimer = new Timer(500,0), this.GameplayStatemenuShowTimer = new Timer(500,0), this.scoreCountTimer = new Timer(80,0), this.scoreCountDelayTimer = new Timer(500,0), this.salerTimer = new Timer(700,0), this.mapTimer = new Timer(300,0), this.padLeftKey = !1, this.padRightKey = !1, this.leftKey = !1, this.rightKey = !1, this.downKey = !1, this.upKey = !1, this.spaceKey = !1, this.reverseKey = "", this.leftPrev = this.rightPrev = this.upPrev = this.downPrev = this.spacePrev = !1, this.escapePrev = this.backspacePrev = this.rPrev = this.pPrev = !1, this.zPrev = this.xPrev = this.cPrev = !1, this.digitPrev = new Array(10); for (var e = 0; e < 10; e++) this.digitPrev[e] = !1; this.bonusType = "", this.zxcType = 0, this.scores = new StarsAndScores, Fabrique.PauseHandler.getInstance().onPauseCallback.add(this.pauseGame, this, 1, "blur") } , v.prototype.shutdown = function() { Fabrique.PauseHandler.getInstance().onPauseCallback.remove(this.pauseGame, this) } , v.prototype.refreshWorld = function() { this.stairs.length = 0, this.floors.length = 0, this.walls.length = 0, this.doors.length = 0, this.sidedoors.length = 0, this.elevators.length = 0, this.cameras.length = 0, this.padlocks.length = 0, this.codelocks.length = 0, this.messages.length = 0, this.enemies.length = 0, this.zombies.length = 0, this.zombiesBack.length = 0, this.moneyHides.length = 0, this.tipsHides.length = 0, this.transBoxes.length = 0, this.lasers.length = 0, this.lattices.length = 0, this.turrets.length = 0, this.shadows.length = 0, this.wires.length = 0, this.computerPanels.length = 0, this.blades = null, this.terminalPanel = null } , v.prototype.buildInterface = function() { var t = this; (v.Instance = this).currentLevelNumber = v.currentLevel, this.messageFullScreen = new MovieClip("MessageFullScreen"), this.iPanel = new MovieClip("InformationPanel"), this.iPanel.getChild("notsound").makeSoundButton(!1), this.iPanel.getChild("notmusic").makeMusicButton(!1), this.iPanel.getChild("restart").makeButton(function() { Fabrique.AdHandler.getInstance().showAd("restart", function() { t.restartGame(null) }) }, !0, this, !0, !1), this.iPanel.getChild("pause").makeButton(function() { t.pauseGame("button") }, !0, this, !0, !1), this.iPanel.getChild("zbutton").gotoAndStop(Game.bobZButton + 1), this.iPanel.getChild("xbutton").gotoAndStop(Game.bobXButton + 1), this.iPanel.getChild("cbutton").gotoAndStop(Game.bobCButton + 1), this.iPanel.getChild("zbutton").makeButton(function() { t.ozSelectBonus("z") }, !1, this, !1, !0, !0), this.iPanel.getChild("xbutton").makeButton(function() { t.ozSelectBonus("x") }, !1, this, !1, !0, !0), this.iPanel.getChild("cbutton").makeButton(function() { t.ozSelectBonus("c") }, !1, this, !1, !0, !0), this.iPanel.getChild("zxc").visible = !Game.Touch(), this.messageFullScreen = new MovieClip("MessageFullScreen"), this.messageFullScreen.getChild("dc1").fatherBrother("dc2"), this.messageFullScreen.getChild("dc1").fatherBrother("dc3"), this.messageFullScreen.getChild("dc1").fatherBrother("dc4"), this.codePanel = new MovieClip("CodeWindow"); for (var e = function(e) { i.codePanel.getChild("k" + e).makeButton(function() { t.pressCodeButton(e) }, !1, i, !1, !1, !0, !1), i.codePanel.getChild("k" + e).addButtonUpFunc(function() { t.releaseCodeButton(e) }, i), i.codePanel.getChild("k" + e).changeButtonFrameOffset(2 * e) }, i = this, r = 0; r < 10; r++) e(r); Game.Touch() ? this.codePanel.getChild("close").makeButton(function() { t.ozKeyPressed("escape"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1) : this.codePanel.getChild("close").visible = !1, this.padlockPanel = new MovieClip("PadlockPanel"), Game.Touch() ? (this.padlockPanel.getChild("close").makeButton(function() { t.ozKeyPressed("escape"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.padlockPanel.getChild("left").makeButton(function() { t.ozKeyPressed("left") }, !1, this, !1, !0, !0, !1), this.padlockPanel.getChild("left").addButtonUpFunc(function() { t.ozKeyReleased("left") }, this), this.padlockPanel.getChild("up").makeButton(function() { t.ozKeyPressed("up") }, !1, this, !1, !0, !0, !1), this.padlockPanel.getChild("up").addButtonUpFunc(function() { t.ozKeyReleased("up") }, this), this.padlockPanel.getChild("right").makeButton(function() { t.ozKeyPressed("right") }, !1, this, !1, !0, !0, !1), this.padlockPanel.getChild("right").addButtonUpFunc(function() { t.ozKeyReleased("right") }, this)) : (this.padlockPanel.getChild("left").visible = !1, this.padlockPanel.getChild("up").visible = !1, this.padlockPanel.getChild("right").visible = !1, this.padlockPanel.getChild("close").visible = !1), this.wiresPanel = new MovieClip("TransformationPanel"), Game.Touch() ? (this.wiresPanel.getChild("tip").gotoAndStop(2), this.wiresPanel.getChild("close").makeButton(function() { t.ozKeyPressed("escape"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.wiresPanel.getChild("g").makeButton(function() { t.wiresPanel.getChild("nippers").x = 200, t.currentCutWire = 1, t.ozKeyPressed("space"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.wiresPanel.getChild("b").makeButton(function() { t.wiresPanel.getChild("nippers").x = 280, t.currentCutWire = 2, t.ozKeyPressed("space"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.wiresPanel.getChild("o").makeButton(function() { t.wiresPanel.getChild("nippers").x = 360, t.currentCutWire = 3, t.ozKeyPressed("space"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1)) : (this.wiresPanel.getChild("g").visible = !1, this.wiresPanel.getChild("b").visible = !1, this.wiresPanel.getChild("o").visible = !1, this.wiresPanel.getChild("close").visible = !1), this.wiresPanel2 = new MovieClip("TransformationPanel"), Game.Touch() ? (this.wiresPanel2.getChild("tip").gotoAndStop(2), this.wiresPanel2.getChild("close").makeButton(function() { t.ozKeyPressed("escape"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.wiresPanel2.getChild("g").makeButton(function() { t.wiresPanel2.getChild("nippers").x = 200, t.currentCutWire = 1, t.ozKeyPressed("space"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.wiresPanel2.getChild("b").makeButton(function() { t.wiresPanel2.getChild("nippers").x = 280, t.currentCutWire = 2, t.ozKeyPressed("space"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.wiresPanel2.getChild("o").makeButton(function() { t.wiresPanel2.getChild("nippers").x = 360, t.currentCutWire = 3, t.ozKeyPressed("space"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1)) : (this.wiresPanel2.getChild("g").visible = !1, this.wiresPanel2.getChild("b").visible = !1, this.wiresPanel2.getChild("o").visible = !1, this.wiresPanel2.getChild("close").visible = !1), this.terminalScreen = new MovieClip("miniGame"), this.terminalScreenFrame = -1, Game.Touch() ? (this.terminalScreen.getChild("close").makeButton(function() { t.ozKeyPressed("escape"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.terminalScreen.getChild("up").makeButton(function() { t.ozKeyPressed("up") }, !1, this, !1, !0, !0, !1), this.terminalScreen.getChild("down").makeButton(function() { t.ozKeyPressed("down") }, !1, this, !1, !0, !0, !1), this.terminalScreen.getChild("left").makeButton(function() { t.ozKeyPressed("left") }, !1, this, !1, !0, !0, !1), this.terminalScreen.getChild("right").makeButton(function() { t.ozKeyPressed("right") }, !1, this, !1, !0, !0, !1)) : (this.terminalScreen.getChild("close").visible = !1, this.terminalScreen.getChild("up").visible = !1, this.terminalScreen.getChild("down").visible = !1, this.terminalScreen.getChild("left").visible = !1, this.terminalScreen.getChild("right").visible = !1), this.computerScreen = new MovieClip("ComputerScreen"), Game.Touch() ? (this.computerScreen.getChild("close").makeButton(function() { t.ozKeyPressed("escape"), t.thisFramePointerDown = !0 }, !1, this, !1, !0, !0, !1), this.computerScreen.getChild("up").makeButton(function() { t.ozKeyPressed("up") }, !1, this, !1, !0, !0, !1), this.computerScreen.getChild("down").makeButton(function() { t.ozKeyPressed("down") }, !1, this, !1, !0, !0, !1)) : (this.computerScreen.getChild("up").visible = !1, this.computerScreen.getChild("down").visible = !1, this.computerScreen.getChild("close").visible = !1), this.panicTime = new MovieClip("IndicatorPanic"), this.panicTime.getChild("PanicaLight").playLoop(), this.pauseScreen = new MovieClip("PauseScreen"), this.pauseScreen.getChild("back").makeButton(function() { Fabrique.AdHandler.getInstance().showAd("gameLose_replay", function() { t.gotoGame(null) }) }, !0, this, !0, !1), h5branding.Branding.outGoingLinksAllowed() ? this.pauseScreen.getChild("walkthrough").makeButton(Game.walkthrough, !0, this, !0, !1, !0) : this.pauseScreen.getChild("walkthrough").visible = !1, this.pauseScreen.getChild("levels").makeButton(function() { Fabrique.AdHandler.getInstance().showAd("levels", function() { t.gotoLevelMap(null) }) }, !0, this, !0, !1), this.pauseScreen.getChild("bg").inputEnabled = !0, this.levelFailScreen = new MovieClip("FailScreen"), this.levelFailScreen.getChild("replay").makeButton(function() { Fabrique.AdHandler.getInstance().showAd("gameLose_replay", function() { t.restartGame(null) }) }, !0, this, !0, !1), this.levelFailScreen.getChild("levelmenu").makeButton(function() { Fabrique.AdHandler.getInstance().showAd("levels", function() { t.gotoLevelMapScreen(null) }) }, !0, this, !0, !1), this.levelFailScreen.getChild("bg").inputEnabled = !0, this.levelWinScreen = new MovieClip("WinLevelScreen"), this.levelWinScreen.getChild("replay").makeButton(function() { Fabrique.AdHandler.getInstance().showAd("gameWin_replay", function() { t.restartGame(null) }) }, !0, this, !0, !1), this.levelWinScreen.getChild("continuelev").makeButton(function() { Fabrique.AdHandler.getInstance().showAd("continue", function() { t.gotoNextLevel(null) }) }, !0, this, !0, !1), this.levelWinScreen.getChild("time").cloneMeToChildren(3, 28), this.levelWinScreen.getChild("score").fatherBrother("time"), this.levelWinScreen.getChild("Money").cloneMeToChildren(3, 28), this.levelWinScreen.getChild("score").fatherBrother("Money"), this.levelWinScreen.getChild("trevoga").cloneMeToChildren(2, 28), this.levelWinScreen.getChild("score").fatherBrother("trevoga"), this.levelWinScreen.getChild("total").cloneMeToChildren(4, 28), this.levelWinScreen.getChild("score").fatherBrother("total"), this.levelWinScreen.getChild("newsChannel").fatherBrother("newsHead"), this.levelWinScreen.getChild("bg").inputEnabled = !0, this.gameTip = new MovieClip("GameTips"), this.gameTip.visible = !1, this.addChild(this.iPanel), this.addChild(this.gameScreen), Game.Touch() && (this.heroBubble = new MovieClip("guiBubble",0,0,"bubble"), this.heroBubble.makeButton(this.bubbleTouch, !1, this, !1, !1, !0, !1), this.addChild(this.heroBubble), this.heroBubble.visible = !1, v.HeroCross || (v.HeroCross = new MovieClip("guiCross",0,0,"cross"), Game.getGame().stage.addChildAt(v.HeroCross, Game.getGame().stage.children.length - 1))), this.addChild(this.messageScreen), this.addChild(this.pauseScreen), this.pauseScreen.visible = !1, this.addChild(this.levelFailScreen), this.levelFailScreen.visible = !1, this.addChild(this.levelWinScreen), this.levelWinScreen.visible = !1, this.messageScreen.addChild(this.panicTime), this.messageScreen.addChild(this.messageFullScreen), this.messageFullScreen.visible = !1, this.messageScreen.addChild(this.codePanel), this.messageScreen.addChild(this.padlockPanel), this.messageScreen.addChild(this.wiresPanel), this.messageScreen.addChild(this.wiresPanel2), this.messageScreen.addChild(this.terminalScreen), this.messageScreen.addChild(this.computerScreen), this.panicTime.x = 570, this.panicTime.y = 70, this.codePanel.visible = !1, this.padlockPanel.visible = !1, this.wiresPanel.visible = !1, this.wiresPanel2.visible = !1, this.terminalScreen.visible = !1, this.computerScreen.visible = !1, this.salerSpeak = !0, this.holeMoveTimer.addEventListener(this.setHoleX, this), this.padlockOpenTimer.addEventListener(this.padlockOpened, this), this.codeEnteredTimer.addEventListener(this.codeEntered, this), this.stopwatchTimer.addEventListener(this.countSeconds, this), this.countDownAlertTimer.addEventListener(this.countSecondsAlert, this), this.closeElectricPanelTimer.addEventListener(this.electricPanelClose, this), this.closeTerminalTimer.addEventListener(this.terminalScreenClose, this), this.bobTimerLeft.addEventListener(this.bobTimerLeftEnd, this), this.bobTimerRight.addEventListener(this.bobTimerRightEnd, this), this.bobTimerUp.addEventListener(this.bobTimerUpEnd, this), this.bobTimerTerminal.addEventListener(this.bobTimerTerminalEnd, this), this.bustedTimer.addEventListener(this.bustedTimerEnd, this), this.winLevelTimer.addEventListener(this.winLevelTimerEnd, this), this.scoreCountTimer.addEventListener(this.scoreCountPlay, this), this.scoreCountDelayTimer.addEventListener(this.scoreCountDelayPlay, this), this.panicTime.visible = !1 } , v.prototype.tvUpdateTimeScore = function(e) { OzUtil.MakeDigits(e, this.levelWinScreen.getChild("score").getChild("time").meAndMyKids(), !0, !0), this.tvTotalScore = e } , v.prototype.tvUpdateTotalScore = function(e) { OzUtil.MakeDigits(e, this.levelWinScreen.getChild("score").getChild("total").meAndMyKids(), !0, !0), this.tvTotalScore = e } , v.prototype.scoreCountDelayPlay = function(e) { this.scoreCountDelayTimer.stop(), this.scoreCountTimer.start() } , v.prototype.scoreCountPlay = function(e) { "scoreStars" != this.currentSpin ? SoundManager.getInstance().playSound("SScoreSpin", 0, null, null) : SoundManager.getInstance().playSound("SButtonWizzz", 0, null, null), "scoreStars" == this.currentSpin && (this.levelStarsGet - 2 >= this.levelScore ? (this.levelWinScreen.getChild("gStar" + this.levelScore).playOnce(), this.levelScore++) : this.scoreCountTimer.stop()), "scoreAlarm" == this.currentSpin && (this.currentAlerts != 4 - this.totalAlerts ? (this.levelScore += 20, this.currentAlerts += 1, OzUtil.MakeDigits(this.currentAlerts, this.levelWinScreen.getChild("score").getChild("trevoga").meAndMyKids(), !0, !0), this.tvUpdateTotalScore(this.tvTotalScore + 20)) : (this.levelScore = 1, this.currentSpin = "scoreStars", this.scoreCountTimer.stop(), this.scoreCountDelayTimer.start())), "scoreMoney" == this.currentSpin && (this.levelScore >= this.moneyCollected || this.moneyCollected <= 10 ? (this.levelScore = 0, OzUtil.MakeDigits(this.moneyCollected, this.levelWinScreen.getChild("score").getChild("Money").meAndMyKids(), !0, !0), this.tvUpdateTotalScore(this.tvTimeScore + this.moneyCollected), this.currentSpin = "scoreAlarm", this.currentAlerts = 0, this.scoreCountTimer.stop(), this.scoreCountDelayTimer.start()) : (this.levelScore += this.moneyCollected / 10, OzUtil.MakeDigits(this.levelScore, this.levelWinScreen.getChild("score").getChild("Money").meAndMyKids(), !0, !0), this.tvUpdateTotalScore(this.tvTimeScore + this.levelScore))), "scoreTime" == this.currentSpin && (1 == this.pastTime && (this.pastTime = 0), this.levelScore >= this.pastTime || this.pastTime <= 10 ? (this.levelScore = 0, this.tvUpdateTimeScore(this.pastTime), this.tvUpdateTotalScore(this.pastTime), this.currentSpin = "scoreMoney", this.scoreCountTimer.stop(), this.scoreCountDelayTimer.start()) : (this.levelScore += this.pastTime / 10, this.tvUpdateTimeScore(this.levelScore), this.tvUpdateTotalScore(this.levelScore))) } , v.prototype.ozShowAndSaveScore = function(e) { if (SoundManager.getInstance().stopSound("SAnnouncer"), this.levelWinScreen.removeEventListener(this.updateScoreCount), this.levelWinScreen.getChild("newsChannel").getChild("newsHead").gotoAndStop(75), this.levelWinScreen.getChild("stripes").visible = !1, this.levelWinScreen.getChild("newsChannel").visible = !1, this.levelWinScreen.getChild("score").visible = !0, this.levelStarsGet = this.scores.getStars(this.moneyCollected - this.scores.getTimeForStars(this.pastTime, this.currentLevelNumber) - .1 * this.scores.getMoney(this.currentLevelNumber) * this.totalAlerts, this.currentLevelNumber), this.pastTime = this.scores.getTime(this.pastTime, this.currentLevelNumber), Game.levelsScore[this.currentLevelNumber - 1] < this.pastTime + this.moneyCollected + .1 * this.scores.getMoney(this.currentLevelNumber) * (4 - this.totalAlerts) && (Game.levelsScore[this.currentLevelNumber - 1] = this.pastTime + this.moneyCollected + .1 * this.scores.getMoney(this.currentLevelNumber) * (4 - this.totalAlerts), Game.totalScore = Game.totalPoints()), Game.totalMoney += this.moneyCollected, OzUtil.MakeDigits(e ? Math.round(this.pastTime) : 0, this.levelWinScreen.getChild("score").getChild("time").meAndMyKids(!0), !0, !0), OzUtil.MakeDigits(e ? Math.round(this.moneyCollected) : 0, this.levelWinScreen.getChild("score").getChild("Money").meAndMyKids(!0), !0, !0), OzUtil.MakeDigits(e ? Math.round(4 - this.totalAlerts) : 0, this.levelWinScreen.getChild("score").getChild("trevoga").meAndMyKids(!0), !0, !0), OzUtil.MakeDigits(e ? Math.round(Game.levelsScore[this.currentLevelNumber - 1]) : 0, this.levelWinScreen.getChild("score").getChild("total").meAndMyKids(!0), !0, !0), 11 != this.currentLevelNumber && (Game.levelsStatus[this.currentLevelNumber] = "open"), Game.levelsStars[this.currentLevelNumber - 1] < this.levelStarsGet - 2 && (Game.levelsStars[this.currentLevelNumber - 1] = this.levelStarsGet - 2), 1 == this.iPanel.getChild("zbutton").currentFrame && 0 < Game.bobZButton && (Game.gameShopItems[Game.bobZButton - 1]--, Game.bobZButton = 0), 1 == this.iPanel.getChild("xbutton").currentFrame && 0 < Game.bobXButton && (Game.gameShopItems[Game.bobXButton - 1]--, Game.bobXButton = 0), 1 == this.iPanel.getChild("cbutton").currentFrame && 0 < Game.bobCButton && (Game.gameShopItems[Game.bobCButton - 1]--, Game.bobCButton = 0), Game.saveCookies(), e) for (var t = 1; t <= Game.levelsStars[this.currentLevelNumber - 1]; t++) this.levelWinScreen.getChild("gStar" + t).gotoAndStop(8); else this.currentSpin = "scoreTime", this.scoreCountTimer.start() } , v.prototype.gotoLevelMap = function(e) { this.switchState(states.LevelsState.Name) } , v.prototype.gotoLevelMapScreen = function(e) { this.switchState(states.LevelsState.Name, !1) } , v.prototype.gotoNextLevel = function(e) { this.levelWinScreen.getChild("newsChannel").getChild("newsHead").currentFrame < 75 ? this.ozShowAndSaveScore(!0) : (this.stopTheGame(), this.scoreCountTimer.stop(), this.iPanel.visible = !1, this.levelFailScreen.visible = !1, this.levelWinScreen.visible = !1, 2 == this.currentLevelNumber ? (states.LevelsState.To = "Shop", this.switchState(states.LevelsState.Name, !1)) : this.gotoLevelMapScreen(null)) } , v.prototype.panicTime_gotoAndStop = function(e) { this.panicTime.getChild("so").visible = this.panicTime.getChild("de").visible = this.panicTime.getChild("ed").visible = this.panicTime.getChild("PanicaDots").visible = e < 3, this.panicTime.getChild("PanicaLight").visible = 1 < e } , v.prototype.winLevelTimerEnd = function(e) { var t = this; this.winLevelTimer.stop(), this.stopTheGame(), this.restartKeyListener = !1, 10 == this.currentLevelNumber ? (this.mc = new MovieClip, this.addChild(this.mc), states.Story.MakeAnimation(this.mc, 4, 5, function() { t.showWin() }, this)) : this.showWin() } , v.prototype.showWin = function() { h5branding.gameanalytics.addProgressionEvent(h5branding.EGAProgressionStatus.Complete, v.currentLevel + ""), this.gameScreen.visible = !1, this.restartKeyListener = !0, this.levelWinScreen.getChild("stripes").playLoop(), this.levelWinScreen.getChild("newsChannel").getChild("newsHead").playOnce(), this.levelWinScreen.getChild("score").visible = !1, this.levelWinScreen.addEventListener(this.updateScoreCount, this), this.levelWinScreen.visible = !0, v.HideMobileGUI(), SoundManager.getInstance().playSound("SAnnouncer"), this.iPanel.visible = !1 } , v.prototype.updateScoreCount = function(e) { 75 == this.levelWinScreen.getChild("newsChannel").getChild("newsHead").currentFrame && this.ozShowAndSaveScore(!1) } , v.prototype.electricPanelClose = function(e) { this.closeElectricPanelTimer.stop(), this.wiresPanel.visible = !1, this.wiresPanel2.visible = !1, this.transBoxes[this.theBob.currentElectricPanelId].gotoAndStop(2), this.transBoxes[this.theBob.currentElectricPanelId].params.Locked = !1, this.wiresPanel.getChild("nippers").gotoAndStop(1), this.wiresPanel2.getChild("nippers").gotoAndStop(1), this.ActivateControls() } , v.prototype.terminalScreenClose = function(e) { this.closeTerminalTimer.stop(), this.terminalScreen.visible = !1, this.minigameBlocks.length = 0, this.ActivateControls() } , v.prototype.countSecondsAlert = function(e) { if (this.alertTime -= 10, this.calcAlertTime(), 0 == this.alertTime) { this.countDownAlertTimer.stop(), this.panicTime.visible = !1, this.gameStatus = "silent", this.alertBegin = !1; for (var t = 0; t < this.lattices.length; t++) this.lattices[t].gotoLabel("close"), this.lattices[t].params.Locked = !1; for (var i = 0; i < this.turrets.length; i++) this.turrets[i].gotoLabel("open"), this.turrets[i].params.Locked = !1 } } , v.prototype.calcAlertTime = function() { var e = Math.floor(this.alertTime / 1e3) , t = Math.floor((this.alertTime - 1e3 * e) / 100) , i = Math.floor((this.alertTime - 1e3 * e - 100 * t) / 10); this.panicTime.getChild("so").gotoAndStop(t + 1), this.panicTime.getChild("de").gotoAndStop(i + 1), this.panicTime.getChild("ed").gotoAndStop(this.alertTime - 100 * t - 10 * i + 1) } , v.prototype.countSeconds = function(e) { this.pastTime++, this.calcTime(), 10 == this.currentLevelNumber && this.gameTarget.visible && this.calcBombTime(150 - this.pastTime) } , v.prototype.calcBombTime = function(e) { var t, i; i = e % 60, t = Math.floor(e / 60) % 60, this.bombTimer.visible = !0, 0 <= e && (OzUtil.MakeDigits(t, [this.bombTimer.getChild("m1"), this.bombTimer.getChild("m2")], !0, !1), OzUtil.MakeDigits(i, [this.bombTimer.getChild("s1"), this.bombTimer.getChild("s2")], !1, !1)), 0 == e && (this.waterInfect.playOnce(), this.bustedTimer.start()) } , v.prototype.ozTail = function(e) { this.bobTail = new MovieClip(e), this.effectsScreen.addChild(this.bobTail), this.bobTail.x = this.theBob.bClip.x, this.bobTail.y = this.theBob.bClip.y, this.bobTail.addAnimation("play", 1, 15, -1, !1, this.bobTail.remove, this.bobTail), this.bobTail.gotoLabel("play") } , v.prototype.bobTimerLeftEnd = function(e) { this.bobTimerLeft.stop(), this.ozTail("BobTailLeft") } , v.prototype.bobTimerRightEnd = function(e) { this.bobTimerRight.stop(), this.ozTail("BobTailRight") } , v.prototype.bobTimerUpEnd = function(e) { this.bobTimerUp.stop(), this.ozTail("BobTailUp") } , v.prototype.bobTimerTerminalEnd = function(e) { 4 == this.terminalScreen.getChild("key").currentFrame && (this.bobTimerTerminal.stop(), this.terminalScreen.getChild("key").gotoAndStop(1), this.terminalScreen.getChild("key").x = this.terminalScreen.getChild("testKey").x, this.terminalScreen.getChild("key").y = this.terminalScreen.getChild("testKey").y, SoundManager.getInstance().playSound("SBeepKey"), this.terminalKeyMove()), OzUtil.HitTest(this.terminalScreen.getChild("key"), null, this.terminalScreen.getChild("target"), null) && (this.terminalPanel.params.Locked = !1, this.terminalScreen.getChild("key").visible = !1, this.terminalKeyListeners = !1, this.terminalScreen.getChild("target").gotoAndStop(2), this.bobTimerTerminal.stop(), this.closeTerminalTimer.start(), this.findDoorToOpen("terminal")) } , v.prototype.bustedTimerEnd = function(e) { h5branding.gameanalytics.addProgressionEvent(h5branding.EGAProgressionStatus.Fail, v.currentLevel + ""), this.bustedTimer.stop(), this.stopTheGame(), this.gameScreen.visible = !1, this.levelFailScreen.visible = !0, v.HideMobileGUI(), this.restartKeyListener = !0, this.iPanel.visible = !1 } , v.prototype.terminalKeyMove = function() { var e = !1; if (this.terminalScreen.getChild("testKey").x + 25 < 490 && "right" == this.keyDirection ? this.terminalScreen.getChild("testKey").x += 25 : this.terminalScreen.getChild("testKey").y + 25 < 360 && "down" == this.keyDirection ? this.terminalScreen.getChild("testKey").y += 25 : 160 < this.terminalScreen.getChild("testKey").x - 25 && "left" == this.keyDirection ? this.terminalScreen.getChild("testKey").x -= 25 : 100 < this.terminalScreen.getChild("testKey").y - 25 && "up" == this.keyDirection ? this.terminalScreen.getChild("testKey").y -= 25 : (SoundManager.getInstance().playSound("SAccessDenied"), this.changeMiniGameFrame(4), this.terminalScreen.getChild("key").visible = !1, this.terminalKeyListeners = !1, this.bobTimerTerminal.stop(), this.closeTerminalTimer.start()), 4 != this.terminalScreenFrame) { for (var t = 0; t < this.minigameBlocks.length; t++) OzUtil.HitTest(this.terminalScreen.getChild("testKey"), null, this.minigameBlocks[t], null) && ("left" == this.keyDirection && (this.terminalScreen.getChild("testKey").x += 25), "right" == this.keyDirection && (this.terminalScreen.getChild("testKey").x -= 25), "up" == this.keyDirection && (this.terminalScreen.getChild("testKey").y += 25), "down" == this.keyDirection && (this.terminalScreen.getChild("testKey").y -= 25), e = !0); e || (this.terminalScreen.getChild("key").gotoAndStop(1), this.terminalScreen.getChild("key").playOnce(), this.bobTimerTerminal.start()) } } , v.prototype.setHoleX = function(e) { this.signHoleX *= -1, this.holeX = 1 * Math.random() + 1 } , v.prototype.padlockOpened = function(e) { if (this.padlockOpenTimer.stop(), this.doorBreakFail) return this.padlockPanel.getChild("lockBase").getChild("duga").gotoAndStop(1), this.padlockPanel.getChild("lockBase").getChild("larva").gotoAndStop(1), this.padlockPanel.getChild("lockBase").getChild("pick").gotoAndStop(1), this.padlockPanel.visible = !1, this.padlockPanel.getChild("lockBase").getChild("pick").y = 187, void this.ActivateControls(); 1 < this.padlockPanel.getChild("lockBase").getChild("pick").currentFrame && null == this.twPadlockDuga ? (this.twPadlockDuga = TweenMax.to(this.padlockPanel.getChild("lockBase").getChild("duga"), .2, { y: -282 }), this.padlockPanel.getChild("lockBase").getChild("larva").gotoAndStop(this.padlockPanel.getChild("lockBase").getChild("larva").currentFrame + 1), SoundManager.getInstance().playSound("SUnlock"), this.padlockOpenTimer.start()) : null != this.twPadlockDuga && (this.twPadlockDuga.kill(), this.twPadlockDuga = null, this.padlockPanel.getChild("lockBase").getChild("duga").y = -222, this.padlockPanel.getChild("lockBase").getChild("larva").gotoAndStop(1), this.padlockPanel.getChild("lockBase").getChild("pick").gotoAndStop(1), this.padlockPanel.visible = !1, 1 == this.currentLevelNumber && (this.padlockPanel.getChild("tip").visible = !1), this.ActivateControls(), this.findDoorToOpen()) } , v.prototype.codeEntered = function(e) { this.codeEnteredTimer.stop(), this.textCode == this.theBob.currentDoorCode ? (this.findDoorToOpen("code"), this.codelocks[this.theBob.currentPadlockNumber].params.Locked = !1, SoundManager.getInstance().playSound("SAccessGranted")) : SoundManager.getInstance().playSound("SAccessDenied"), this.textCode = "", this.codePanel.visible = !1, this.ActivateControls() } , v.prototype.setMessageDoorCode = function(e) { OzUtil.MakeDigits(parseInt(e), this.messageFullScreen.getChild("dc1").meAndMyKids(), !1, !1) } , v.prototype.createLevel = function(e, t) { var a; void 0 === t && (t = "buttons"); var n; this.currentLevelNumber = e; for (var h, i = (a = new MovieClip("Level" + (e < 10 ? "0" : "") + e)).numChildren, r = function(e) { var t = a.getChildAt(0); if ("[object Poster]" == (n = "[object " + t.mc + "]")) c.poster = t, c.gameScreen.addChild(c.poster); else if ("[object bombTimer]" == n) t.visible = !1, c.bombTimer = t, c.gameScreen.addChild(c.bombTimer); else if ("[object WaterInfect]" == n) c.waterInfect = t, c.gameScreen.addChild(c.waterInfect); else if ("[object Level9Box]" == n) c.level9Box = t, c.gameScreen.addChild(c.level9Box); else if ("[object PrisonGift]" == n) c.prisonGift = t, c.gameScreen.addChild(c.prisonGift), c.prisonGift.visible = !1; else if ("[object Captive]" == n) c.captive = t, c.gameScreen.addChild(c.captive); else if ("[object ZombieBack]" == n) c.zombiesBack.push(t), c.gameScreen.addChild(t); else if ("[object GameTarget]" == n) t.playLoop(), c.gameTarget = t, c.gameScreen.addChild(c.gameTarget); else if ("[object GameExit]" == n) t.playLoop(), c.gameExit = t, c.gameScreen.addChild(c.gameExit), c.gameExit.visible = !1; else if ("[object Effects]" == n) c.effectsScreen = t, c.gameScreen.addChild(c.effectsScreen), t.addChild(c.theBob.lightning); else if ("[object Bob]" == n) t.scaleX = t.scaleY = 1, c.theBob.bClip = t, c.gameScreen.addChild(c.theBob.bClip), c.theBob.reset(); else if ("[object BobBack]" == n) { t.scaleX = t.scaleY = 1; var i = new MovieClip("Bob",t.x,t.y); c.theBob.addBobAnimations(i), c.theBob.bClipBack = i, a.removeChild(t), c.gameScreen.addChild(i), c.theBob.bClipBack.gotoLabel("stay") } else if ("[object Blades]" == n) t.addAnimation("spin", 1, 10), t.addAnimation("stop", 11, 35, -1, !1), t.gotoLabel("spin"), c.blades = t, c.gameScreen.addChild(c.blades); else if ("[object ProgressBarSkill]" == n) c.theBob.bProgressSkill = t, c.gameScreen.addChild(c.theBob.bProgressSkill), c.theBob.bProgressSkill.visible = !1, c.theBob.bProgressSkill.gotoAndStop(1); else if ("[object Stair]" == n) c.stairs.push(t), c.gameScreen.addChild(t); else if ("[object Floor]" == n) c.floors.push(t), c.gameScreen.addChild(t); else if ("[object Wall]" == n) c.walls.push(t), c.gameScreen.addChild(t); else if ("[object Door]" == n) c.doors.push(t), c.gameScreen.addChild(t), t.params.Open || (t.addChild(new MovieClip("Door" + t.params.DoorType,0,0,"door")), t.getChild("door").registerAnimation("open", 1, 10, -1, !1, t.getChild("door").remove, t.getChild("door"))); else if ("[object SideDoor]" == n) { if (c.sidedoors.push(t), c.gameScreen.addChild(t), t.params.Open && (t.visible = !1), (h = ["Wood1", "Wood2", "Steel1", "Mass", "policeDoor", "Wood3", "BankDoor"].indexOf(t.params.DoorType)) < 0) throw new Error("Invalid door name"); t.getChild("l").gotoAndStop(h + 1), t.getChild("r").gotoAndStop(h + 1) } else if ("[object Elevator]" == n) t.scaleX = t.scaleY = 1, c.elevators.push(t), c.gameScreen.addChild(t), t.getChild("door").addAnimation("open", 1, 10, -1, !1), t.getChild("door").addAnimation("close", 11, 20, -1, !1), t.getChild("bob").visible = !1; else if ("[object VideoCamera]" == n) c.cameras.push(new Camera(t)), c.gameScreen.addChild(t), c.cameras[c.cameras.length - 1].cameraClipPassed = new MovieClip("VideoCameraPassed"), c.gameScreen.addChild(c.cameras[c.cameras.length - 1].cameraClipPassed), c.cameras[c.cameras.length - 1].setupCameraPassed(); else if ("[object Padlock]" == n) { c.padlocks.push(t), c.gameScreen.addChild(t); var r = c.PadLockTypes.indexOf(t.params.PadlockType); if (r < 0) throw new Error("INVALID PADLOCK TYPE " + t.params.PadlockType); t.gotoAndStop(r + 1) } else if ("[object Codelock]" == n) c.codelocks.push(t), c.gameScreen.addChild(t), 1 < c.currentLevelNumber && (t.params.Code = c.makeRandom4DigitCode()); else if ("[object ElectricPanel]" == n) c.transBoxes.push(t), c.gameScreen.addChild(t); else if ("[object Terminal]" == n) t.visible = !1, c.terminalPanel = t, c.gameScreen.addChild(t); else if ("[object Computer]" == n) t.visible = !1, c.computerPanels.push(t), c.gameScreen.addChild(t), 0 == c.computerScreen.getChild("doorcode").numChildren && (c.computerScreen.getChild("doorcode").cloneMeToChildren(3, 18), c.computerScreen.getChild("doorcode2").cloneMeToChildren(3, 18), c.computerScreen.params.doorcode = c.makeRandom4DigitCode(), c.computerScreen.params.doorcode2 = c.makeRandom4DigitCode(), OzUtil.MakeDigits(parseInt(c.computerScreen.params.doorcode), c.computerScreen.getChild("doorcode").meAndMyKids(), !1, !1), OzUtil.MakeDigits(parseInt(c.computerScreen.params.doorcode2), c.computerScreen.getChild("doorcode2").meAndMyKids(), !1, !1)); else if ("[object Laser]" == n) c.lasers.push(t), c.gameScreen.addChild(t), t.gotoAndStop(t.params.Type); else if ("[object Lattice]" == n || "[object Lattice2]" == n) t.addAnimation("open", 1, 15, -1, !1), t.addAnimation("close", 16, 30, -1, !1), c.lattices.push(t), c.gameScreen.addChild(t); else if ("[object Turret]" == n) t.addAnimation("close", 1, 14, -1, !1), t.addAnimation("fire", 14, 23, -1, !1, function() { t.gotoAndStop(14) }, c), t.addAnimation("open", 24, 39, -1, !1, function() { t.gotoAndStop(1) }, c), c.turrets.push(t), c.gameScreen.addChild(t); else if ("[object Shadow]" == n) c.shadows.push(t), c.gameScreen.addChild(t); else if ("[object Robot]" == n || "[object Security]" == n || "[object Oldman]" == n || "[object Policeman]" == n || "[object Ambal]" == n || "[object Securityman]" == n || "[object Dog]" == n) t.scaleX = t.scaleY = 1, c.enemies.push(new Enemy(t,n)), c.gameScreen.addChild(t); else if ("[object Zombieman]" == n) c.zombies.push(new Zombie(t)), c.gameScreen.addChild(t); else if ("[object Message]" == n) { c.messages.push(t), c.gameScreen.addChild(t); var o = c.MessageFullscreenFrames.indexOf(t.params.LinkTo); if (o < 0) throw new Error("MESSAGE FRAME NOT FOUND"); if ("codeLevel" == t.params.LinkTo || "aboutBob" == t.params.LinkTo) { c.messageFullScreen.getChild("text").gotoAndStop(o + 1); var s = c.makeRandom4DigitCode(); c.setMessageDoorCode(s), c.messageFullScreen.params.DoorCode = s } else c.messageFullScreen.getChild("dc1").visible = !1 } else "[object MoneyBonus]" == n ? (c.moneyHides.push(t), c.gameScreen.addChild(t), t.visible = !1) : "[object TipInGame]" == n ? (c.tipsHides.push(t), c.gameScreen.addChild(t), t.visible = !1) : c.gameScreen.addChild(t) }, c = this, o = 0; o < i; o++) r(); for (var s = 0; s < this.enemies.length; s++) this.gameScreen.addChild(this.enemies[s].enemySign), this.enemies[s].enemySign.x = this.enemies[s].enemyClip.x, this.enemies[s].enemySign.y = this.enemies[s].enemyClip.y - 40; for (var l = 0; l < this.zombies.length; l++) this.gameScreen.addChild(this.zombies[l].enemySign), this.zombies[l].enemySign.x = this.zombies[l].enemyClip.x, this.zombies[l].enemySign.y = this.zombies[l].enemyClip.y - 40; this.gameScreen.contains(this.gameTip) && this.gameScreen.removeChild(this.gameTip), 1 == this.currentLevelNumber && 0 == Game.levelsScore[0] ? this.gameScreen.addChild(this.gameTip) : 3 == this.currentLevelNumber && 0 == Game.levelsScore[2] && "restart" != t && this.gameScreen.addChild(this.gameTip), SoundManager.getInstance().playSound("SGameMusic"), this.timeDigits = [this.iPanel.getChild("t1"), this.iPanel.getChild("t2"), this.iPanel.getChild("t3")], this.moneyDigits = [this.iPanel.getChild("m1"), this.iPanel.getChild("m2"), this.iPanel.getChild("m3"), this.iPanel.getChild("m4")], this.pastTime = 0, this.calcTime(), this.moneyCollected = 0, this.calcMoney(), this.gameStatus = "silent", this.alertBegin = !1, this.transformatorPanelOpen = !1, this.transformatorPanel2Open = !1, this.computerPanelOpen = !1, this.gamePaused = !1, this.startTheGame(), this.stopwatchTimer.start(), this.levelShowTimer.start() } , v.prototype.gotoGame = function(e) { this.updateListener = !0, this.stopwatchTimer.start(), this.theBob.bClip.visible = !0, this.theBob.bClipBack.visible = !1, this.theBob.BobAction = "stay", this.checkBobShadows(), "alert" == this.gameStatus && this.countDownAlertTimer.start(); for (var t = 0; t < this.enemies.length; t++) this.enemies[t].startActions(); for (var i = 0; i < this.zombies.length; i++) this.zombies[i].startActions(); for (var r = 0; r < this.cameras.length; r++) this.cameras[r].startTurn(); this.theBob.startMove(), this.pauseScreen.visible = !1, this.gamePaused = !1, v.HeroCross && (v.HeroCross.visible = 0 != this.mobileWalk) } , v.prototype.pauseGame = function(e) { h5branding.google.sendScreenView(e + "_game_pause"), v.HideMobileGUI(), this.updateListener = !1, this.stopwatchTimer.stop(), "alert" == this.gameStatus && this.countDownAlertTimer.running && this.countDownAlertTimer.stop(); for (var t = 0; t < this.enemies.length; t++) this.enemies[t].stopAnyActions(); for (var i = 0; i < this.zombies.length; i++) this.zombies[i].stopAnyActions(); for (var r = 0; r < this.cameras.length; r++) this.cameras[r].stopTurn(); this.theBob.stopMove(), this.pauseScreen.visible = !0, this.gamePaused = !0 } , v.prototype.GoThroughElevator = function() { this.keyListeners = !1, this.theBob.bobActive = !1, SoundManager.getInstance().stopSound("SBobWalk"), this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1, this.theBob.bClip.x = this.theBob.currentElevatorX, this.theBob.BobAction = "goIn", this.theBob.bClip.gotoLabel(this.theBob.BobAction), this.theBob.fadeOutElev.start() } , v.prototype.findElevatorOut = function() { for (var e = 0; e < this.doors.length; e++) if (this.elevators[e].params.idGroup == this.theBob.currentElevatorGroupId && this.elevators[e].y != this.theBob.currentElevatorY) return this.theBob.currentElevatorNumber = e, this.elevators[e].y + 10; return this.theBob.currentElevatorY } , v.prototype.ActivateControls = function() { this.keyListeners = !0, this.leftKey = !1, this.rightKey = !1, this.spaceKey = !1, this.theBob.BobAction = "stay" } , v.prototype.isBobHide = function() { return !!(this.theBob.bClipBack.visible && 68 == this.theBob.bClipBack.currentFrame || this.theBob.bobInShadow) } , v.prototype.findDoorOut = function() { for (var e = 0; e < this.doors.length; e++) if (this.doors[e].params.idGroup == this.theBob.currentDoorGroupId && this.doors[e].y != this.theBob.currentDoorY) return this.doors[e].params.Open ? new Vector2(this.doors[e].x,this.doors[e].y + 10) : new Vector2(this.doors[e].x,this.theBob.currentDoorY + 10); return new Vector2(this.doors[e].x,this.doors[e].y) } , v.prototype.makeRandom4DigitCode = function() { var e = "0" + Math.floor(10 * Math.random()) + Math.floor(10 * Math.random()) + "0"; return Game.DEBUG, e } , v.prototype.getLevelNumber = function() { return this.currentLevelNumber } , v.prototype.calcTime = function() { OzUtil.MakeDigits(Math.min(999, this.pastTime), this.timeDigits, !0, !1) } , v.prototype.calcMoney = function() { OzUtil.MakeDigits(Math.min(9999, this.moneyCollected), this.moneyDigits, !0, !1) } , v.prototype.updateWorld = function(e) { var t = this; if (1 != this.currentLevelNumber && 3 != this.currentLevelNumber || this.BobOnTip(), 5 == this.currentLevelNumber && OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.poster, null) && this.poster.gotoAndStop(2), "busted" != this.theBob.BobAction && (0 == this.theBob.runShadow ? 0 == this.messageFullScreen.visible && "work" != this.theBob.BobAction && this.theBob.bobActive && this.checkBobShadows() : this.checkBobShadowsRuns()), 4 == this.totalAlerts && "busted" != this.theBob.BobAction) { this.theBob.bClip.visible = !0, this.theBob.bClipBack.visible = !1, this.theBob.reset(), this.theBob.bobActive = !1, this.theBob.BobAction = "busted", this.stopTheGame(); var i = new MovieClip("Busted"); i.setxy(325, 233), i.scaleX = i.scaleY = 0, this.gameScreen.addChild(i), TweenMax.to(i, .7, { scaleX: 1, scaleY: 1, easing: "Elastic.easeIn" }), TweenMax.delayedCall(2, function() { t.gameScreen.removeChild(i) }, this), this.theBob.bClip.gotoLabel(this.theBob.BobAction), SoundManager.getInstance().playSound("SBobBusted"), this.bustedTimer.start() } if (this.BobOnLasers() && (this.gameStatus = "alert", this.alertBegin || (this.totalAlerts++, this.iPanel.getChild("alerts").gotoAndStop(this.totalAlerts + 1), this.alertBegin = !0, 4 == this.totalAlerts && this.stopTheGame(!1)), this.countDownAlertTimer.stop(), this.panicTime_gotoAndStop(3), SoundManager.getInstance().playSound("SSiren")), this.padLeftKey) (r = this.padlockPanel.getChild("lockBase")).getChild("hole").visible && -80 < r.getChild("hole").x && (r.getChild("hole").x -= 5), 1 == r.getChild("pick").currentFrame && -80 < r.getChild("hole1").x && (r.getChild("hole1").x -= 5), 3 == r.getChild("pick").currentFrame && -80 < r.getChild("hole2").x && (r.getChild("hole2").x -= 5); else if (this.padRightKey) { var r; (r = this.padlockPanel.getChild("lockBase")).getChild("hole").visible && r.getChild("hole").x < 80 && (r.getChild("hole").x += 5), 1 == r.getChild("pick").currentFrame && r.getChild("hole1").x < 80 && (r.getChild("hole1").x += 5), 3 == r.getChild("pick").currentFrame && r.getChild("hole2").x < 80 && (r.getChild("hole2").x += 5) } if (this.checkGameSituation(), "alert" == this.gameStatus) { if (0 == this.panicTime.visible) { SoundManager.getInstance().playSound("SRobberDanger"); for (var o = 0; o < this.lattices.length; o++) this.lattices[o].gotoLabel("open"), this.lattices[o].params.Locked = !0; for (var s = 0; s < this.turrets.length; s++) this.turrets[s].base_play(), this.turrets[s].params.Locked = !0 } this.checkBobOnFireLine(), this.panicTime.visible = !0 } else SoundManager.getInstance().playSound("SGameMusic"); this.theBob.wallLeft = !1, this.theBob.wallRight = !1; for (var a = 0; a < this.walls.length; a++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.leftHand, this.walls[a], null)) { this.theBob.wallLeft = !0; break } for (var n = 0; n < this.walls.length; n++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.rightHand, this.walls[n], null)) { this.theBob.wallRight = !0; break } for (var h = 0; h < this.sidedoors.length; h++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.leftHand, this.sidedoors[h], v.SideDoorRect) && this.sidedoors[h].visible) { this.theBob.wallLeft = !0; break } for (var c = 0; c < this.sidedoors.length; c++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.rightHand, this.sidedoors[c], v.SideDoorRect) && this.sidedoors[c].visible) { this.theBob.wallRight = !0; break } for (var l = 0; l < this.lattices.length; l++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.leftHand, this.lattices[l], v.LatticeRect) && this.lattices[l].params.Locked) { this.theBob.wallLeft = !0; break } for (var m = 0; m < this.lattices.length; m++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.rightHand, this.lattices[m], v.LatticeRect) && this.lattices[m].params.Locked) { this.theBob.wallRight = !0; break } if ((0 < this.mobileWalk && this.theBob.wallRight || this.mobileWalk < 0 && this.theBob.wallLeft) && this.stopWalking(), null != this.blades && OzUtil.HitTest(this.theBob.bClip, null, this.blades, null) && this.blades.currentFrame <= 10 && (this.theBob.wallRight = !0), 0 != this.mobileWalk && (this.mobileWalk < 0 && this.theBob.bClip.x <= v.WalkTargetX || 0 < this.mobileWalk && this.theBob.bClip.x >= v.WalkTargetX) && (this.theBob.bClip.x = v.WalkTargetX, this.stopWalking()), this.BobOnElevator(), this.theBob.bobActive && (this.BobOnStairs() && !this.BobOnFloor() || "climb" == this.theBob.BobAction || "stay2" == this.theBob.BobAction || (this.leftKey && (this.theBob.wallLeft || (this.theBob.speedUp ? (this.bobTimerLeft.running || this.bobTimerLeft.start(), this.theBob.bClip.x -= 5) : this.theBob.bClip.x -= 2.5), this.theBob.strikeTimer.running || (this.theBob.BobAction = "goleft")), this.rightKey && (this.theBob.wallRight || (this.theBob.speedUp ? (this.bobTimerRight.running || this.bobTimerRight.start(), this.theBob.bClip.x += 5) : this.theBob.bClip.x += 2.5), this.theBob.strikeTimer.running || (this.theBob.BobAction = "goright"))), this.upKey && !this.theBob.strikeTimer.running && (this.BobOnStairs() && (!this.BobOnFloor() || 0 == this.theBob.twoStairs && this.theBob.currentStairY < this.theBob.bClip.y || this.theBob.twoStairs && this.theBob.currentStairY2 < this.theBob.bClip.y && 0 == this.leftKey) ? (this.theBob.BobAction = "climb", this.theBob.bClip.x = this.theBob.currentStairX, SoundManager.getInstance().stopSound("SBobWalk"), SoundManager.getInstance().isPlaying("SBobClimb") || SoundManager.getInstance().playSound("SBobClimb")) : (SoundManager.getInstance().stopSound("SBobClimb"), "climb" == this.theBob.BobAction && (this.theBob.speedUp ? (this.theBob.bClip.y -= 4, this.bobTimerUp.running || this.bobTimerUp.start()) : this.theBob.bClip.y -= 2), this.leftKey ? this.theBob.BobAction = "goleft" : this.rightKey ? this.theBob.BobAction = "goright" : this.theBob.BobAction = "stay"), "climb" == this.theBob.BobAction && (this.theBob.speedUp ? (this.theBob.bClip.y -= 4, this.bobTimerUp.running || this.bobTimerUp.start()) : this.theBob.bClip.y -= 2)), this.downKey && !this.theBob.strikeTimer.running && (this.BobOnStairs() && (!this.BobOnFloor() || 0 == this.theBob.twoStairs && this.theBob.currentStairY > this.theBob.bClip.y) || this.theBob.twoStairs && 0 == this.leftKey ? (this.theBob.BobAction = "climb", this.theBob.bClip.x = this.theBob.currentStairX, SoundManager.getInstance().stopSound("SBobWalk"), SoundManager.getInstance().isPlaying("SBobClimb") || SoundManager.getInstance().playSound("SBobClimb")) : (SoundManager.getInstance().stopSound("SBobClimb"), "climb" == this.theBob.BobAction && (this.theBob.speedUp ? (this.theBob.bClip.y += 4, this.bobTimerUp.running || this.bobTimerUp.start()) : this.theBob.bClip.y += 2), this.leftKey ? this.theBob.BobAction = "goleft" : this.rightKey ? this.theBob.BobAction = "goright" : this.theBob.BobAction = "stay"), "climb" == this.theBob.BobAction && (this.theBob.speedUp ? (this.theBob.bClip.y += 4, this.bobTimerUp.running || this.bobTimerUp.start()) : this.theBob.bClip.y += 2))), "" != this.bonusType ? "gametarget" == this.bonusType && (this.theBob.BobAction = "work") : this.messageFullScreen.visible && (this.theBob.BobAction = "work"), "emptyPushLeft" != this.theBob.BobAction && "emptyPushRight" != this.theBob.BobAction && "fightright" != this.theBob.BobAction && "fightleft" != this.theBob.BobAction && this.totalAlerts < 4 && this.theBob.bobActive && this.theBob.bClip.gotoLabel(this.theBob.BobAction), this.theBob.bProgressSkill.visible) if (this.theBob.bProgressSkill.currentFrame <= 99) this.theBob.bClip_bWork_play(); else { if ("lockpicks" == this.bonusType && (SoundManager.getInstance().playSound("SUnlock"), this.findDoorToOpen(), 1 == this.zxcType && this.iPanel.getChild("zbutton").gotoAndStop(1), 2 == this.zxcType && this.iPanel.getChild("xbutton").gotoAndStop(1), 3 == this.zxcType && this.iPanel.getChild("cbutton").gotoAndStop(1), this.theBob.bobActive = !0, this.ActivateControls()), this.endProgress(), "gametarget" == this.bonusType) { if (this.gameTarget.visible = !1, this.gameExit.visible = !0, 4 == this.getLevelNumber() && this.captive.gotoAndStop(2), 5 == this.getLevelNumber() && (this.prisonGift.visible = !0), 9 == this.getLevelNumber() && this.level9Box.gotoAndStop(2), 11 == this.getLevelNumber() || 7 == this.getLevelNumber()) for (var u, d, p = 0; p < this.zombiesBack.length; p++) this.gameScreen.contains(this.zombiesBack[p]) && this.gameScreen.removeChild(this.zombiesBack[p]), (d = new MovieClip("Zombieman")).x = this.zombiesBack[p].x + 25, d.y = this.zombiesBack[p].y + 23, d.params.Distance = this.zombiesBack[p].params.Distance, d.params.Direction = this.zombiesBack[p].params.Direction, d.params.StopMoveWaitTime = this.zombiesBack[p].params.StopMoveWaitTime, u = new Zombie(d,this.zombiesBack[p].params.DistancePassed), this.zombies.push(u), this.gameScreen.addChild(u.enemyClip), this.gameScreen.addChild(u.enemySign), u.enemySign.x = u.enemyClip.x, u.enemySign.y = u.enemyClip.y - 40; var f = new MovieClip("TargetGood"); f.setxy(325, 233), f.scaleX = f.scaleY = 0, this.gameScreen.addChild(f), TweenMax.to(f, .7, { scaleX: 1, scaleY: 1, easing: "Elastic.easeIn" }), TweenMax.delayedCall(2, function() { t.gameScreen.removeChild(f) }, this), SoundManager.getInstance().playSound("STargetGood") } this.bonusType = "" } if ("" != this.bonusType && "lockpicks" != this.bonusType) { if ("shock" == this.bonusType) this.theBob.bClip.currentAnimation && 0 == this.theBob.bClip.currentAnimation.indexOf("fire") ? this.theBob.BobAction = this.theBob.bClip.currentAnimation : this.leftKey ? this.theBob.BobAction = "fireLeft" : this.rightKey ? this.theBob.BobAction = "fireRight" : "left" == this.theBob.BobLastDirrection ? this.theBob.BobAction = "fireLeft" : this.theBob.BobAction = "fireRight", "fireRight" != this.theBob.bClip.currentAnimation && "fireLeft" != this.theBob.bClip.currentAnimation && this.theBob.bClip.gotoLabel(this.theBob.BobAction), 4 < 1 + this.theBob.bClip.currentFrame - ("fireLeft" == this.theBob.BobAction ? 269 : 284) ? (this.theBob.lightning.visible || (this.theBob.lightning.visible = !0, this.theBob.lightning.playOnce(), "fireLeft" == this.theBob.BobAction ? (this.theBob.lightning.scaleX = -1, this.theBob.lightning.setxy(-22 + this.theBob.bClip.x, -4 + this.theBob.bClip.y)) : (this.theBob.lightning.scaleX = 1, this.theBob.lightning.setxy(22 + this.theBob.bClip.x, -4 + this.theBob.bClip.y))), this.EnemyOnline(), this.ZombieOnline()) : this.theBob.lightning.visible = !1; var y = this.theBob.bClip.currentFrame; 192 != y && 230 != y && 268 != y && 283 != y && 298 != y || ("energetic" == this.bonusType && (this.theBob.speedUp = !0, this.theBob.speedUpTimer.start(), this.theBob.bobActive = !0, this.ActivateControls()), "camerablind" == this.bonusType && (this.cameras[this.theBob.currentCameraId].cameraPassed(), this.theBob.bobActive = !0, this.ActivateControls()), "spray" == this.bonusType && (this.theBob.runShadow = !0, this.theBob.bobActive = !0, this.ActivateControls()), "shock" == this.bonusType && (this.theBob.bobActive = !0, this.ActivateControls()), this.bonusType = "", 1 == this.zxcType && this.iPanel.getChild("zbutton").gotoAndStop(1), 2 == this.zxcType && this.iPanel.getChild("xbutton").gotoAndStop(1), 3 == this.zxcType && this.iPanel.getChild("cbutton").gotoAndStop(1)) } if (this.gameExit.visible && OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.gameExit, null)) { var S = new MovieClip("LevelWin"); S.setxy(325, 233), S.scaleX = S.scaleY = 0, this.gameScreen.addChild(S), TweenMax.to(S, .7, { scaleX: 1, scaleY: 1, easing: "Elastic.easeIn" }), TweenMax.delayedCall(2, function() { t.gameScreen.removeChild(S) }, this), this.stopTheGame(), this.winLevelTimer.start(), this.gameExit.visible = !1, SoundManager.getInstance().playSound("SWinLevel") } !this.theBob.lightning.visible || this.theBob.bClip.currentAnimation && 0 == this.theBob.bClip.currentAnimation.indexOf("fire") || (this.theBob.lightning.visible = !1) } , v.prototype.EnemyOnline = function() { var e, t = 552, i = !1, r = this.theBob.leftLightning; "fireRight" == this.theBob.BobAction && (r = this.theBob.rightLightning); for (var o = 0; o < this.enemies.length; o++) OzUtil.HitTest(this.theBob.bClip, r, this.enemies[o].enemyClip, null) && ("fireLeft" == this.theBob.BobAction && this.theBob.bClip.x > this.enemies[o].enemyClip.x || "fireRight" == this.theBob.BobAction && this.theBob.bClip.x < this.enemies[o].enemyClip.x) && (i = !0, Math.abs(this.enemies[o].enemyClip.x - this.theBob.bClip.x) < t && (t = Math.abs(this.enemies[o].enemyClip.x - this.theBob.bClip.x), e = o)); for (var s = 0; s < this.sidedoors.length; s++) if (OzUtil.HitTest(this.theBob.bClip, r, this.sidedoors[s], v.SideDoorRect) && ("fireLeft" == this.theBob.BobAction && this.theBob.bClip.x > this.sidedoors[s].x || "fireRight" == this.theBob.BobAction && this.theBob.bClip.x < this.sidedoors[s].x) && 0 == this.sidedoors[s].params.Open && Math.abs(this.sidedoors[s].x - this.theBob.bClip.x) < t) { i = !1, t = Math.abs(this.sidedoors[s].x - this.theBob.bClip.x); break } for (var a = 0; a < this.walls.length; a++) if (OzUtil.HitTest(this.theBob.bClip, r, this.walls[a], null) && ("fireLeft" == this.theBob.BobAction && this.theBob.bClip.x > this.walls[a].x || "fireRight" == this.theBob.BobAction && this.theBob.bClip.x < this.walls[a].x) && Math.abs(this.walls[a].x - this.theBob.bClip.x) < t) { i = !1, t = Math.abs(this.walls[a].x - this.theBob.bClip.x); break } i && (this.enemies[e].enemyClip.visible && ("[object Robot]" == this.enemies[e].enemyType ? SoundManager.getInstance().playSound("SRobotShock") : "[object Dog]" == this.enemies[e].enemyType ? SoundManager.getInstance().playSound("SDogShock") : SoundManager.getInstance().playSound("SEnemyShock")), this.enemies[e].shockEnemy()), this.theBob.lightningMask.scale.x = Math.max(0, Math.min(1, Math.abs(t - 22) / 530)) } , v.prototype.ZombieOnline = function() { var e, t = 552, i = !1, r = this.theBob.leftLightning; "fireRight" == this.theBob.BobAction && (r = this.theBob.rightLightning); for (var o = 0; o < this.zombies.length; o++) OzUtil.HitTest(this.theBob.bClip, r, this.zombies[o].enemyClip, null) && ("fireLeft" == this.theBob.BobAction && this.theBob.bClip.x > this.zombies[o].enemyClip.x || "fireRight" == this.theBob.BobAction && this.theBob.bClip.x < this.zombies[o].enemyClip.x) && (i = !0, Math.abs(this.zombies[o].enemyClip.x - this.theBob.bClip.x) < t && (t = Math.abs(this.zombies[o].enemyClip.x - this.theBob.bClip.x), e = o)); for (var s = 0; s < this.sidedoors.length; s++) if (OzUtil.HitTest(this.theBob.bClip, r, this.sidedoors[s], v.SideDoorRect) && ("fireLeft" == this.theBob.BobAction && this.theBob.bClip.x > this.sidedoors[s].x || "fireRight" == this.theBob.BobAction && this.theBob.bClip.x < this.sidedoors[s].x) && 0 == this.sidedoors[s].params.Open && Math.abs(this.sidedoors[s].x - this.theBob.bClip.x) < t) { i = !1, t = Math.abs(this.sidedoors[s].x - this.theBob.bClip.x); break } for (var a = 0; a < this.walls.length; a++) if (OzUtil.HitTest(this.theBob.bClip, r, this.walls[a], null) && ("fireLeft" == this.theBob.BobAction && this.theBob.bClip.x > this.walls[a].x || "fireRight" == this.theBob.BobAction && this.theBob.bClip.x < this.walls[a].x) && Math.abs(this.walls[a].x - this.theBob.bClip.x) < t) { i = !1, t = Math.abs(this.walls[a].x - this.theBob.bClip.x); break } i && (this.zombies[e].enemyClip.visible && SoundManager.getInstance().playSound("SEnemyShock"), this.zombies[e].shockEnemy()), this.theBob.lightningMask.scale.x = Math.max(0, Math.min(1, Math.abs(t - 22) / 530)) } , v.prototype.findDoorToOpen = function(e) { void 0 === e && (e = "pad"); for (var t = 0; t < this.doors.length; t++) this.doors[t].params.DoorName == this.theBob.currentPadlockName && (this.doors[t].params.Open = !0, null != this.doors[t].getChild("door") && this.doors[t].getChild("door").play("open"), SoundManager.getInstance().playSound("SDoorOpen")); for (var i = 0; i < this.sidedoors.length; i++) this.sidedoors[i].params.DoorName == this.theBob.currentPadlockName && (this.sidedoors[i].params.Open = !0, this.sidedoors[i].visible = !1, SoundManager.getInstance().playSound("SDoorOpen")); for (var r = 0; r < this.elevators.length; r++) this.elevators[r].params.DoorName == this.theBob.currentPadlockName && (this.elevators[r].params.Open = !0); if ("pad" == e) { var o = this.padlocks[this.theBob.currentPadlockNumber]; this.gameScreen.contains(o) && this.gameScreen.removeChild(o), this.padlocks[this.theBob.currentPadlockNumber] = this.padlocks[0], this.padlocks[0] = o, this.padlocks.shift() } } , v.prototype.textCodeEnter = function() { 4 == this.textCode.length && (this.resetCodeButtons(), this.codeKeyListeners = !1, this.codeEnteredTimer.start()) } , v.prototype.textCodeEntering = function() { 0 == this.textCode.length && (this.codePanel.getChild("ed").gotoAndStop(11), this.codePanel.getChild("de").gotoAndStop(11), this.codePanel.getChild("so").gotoAndStop(11), this.codePanel.getChild("ti").gotoAndStop(11)), 1 == this.textCode.length ? (this.codePanel.getChild("ed").gotoAndStop(parseInt(this.textCode) + 1), this.codePanel.getChild("de").gotoAndStop(11), this.codePanel.getChild("so").gotoAndStop(11), this.codePanel.getChild("ti").gotoAndStop(11)) : (2 == this.textCode.length && (this.codePanel.getChild("ed").gotoAndStop(parseInt(this.textCode.charAt(1)) + 1), this.codePanel.getChild("de").gotoAndStop(parseInt(this.textCode.charAt(0)) + 1), this.codePanel.getChild("so").gotoAndStop(11), this.codePanel.getChild("ti").gotoAndStop(11)), 3 == this.textCode.length && (this.codePanel.getChild("ed").gotoAndStop(parseInt(this.textCode.charAt(2)) + 1), this.codePanel.getChild("de").gotoAndStop(parseInt(this.textCode.charAt(1)) + 1), this.codePanel.getChild("so").gotoAndStop(parseInt(this.textCode.charAt(0)) + 1), this.codePanel.getChild("ti").gotoAndStop(11)), 4 == this.textCode.length && (this.codePanel.getChild("ed").gotoAndStop(parseInt(this.textCode.charAt(3)) + 1), this.codePanel.getChild("de").gotoAndStop(parseInt(this.textCode.charAt(2)) + 1), this.codePanel.getChild("so").gotoAndStop(parseInt(this.textCode.charAt(1)) + 1), this.codePanel.getChild("ti").gotoAndStop(parseInt(this.textCode.charAt(0)) + 1))) } , v.prototype.holeMove = function(e) { 0 < this.signHoleX ? (this.padlockPanel.getChild("lockBase").getChild("hole").x + this.holeX < 80 && (this.padlockPanel.getChild("lockBase").getChild("hole").x += this.holeX), this.padlockPanel.getChild("lockBase").getChild("hole1").x + this.holeX < 80 && 1 == this.padlockPanel.getChild("lockBase").getChild("pick").currentFrame && (this.padlockPanel.getChild("lockBase").getChild("hole1").x += this.holeX), this.padlockPanel.getChild("lockBase").getChild("hole2").x + this.holeX < 80 && (this.padlockPanel.getChild("lockBase").getChild("hole2").x += this.holeX)) : (-80 < this.padlockPanel.getChild("lockBase").getChild("hole").x - this.holeX && (this.padlockPanel.getChild("lockBase").getChild("hole").x -= this.holeX), -80 < this.padlockPanel.getChild("lockBase").getChild("hole1").x - this.holeX && 1 == this.padlockPanel.getChild("lockBase").getChild("pick").currentFrame && (this.padlockPanel.getChild("lockBase").getChild("hole1").x -= this.holeX), -80 < this.padlockPanel.getChild("lockBase").getChild("hole2").x - this.holeX && (this.padlockPanel.getChild("lockBase").getChild("hole2").x -= this.holeX)) } , v.prototype.setupProgress = function(e) { void 0 === e && (e = 25), this.theBob.bProgressSkill.visible = !0, this.theBob.bProgressSkill.x = this.theBob.bClip.x - 23, this.theBob.bProgressSkill.y = this.theBob.bClip.y - 35, 55 == e && (this.theBob.bProgressSkill.y -= 1e3), this.theBob.bProgressSkill.gotoAndStop(1), this.theBob.progressFrame = 1, this.theBob.progressTimer.delay = e, this.theBob.progressTimer.start() } , v.prototype.endProgress = function() { this.theBob.BobAction = "stay", this.theBob.bProgressSkill.visible = !1, SoundManager.getInstance().stopSound("SBobSearch"), this.theBob.progressTimer.stop() } , v.prototype.OzBobOnMessage = function() { for (var e = 0; e < this.messages.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.messages[e], null)) return !0; return !1 } , v.prototype.BobOnMessage = function() { for (var e = 0; e < this.messages.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.messages[e], null)) { var t = 1 + this.MessageFullscreenFrames.indexOf(this.messages[e].params.LinkTo); if (Game.Touch() && (1 == t ? t = 15 : 2 == t ? t = 16 : 4 == t ? t = 17 : 7 == t && (t = 18)), this.messageFullScreen.getChild("text").gotoAndStop(t), "codeLevel" == this.messages[e].params.LinkTo || "aboutBob" == this.messages[e].params.LinkTo) { this.messageFullScreen.getChild("dc1").visible = !0, this.setMessageDoorCode(this.messageFullScreen.params.DoorCode), "codeLevel" == this.messages[e].params.LinkTo ? this.messageFullScreen.getChild("dc1").setxy(266, 350) : this.messageFullScreen.getChild("dc1").setxy(266, 220); for (var i = 0; i < this.codelocks.length; i++) this.codelocks[i].params.DoorName == this.messages[e].params.DoorName && (this.codelocks[i].params.Code = this.messageFullScreen.params.DoorCode) } else this.messageFullScreen.getChild("dc1").visible = !1; return !0 } return !1 } , v.prototype.OzBobOnPadlock = function() { for (var e = 0; e < this.padlocks.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.padlocks[e], null)) return !0; return !1 } , v.prototype.BobOnPadlock = function() { for (var e = 0; e < this.padlocks.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.padlocks[e], null)) return this.theBob.currentPadlockName = this.padlocks[e].params.DoorName, this.theBob.currentPadlockX = this.padlocks[e].x, this.theBob.currentPadlockNumber = e, !0; return !1 } , v.prototype.BobUnderCamera = function() { for (var e = 0; e < this.cameras.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.cameras[e].cameraClip.getChild("cameraUnder"), null, this.cameras[e].cameraClip) && 0 == this.cameras[e].passed) return this.theBob.currentCameraId = e, !0; return !1 } , v.prototype.ozSelectBonus = function(e) { if (this.keyListeners) { var t = e + "button"; 1 < this.iPanel.getChild(t).currentFrame && (this.theBob.bClip.visible = !0, this.theBob.bClipBack.visible = !1, this.theBob.bClipBack.gotoLabel("stay"), this.zxcType = 1, "x" == e ? this.zxcType = 2 : "c" == e && (this.zxcType = 3), this.selectBonus(this.iPanel.getChild(t).currentFrame) && (this.iPanel.getChild(t).input.enabled = !1)) } } , v.prototype.selectBonus = function(e) { return this.BobOnPadlock() && 0 == this.theBob.bProgressSkill.visible && 2 == e ? (this.bonusType = "lockpicks", "GrayFront" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GoldFront" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType || (this.theBob.BobAction = "work"), "GrayLeft" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GoldLeft" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType || (this.theBob.BobAction = "workRight"), "GrayRight" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GoldRight" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType || (this.theBob.BobAction = "workLeft"), this.theBob.bClip.gotoLabel(this.theBob.BobAction), this.setupProgress(55), this.leftKey = !1, this.rightKey = !1, this.stopBobBonusPlay(), !0) : this.BobUnderCamera() && "camerablind" != this.bonusType && 4 == e ? (this.bonusType = "camerablind", SoundManager.getInstance().stopSound("SBobWalk"), SoundManager.getInstance().playSound("SBobPhoto"), this.theBob.BobAction = "photo", this.theBob.bClip.gotoLabel(this.theBob.BobAction), this.stopBobBonusPlay(), !0) : "energetic" != this.bonusType && 3 == e ? (this.bonusType = "energetic", SoundManager.getInstance().stopSound("SBobWalk"), SoundManager.getInstance().playSound("SBobDrink"), this.theBob.BobAction = "drink", this.theBob.bClip.gotoLabel(this.theBob.BobAction), this.stopBobBonusPlay(), !0) : "spray" != this.bonusType && 6 == e ? (this.bonusType = "spray", SoundManager.getInstance().stopSound("SBobWalk"), SoundManager.getInstance().playSound("SBobDrink"), this.theBob.BobAction = "spray", this.theBob.bClip.gotoLabel(this.theBob.BobAction), this.stopBobBonusPlay(), !0) : "shock" != this.bonusType && 5 == e && (this.bonusType = "shock", SoundManager.getInstance().stopSound("SBobWalk"), SoundManager.getInstance().playSound("SShockerShot"), this.leftKey ? this.theBob.BobAction = "fireLeft" : this.rightKey ? this.theBob.BobAction = "fireRight" : "left" == this.theBob.BobLastDirrection ? this.theBob.BobAction = "fireLeft" : this.theBob.BobAction = "fireRight", this.theBob.bClip.gotoLabel(this.theBob.BobAction), this.stopBobBonusPlay(), !0) } , v.prototype.stopBobBonusPlay = function() { this.keyListeners = !1, this.theBob.bobActive = !1, this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1 } , v.prototype.OzBobOnStairs = function() { for (var e = 0, t = 0; t < this.stairs.length; t++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.stairs[t], null)) { if (0 != e) return 2; e = this.theBob.bClip.y > this.stairs[t].y ? -1 : 1 } return e } , v.prototype.BobOnStairs = function() { for (var e = 1, t = 0; t < this.stairs.length; t++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.stairs[t], null)) { if (1 != e) { this.theBob.currentStairY2 = this.stairs[t].y, this.theBob.currentStairX2 = this.stairs[t].x, e = 3, this.theBob.twoStairs = !0; break } this.theBob.currentStairY = this.stairs[t].y, this.theBob.currentStairX = this.stairs[t].x, e = 2, this.theBob.twoStairs = !1 } return 1 < e } , v.prototype.BobNearEnemy = function() { for (var e = 0; e < this.enemies.length; e++) if (OzUtil.HitTest(this.theBob.bClip, null, this.enemies[e].enemyClip, null)) return this.theBob.currentEnemyId = e, !0; return !1 } , v.prototype.BobNearZombie = function() { for (var e = 0; e < this.zombies.length; e++) if (OzUtil.HitTest(this.theBob.bClip, null, this.zombies[e].enemyClip, null)) return this.theBob.currentZombieId = e, !0; return !1 } , v.prototype.BobOnFloor = function() { for (var e = 0; e < this.floors.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.foot, this.floors[e], null)) return !0; return !1 } , v.prototype.bobCameraDetected = function() { for (var e = 0; e < this.cameras.length; e++) if (!this.isBobHide() && 0 == this.theBob.bobInShadow && "busted" != this.theBob.BobAction && 0 == this.cameras[e].passed && 0 == this.cameras[e].cameraBlind) { if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.cameras[e].cameraClip.getChild("viewLeft"), null, this.cameras[e].cameraClip) && "left" == this.cameras[e].Direction && this.theBob.bClip.x > this.cameras[e].cameraClip.x - this.cameras[e].ViewZoneLeft) return this.numCameraDetected = e, !0; if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.cameras[e].cameraClip.getChild("viewRight"), null, this.cameras[e].cameraClip) && "right" == this.cameras[e].Direction && this.theBob.bClip.x < this.cameras[e].cameraClip.x + this.cameras[e].ViewZoneRight) return this.numCameraDetected = e, !0 } return !1 } , v.prototype.bobEnemyDetected = function() { this.isBobDetect = !1; for (var e = 0; e < this.enemies.length; e++) this.isBobHide() || 0 != this.theBob.bobInShadow || "busted" == this.theBob.BobAction || this.enemies[e].cutDownTimer.running || ("[object Oldman]" == this.enemies[e].enemyType || "[object Robot]" == this.enemies[e].enemyType || !OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.enemies[e].enemyClip, this.enemies[e].bbody) || "zombieAttack" != this.enemies[e].enemyAction && "alert" != this.gameStatus || (this.theBob.strikeTimer.stop(), this.theBob.bobActive && this.enemies[e].catchBob(), this.theBob.bobActive = !1), this.enemies[e].isBobDetected() && (this.enemyDetect1 = !0, this.numEnemyDetected = e, this.isBobDetect = !0)); return this.isBobDetect } , v.prototype.OzCanHitBaddie = function() { for (var e = 0, t = 0; t < this.enemies.length; t++) if ("[object Ambal]" != this.enemies[t].enemyType && OzUtil.HitTest(this.theBob.bClip, v.BobHitRect, this.enemies[t].enemyClip, null) && Math.abs(this.enemies[t].enemyClip.y - this.theBob.bClip.y) < 7) { if (this.canHitDir = this.enemies[t].enemyClip.x - this.theBob.bClip.x, !this.enemies[t].stunProgress.visible) return 2; e = 1 } for (var i = 0; i < this.zombies.length; i++) if (OzUtil.HitTest(this.theBob.bClip, null, this.zombies[i].enemyClip, null) && Math.abs(this.zombies[i].enemyClip.y - this.theBob.bClip.y) < 7) { if (this.canHitDir = this.zombies[i].enemyClip.x - this.theBob.bClip.x, !this.zombies[i].stunProgress.visible) return 2; e = 1 } return e } , v.prototype.BobOnEnemy = function() { for (var e = 0; e < this.enemies.length; e++) OzUtil.HitTest(this.theBob.bClip, null, this.enemies[e].enemyClip, null) && Math.abs(this.enemies[e].enemyClip.y - this.theBob.bClip.y) < 7 && (this.leftKey || this.rightKey ? (this.leftKey && this.theBob.bClip.x > this.enemies[e].enemyClip.x || this.rightKey && this.theBob.bClip.x < this.enemies[e].enemyClip.x) && (this.theBob.currentEnemyId = e, this.bobBlast()) : ("left" == this.theBob.BobLastDirrection && this.theBob.bClip.x > this.enemies[e].enemyClip.x || "right" == this.theBob.BobLastDirrection && this.theBob.bClip.x < this.enemies[e].enemyClip.x) && (this.theBob.currentEnemyId = e, this.bobBlast())) } , v.prototype.BobOnZombie = function() { for (var e = 0; e < this.zombies.length; e++) OzUtil.HitTest(this.theBob.bClip, null, this.zombies[e].enemyClip, null) && Math.abs(this.zombies[e].enemyClip.y - this.theBob.bClip.y) < 7 && (this.leftKey || this.rightKey ? (this.leftKey && this.theBob.bClip.x > this.zombies[e].enemyClip.x || this.rightKey && this.theBob.bClip.x < this.zombies[e].enemyClip.x) && (this.theBob.currentZombieId = e, this.bobBlastZombie()) : ("left" == this.theBob.BobLastDirrection && this.theBob.bClip.x > this.zombies[e].enemyClip.x || "right" == this.theBob.BobLastDirrection && this.theBob.bClip.x < this.zombies[e].enemyClip.x) && (this.theBob.currentZombieId = e, this.bobBlastZombie())) } , v.prototype.bobBlast = function() { var e = new MovieClip("Blast"); e.addAnimation("boom", 1, 5, -1, !1, function() { e.remove() }, this), e.gotoLabel("boom"), this.effectsScreen.addChild(e), SoundManager.getInstance().playSound("SPunch"), "emptyPushLeft" == this.theBob.BobAction || "stay" == this.theBob.BobAction && "left" == this.theBob.BobLastDirrection ? e.x = this.theBob.bClip.x - 27 : e.x = this.theBob.bClip.x + 27, e.y = this.theBob.bClip.y - 11, this.stunTheEnemy() } , v.prototype.bobBlastZombie = function() { var e = new MovieClip("Blast"); e.addAnimation("boom", 1, 5, -1, !1, function() { e.remove() }, this), e.gotoLabel("boom"), this.effectsScreen.addChild(e), SoundManager.getInstance().playSound("SPunch"), "emptyPushLeft" == this.theBob.BobAction || "stay" == this.theBob.BobAction && "left" == this.theBob.BobLastDirrection ? e.x = this.theBob.bClip.x - 27 : e.x = this.theBob.bClip.x + 27, e.y = this.theBob.bClip.y - 11, this.stunTheZombie() } , v.prototype.stunTheEnemy = function() { "[object Dog]" == this.enemies[this.theBob.currentEnemyId].enemyType && "alert" == this.gameStatus ? this.enemies[this.theBob.currentEnemyId].enemySign.currentFrame < 3 && this.enemies[this.theBob.currentEnemyId].stunnedBegin() : "[object Ambal]" != this.enemies[this.theBob.currentEnemyId].enemyType ? this.enemies[this.theBob.currentEnemyId].stunnedBegin() : "stun" != this.enemies[this.theBob.currentEnemyId].enemyAction && (this.enemies[this.theBob.currentEnemyId].enemyAction = "seeAbout", this.enemies[this.theBob.currentEnemyId].enemyClip.gotoLabel("alarm_stand"), this.enemies[this.theBob.currentEnemyId].enemySign.gotoAndStop(2)) } , v.prototype.stunTheZombie = function() { this.enemies[this.theBob.currentEnemyId].enemySign.currentFrame < 3 && this.zombies[this.theBob.currentZombieId].stunnedBegin() } , v.prototype.OzBobOnGameTarget = function() { return !(!OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.gameTarget, null) || !this.gameTarget.visible) } , v.prototype.BobOnGameTarget = function() { return !(!OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.gameTarget, null) || !this.gameTarget.visible) && (this.bonusType = "gametarget", !0) } , v.prototype.checkBobOnFireLine = function() { for (var e = 0; e < this.turrets.length; e++) { var t = this.turrets[e]; "l" == this.turrets[e].params.View ? (this.theBob.bClip.x < t.x - 10 && (14 == t.currentFrame || 23 == t.currentFrame) && this.theBob.bClip.y - t.y < 50 && Math.abs(this.theBob.bClip.y - t.y) < 35 && t.gotoLabel("fire"), this.theBob.bClip.x < t.x - 10 && (22 == t.currentFrame || 23 == t.currentFrame) && this.theBob.bClip.y - t.y < 50 && Math.abs(this.theBob.bClip.y - t.y) < 35 && (this.totalAlerts = 4)) : (this.theBob.bClip.x > t.x - 10 && 14 == t.currentFrame && this.theBob.bClip.y - t.y < 50 && Math.abs(this.theBob.bClip.y - t.y) < 35 && t.gotoLabel("fire"), this.theBob.bClip.x > t.x - 10 && (22 == t.currentFrame || 23 == t.currentFrame) && this.theBob.bClip.y - t.y < 50 && Math.abs(this.theBob.bClip.y - t.y) < 35 && (this.totalAlerts = 4)) } } , v.prototype.checkGameSituation = function() { if (this.numCameraDetected = 0, this.bobCameraDetected()) "silent" == this.gameStatus && (this.cameras[this.numCameraDetected].cameraClip.getChild("lightLeft").gotoAndStop(2), this.cameras[this.numCameraDetected].cameraClip.getChild("lightRight").gotoAndStop(2), this.cameras[this.numCameraDetected].cameraClip.getChild("sign").gotoAndStop(2), this.cameras[this.numCameraDetected].prepareWarningTimer.start(), this.cameras[this.numCameraDetected].switchTimerIdle.stop(), SoundManager.getInstance().playSound("SCameraWarn"), this.gameStatus = "warning"), "warning" == this.gameStatus && (this.cameras[this.numCameraDetected].cameraClip.getChild("sign").currentFrame < 3 && (this.cameras[this.numCameraDetected].cameraClip.getChild("lightLeft").gotoAndStop(2), this.cameras[this.numCameraDetected].cameraClip.getChild("lightRight").gotoAndStop(2), this.cameras[this.numCameraDetected].cameraClip.getChild("sign").gotoAndStop(2)), this.cameras[this.numCameraDetected].prepareWarningTimer.running || (this.cameras[this.numCameraDetected].prepareWarningTimer.start(), this.cameras[this.numCameraDetected].switchTimerIdle.stop())), "alert" == this.gameStatus && (this.cameras[this.numCameraDetected].cameraClip.getChild("lightLeft").gotoAndStop(3), this.cameras[this.numCameraDetected].cameraClip.getChild("lightRight").gotoAndStop(3), this.cameras[this.numCameraDetected].switchTimerIdle.stop(), this.cameras[this.numCameraDetected].cameraClip.getChild("sign").gotoAndStop(3), this.alertBegin || (this.totalAlerts++, this.iPanel.getChild("alerts").gotoAndStop(this.totalAlerts + 1), this.alertBegin = !0, 4 == this.totalAlerts && this.stopTheGame(!1)), this.countDownAlertTimer.stop(), this.panicTime_gotoAndStop(3), SoundManager.getInstance().playSound("SSiren")); else { if ("silent" == this.gameStatus) for (var e = 0; e < this.cameras.length; e++) 1 < this.cameras[e].cameraClip.getChild("sign").currentFrame && this.cameras[e].resetCamera(); if ("warning" == this.gameStatus && this.cameras[this.numCameraDetected].resetCamera(), "alert" == this.gameStatus && !this.countDownAlertTimer.running) for (var t = 0; t < this.cameras.length; t++) this.cameras[t].cameraClip.getChild("lightLeft").gotoAndStop(2), this.cameras[t].cameraClip.getChild("lightRight").gotoAndStop(2), this.cameras[t].cameraClip.getChild("sign").gotoAndStop(2), this.cameras[t].switchTimerIdle.delay = 500, this.cameras[t].switchTimerIdle.start() } if (this.numEnemyDetected = 0, this.enemyDetect1 = !1, this.bobEnemyDetected(), this.enemyDetect1, this.enemyDetect1) "silent" != this.gameStatus || this.enemies[this.numEnemyDetected].prepareWarningTimer.running || "[object Robot]" == this.enemies[this.numEnemyDetected].enemyType || (this.enemies[this.numEnemyDetected].enemySign.gotoAndStop(2), this.theBob.increaseWaiting && (this.enemies[this.numEnemyDetected].prepareWarningTimer.delay *= 2), this.enemies[this.numEnemyDetected].prepareWarningTimer.start(), this.gameStatus = "warning", SoundManager.getInstance().playSound(this.enemies[this.numEnemyDetected].soundEnemyWarn)), "warning" == this.gameStatus && "[object Robot]" != this.enemies[this.numEnemyDetected].enemyType && this.enemies[this.numEnemyDetected].enemySign.gotoAndStop(2), "alert" == this.gameStatus && (this.alertBegin || (this.totalAlerts++, this.iPanel.getChild("alerts").gotoAndStop(this.totalAlerts + 1), this.alertBegin = !0, 4 == this.totalAlerts && this.stopTheGame(!1)), this.countDownAlertTimer.stop(), this.panicTime_gotoAndStop(3), this.enemies[this.numEnemyDetected].enemySign.gotoAndStop(3)), "[object Robot]" == this.enemies[this.numEnemyDetected].enemyType && null != this.enemies[this.numEnemyDetected].enemyClip.getChild("light") && 1 == this.enemies[this.numEnemyDetected].enemyClip.getChild("light").currentFrame && (this.enemies[this.numEnemyDetected].enemyClip.getChild("light").gotoAndStop(2), this.enemies[this.numEnemyDetected].enemySign.gotoAndStop(2), this.enemies[this.numEnemyDetected].prepareWarningTimer.start(), this.gameStatus = "warning", SoundManager.getInstance().playSound(this.enemies[this.numEnemyDetected].soundEnemyWarn)); else { if ("silent" == this.gameStatus) for (var i = 0; i < this.enemies.length; i++) "stun" != this.enemies[i].enemyAction && "warning_walk" != this.enemies[i].enemyAction && 1 != this.enemies[i].enemySign.currentFrame && "[object Robot]" != this.enemies[i].enemyType && this.enemies[i].resetEnemyAfterAlert(); if ("warning" == this.gameStatus && "[object Robot]" != this.enemies[this.numEnemyDetected].enemyType && "[object Zombieman]" != this.enemies[this.numEnemyDetected].enemyType && this.enemies[this.numEnemyDetected].resetEnemyAfterAlert(), "[object Robot]" == this.enemies[this.numEnemyDetected].enemyType && this.enemies[this.numEnemyDetected].resetEnemyAfterAlert(), "alert" == this.gameStatus && !this.countDownAlertTimer.running) for (var r = 0; r < this.enemies.length; r++) "alarm_walk" != this.enemies[r].enemyAction && "stun" != this.enemies[r].enemyAction && (this.enemies[this.numEnemyDetected].bobDetectedPoint = Math.abs(this.theBob.bClip.x - this.enemies[this.numEnemyDetected].enemyClip.x) - 20, this.numEnemyDetected == r ? this.enemies[r].setSearchBobMode() : this.enemies[r].enemyAction = "waitForWarningWalk") } this.bobCameraDetected() || this.isBobDetect || this.BobOnLasers() || (SoundManager.getInstance().stopSound("SSiren"), "warning" == this.gameStatus && (this.gameStatus = "silent"), "alert" != this.gameStatus || this.countDownAlertTimer.running || this.BobOnLasers() || (this.panicTime_gotoAndStop(2), this.alertTime = 700, this.countDownAlertTimer.start())) } , v.prototype.OzBobOnMoney = function() { for (var e = 0; e < this.moneyHides.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.moneyHides[e], null) && 0 == this.moneyHides[e].params.TakeIt) return !0; return !1 } , v.prototype.BobOnMoney = function() { for (var e = 0; e < this.moneyHides.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.moneyHides[e], null) && 0 == this.moneyHides[e].params.TakeIt) return this.moneyHides[e].params.TakeIt = !0, this.moneyHides[e].params.Amount; return 0 } , v.prototype.removeTwTip = function() { null != this.twTip && (this.twTip.kill(), this.twTip = null) } , v.prototype.BobOnTip = function() { var e = this; this.tipShow = !1; for (var t = 0; t < this.tipsHides.length; t++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.tipsHides[t], null) && 0 == this.tipsHides[t].params.Used) { if (0 == this.gameTip.visible || !this.tipShowing) switch (this.gameTip.visible = !0, this.tipShowing = !0, this.removeTwTip(), this.gameTip.alpha = 0, this.twTip = TweenMax.to(this.gameTip, .2, { alpha: 1, onComplete: this.removeTwTip, onCompleteContext: this }), this.tipsHides[t].params.TipFrame) { case 1: this.gameTip.x = 370, this.gameTip.y = 130; break; case 2: this.gameTip.x = 470, this.gameTip.y = 110; break; case 3: this.gameTip.x = 270, this.gameTip.y = 110; break; case 4: this.gameTip.x = 310, this.gameTip.y = 100; break; case 5: this.gameTip.x = 520, this.gameTip.y = 160; break; case 6: this.gameTip.x = 480, this.gameTip.y = 310; break; case 7: this.gameTip.x = 490, this.gameTip.y = 225 } this.gameTip.gotoAndStop(this.tipsHides[t].params.TipFrame + (Game.Touch() ? 7 : 0)), this.tipShow = !0, (this.upKey || this.padlockPanel.visible) && 6 != this.tipsHides[t].params.TipFrame && (this.tipsHides[t].params.Used = !0, this.tipShow = !1), !this.upKey && this.gameTarget.visible || 6 != this.tipsHides[t].params.TipFrame || 0 != this.gameTarget.visible || (this.tipsHides[t].params.Used = !0, this.tipShow = !1), (this.upKey || this.downKey || this.leftKey || this.rightKey) && 1 == this.tipsHides[t].params.TipFrame && (this.tipsHides[t].params.Used = !0, this.tipShow = !1), "photo" == this.theBob.BobAction && (this.tipsHides[t].params.Used = !0, this.tipShow = !1) } this.tipShow || (this.tipShowing || this.gameTip.visible) && (this.tipShowing = !1, this.removeTwTip(), this.twTip = TweenMax.to(this.gameTip, .2, { alpha: 0, onComplete: function() { e.gameTip.visible = !1, e.removeTwTip() }, onCompleteContext: this })) } , v.prototype.checkBobShadows = function() { for (var e = 0; e < this.shadows.length; e++) OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.shadows[e], null) && "stay" == this.theBob.BobAction && 0 == this.spaceKey && 0 == this.leftKey && 0 == this.rightKey && 0 == this.theBob.bProgressSkill.visible && (this.theBob.BobAction = "hideIn", this.theBob.bClip.visible = !1, this.theBob.bClipBack.visible = !0, this.theBob.bClipBack.x = this.theBob.bClip.x, this.theBob.bClipBack.y = this.theBob.bClip.y, this.theBob.bClipBack.gotoLabel(this.theBob.BobAction)) } , v.prototype.checkBobShadowsRuns = function() { for (var e = !1, t = 0; t < this.shadows.length; t++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.shadows[t], null)) { e = !0; break } e ? 0 == this.theBob.bobInShadow && (this.theBob.bobInShadow = !0, this.theBob.bClip.setTint(0, .5)) : this.theBob.bobInShadow && (this.theBob.bobInShadow = !1, this.theBob.bClip.setTint(0, 0)) } , v.prototype.OzBobOnDoor = function() { for (var e = 0; e < this.doors.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.doors[e].getChild("sensor"), null, this.doors[e]) && this.doors[e].params.Open) return !0; return !1 } , v.prototype.BobOnDoor = function() { for (var e = 0; e < this.doors.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.doors[e].getChild("sensor"), null, this.doors[e]) && this.doors[e].params.Open) return this.theBob.currentDoorY = this.doors[e].y, this.theBob.currentDoorX = this.doors[e].x, this.theBob.currentDoorGroupId = this.doors[e].params.idGroup, !0; return !1 } , v.prototype.OzBobOnElevator = function() { for (var e = 0; e < this.elevators.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.elevators[e].getChild("sensor"), null, this.elevators[e]) && this.elevators[e].params.Open) return !0; return !1 } , v.prototype.BobOnElevator = function() { for (var e = 0; e < this.elevators.length; e++) OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.elevators[e].getChild("sensor"), null, this.elevators[e]) && this.elevators[e].params.Open ? 1 != this.elevators[e].getChild("door").currentFrame && 20 != this.elevators[e].getChild("door").currentFrame || (this.elevators[e].getChild("door").gotoLabel("open"), "goleft" == this.theBob.BobAction || "goright" == this.theBob.BobAction ? this.elevators[e].getChild("bob").visible = !1 : this.elevators[e].getChild("bob").visible = !0, SoundManager.getInstance().playSound("SElevatorDoorClose"), this.theBob.currentElevatorY = this.elevators[e].y, this.theBob.currentElevatorX = this.elevators[e].x, this.theBob.currentElevatorGroupId = this.elevators[e].params.idGroup) : 10 == this.elevators[e].getChild("door").currentFrame && (this.elevators[e].getChild("door").gotoLabel("close"), SoundManager.getInstance().playSound("SElevatorDoorClose")) } , v.prototype.BobOnElevatorNow = function() { for (var e = 0; e < this.elevators.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.elevators[e].getChild("sensor"), null, this.elevators[e]) && this.elevators[e].params.Open) return this.theBob.currentElevatorY = this.elevators[e].y, this.theBob.currentElevatorX = this.elevators[e].x, this.theBob.currentElevatorGroupId = this.elevators[e].params.idGroup, this.theBob.currentElevatorNumber = e, !(this.elevators[e].getChild("bob").visible = !1); return !1 } , v.prototype.GoThroughAperture = function() { this.theBob.bClip.x = this.theBob.currentDoorX, this.theBob.BobAction = "goIn", this.theBob.bClip.gotoLabel(this.theBob.BobAction), this.theBob.bobActive = !1, SoundManager.getInstance().playSound("SAppertureMove"), this.theBob.fadeOut.start() } , v.prototype.getBobCoor = function() { return new Vector2(this.theBob.bClip.x,this.theBob.bClip.y) } , v.prototype.OzBobOnCodelock = function() { for (var e = 0; e < this.codelocks.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.codelocks[e], v.CodelockSensorRect) && this.codelocks[e].params.Locked) return !0; return !1 } , v.prototype.BobOnCodelock = function() { for (var e = 0; e < this.codelocks.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.codelocks[e], v.CodelockSensorRect) && this.codelocks[e].params.Locked) return this.theBob.currentPadlockName = this.codelocks[e].params.DoorName, this.theBob.currentPadlockX = this.codelocks[e].x, this.theBob.currentPadlockNumber = e, this.theBob.currentDoorCode = this.codelocks[e].params.Code, !0; return !1 } , v.prototype.OzBobOnTrans = function() { for (var e = 0; e < this.transBoxes.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.transBoxes[e], null) && this.transBoxes[e].params.Locked) return !0; return !1 } , v.prototype.BobOnTrans = function() { for (var e = 0; e < this.transBoxes.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.transBoxes[e], null) && this.transBoxes[e].params.Locked) return this.theBob.currentElectricPanelId = e, !0; return !1 } , v.prototype.OzBobOnTerminal = function() { return null != this.terminalPanel && !(!OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.terminalPanel, null) || !this.terminalPanel.params.Locked) } , v.prototype.BobOnTerminal = function() { return null != this.terminalPanel && (!(!OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.terminalPanel, null) || !this.terminalPanel.params.Locked) && (this.theBob.currentPadlockName = this.terminalPanel.params.DoorName, !0)) } , v.prototype.OzBobOnComputer = function() { for (var e = 0; e < this.computerPanels.length; e++) if (OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.computerPanels[e], null) && this.computerPanels[e].params.Locked) return !0; return !1 } , v.prototype.BobOnComputer = function() { if (1 <= this.computerPanels.length && OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.computerPanels[0], null) && this.computerPanels[0].params.Locked) { this.currentDoorCode = 1; for (var e = 0; e < this.codelocks.length; e++) this.codelocks[e].params.DoorName == this.computerPanels[0].params.DoorName && (this.codelocks[e].params.Code = this.computerScreen.params.doorcode); return !0 } if (2 == this.computerPanels.length && OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.computerPanels[1], null) && this.computerPanels[1].params.Locked) { this.currentDoorCode = 2; for (var t = 0; t < this.codelocks.length; t++) this.codelocks[t].params.DoorName == this.computerPanels[1].params.DoorName && (this.codelocks[t].params.Code = this.computerScreen.params.doorcode2); return !0 } return !1 } , v.prototype.BobOnLasers = function() { for (var e = 0; e < this.lasers.length; e++) if (3 != this.lasers[e].currentFrame && OzUtil.HitTest(this.theBob.bClip, this.theBob.bbody, this.lasers[e], null)) return !0; return !1 } , v.prototype.restartGame = function(e) { this.isSwitchingState || (this.stopTheGame(), this.switchState(v.Name)) } , v.prototype.startTheGame = function(e) { void 0 === e && (e = "pause"), this.keyListeners = !0, this.updateListener = !0; for (var t = 0; t < this.enemies.length; t++) this.enemies[t].startActions(); for (var i = 0; i < this.zombies.length; i++) this.zombies[i].startActions(); for (var r = 0; r < this.cameras.length; r++) this.cameras[r].startTurn() } , v.prototype.stopTheGame = function(e) { if (void 0 === e && (e = !0), this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1, this.keyListeners = !1, this.stopwatchTimer.stop(), e) { SoundManager.getInstance().stopAllAudio(), this.updateListener = !1, "busted" != this.theBob.BobAction && this.theBob.bClip.gotoLabel("stay"); for (var t = 0; t < this.enemies.length; t++) this.enemies[t].stopAnyActions(); for (var i = 0; i < this.zombies.length; i++) this.zombies[i].stopAnyActions() } } , v.prototype.create = function() { b.prototype.create.call(this), h5branding.google.sendScreenView(v.Name), h5branding.gameanalytics.addProgressionEvent(h5branding.EGAProgressionStatus.Start, v.currentLevel + ""), this.initVars(), this.refreshWorld(), Game._ce = new CitrusEngine, this.twTip = null, this.tipShowing = !1, this.twPadlockDuga = null, this.keyListeners = this.updateListener = this.padlockKeyListeners = !1, this.keyWireListeners = this.keyWireListeners2 = this.codeKeyListeners = !1, this.terminalKeyListeners = this.computerKeyListeners = this.restartKeyListener = !1, (v.Instance = this).currentLevelNumber = v.currentLevel, this.tvTotalScore = 0, this.tvTimeScore = 0, this.totalAlerts = 0, this.bobBitten = !1, this.moneyCollected = 0, this.pastTime = 0, this.levelScore = 0, this.gameStatus = "silent", this.theBob.bobActive = !0, this.bonusType = "", this.blades = null, this.buildInterface(), this.createLevel(v.currentLevel), this.stopWalking(), this.stopWorking() } , v.prototype.func2 = function(e) { this.t2.stop(), this.t.stop() } , v.prototype.func1 = function(e) {} , v.prototype.update = function() { if (b.prototype.update.call(this), this.lastFramePointerDown = this.thisFramePointerDown, this.thisFramePointerDown = Game.getGame().input.activePointer.isDown, this.thisFramePointerDown && !this.lastFramePointerDown && (this.processClick = !0), this.cnt % 2 == 0) { if (this.processEnterFrameEvents(), Timer.Process(33 + (this.cnt % 6 == 0 ? 1 : 0)), Game.Touch()) { if (this.processClick) { var e = Game.getGame().input.activePointer.worldX , t = Game.getGame().input.activePointer.worldY; this.messageFullScreen.visible && this.keyListeners && this.updateListener ? this.messageFullScreen.visible = !1 : 40 < t && this.heroCanWalkOrWork() && Math.abs(this.theBob.bClip.y - t) <= 60 && Math.abs(this.theBob.bClip.x - e) > (this.heroBubble.visible ? 18 : 10) && this.BobOnFloor() ? this.startWalking(e, t) : 0 != this.heroBubble.visible || "climb" != this.theBob.BobAction && "stay2" != this.theBob.BobAction || !this.keyListeners || Math.abs(e - this.theBob.bClip.x) < 19 && Math.abs(t - this.theBob.bClip.y) < 21 && this.changeClimbingDir() } if (!this.messageFullScreen.visible && this.keyListeners && this.updateListener && this.BobOnFloor() && !this.theBob.bClipBack.visible) if (!this.theBob.bClip.animations || 0 != this.theBob.bClip.animations.currentAnim.name.indexOf("empty") && 0 != this.theBob.bClip.animations.currentAnim.name.indexOf("fight")) { var i = this.OzCanHitBaddie(); 0 < i && (2 == i || i > this.lastCanHit) && (this.canHitDir < 0 ? this.theBob.BobLastDirrection = "left" : this.theBob.BobLastDirrection = "right", Input.getInstance().setDoing(0, "space", !0)), SoundManager.getInstance().stopSound("SBobClimb"), this.lastCanHit = i } else Input.getInstance().setDoing(0, "space", !1) } Game.Touch() && (this.mobileWalk < 0 ? Input.getInstance().setDoing(0, "left", !0) : 0 < this.mobileWalk && Input.getInstance().setDoing(0, "right", !0)); var r = Input.getInstance().isDoing("left"); (r != this.leftPrev || Input.rep("left")) && (r ? this.ozKeyPressed("left") : this.ozKeyReleased("left")), this.leftPrev = r; var o = Input.getInstance().isDoing("right"); (o != this.rightPrev || Input.rep("right")) && (o ? this.ozKeyPressed("right") : this.ozKeyReleased("right")), this.rightPrev = o; var s = Input.getInstance().isDoing("up"); (s != this.upPrev || Input.rep("up")) && (s ? this.ozKeyPressed("up") : this.ozKeyReleased("up")), this.upPrev = s; var a = Input.getInstance().isDoing("down"); (a != this.downPrev || Input.rep("down")) && (a ? this.ozKeyPressed("down") : this.ozKeyReleased("down")), this.downPrev = a; var n = Input.getInstance().isDoing("space"); (n != this.spacePrev || Input.rep("space")) && (n ? this.ozKeyPressed("space") : this.ozKeyReleased("space")), this.spacePrev = n; var h = Input.getInstance().isDoing("escape"); h != this.escapePrev && (h ? this.ozKeyPressed("escape") : this.ozKeyReleased("escape")), this.escapePrev = h; var c = Input.getInstance().isDoing("backspace"); c != this.backspacePrev && (c ? this.ozKeyPressed("backspace") : this.ozKeyReleased("backspace")), this.backspacePrev = c; var l = Input.getInstance().isDoing("p"); l != this.pPrev && (l ? this.ozKeyPressed("p") : this.ozKeyReleased("p")), this.pPrev = l; var m = Input.getInstance().isDoing("r"); m != this.rPrev && (m ? this.ozKeyPressed("r") : this.ozKeyReleased("r")), this.rPrev = m; var u = Input.getInstance().isDoing("z"); u != this.zPrev && (u && 1 < this.iPanel.getChild("zbutton").currentFrame ? this.ozKeyPressed("z") : this.ozKeyReleased("z")), this.zPrev = u; var d = Input.getInstance().isDoing("x"); d != this.xPrev && (d && 1 < this.iPanel.getChild("xbutton").currentFrame ? this.ozKeyPressed("x") : this.ozKeyReleased("x")), this.xPrev = d; var p = Input.getInstance().isDoing("c"); p != this.cPrev && (p && 1 < this.iPanel.getChild("cbutton").currentFrame ? this.ozKeyPressed("c") : this.ozKeyReleased("c")), this.cPrev = p; for (var f = 0; f < 10; f++) if (this.codeKeyListeners) { var y = "d" + f , S = "k" + f , w = Input.getInstance().isDoing("d" + f); w != this.digitPrev[f] && (w ? this.keyPressedPanel("" + f) : this.keyReleasedPanel("" + f)), this.digitPrev[f] = w; var g = this.codePanel.getChild(S); Input.getInstance().isDoing(y) ? g.changeFrame2() : g.changeFrame1() } if (this.updateListener && (this.updateWorld(null), Game.Touch())) if (this.adjustHeroBubble(), this.messageFullScreen.visible) this.heroBubble.visible = !1, this.mobileWork && "climb" != this.theBob.BobAction && this.stopWorking(); else if ("climb" == this.theBob.BobAction || "stay2" == this.theBob.BobAction) this.heroBubble.visible = !1; else if (this.heroCanWalkOrWork()) { var x; this.heroBubble.visible = !this.mobileWork, this.OzBobOnGameTarget() ? this.heroBubble.gotoAndStop(8) : this.OzBobOnDoor() || this.OzBobOnElevator() ? (this.heroBubble.gotoAndStop(3), this.mobileWork && this.stopWorking()) : 0 != (x = this.OzBobOnStairs()) ? (2 == x ? this.heroBubble.gotoAndStop(this.lastClimbDir < 0 ? 9 : 10) : x < 0 ? this.heroBubble.gotoAndStop(9) : 0 < x && this.heroBubble.gotoAndStop(10), this.mobileWork && "climb" != this.theBob.BobAction && this.stopWorking()) : this.OzBobOnComputer() || this.OzBobOnTerminal() ? (this.heroBubble.gotoAndStop(6), this.mobileWork && this.stopWorking()) : this.OzBobOnPadlock() ? (this.heroBubble.gotoAndStop(4), this.mobileWork && this.stopWorking()) : this.OzBobOnCodelock() ? (this.heroBubble.gotoAndStop(5), this.mobileWork && this.stopWorking()) : this.OzBobOnTrans() ? (this.heroBubble.gotoAndStop(7), this.mobileWork && this.stopWorking()) : this.OzBobOnMessage() ? (this.heroBubble.gotoAndStop(2), this.mobileWork && this.stopWorking()) : this.OzBobOnMoney() ? (this.heroBubble.gotoAndStop(1), this.mobileWork && this.stopWorking()) : (this.mobileWork && (this.mobileWork = !1, this.stopWorking()), this.heroBubble.visible = !1) } else this.mobileWork && (this.mobileWork = !1, this.stopWorking()), this.heroBubble.visible = !1; this.keyListeners && this.updateListener ? v.ShowMobileGUI() : v.HideMobileGUI(), this.processClick = !1 } else Game.frame-- } , v.prototype.keyReleased = function(e) { "left" == e && (this.leftKey = !1, this.theBob.BobLastDirrection = "left", this.theBob.strikeTimer.running || (this.BobOnFloor() ? this.theBob.BobAction = "stay" : this.BobOnStairs() && (this.theBob.BobAction = "stay2")), SoundManager.getInstance().stopSound("SBobWalk")), "right" == e && (this.rightKey = !1, this.theBob.BobLastDirrection = "right", this.theBob.strikeTimer.running || (this.BobOnFloor() ? this.theBob.BobAction = "stay" : this.BobOnStairs() && (this.theBob.BobAction = "stay2")), SoundManager.getInstance().stopSound("SBobWalk")), "up" == e && (this.upKey = !1, "climb" == this.theBob.BobAction && SoundManager.getInstance().stopSound("SBobClimb"), this.endProgress(), this.bonusType = "", this.BobOnFloor() ? this.theBob.BobAction = "stay" : this.BobOnStairs() && (this.theBob.BobAction = "stay2")), "down" == e && (this.downKey = !1, "climb" == this.theBob.BobAction && SoundManager.getInstance().stopSound("SBobClimb"), this.BobOnFloor() ? this.theBob.BobAction = "stay" : this.BobOnStairs() && (this.theBob.BobAction = "stay2")), "space" == e && (this.spaceKey = !1) } , v.prototype.keyPressedRestart = function(e) { "r" == e && this.restartGame(null) } , v.prototype.keyPressed = function(e) { if ("1000" == e && (this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1, this.theBob.BobAction = "stay"), this.messageFullScreen.visible = !1, this.theBob.bClip.visible = !0, this.theBob.bClipBack.visible = !1, this.theBob.bClipBack.gotoLabel("stay"), "z" == e && this.ozSelectBonus("z"), "x" == e && this.ozSelectBonus("x"), "c" == e && this.ozSelectBonus("c"), "r" == e && this.restartGame(null), "left" == e && (0 == this.theBob.bProgressSkill.visible && (this.leftKey = !0), !SoundManager.getInstance().isPlaying("SBobWalk") && this.theBob.bobActive && this.leftKey && SoundManager.getInstance().playSound("SBobWalk")), "right" == e && (0 == this.theBob.bProgressSkill.visible && (this.rightKey = !0), !SoundManager.getInstance().isPlaying("SBobWalk") && this.theBob.bobActive && this.rightKey && SoundManager.getInstance().playSound("SBobWalk")), "up" == e && !this.bobBitten && this.theBob.bobActive) { if (this.upKey = !0, this.BobOnElevatorNow() && this.GoThroughElevator(), this.BobOnPadlock() ? (this.doorBreakFail = !1, this.padlockPanel.visible = !0, 1 < this.currentLevelNumber && (this.padlockPanel.getChild("tip").visible = !1), "GrayFront" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GrayLeft" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GrayRight" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType || (this.padlockPanel.getChild("lockBase").getChild("duga").gotoAndStop(1), this.padlockPanel.getChild("lockBase").getChild("frame").gotoAndStop(1), this.padlockPanel.getChild("lockBase").getChild("larva").gotoAndStop(1)), "GoldFront" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GoldLeft" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GoldRight" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType || (this.padlockPanel.getChild("lockBase").getChild("duga").gotoAndStop(2), this.padlockPanel.getChild("lockBase").getChild("frame").gotoAndStop(2), this.padlockPanel.getChild("lockBase").getChild("larva").gotoAndStop(3)), "GrayFront" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GoldFront" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType || (this.theBob.BobAction = "work"), "GrayLeft" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GoldLeft" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType || (this.theBob.BobAction = "workRight"), "GrayRight" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType && "GoldRight" != this.padlocks[this.theBob.currentPadlockNumber].params.PadlockType || (this.theBob.BobAction = "workLeft"), this.padlockPanel.getChild("lockBase").getChild("hole").gotoAndStop(this.padlocks[this.theBob.currentPadlockNumber].params.HoleWidth), this.padlockPanel.getChild("lockBase").getChild("hole1").gotoAndStop(this.padlocks[this.theBob.currentPadlockNumber].params.HoleWidth), this.padlockPanel.getChild("lockBase").getChild("hole2").gotoAndStop(this.padlocks[this.theBob.currentPadlockNumber].params.HoleWidth), 1 == this.padlocks[this.theBob.currentPadlockNumber].params.HoleWidth && (this.padlockHoleWidth = 5), 2 == this.padlocks[this.theBob.currentPadlockNumber].params.HoleWidth && (this.padlockHoleWidth = 7), 3 == this.padlocks[this.theBob.currentPadlockNumber].params.HoleWidth && (this.padlockHoleWidth = 9), 1 == this.padlocks[this.theBob.currentPadlockNumber].params.PadlockLevel && (this.padlockPanel.getChild("lockBase").getChild("hole1").visible = !1, this.padlockPanel.getChild("lockBase").getChild("hole2").visible = !1, this.padlockPanel.getChild("lockBase").getChild("line").visible = !1, this.padlockPanel.getChild("lockBase").getChild("hole").visible = !0), 2 == this.padlocks[this.theBob.currentPadlockNumber].params.PadlockLevel && (this.padlockPanel.getChild("lockBase").getChild("hole1").visible = !0, this.padlockPanel.getChild("lockBase").getChild("hole2").visible = !0, this.padlockPanel.getChild("lockBase").getChild("line").visible = !0, this.padlockPanel.getChild("lockBase").getChild("hole").visible = !1), this.keyListeners = !1, SoundManager.getInstance().stopSound("SBobWalk"), this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1, this.padlockKeyListeners = !0, this.padlockPanel.addEventListener(this.holeMove, this), this.signHoleX *= -1, this.holeX = 1 * Math.random() + 1, this.holeMoveTimer.start()) : this.BobOnDoor() && this.GoThroughAperture(), this.BobOnMessage() && (SoundManager.getInstance().stopSound("SBobWalk"), "work" != this.theBob.BobAction && SoundManager.getInstance().playSound("SMessage"), this.leftKey = !1, this.rightKey = !1, this.messageFullScreen.visible = !0, this.theBob.BobAction = "work"), this.BobOnCodelock() && (this.theBob.BobAction = "work", this.codePanel.visible = !0, this.keyListeners = !1, SoundManager.getInstance().stopSound("SBobWalk"), this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1, this.codeKeyListeners = !0, this.resetCodeButtons(), this.textCode = "", this.codePanel.getChild("ed").gotoAndStop(11), this.codePanel.getChild("de").gotoAndStop(11), this.codePanel.getChild("so").gotoAndStop(11), this.codePanel.getChild("ti").gotoAndStop(11)), this.BobOnTrans() && (this.theBob.BobAction = "work", SoundManager.getInstance().playSound("SOpenCabinet"), 1 < this.currentLevelNumber && (this.wiresPanel.getChild("tip").visible = !1, this.wiresPanel2.getChild("tip").visible = !1), this.keyListeners = !1, SoundManager.getInstance().stopSound("SBobWalk"), this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1, this.currentCutWire = 1, this.wiresPanel.getChild("nippers").x = 200, this.wiresPanel2.getChild("nippers").x = 200, "blades" == this.transBoxes[this.theBob.currentElectricPanelId].params.LaserName ? (this.wiresPanel2.visible = !0, this.keyWireListeners2 = !0) : (this.wiresPanel.visible = !0, this.keyWireListeners = !0), 0 == this.transformatorPanelOpen && "blades" != this.transBoxes[this.theBob.currentElectricPanelId].params.LaserName && (this.wires.length = 0, this.setUpWires(), this.transformatorPanelOpen = !0), 0 == this.transformatorPanel2Open && "blades" == this.transBoxes[this.theBob.currentElectricPanelId].params.LaserName && (this.wires.length = 0, this.setUpWires2(), this.transformatorPanel2Open = !0)), this.BobOnTerminal()) { this.theBob.BobAction = "work", this.keyListeners = !1, SoundManager.getInstance().stopSound("SBobWalk"), this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1, this.terminalKeyListeners = !0, this.changeMiniGameFrame(Math.floor(2 * Math.random()) + 1), this.terminalScreen.visible = !0, this.terminalScreen.getChild("key").visible = !0, this.terminalScreen.getChild("testKey").visible = !1, this.terminalScreen.getChild("target").gotoAndStop(1), this.tKeyStartX = 205, this.tKeyStartY = 142, this.terminalScreen.getChild("key").x = this.tKeyStartX, this.terminalScreen.getChild("key").y = this.tKeyStartY, this.terminalScreen.getChild("testKey").x = this.tKeyStartX, this.terminalScreen.getChild("testKey").y = this.tKeyStartY, this.terminalScreen.getChild("key").gotoAndStop(1); for (var t = 0; t < this.terminalScreen.numChildren; t++) "miniBarriers" == this.terminalScreen.getChildAt(t).mc && this.minigameBlocks.push(this.terminalScreen.getChildAt(t)) } this.BobOnComputer() && (this.theBob.BobAction = "work", this.keyListeners = !1, SoundManager.getInstance().stopSound("SBobWalk"), this.leftKey = !1, this.rightKey = !1, this.upKey = !1, this.downKey = !1, 0 == this.computerPanelOpen ? (.5 < Math.random() ? (this.computerScreen.getChild("menuList").gotoAndStop(1), this.computerScreenNum = 1) : (this.computerScreen.getChild("menuList").gotoAndStop(13), this.computerScreenNum = 3), this.computerPanelOpen = !0) : 3 == this.computerScreenNum ? this.computerScreen.getChild("menuList").gotoAndStop(13) : this.computerScreen.getChild("menuList").gotoAndStop(1), this.computerKeyListeners = !0, this.computerScreen.getChild("doorcode").visible = !1, this.computerScreen.getChild("doorcode2").visible = !1, this.computerScreen.getChild("menuScreen").gotoAndStop(1), this.computerScreen.visible = !0), this.BobOnGameTarget() && 0 == this.theBob.bProgressSkill.visible && (this.bonusType = "gametarget", this.setupProgress(), this.leftKey = !1, this.rightKey = !1, SoundManager.getInstance().playSound("SBobSearch")); var i = this.BobOnMoney(); if (0 < i) { if (this.theBob.moreMoney) { var r; for (r = 20 * i / 100; r % 5 != 0; ) r += 1; i += r } new FlyingMoney(i); SoundManager.getInstance().playSound("SGetMoney"), .5 < Math.random() && 50 < i && SoundManager.getInstance().playSound("SBobLaugh") } if (this.BobNearEnemy() && "stun" == this.enemies[this.theBob.currentEnemyId].enemyAction && 0 < this.enemies[this.theBob.currentEnemyId].cash) { new FlyingMoney(this.enemies[this.theBob.currentEnemyId].cash); this.enemies[this.theBob.currentEnemyId].cash = 0, SoundManager.getInstance().playSound("SGetMoney"), .5 < Math.random() && SoundManager.getInstance().playSound("SBobLaugh") } if (this.BobNearZombie() && "stun" == this.zombies[this.theBob.currentZombieId].enemyAction && 0 < this.zombies[this.theBob.currentZombieId].cash) { new FlyingMoney(this.zombies[this.theBob.currentZombieId].cash); this.zombies[this.theBob.currentZombieId].cash = 0, SoundManager.getInstance().playSound("SGetMoney"), .5 < Math.random() && SoundManager.getInstance().playSound("SBobLaugh") } } if ("down" == e && !this.bobBitten && this.theBob.bobActive && (this.downKey = !0, this.BobOnDoor() && this.GoThroughAperture(), this.BobOnElevatorNow() && this.GoThroughElevator()), "space" == e) { if (!this.spaceKey && "busted" != this.theBob.BobAction) { for (var o = 0; o < this.enemies.length; o++) OzUtil.HitTest(this.theBob.bClip, null, this.enemies[o].enemyClip, null) && Math.abs(this.enemies[o].enemyClip.y - this.theBob.bClip.y) < 7 ? this.leftKey || this.rightKey ? this.leftKey && this.theBob.bClip.x > this.enemies[o].enemyClip.x ? this.theBob.BobAction = "emptyPushLeft" : this.leftKey && this.theBob.bClip.x < this.enemies[o].enemyClip.x ? this.theBob.BobAction = "emptyPushRight" : this.rightKey && this.theBob.bClip.x < this.enemies[o].enemyClip.x ? this.theBob.BobAction = "emptyPushRight" : this.rightKey && this.theBob.bClip.x > this.enemies[o].enemyClip.x && (this.theBob.BobAction = "emptyPushLeft") : ("left" == this.theBob.BobLastDirrection && this.theBob.bClip.x > this.enemies[o].enemyClip.x ? this.theBob.BobAction = "emptyPushLeft" : (this.theBob.BobLastDirrection = "right", this.theBob.BobAction = "emptyPushRight"), "right" == this.theBob.BobLastDirrection && this.theBob.bClip.x < this.enemies[o].enemyClip.x ? this.theBob.BobAction = "emptyPushRight" : (this.theBob.BobLastDirrection = "left", this.theBob.BobAction = "emptyPushLeft")) : this.leftKey ? this.theBob.BobAction = "emptyPushLeft" : this.rightKey ? this.theBob.BobAction = "emptyPushRight" : "left" == this.theBob.BobLastDirrection ? this.theBob.BobAction = "emptyPushLeft" : this.theBob.BobAction = "emptyPushRight"; this.theBob.strikeTimer.start(), this.theBob.bClip.gotoLabel(this.theBob.BobAction) } this.spaceKey = !0 } "p" == e && (this.gamePaused ? this.gotoGame(null) : this.pauseGame("button")) } , v.prototype.changeMiniGameFrame = function(e) { for (var t = this.terminalScreen.children.length - 1; 0 <= t; t--) { var i = this.terminalScreen.children[t]; !i || "miniBarriers" != i.mc && "miniTaget" != i.mc || i.remove() } this.terminalScreen.applyLayout("miniGame" + e), this.terminalScreenFrame = e } , v.prototype.findLasersToDisable = function(e) { for (var t = 0; t < this.lasers.length; t++) this.lasers[t].params.LaserName == e && this.lasers[t].gotoAndStop(3); "blades" == e && 5 == this.currentLevelNumber && this.blades.gotoLabel("stop") } , v.prototype.keyPressedTerminal = function(e) { this.theBob.bClip_bWork_play(), "right" == e && (this.bobTimerTerminal.running || (this.keyDirection = "right", this.terminalKeyMove())), "left" == e && (this.bobTimerTerminal.running || (this.keyDirection = "left", this.terminalKeyMove())), "up" == e && (this.bobTimerTerminal.running || (this.keyDirection = "up", this.terminalKeyMove())), "down" == e && (this.bobTimerTerminal.running || (this.keyDirection = "down", this.terminalKeyMove())), "escape" == e && (this.terminalKeyListeners = !1, this.bobTimerTerminal.stop(), this.terminalScreen.visible = !1, this.minigameBlocks.length = 0, this.ActivateControls()) } , v.prototype.keyReleasedWires = function(e) { "space" == e && this.wiresPanel.getChild("nippers").gotoAndStop(1) } , v.prototype.keyReleasedWires2 = function(e) { "space" == e && this.wiresPanel2.getChild("nippers").gotoAndStop(1) } , v.prototype.keyPressedWires = function(e) { this.theBob.bClip_bWork_play(), "right" == e && this.wiresPanel.getChild("nippers").x < 360 && (this.wiresPanel.getChild("nippers").x += 80, this.currentCutWire += 1), "left" == e && 200 < this.wiresPanel.getChild("nippers").x && (this.wiresPanel.getChild("nippers").x -= 80, this.currentCutWire -= 1), "space" == e && (this.wiresPanel.getChild("nippers").gotoAndStop(2), SoundManager.getInstance().playSound("SCableCut"), 1 == this.currentCutWire && (this.wiresPanel.getChild("green").gotoAndStop(2), this.wiresPanel.getChild("sparksGreen").playOnce()), 2 == this.currentCutWire && (this.wiresPanel.getChild("blue").gotoAndStop(2), this.wiresPanel.getChild("sparksBlue").playOnce()), 3 == this.currentCutWire && (this.wiresPanel.getChild("orange").gotoAndStop(2), this.wiresPanel.getChild("sparksOrange").playOnce()), this.keyWireListeners = !1, this.currentCutWire != this.currentWireToCut + 1 && (this.gameStatus = "alert", this.totalAlerts++, this.iPanel.getChild("alerts").gotoAndStop(this.totalAlerts + 1), this.alertBegin = !0, 4 == this.totalAlerts && this.stopTheGame(!1)), this.findLasersToDisable(this.transBoxes[this.theBob.currentElectricPanelId].params.LaserName), this.closeElectricPanelTimer.start()), "escape" == e && (this.wiresPanel.visible = !1, this.keyWireListeners = !1, this.wiresPanel.getChild("nippers").gotoAndStop(1), this.ActivateControls()) } , v.prototype.keyPressedWires2 = function(e) { this.theBob.bClip_bWork_play(), "right" == e && this.wiresPanel2.getChild("nippers").x < 360 && (this.wiresPanel2.getChild("nippers").x += 80, this.currentCutWire += 1), "left" == e && 200 < this.wiresPanel2.getChild("nippers").x && (this.wiresPanel2.getChild("nippers").x -= 80, this.currentCutWire -= 1), "space" == e && (this.wiresPanel2.getChild("nippers").gotoAndStop(2), SoundManager.getInstance().playSound("SCableCut"), 1 == this.currentCutWire && (this.wiresPanel2.getChild("green").gotoAndStop(2), this.wiresPanel2.getChild("sparksGreen").playOnce()), 2 == this.currentCutWire && (this.wiresPanel2.getChild("blue").gotoAndStop(2), this.wiresPanel2.getChild("sparksBlue").playOnce()), 3 == this.currentCutWire && (this.wiresPanel2.getChild("orange").gotoAndStop(2), this.wiresPanel2.getChild("sparksOrange").playOnce()), this.keyWireListeners2 = !1, this.currentCutWire != this.currentWireToCut2 + 1 && (this.gameStatus = "alert", this.totalAlerts++, this.iPanel.getChild("alerts").gotoAndStop(this.totalAlerts + 1), this.alertBegin = !0, 4 == this.totalAlerts && this.stopTheGame(!1)), this.findLasersToDisable(this.transBoxes[this.theBob.currentElectricPanelId].params.LaserName), this.closeElectricPanelTimer.start()), "escape" == e && (this.wiresPanel2.visible = !1, this.keyWireListeners2 = !1, this.wiresPanel2.getChild("nippers").gotoAndStop(1), this.ActivateControls()) } , v.prototype.keyReleasedPadlock = function(e) { "right" == e && (this.padRightKey = !1), "left" == e && (this.padLeftKey = !1) } , v.prototype.keyPressedPadlock = function(e) { this.theBob.bClip_bWork_play(), "right" == e && (this.padRightKey = !0), "left" == e && (this.padLeftKey = !0), "up" == e && (this.padRightKey = !1, this.padLeftKey = !1, this.tryToOpenPadlock()), "escape" == e && (this.padlockKeyListeners = !1, this.holeMoveTimer.stop(), this.padlockOpenTimer.stop(), this.padlockPanel.removeEventListener(this.holeMove), this.twDuga && this.twDuga.kill(), this.padlockPanel.getChild("lockBase").getChild("duga").y = -222, this.padlockPanel.getChild("lockBase").getChild("pick").gotoAndStop(1), this.padlockPanel.visible = !1, this.padlockPanel.getChild("lockBase").getChild("pick").y = 187, this.ActivateControls()) } , v.prototype.keyReleasedPanel = function(e) { for (var t = 0; t < 10; t++) e == "" + t && this.textCodeEnter() } , v.prototype.keyPressedPanel = function(e) { this.theBob.bClip_bWork_play(), "backspace" == e && (1 < this.textCode.length ? this.textCode = this.textCode.substr(0, this.textCode.length - 1) : this.textCode = "", this.textCodeEntering(), SoundManager.getInstance().playSound("SCodeButtonClick")); for (var t = 0; t < 10; t++) e == "" + t && (this.textCode = this.textCode.concat("" + t), this.codePanel.getChild("k" + t).gotoAndStop(11), this.textCodeEntering(), SoundManager.getInstance().playSound("SCodeButtonClick")); "escape" != e && "right" != e && "left" != e || (SoundManager.getInstance().playSound("SCodeButtonClick"), this.codeKeyListeners = !1, this.textCode = "", this.codePanel.visible = !1, this.ActivateControls(), "right" == e && (this.rightKey = !0), "left" == e && (this.leftKey = !0)) } , v.prototype.tryToOpenPadlock = function() { this.padlockPanel.getChild("lockBase").getChild("hole").visible && (Math.abs(this.padlockPanel.getChild("lockBase").getChild("hole").x - this.padlockPanel.getChild("lockBase").getChild("pick").x) < this.padlockHoleWidth ? (this.padlockKeyListeners = !1, this.padlockPanel.removeEventListener(this.holeMove), this.holeMoveTimer.stop(), this.padlockPanel.getChild("lockBase").getChild("pick").playToEnd()) : (this.padlockKeyListeners = !1, this.padlockPanel.getChild("lockBase").getChild("pick").y -= 10, this.padlockPanel.removeEventListener(this.holeMove), this.holeMoveTimer.stop(), SoundManager.getInstance().playSound("SKeyFail"), this.doorBreakFail = !0), this.padlockOpenTimer.start()), this.padlockPanel.getChild("lockBase").getChild("hole1").visible && 3 == this.padlockPanel.getChild("lockBase").getChild("pick").currentFrame && (Math.abs(this.padlockPanel.getChild("lockBase").getChild("hole2").x - this.padlockPanel.getChild("lockBase").getChild("pick").x) < this.padlockHoleWidth ? (this.padlockKeyListeners = !1, this.padlockPanel.removeEventListener(this.holeMove), this.holeMoveTimer.stop(), this.padlockPanel.getChild("lockBase").getChild("pick").playToEnd()) : (this.padlockKeyListeners = !1, this.padlockPanel.getChild("lockBase").getChild("pick").y -= 10, this.padlockPanel.removeEventListener(this.holeMove), this.holeMoveTimer.stop(), SoundManager.getInstance().playSound("SKeyFail"), this.doorBreakFail = !0), this.padlockOpenTimer.start()), this.padlockPanel.getChild("lockBase").getChild("hole1").visible && 1 == this.padlockPanel.getChild("lockBase").getChild("pick").currentFrame && (Math.abs(this.padlockPanel.getChild("lockBase").getChild("hole1").x - this.padlockPanel.getChild("lockBase").getChild("pick").x) < this.padlockHoleWidth ? (this.padlockPanel.getChild("lockBase").getChild("pick").gotoAndStop(3), SoundManager.getInstance().playSound("SKeyOneshot")) : (this.padlockKeyListeners = !1, this.padlockPanel.getChild("lockBase").getChild("pick").y -= 10, this.padlockPanel.removeEventListener(this.holeMove), this.holeMoveTimer.stop(), SoundManager.getInstance().playSound("SKeyFail"), this.doorBreakFail = !0, this.padlockOpenTimer.start())) } , v.prototype.setUpWires = function() { var e, t = 0, i = 0; for (this.signalsEnd.length = 0, this.currentWireToCut = Math.floor(3 * Math.random()), this.changeWireCount = 0, this.crossCount = 0, this.wireBlocks = 0, this.wireLengthArray[0] = 0, this.wireLengthArray[1] = 0, this.wireLengthArray[2] = 0, this.wiresPanel.getChild("green").gotoAndStop(1), this.wiresPanel.getChild("blue").gotoAndStop(1), this.wiresPanel.getChild("orange").gotoAndStop(1), this.wiresPanel.getChild("sparksGreen").gotoAndStop(1), this.wiresPanel.getChild("sparksBlue").gotoAndStop(1), this.wiresPanel.getChild("sparksOrange").gotoAndStop(1); 0 < this.wiresPanel.getChild("wires").numChildren; ) this.wiresPanel.getChild("wires").removeChild(this.wiresPanel.getChild("wires").getChildAt(0)); for (var r = 0; r < 7; r++) { this.panelsWires = new Array; for (var o = 0; o < 7; o++) (e = new WireBlock).x += t, e.y += i, this.panelsWires.push(e), t += 40; this.wires.push(this.panelsWires), t = 0, i += 40 } for (this.wireCount = 1, this.circleCount = 1, this.curDirection = 2, this.curPosition = new Vector2(1,6), this.prevPosition = this.curPosition, this.wires[this.curPosition.y][this.curPosition.x].clipGo(8), this.wiresPanel.getChild("wires").addChild(this.wires[this.curPosition.y][this.curPosition.x]), this.wires[6][3].clipGo(8), this.wiresPanel.getChild("wires").addChild(this.wires[6][3]), this.wires[6][5].clipGo(8), this.wiresPanel.getChild("wires").addChild(this.wires[6][5]), this.curPosition.y -= 1; this.wireCount < 4 && this.changeWireCount < 30; ) this.addWireBlock(); this.buildWireAgain() } , v.prototype.setUpWires2 = function() { var e, t = 0, i = 0; for (this.signalsEnd.length = 0, this.currentWireToCut2 = Math.floor(3 * Math.random()), this.changeWireCount = 0, this.crossCount = 0, this.wireBlocks = 0, this.wireLengthArray[0] = 0, this.wireLengthArray[1] = 0, this.wireLengthArray[2] = 0, this.wiresPanel2.getChild("green").gotoAndStop(1), this.wiresPanel2.getChild("blue").gotoAndStop(1), this.wiresPanel2.getChild("orange").gotoAndStop(1), this.wiresPanel2.getChild("sparksGreen").gotoAndStop(1), this.wiresPanel2.getChild("sparksBlue").gotoAndStop(1), this.wiresPanel2.getChild("sparksOrange").gotoAndStop(1); 0 < this.wiresPanel2.getChild("wires").numChildren; ) this.wiresPanel2.getChild("wires").removeChild(this.wiresPanel2.getChild("wires").getChildAt(0)); for (var r = 0; r < 7; r++) { this.panelsWires = new Array; for (var o = 0; o < 7; o++) (e = new WireBlock).x += t, e.y += i, this.panelsWires.push(e), t += 40; this.wires.push(this.panelsWires), t = 0, i += 40 } for (this.wireCount = 1, this.circleCount = 1, this.curDirection = 2, this.curPosition = new Vector2(1,6), this.prevPosition = this.curPosition, this.wires[this.curPosition.y][this.curPosition.x].clipGo(8), this.wiresPanel2.getChild("wires").addChild(this.wires[this.curPosition.y][this.curPosition.x]), this.wires[6][3].clipGo(8), this.wiresPanel2.getChild("wires").addChild(this.wires[6][3]), this.wires[6][5].clipGo(8), this.wiresPanel2.getChild("wires").addChild(this.wires[6][5]), this.curPosition.y -= 1; this.wireCount < 4 && this.changeWireCount < 30; ) this.addWireBlock2(); this.buildWireAgain2() } , v.prototype.findWire = function() { return this.wireLengthArray[0] > this.wireLengthArray[1] ? this.wireLengthArray[0] > this.wireLengthArray[2] ? 0 : 2 : this.wireLengthArray[1] > this.wireLengthArray[2] ? 1 : 2 } , v.prototype.buildWireAgain = function() { if (this.wireCount < 4 || this.crossCount < 4 || this.wireBlocks < 38) this.wires.length = 0, this.setUpWires(); else { this.findWire(); this.signalsEnd[this.currentWireToCut].gotoAndStop(2) } } , v.prototype.buildWireAgain2 = function() { if (this.wireCount < 4 || this.crossCount < 4 || this.wireBlocks < 38) this.wires.length = 0, this.setUpWires2(); else { this.findWire(); this.signalsEnd[this.currentWireToCut2].gotoAndStop(2) } } , v.prototype.addWireBlock = function() { var e = Math.floor(8 * Math.random() + 1); if (this.changeWireCount++, 0 == this.curPosition.y) { 1 == this.curDirection && (e = 4), 2 == this.curDirection && (e = 8), 3 == this.curDirection && (e = 3), this.wires[this.curPosition.y][this.curPosition.x].clipGo(e), this.wiresPanel.getChild("wires").addChild(this.wires[this.curPosition.y][this.curPosition.x]); var t = new MovieClip("WireSignalEnd"); this.wiresPanel.getChild("wires").addChild(t), t.x = this.wires[this.curPosition.y][this.curPosition.x].x, t.y = this.wires[this.curPosition.y][this.curPosition.x].y - 18, this.signalsEnd.push(t), this.wireCount++, 2 == this.wireCount && (this.circleCount = Math.floor(2 * Math.random() + 1), this.curDirection = 2, this.curPosition = new Vector2(3,6), this.curPosition.y -= 1), 3 == this.wireCount && (this.circleCount = Math.floor(2 * Math.random() + 1), this.curDirection = 2, this.curPosition = new Vector2(5,6), this.curPosition.y -= 1) } this.isValidWireSegment(this.curPosition, this.prevPosition, this.curDirection, e) && (this.wires[this.curPosition.y][this.curPosition.x].clipGo(e), this.wiresPanel.getChild("wires").addChild(this.wires[this.curPosition.y][this.curPosition.x]), this.changeWireCount = 0, this.wireBlocks++, 1 == this.wireCount && (this.wireLengthArray[0] += 1), 2 == this.wireCount && (this.wireLengthArray[1] += 1), 3 == this.wireCount && (this.wireLengthArray[2] += 1), 5 != e && 6 != e || this.crossCount++, 1 == e && (2 == this.curDirection && (this.curDirection = 3), 1 == this.curDirection && (this.curDirection = 4)), 2 == e && (2 == this.curDirection && (this.curDirection = 1), 3 == this.curDirection && (this.curDirection = 4)), 3 == e && (4 == this.curDirection && (this.curDirection = 1), 3 == this.curDirection && (this.curDirection = 2)), 4 == e && (4 == this.curDirection && (this.curDirection = 3), 1 == this.curDirection && (this.curDirection = 2)), 2 == this.curDirection && (this.curPosition.y -= 1), 4 == this.curDirection && (this.curPosition.y += 1, this.circleCount++), 1 == this.curDirection && (this.curPosition.x -= 1), 3 == this.curDirection && (this.curPosition.x += 1)) } , v.prototype.addWireBlock2 = function() { var e = Math.floor(8 * Math.random() + 1); if (this.changeWireCount++, 0 == this.curPosition.y) { 1 == this.curDirection && (e = 4), 2 == this.curDirection && (e = 8), 3 == this.curDirection && (e = 3), this.wires[this.curPosition.y][this.curPosition.x].clipGo(e), this.wiresPanel2.getChild("wires").addChild(this.wires[this.curPosition.y][this.curPosition.x]); var t = new MovieClip("WireSignalEnd"); this.wiresPanel2.getChild("wires").addChild(t), t.x = this.wires[this.curPosition.y][this.curPosition.x].x, t.y = this.wires[this.curPosition.y][this.curPosition.x].y - 18, this.signalsEnd.push(t), this.wireCount++, 2 == this.wireCount && (this.circleCount = Math.floor(2 * Math.random() + 1), this.curDirection = 2, this.curPosition = new Vector2(3,6), this.curPosition.y -= 1), 3 == this.wireCount && (this.circleCount = Math.floor(2 * Math.random() + 1), this.curDirection = 2, this.curPosition = new Vector2(5,6), this.curPosition.y -= 1) } this.isValidWireSegment(this.curPosition, this.prevPosition, this.curDirection, e) && (this.wires[this.curPosition.y][this.curPosition.x].clipGo(e), this.wiresPanel2.getChild("wires").addChild(this.wires[this.curPosition.y][this.curPosition.x]), this.changeWireCount = 0, this.wireBlocks++, 1 == this.wireCount && (this.wireLengthArray[0] += 1), 2 == this.wireCount && (this.wireLengthArray[1] += 1), 3 == this.wireCount && (this.wireLengthArray[2] += 1), 5 != e && 6 != e || this.crossCount++, 1 == e && (2 == this.curDirection && (this.curDirection = 3), 1 == this.curDirection && (this.curDirection = 4)), 2 == e && (2 == this.curDirection && (this.curDirection = 1), 3 == this.curDirection && (this.curDirection = 4)), 3 == e && (4 == this.curDirection && (this.curDirection = 1), 3 == this.curDirection && (this.curDirection = 2)), 4 == e && (4 == this.curDirection && (this.curDirection = 3), 1 == this.curDirection && (this.curDirection = 2)), 2 == this.curDirection && (this.curPosition.y -= 1), 4 == this.curDirection && (this.curPosition.y += 1, this.circleCount++), 1 == this.curDirection && (this.curPosition.x -= 1), 3 == this.curDirection && (this.curPosition.x += 1)) } , v.prototype.isValidWireSegment = function(e, t, i, r) { if (1 == r) { if (3 == i || 4 == i) return !1; if (0 < this.wires[this.curPosition.y][this.curPosition.x].stepCount) return !1; if (2 == i && 6 == e.x) return !1; if (1 == i && 6 == e.y) return !1; if (1 == i && (1 < this.circleCount || 3 == e.x || 5 == e.x)) return !1; if (2 == i && this.wires[this.curPosition.y][this.curPosition.x + 1].wireType < 8) return !1; if (1 == i && this.wires[this.curPosition.y + 1][this.curPosition.x].wireType < 7) return !1 } if (2 == r) { if (1 == i || 4 == i) return !1; if (0 < this.wires[this.curPosition.y][this.curPosition.x].stepCount) return !1; if (2 == i && 0 == e.x) return !1; if (3 == i && 6 == e.y) return !1; if (3 == i && (1 < this.circleCount || 3 == e.x || 5 == e.x)) return !1; if (2 == i && this.wires[this.curPosition.y][this.curPosition.x - 1].wireType < 8) return !1; if (3 == i && this.wires[this.curPosition.y + 1][this.curPosition.x].wireType < 7) return !1 } if (3 == r) { if (1 == i || 2 == i) return !1; if (0 < this.wires[this.curPosition.y][this.curPosition.x].stepCount) return !1; if (4 == i && 0 == e.x) return !1; if (3 == i && 0 == e.y) return !1; if (4 == i && this.wires[this.curPosition.y][this.curPosition.x - 1].wireType < 8) return !1; if (3 == i && this.wires[this.curPosition.y - 1][this.curPosition.x].wireType < 7) return !1 } if (4 == r) { if (3 == i || 2 == i) return !1; if (0 < this.wires[this.curPosition.y][this.curPosition.x].stepCount) return !1; if (4 == i && 6 == e.x) return !1; if (1 == i && 0 == e.y) return !1; if (4 == i && this.wires[this.curPosition.y][this.curPosition.x + 1].wireType < 8) return !1; if (1 == i && this.wires[this.curPosition.y - 1][this.curPosition.x].wireType < 7) return !1 } if (5 == r || 8 == r) { if (1 == i || 3 == i) return !1; if (1 == this.wires[this.curPosition.y][this.curPosition.x].stepCount && 8 == r) return !1; if (0 == this.wires[this.curPosition.y][this.curPosition.x].stepCount && 5 == r) return !1; if (2 == i && 0 == e.y) return !1; if (4 == i && 6 == e.y) return !1; if (2 == i && this.wires[this.curPosition.y - 1][this.curPosition.x].wireType < 7) return !1; if (4 == i && this.wires[this.curPosition.y + 1][this.curPosition.x].wireType < 7) return !1 } if (6 == r || 7 == r) { if (2 == i || 4 == i) return !1; if (1 == this.wires[this.curPosition.y][this.curPosition.x].stepCount && 7 == r) return !1; if (0 == this.wires[this.curPosition.y][this.curPosition.x].stepCount && 6 == r) return !1; if (1 == i && 0 == e.x) return !1; if (3 == i && 6 == e.x) return !1; if (1 == i && this.wires[this.curPosition.y][this.curPosition.x - 1].wireType < 8) return !1; if (3 == i && this.wires[this.curPosition.y][this.curPosition.x + 1].wireType < 8) return !1 } return !0 } , v.prototype.keyPressedComputer = function(e) { this.theBob.bClip_bWork_play(), "up" == e && (1 < this.computerScreen.getChild("menuList").currentFrame && 1 == this.computerScreenNum && (this.computerScreen.getChild("menuList").gotoAndStop(this.computerScreen.getChild("menuList").currentFrame - 1), this.computerScreen.getChild("menuScreen").gotoAndStop(this.computerScreen.getChild("menuScreen").currentFrame - 1)), 13 < this.computerScreen.getChild("menuList").currentFrame && 3 == this.computerScreenNum && (this.computerScreen.getChild("menuList").gotoAndStop(this.computerScreen.getChild("menuList").currentFrame - 1), this.computerScreen.getChild("menuScreen").gotoAndStop(this.computerScreen.getChild("menuScreen").currentFrame - 1))), "down" == e && (this.computerScreen.getChild("menuList").currentFrame < 4 && 1 == this.computerScreenNum && (this.computerScreen.getChild("menuList").gotoAndStop(this.computerScreen.getChild("menuList").currentFrame + 1), this.computerScreen.getChild("menuScreen").gotoAndStop(this.computerScreen.getChild("menuScreen").currentFrame + 1)), this.computerScreen.getChild("menuList").currentFrame < 18 && 3 == this.computerScreenNum && (this.computerScreen.getChild("menuList").gotoAndStop(this.computerScreen.getChild("menuList").currentFrame + 1), this.computerScreen.getChild("menuScreen").gotoAndStop(this.computerScreen.getChild("menuScreen").currentFrame + 1))), 1 == this.computerScreenNum && (4 == this.computerScreen.getChild("menuList").currentFrame ? 1 == this.currentDoorCode ? this.computerScreen.getChild("doorcode").visible = !0 : this.computerScreen.getChild("doorcode2").visible = !0 : 1 == this.currentDoorCode ? this.computerScreen.getChild("doorcode").visible = !1 : this.computerScreen.getChild("doorcode2").visible = !1), 3 == this.computerScreenNum && (16 == this.computerScreen.getChild("menuList").currentFrame ? 1 == this.currentDoorCode ? this.computerScreen.getChild("doorcode").visible = !0 : this.computerScreen.getChild("doorcode2").visible = !0 : 1 == this.currentDoorCode ? this.computerScreen.getChild("doorcode").visible = !1 : this.computerScreen.getChild("doorcode2").visible = !1), "escape" != e && "right" != e && "left" != e || (this.computerKeyListeners = !1, this.computerScreen.visible = !1, 3 == this.computerScreenNum ? this.computerScreen.getChild("menuList").gotoAndStop(13) : this.computerScreen.getChild("menuList").gotoAndStop(1), this.computerScreen.getChild("menuScreen").gotoAndStop(1), this.ActivateControls(), "right" == e && (this.rightKey = !0), "left" == e && (this.leftKey = !0)) } , v.prototype.ozKeyPressed = function(e) { this.keyListeners ? this.keyPressed(e) : this.padlockKeyListeners ? this.keyPressedPadlock(e) : this.codeKeyListeners ? this.keyPressedPanel(e) : this.computerKeyListeners ? this.keyPressedComputer(e) : this.terminalKeyListeners ? this.keyPressedTerminal(e) : this.restartKeyListener ? this.keyPressedRestart(e) : this.keyWireListeners ? this.keyPressedWires(e) : this.keyWireListeners2 && this.keyPressedWires2(e) } , v.prototype.ozKeyReleased = function(e) { this.keyListeners ? this.keyReleased(e) : this.padlockKeyListeners ? this.keyReleasedPadlock(e) : this.codeKeyListeners ? this.keyReleasedPanel(e) : this.keyWireListeners ? this.keyReleasedWires(e) : this.keyWireListeners2 && this.keyReleasedWires2(e) } , v.prototype.pressCodeButton = function(e) { this.theBob.bClip_bWork_play(), Input.getInstance().setDoing(0, "d" + e, !0) } , v.prototype.releaseCodeButton = function(e) { Input.getInstance().setDoing(0, "d" + e, !1) } , v.prototype.resetCodeButtons = function() { for (var e = 0; e < 10; e++) this.digitPrev[e] = !1, Input.getInstance().setDoing(0, "d" + e, !1), this.codePanel.getChild("k" + e).changeFrame1() } , v.prototype.addChild = function(e) { this.world.addChild(e) } , v.Name = "gameplay", v.HeroCross = null, v.SideDoorRect = new Phaser.Rectangle(-32,-23,38,56), v.CodelockSensorRect = new Phaser.Rectangle(-5,-10,10,20), v.LatticeRect = new Phaser.Rectangle(-7,-31,14,62), v.BobHitRect = new Phaser.Rectangle(-26,-20,52,40), v }(states.OzState);